Download PDF
Download page CLI を使用した HA コントローラペアのアップグレード.
CLI を使用した HA コントローラペアのアップグレード
HA ツールキット(HATK)を使用していて、それをカスタマイズした場合、AppDynamics では、特定の状況を確認し、移行を進める必要があるかどうかを判断することをお勧めします。詳細については、Enterprise Console を使用した新しい HA モジュールへの移行を参照してください。
以下のステップ 1 ~ 3 は、使用する HA ペアの展開により、異なる手順で構成されます。
- Enterprise Console で管理されていない展開については、「Option 1 - Discover and Upgrade」に従ってください。
検出およびアップグレードジョブを使用して、プライマリコントローラをアップグレードする前に HA コントローラペアを Enterprise Console にオンボードします。 - Enterprise Console で管理されている HA ペアの展開については、「Option 2 - Upgrade」に従ってください。
アップグレードジョブを使用して、現在の Enterprise Console インスタンスで管理されているプライマリコントローラをアップグレードします。
CLI を使用してアップグレードする場合:
- ステップ1:アップグレードの準備
- ステップ2:フェイルオーバーの実行とHAペアの状態の確認
- ステップ3:プライマリコントローラのアップグレード
- ステップ4:プライマリアップグレードの確認
- ステップ5:セカンダリコントローラのアップグレード
- ステップ6:セカンダリアップグレードの確認
ステップ1:アップグレードの準備
AppDynamics ダウンロードセンターから最新のリリースをダウンロードします。
Linux シェルを使用する場合は、「AppDynamicsソフトウェアのダウンロード」を参照してください。
AppDynamics ダウンロードセンターから最新のリリースをダウンロードします。
Linux シェルを使用する場合は、「AppDynamicsソフトウェアのダウンロード」を参照してください。
ステップ2:フェイルオーバーの実行とHAペアの状態の確認
アップグレードを開始するには、セカンダリコントローラにフェールオーバーを実行します。プライマリコントローラは機能することが分かっているため、これにより、アップグレードで問題が発生した場合にフェールバックできる安定した構成が提供されます。
フェイルオーバーを実行してHAペアの状態を確認するには、以下を行います。
セカンダリコントローラで HA ツールキットの
failover.sh
スクリプトを実行してフェールオーバーを開始します。
これにより、ウォッチドッグプロセスが終了し、セカンダリでアプリケーションサーバが開始され、セカンダリのデータベースが複製マスターになります。Linuxサービスユーティリティをいずれかのノードで実行し、現在の状態をレポートします。
service appdcontroller status
- HA ツールキット(HATK)実装をシャットダウンします。
Enterprise Consoleホストで以下のコマンドを実行して、フェイルオーバーを開始します。
bin/platform-admin.sh submit-job --service controller --job ha-failover --platform-name <name_of_the_platform>
Enterprise Consoleホストで以下のコマンドを実行して、状態を確認します。
bin/platform-admin.sh list-platform-service --platform-name <name_of_the_platform>
必要な出力は「Controller: provisioned」です。
Enterprise Consoleホストで以下のコマンドを実行して、コントローラバージョンを確認します。
bin/platform-admin.sh list-node --service controller --platform-name <name_of_the_platform>
出力にはホストのバージョンが表示されます。
Sample Output
Available nodes in the controller service: Controller: role Primary, host 172.12.0.1, version 4.5.0.2, state running MySQL: role Primary, host 172.12.0.1, version 5.7.21 state running Controller: role Secondary, host 172.12.0.2, version 4.5.0.2, state stopped MySQL: role Secondary, host 172.12.0.2, version 5.7.21, state running
CODEアップグレードするには、プライマリコントローラのアプリサーバーとMySQLが実行されている必要があります。セカンダリコントローラのMySQLも実行されている必要があります。
ステップ3:プライマリコントローラのアップグレード
以下のコマンドのいずれかを使用して、プライマリコントローラをアップグレードできます:
プライマリコントローラを検出およびアップグレードするには、Enterprise Console ホストで次のコマンドを実行します。
bin/platform-admin.sh submit-job --service controller --job discover-and-upgrade-primary --platform-name <name_of_the_platform> --target-version=<version> --args controllerPrimaryHost=<primary_host> controllerSecondaryHost=<secondary_host> destinationDirectory=<controller_home_dir> controllerRootUserPassword=<controller_root_password> mysqlRootPassword=<mysql_root_password> controllerDBPassword=<controller_db_user_password>
プライマリコントローラをアップグレードするには、Enterprise Console ホストで以下のコマンドを実行します。
bin/platform-admin.sh submit-job --service controller --job upgrade-primary --platform-name <name_of_the_platform> --target-version=<version> --args controllerRootUserPassword=<controller_root_password> mysqlRootPassword=<mysql_root_password>
プライマリアップグレードが失敗した場合は、「アップグレードのトラブルシューティング」を参照してください。
ステップ4:プライマリアップグレードの確認
アップグレードが成功すると、プライマリアップグレード成功メッセージが表示されます。ただし、セカンダリアップグレードに進む前に、コントローラの社内検証を行うことをお勧めします。たとえば、エージェントが継続的にコントローラにレポートしていることを確認するなどです。
次に、Enterprise Console で想定される状態について説明します。
Enterprise Consoleホストで、以下のコマンドを実行します。
bin/platform-admin.sh list-platform-service --platform-name <name_of_the_platform>
目的の出力は Controller: primary_upgraded
です。
bin/platform-admin.sh list-node --service controller --platform-name <name_of_the_platform>
出力にはホストのバージョンが表示されます。
Sample Output
Available nodes in the controller service:
Controller: role Primary, host 172.12.0.1, version 4.5.5.0, state running
MySQL: role Primary, host 172.12.0.1, version 5.7.24 state running
Controller: role Secondary, host 172.12.0.2, version 4.5.0.2, state stopped
MySQL: role Secondary, host 172.12.0.2, version 5.7.21, state running
すべてのホストが新規バージョンと表示されていること、コントローラがプライマリで実行され、セカンダリでは停止していること、MySQLが両方のホストで実行されていることを確認してください。希望どおりにアップグレードできない場合は、「プライマリアップグレードの確認に満足できない」を参照してください。
ステップ5:セカンダリコントローラのアップグレード
セカンダリコントローラをアップグレードするには、Enterprise Console ホストで upgrade-secondary
コマンドを実行します。
bin/platform-admin.sh submit-job --service controller --job upgrade-secondary --platform-name <name_of_the_platform> --args controllerRootUserPassword=<controller_root_password> mysqlRootPassword=<mysql_root_password>
セカンダリコントローラのアップグレードが失敗した場合は、可能な復元オプションについて、「セカンダリコントローラのアップグレードの失敗」を参照してください。
ステップ6:セカンダリアップグレードの確認
アップグレードが成功すると、セカンダリアップグレード成功メッセージが表示されます。ただし、アップグレードを実行する前に、コントローラの社内検証を行うことをお勧めします。
次に、Enterprise Console で想定される状態について説明します。
Enterprise Consoleホストで、以下のコマンドを実行します。
bin/platform-admin.sh list-platform-service --platform-name <name_of_the_platform>
必要な出力は「Controller: provisioned」です。
bin/platform-admin.sh list-node --service controller --platform-name <name_of_the_platform>
出力にはホストのバージョンが表示されます。
Sample Output
Available nodes in the controller service:
Controller: role Primary, host 172.12.0.1, version 4.5.5.0, state running
MySQL: role Primary, host 172.12.0.1, version 5.7.24 state running
Controller: role Secondary, host 172.12.0.2, version 4.5.5.0, state stopped
MySQL: role Secondary, host 172.12.0.2, version 5.7.24, state running
セカンダリホストのバージョンがアップグレードされていることを確認してください。また、プライマリが稼働状態で、セカンダリコントローラ appserver が停止されている必要もあります。ただし、MySQL プロセスは稼働している必要があります。
アップグレードのトラブルシューティング
フェイルオーバーの問題
アップグレード前にフェールオーバーの問題が発生した場合は、セカンダリコントローラの状態を確認します。アップグレードを試みる前に、破損したセカンダリコントローラの修正が必要になる場合があります。
プライマリコントローラのアップグレードの失敗
プライマリコントローラの検出およびアップグレードに失敗した場合は、次の復元オプションを試してください。
オプション 1:Enterprise Console ホストで次のコマンドを実行して、検出およびアップグレードを試行します。
bin/platform-admin.sh submit-job --service controller --job discover-and-upgrade-primary --platform-name <name_of_the_platform> --args controllerPrimaryHost=<primary_host> controllerSecondaryHost=<secondary_host> destinationDirectory=<controller_home_dir> controllerRootUserPassword=<controller_root_password> mysqlRootPassword=<mysql_root_password> useCheckpoint=true
CODEオプション 2:HA ツールキット(HATK)を使用して手動フェールオーバーを実行します。最近実行されたフェールオーバーが原因で、現在のセカンダリホストは、プライマリホストとして機能していた既知の正常なホストです。フェールオーバーすることでサービスをすばやく復元し、その後セカンダリホストとして再ビルドすることで、アップグレードが失敗したホストを修正できます。
プライマリアップグレードの失敗を通知する次のエラーが表示された場合:
Controller: primary_upgrade_error
次の復元オプションを試すことができます。
オプション 1:Enterprise Console ホストで次のコマンドを実行して、アップグレードを試行します。
bin/platform-admin.sh submit-job --service controller --job upgrade-primary --platform-name <name_of_the_platform> --args controllerRootUserPassword=<controller_root_password> mysqlRootPassword=<mysql_root_password> useCheckpoint=true
CODEオプション 2:セカンダリホストでフェールオーバーを実行し、再構築します。最近実行されたフェールオーバーが原因で、現在のセカンダリホストは、プライマリホストとして機能していた既知の正常なホストです。フェールオーバーすることでサービスをすばやく復元し、その後セカンダリホストとして再ビルドすることで、アップグレードが失敗したホストを修正できます。
Enterprise Console ホストから:プライマリホストを古いバージョンに戻すには、
ha-failover
コマンドを入力します。bin/platform-admin.sh submit-job --service controller --job ha-failover --platform-name <name_of_the_platform> --args forceFailover=true
CODEダウンタイムを短縮するには、
incremental-replication
コマンドを入力します。大規模なデータを処理する場合、複製時間とダウンタイムがデータサイズによって異なるため、これが推奨されます。bin/platform-admin.sh submit-job --service controller --job incremental-replication --platform-name <name_of_the_platform>
CODEセカンダリホストを再構築するには、
finalize-replication
コマンドを入力します。bin/platform-admin.sh submit-job --service controller --job finalize-replication --platform-name <name_of_the_platform>
CODE
プライマリアップグレードの確認に満足できない
プライマリアップグレードが成功したにも関わらず、手動の検証中に問題が見つかった場合には、セカンダリのフェールオーバーと再ビルドによってアップグレードをロールバックできます。
ダウンタイムメンテナンスウィンドウが閉じている場合、古いデプロイのバージョンとサービスを復元する必要があります。最近実行されたフェールオーバーが原因で、現在のセカンダリホストは、プライマリホストとして機能していた既知の正常なホストです。フェールオーバーすることでサービスをすばやく復元し、その後セカンダリホストとして再ビルドすることで、アップグレードが失敗したホストを修正できます。
Enterprise Console ホストから:
プライマリホストを古いバージョンに戻すには、
ha-failover
コマンドを入力します。bin/platform-admin.sh submit-job --service controller --job ha-failover --platform-name <name_of_the_platform> --args forceFailover=true
CODEダウンタイムを短縮するには、
incremental-replication
コマンドを入力します。大規模なデータを処理する場合、複製時間とダウンタイムがデータサイズによって異なるため、これが推奨されます。bin/platform-admin.sh submit-job --service controller --job incremental-replication --platform-name <name_of_the_platform>
CODEセカンダリホストを再構築するには、
finalize-replication
コマンドを入力します。bin/platform-admin.sh submit-job --service controller --job finalize-replication --platform-name <name_of_the_platform>
CODE
セカンダリコントローラのアップグレードの失敗
セカンダリアップグレードの失敗を通知する次のエラーが表示された場合:
Controller: secondary_upgrade_error
次の復元オプションを試すことができます。
オプション 1:障害が回復可能な場合は、Enterprise Console ホストで次のコマンドを入力してアップグレードを再試行できます。
bin/platform-admin.sh submit-job --service controller --job upgrade-secondary --platform-name <name_of_the_platform> --args controllerRootUserPassword=<controller_root_password> mysqlRootPassword=<mysql_root_password> useCheckpoint=true
CODEオプション 2:アップグレードの再試行が機能しない場合、incremental-replication ジョブや finalize-replication ジョブを実行できます。これには、プライマリのダウンタイムが含まれます。次のコマンドを Enterprise Console ホストに入力します。
bin/platform-admin.sh submit-job --service controller --job incremental-replication --platform-name <name_of_the_platform> bin/platform-admin.sh submit-job --service controller --job finalize-replication --platform-name <name_of_the_platform>
CODE詳細については、「コントローラデータベース増分複製の開始」を参照してください。
オプション 3:マシンが使用できない、または incremental-replication ジョブおよび finalize-replication ジョブを実行して修正できない場合、セカンダリコントローラを削除します。これはまれな状況に固有の修正方法です。次のコマンドを Enterprise Console ホストに入力します。
bin/platform-admin.sh submit-job --service controller --job remove --platform-name <name_of_the_platform> --args entireCluster=false removeBinaries=true
CODEフラグ removeBinaries=true はオプションです。このフラグの使用は、展開の状況によって異なります。
removeBinaries=false
の場合、Enterprise Console でコントローラに影響を与えたり、コントローラがアンインストールされたりすることなく、コントローラが認識されなくなります。
コントローラをアップグレードせずに HA モジュールをアップグレードする方法
Enterprise Console UI または CLI を使用して、コントローラをアップグレードせずに HA モジュールをアップグレードできます。両方のコントローラが Enterprise Console によって管理されている場合、HA コントローラをアップグレードすると HA モジュールが自動的にアップグレードされます。
以下の手順は、次のような例のシナリオについて説明しています。
- 現在、Enterprise Console とコントローラの両方でバージョン 4.5.13 を実行しています。
- HA モジュールをアクティブ化します。
- 次に、Enterprise Console にのみ、最新バージョン(4.5.15 以降)へのアップグレードを実行します。
HA モジュールは、Enterprise Console UI または CLI のいずれかからアップグレードできます。
Enterprise Console UI で、次の手順を実行します。
Enterprise Console にログインし、[Controller] ページにアクセスします。
[More] メニューから、[Upgrade HA Modules] を選択します。
CLI から、Enterprise Console ホストで次のコマンドを実行して HA モジュールをアップグレードします。
bin/platform-admin.sh submit-job --job upgrade-ha-modules --service controller
HA モジュールは、コントローラをアップグレードせずに最新バージョンにアップグレードされます。HA モジュールをアップグレードすると、コントローラ上でダウンタイムは必要なくなり、すべての HA 設定が保持されます。