第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
移行する必要のあるすべてのキャッシュについて、ソースクラスターのRollingUpgradeManager
MBean でrecordKnownGlobalKeyset
操作を起動します。CLI
移行する必要のあるすべてのキャッシュについて、ソースクラスターでupgrade --dumpkeys
コマンドを起動するか、または--all
スイッチを使用してクラスターのすべてのキャッシュをダンプします。
ソースクラスターからの残りのデータの取り込み
ターゲットクラスターはソースクラスターから残りのすべてのデータを取り込みます。これも JMX または CLI のいずれかを使用して実行できます。JMX
synchronizeData
操作を起動し、移行する必要のあるすべてのキャッシュについて、ターゲットクラスターのRollingUpgradeManager
MBean でrecordKnownGlobalKeyset
を指定します。CLI
移行する必要のあるすべてのキャッシュについて、ターゲットクラスターでupgrade --synchronize=hotrod
コマンドを起動するか、または--all
スイッチを使用してクラスター内のすべてのキャッシュを同期します。
RemoteCacheStore
の無効化ターゲットクラスターがソースクラスターからすべてのデータを取得した後に、ターゲットクラスターのRemoteCacheStore
を無効にする必要があります。これは以下のように実行できます。JMX
ターゲットクラスターのRollingUpgradeManager
MBean にhotrod
パラメーターを指定してdisconnectSource
操作を起動します。CLI
ターゲットクラスターでupgrade --disconnectsource=hotrod
コマンドを起動します。
ソースクラスターの使用の停止
最終手順としてソースクラスターの使用を停止します。