Data Grid のアップグレード
Data Grid を 8.2 にアップグレード
概要
Red Hat Data Grid リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、高性能の分散型インメモリーデータストアです。
- スキーマレスデータ構造
- さまざまなオブジェクトをキーと値のペアとして格納する柔軟性があります。
- グリッドベースのデータストレージ
- クラスター間でデータを分散および複製するように設計されています。
- エラスティックスケーリング
- サービスを中断することなく、ノードの数を動的に調整して要件を満たします。
- データの相互運用性
- さまざまなエンドポイントからグリッド内のデータを保存、取得、およびクエリーします。
Data Grid のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
Data Grid のドキュメントは、Red Hat カスタマーポータルで入手できます。
Data Grid のダウンロード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat カスタマーポータルで Data Grid Software Downloads にアクセスします。
Data Grid ソフトウェアにアクセスしてダウンロードするには、Red Hat アカウントが必要です。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Data Grid サーバーのローリングアップグレードの実行 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid クラスターのローリングアップグレードを実行して、ダウンタイムやデータの損失なしにバージョン間で変更します。ローリングアップグレードは、Hot Rod 経由で Data Grid サーバーおよびデータの両方をターゲットバージョンに移行します。
1.1. ターゲットクラスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ターゲット Data Grid バージョンを実行し、リモートキャッシュストアを使用してソースクラスターからデータを読み込むクラスターを作成します。
前提条件
- ターゲットアップグレードバージョンとともに Data Grid クラスターをインストールします。
ターゲットクラスターのネットワークプロパティーはソースクラスターのネットワークプロパティーが重複していないことを確認します。JGroups トランスポート設定でターゲットおよびソースクラスターの一意の名前を指定する必要があります。環境に応じて、異なるネットワークインターフェイスを使用し、ターゲットクラスターとソースクラスターを分離するためにポートオフセットを指定することもできます。
手順
ソースクラスターから移行する各キャッシュについて、ターゲットクラスターに
aRemoteCacheStoreを追加します。リモートキャッシュストアは Hot Rod プロトコルを使用して、リモート Data Grid クラスターからデータを取得します。リモートキャッシュストアをターゲットクラスターに追加する場合は、ソースクラスターからデータをレイジーに読み込み、クライアント要求を処理します。
すべての要求の処理を開始するために、クライアントをターゲットクラスターに切り替えます。
- クライアント設定をターゲットクラスターの場所で更新します。
- クライアントを再起動します。
1.1.1. ローリングアップグレードのリモートキャッシュストア リンクのコピーリンクがクリップボードにコピーされました!
以下のようにローリングアップグレードを実行するには、特定のリモートキャッシュストア設定を使用する必要があります。
- 1
- パッシベーションを無効にします。ローリングアップグレードのリモートキャッシュストアは、パッシベーションを無効にする必要があります。
- 2
- ソースクラスター内のキャッシュの名前と一致します。ターゲットクラスターは、リモートキャッシュストアを使用してこのキャッシュからデータを読み込みます。
- 3
- ソースクラスターの Hot Rod プロトコルバージョンと一致します。
2.5は最小バージョンであり、アップグレードパスに適しています。別の Hot Rod でバージョンを設定する必要はありません。 - 4
- エントリーが Hot Rod プロトコルに適した形式でラップされるようにします。
- 5
- データを raw 形式でリモートキャッシュストアに保存します。これにより、クライアントはリモートキャッシュストアから直接データを使用できるようになります。
- 6
- リモートキャッシュストアのセグメンテーションを無効にします。リモートキャッシュストアのセグメンテーションを有効にする必要があるのは、ターゲットクラスターのセグメント数がソースクラスターのキャッシュのセグメント数と一致する場合のみです。
- 7
- ソースクラスターの場所を参照します。
1.2. ターゲットクラスターへのデータの同期 リンクのコピーリンクがクリップボードにコピーされました!
ターゲットクラスターがリモートキャッシュストアを使用してクライアント要求を実行し、オンデマンドでデータを読み込む場合は、ソースクラスターからターゲットクラスターにデータを同期できます。
この操作はソースクラスターからデータを読み取り、ターゲットクラスターに書き込みます。データは、ターゲットクラスターのすべてのノードに並行して移行され、各ノードはデータのサブセットを受け取ります。Data Grid 設定で、各キャッシュの同期を実行する必要があります。
手順
ターゲットクラスターに移行する Data Grid 設定の各キャッシュの同期操作を開始します。
Data Grid REST API を使用し、
?action=sync- dataパラメーターでPOST要求を呼び出します。たとえば、myCache という名前のキャッシュ内のデータをソースクラスターからターゲットクラスターに同期するには、以下を実行します。POST /v2/caches/myCache?action=sync-data
POST /v2/caches/myCache?action=sync-dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 操作が完了すると、Data Grid はターゲットクラスターにコピーされたエントリーの合計数で応答します。
または、
RollingUpgradeManagerMBean でsynchronizeData(migratorName=hotrod)を呼び出すことで JMX を使用できます。ターゲットクラスター内の各ノードをソースクラスターから切断します。
たとえば、ソースクラスターから myCache キャッシュを切断するには、以下の
POST要求を呼び出します。POST /v2/caches/myCache?action=disconnect-source
POST /v2/caches/myCache?action=disconnect-sourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow JMX を使用するには、
RollingUpgradeManagerMBean でdisconnectSource(migratorName=hotrod)を呼び出します。
次のステップ
ソースクラスターからすべてのデータを同期すると、ローリングアップグレードプロセスが完了します。ソースクラスターの使用を停止できるようになりました。
第2章 キャッシュストア間のデータの移行 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、キャッシュストア間で永続化されたデータを移行するための Java ユーティリティーを提供します。
Data Grid をアップグレードする場合、メジャーバージョン間の機能相違点は、キャッシュストア間の後方互換性を許可しません。StoreMigrator を使用してデータを変換し、ターゲットバージョンとの互換性を持つことができます。
たとえば、Data Grid 8.0 にアップグレードすると、デフォルトのマーシャラーが Protostream に変更になります。以前の Data Grid バージョンでは、キャッシュストアはバイナリー形式を使用し、マーシャリングする変更との互換性がありません。つまり、Data Grid 8.0 は、以前の Data Grid バージョンでキャッシュストアから読み込むことができません。
他の場合は、Data Grid のバージョンが、JDBC Mixed および Binary ストアなどのキャッシュストア実装を非推奨または削除します。このような場合は、StoreMigrator を使用して異なるキャッシュストア実装に変換できます。
2.1. キャッシュストアマイグレーション リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、最新の Data Grid キャッシュストア実装のデータを再作成する StoreMigrator.java ユーティリティーを提供します。
StoreMigrator は以前のバージョンの Data Grid のキャッシュストアを取得し、キャッシュストア実装をターゲットとして使用します。
StoreMigrator を実行すると、EmbeddedCacheManager インターフェイスを使用して定義したキャッシュストアタイプでターゲットキャッシュが作成されます。StoreMigrator は、ソースストアからメモリーにエントリーを読み込み、それらをターゲットキャッシュに配置します。
StoreMigrator を使用すると、あるタイプのキャッシュストアから別のストアにデータを移行することもできます。たとえば、JDBC String ベースのキャッシュストアから Single File キャッシュストアに移行することができます。
StoreMigrator は、セグメント化されたキャッシュストアから以下にデータを移行できません。
- 非セグメント化されたキャッシュストア。
- セグメント数が異なるセグメント化されたキャッシュストア。
2.2. Store Migrator の取得 リンクのコピーリンクがクリップボードにコピーされました!
StoreMigrator は、Data Grid ツールライブラリー infinispan-tools の一部として利用でき、Maven リポジトリーに含まれます。
手順
StoreMigratorのpom.xmlを以下のように設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. ストア移行の設定 リンクのコピーリンクがクリップボードにコピーされました!
ソースおよびターゲットのキャッシュストアのプロパティーを migrator.properties ファイルに設定します。
手順
-
migrator.propertiesファイルを作成します。 ソースキャッシュストアを
migrator.propertiesに設定します。以下の例にあるように、すべての設定プロパティーの先頭に
source.を追加します。source.type=SOFT_INDEX_FILE_STORE source.cache_name=myCache source.location=/path/to/source/sifs
source.type=SOFT_INDEX_FILE_STORE source.cache_name=myCache source.location=/path/to/source/sifsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
migrator.propertiesでターゲットキャッシュストアを設定します。以下の例のように、すべての設定プロパティーの先頭に
target.を付けます。target.type=SINGLE_FILE_STORE target.cache_name=myCache target.location=/path/to/target/sfs.dat
target.type=SINGLE_FILE_STORE target.cache_name=myCache target.location=/path/to/target/sfs.datCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.1. 移行プロパティーの保存 リンクのコピーリンクがクリップボードにコピーされました!
ソースおよびターゲットのキャッシュストアを StoreMigrator プロパティーで設定します。
| プロパティー | 説明 | 必須/オプション |
|---|---|---|
|
| ソースまたはターゲットのキャッシュストアタイプのタイプを指定します。
| 必須 |
| プロパティー | 説明 | 値の例 | 必須/オプション |
|---|---|---|---|
|
| ストアがバックアップするキャッシュに名前を付けます。 |
| 必須 |
|
| セグメンテーションを使用できるターゲットキャッシュストアのセグメント数を指定します。
セグメント数は、Data Grid 設定の つまり、キャッシュストアのセグメント数は、対応するキャッシュのセグメント数と一致する必要があります。セグメントの数が同一でない場合、Data Grid はキャッシュストアからデータを読み込めません。 |
| 任意 |
| プロパティー | 説明 | 必須/オプション |
|---|---|---|
|
| 基礎となるデータベースのダイアレクトを指定します。 | 必須 |
|
| ソースキャッシュストアのマーシャラーバージョンを指定します。以下のいずれかの値を設定します。
* Data Grid 7.2.x の場合は
* Data Grid 7.3.x の場合は
* Data Grid 8.x の場合は | ソースストアにのみ必要です。
例: |
|
| カスタムマーシャラークラスを指定します。 | カスタムマーシャラーを使用する場合に必要です。 |
|
|
| 任意 |
|
| JDBC 接続 URL を指定します。 | 必須 |
|
| JDBC ドライバーのクラスを指定します。 | 必須 |
|
| データベースユーザー名を指定します。 | 必須 |
|
| データベースユーザー名のパスワードを指定します。 | 必須 |
|
| データベースのメジャーバージョンを設定します。 | Optional |
|
| データベースのマイナーバージョンを設定します。 | Optional |
|
| データベース upsert を無効にします。 | 任意 |
|
| テーブルインデックスが作成されるかどうかを指定します。 | 任意 |
|
| テーブル名の追加接頭辞を指定します。 | 任意 |
|
| 列名を指定します。 | 必須 |
|
| 列タイプを指定します。 | 必須 |
|
|
| 任意 |
Binary キャッシュストアから古い Data Grid バージョンの移行には、以下のプロパティーで table.string.* を table.binary.\* に変更します。
-
source.table.binary.table_name_prefix -
source.table.binary.<id\|data\|timestamp>.name -
source.table.binary.<id\|data\|timestamp>.type
| プロパティー | 説明 | 必須/オプション |
|---|---|---|
|
| データベースディレクトリーを設定します。 | 必須 |
|
| 使用する圧縮タイプを指定します。 | 任意 |
# Example configuration for migrating from a RocksDB cache store. source.type=ROCKSDB source.cache_name=myCache source.location=/path/to/rocksdb/database source.compression=SNAPPY
# Example configuration for migrating from a RocksDB cache store.
source.type=ROCKSDB
source.cache_name=myCache
source.location=/path/to/rocksdb/database
source.compression=SNAPPY
| プロパティー | 説明 | 必須/オプション |
|---|---|---|
|
|
キャッシュストア | 必須 |
# Example configuration for migrating to a Single File cache store. target.type=SINGLE_FILE_STORE target.cache_name=myCache target.location=/path/to/sfs.dat
# Example configuration for migrating to a Single File cache store.
target.type=SINGLE_FILE_STORE
target.cache_name=myCache
target.location=/path/to/sfs.dat
| プロパティー | 説明 | 値 |
|---|---|---|
| 必須/オプション |
| データベースディレクトリーを設定します。 |
| 必須 |
| データベースインデックスディレクトリーを設定します。 |
# Example configuration for migrating to a Soft-Index File cache store. target.type=SOFT_INDEX_FILE_STORE target.cache_name=myCache target.location=path/to/sifs/database target.location=path/to/sifs/index
# Example configuration for migrating to a Soft-Index File cache store.
target.type=SOFT_INDEX_FILE_STORE
target.cache_name=myCache
target.location=path/to/sifs/database
target.location=path/to/sifs/index
2.4. キャッシュストアの移行 リンクのコピーリンクがクリップボードにコピーされました!
StoreMigrator を実行して、あるキャッシュストアから別のキャッシュストアにデータを移行します。
前提条件
-
infinispan-tools.jarを取得します。 -
ソースおよびターゲットのキャッシュストアを設定する
migrator.propertiesファイルを作成します。
手順
ソースから
infinispan-tools.jarをビルドする場合は、以下を実行します。-
JDBC ドライバーなどのソースおよびターゲットのデータベースの
infinispan-tools.jarおよび依存関係をクラスパスに追加します。 -
migrator.propertiesファイルをStoreMigratorの引数として指定します。
-
JDBC ドライバーなどのソースおよびターゲットのデータベースの
Maven リポジトリーから
infinispan-tools.jarをプルする場合は、以下のコマンドを実行します。mvn exec:java