第36章 ローリングアップグレード
Red Hat JBoss Data Grid では、ローリングアップグレードは、クラスターの 1 つのバージョンから新バージョンへのダウンタイムなしのアップグレードを可能にします。これにより、ノードのアップグレードを、アプリケーションの再起動なしに、またはデータ損失のリスクを伴わずに実行することができます。
JBoss Data Grid では、ローリングアップグレードはリモートクライアントサーバーモードでのみ実行できます。
重要
ローリングアップグレードを実行する際には、データの不整合が生じる可能性があるため、ソースクラスター内のキャッシュエントリーは更新しないことをお勧めします。
36.1. Hot Rod を使用したローリングアップグレード リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のプロセスは、Hot Rod を使用してリモートクライアントサーバーで実行されている Red Hat JBoss Data Grid でローリングアップグレードを実行するために使用されます。
重要
お使いの JBoss Data Grid バージョンで Hot Rod プロトコルの正しいバージョンが使用されていることを確認してください。バージョンは、プログラムを用いてクライアントに指定する必要があります。またこれを定義する方法については、JBoss Data Grid の 『Developer Guide』 を参照してください。各リリースの Hot Rod プロトコルバージョンは以下の通りです。
- JBoss Data Grid 7.0 の場合、Hot Rod プロトコルバージョン 2.5 を使用
- JBoss Data Grid 6.6 の場合、Hot Rod プロトコルバージョン 2.3 を使用
- JBoss Data Grid 6.5 の場合、Hot Rod プロトコルバージョン 2.0 を使用
- JBoss Data Grid 6.4 の場合、Hot Rod プロトコルバージョン 2.0 を使用
- JBoss Data Grid 6.3 の場合、Hot Rod プロトコルバージョン 2.0 を使用
- JBoss Data Grid 6.2 の場合、Hot Rod プロトコルバージョン 1.3 を使用
- JBoss Data Grid 6.1 の場合、Hot Rod プロトコルバージョン 1.2 を使用
前提条件
この手順では、クラスターがすでに設定されており、実行中であること、およびクラスターが JBoss Data Grid の古いバージョンを使用していることを想定しています。このクラスターは以下ではソースクラスターとして言及されており、ターゲットクラスターはデータの移行先となる新規クラスターを指します。
ターゲットクラスターの設定
ソースクラスターとは別にターゲットクラスター (新規 JBoss Data Grid のあるノードで構成) を設定するには、別のネットワーク設定または別の JGroups クラスター名のいずれかを使用します。それぞれのキャッシュについては、以下の設定でRemoteCacheStoreを設定します。remote-serverがソースクラスターを参照するようにします。- キャッシュ名がソースクラスターのキャッシュの名前と一致するようにします。
hotrod-wrappingを有効に (trueに設定) します。purgeを無効に (falseに設定) します。passivationを無効に (falseに設定) します。
図36.1 RemoteCacheStore によるターゲットクラスターの設定
注記
ローリングアップグレードを実行する際のターゲットクラスター設定の詳細の例については、$JDG_HOME/docs/examples/configs/standalone-hotrod-rolling-upgrade.xmlファイルを参照してください。ターゲットクラスターの起動
ターゲットクラスターのノードを起動します。ソースクラスターではなく、ターゲットクラスターを指すように各クライアントを設定します。最終的に、ターゲットクラスターはソースクラスターの代わりにすべての要求を処理します。その後ターゲットクラスターはRemoteCacheStoreを使用してソースクラスターのデータをオンデマンドでロードします。図36.2 ソースクラスターをターゲットクラスターの
RemoteCacheStoreとしてターゲットクラスターを指すクラスター。ソースクラスターのキーセットのダンプ
すべての接続がターゲットクラスターを使用している場合、ソースクラスターのキーセットをダンプする必要があります。これは JMX または CLI のいずれかを使用して実行できます。JMX
移行する必要のあるすべてのキャッシュについて、ソースクラスターのRollingUpgradeManagerMBean でrecordKnownGlobalKeyset操作を起動します。CLI
移行する必要のあるすべてのキャッシュについて、ソースクラスターでupgrade --dumpkeysコマンドを起動するか、または--allスイッチを使用してクラスターのすべてのキャッシュをダンプします。
ソースクラスターからの残りのデータの取り込み
ターゲットクラスターはソースクラスターから残りのすべてのデータを取り込みます。これも JMX または CLI のいずれかを使用して実行できます。JMX
synchronizeData操作を起動し、移行する必要のあるすべてのキャッシュについて、ターゲットクラスターのRollingUpgradeManagerMBean でrecordKnownGlobalKeysetを指定します。CLI
移行する必要のあるすべてのキャッシュについて、ターゲットクラスターでupgrade --synchronize=hotrodコマンドを起動するか、または--allスイッチを使用してクラスター内のすべてのキャッシュを同期します。
RemoteCacheStoreの無効化ターゲットクラスターがソースクラスターからすべてのデータを取得した後に、ターゲットクラスターのRemoteCacheStoreを無効にする必要があります。これは以下のように実行できます。JMX
ターゲットクラスターのRollingUpgradeManagerMBean にhotrodパラメーターを指定してdisconnectSource操作を起動します。CLI
ターゲットクラスターでupgrade --disconnectsource=hotrodコマンドを起動します。
ソースクラスターの使用の停止
最終手順としてソースクラスターの使用を停止します。