CLI を使用した HA コントローラペアのアップグレード

注: HA ツールキット(HATK)を使用していて、それをカスタマイズした場合、特定の状況を確認し、移行を進める必要があるかどうかを判断することをお勧めします。詳細については、以下を参照してください。

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:アップグレードの準備

オプション1 - 検出とアップグレード
  1. ダウンロードポータルから最新のリリースをダウンロードします。Linux シェルを使用する場合は、「Download Software」を参照してください。

  2. Enterprise Console をインストールします

オプション2 - アップグレード
  1. ダウンロードポータルから最新のリリースをダウンロードします。Linux シェルを使用する場合は、「Download Software」を参照してください。

  2. Enterprise Console にアップグレードします

ステップ2:フェイルオーバーの実行とHAペアの状態の確認

アップグレードを開始するには、セカンダリコントローラにフェールオーバーを実行します。プライマリコントローラは機能することが分かっているため、これにより、アップグレードで問題が発生した場合にフェールバックできる安定した構成が提供されます。

フェイルオーバーを実行してHAペアの状態を確認するには、以下を行います。
オプション1 - 検出とアップグレード
  1. セカンダリコントローラで HA ツールキットの failover.sh スクリプトを実行してフェールオーバーを開始します。これにより、ウォッチドッグプロセスが終了し、セカンダリでアプリケーションサーバーが開始され、セカンダリのデータベースが複製マスターになります。

  2. Linuxサービスユーティリティをいずれかのノードで実行し、現在の状態をレポートします。

    service appdcontroller status
  3. HA ツールキット(HATK)実装をシャットダウンします。
オプション2 - アップグレード
  1. Enterprise Console ホストで以下のコマンドを実行して、フェールオーバーを開始します。

    bin/platform-admin.sh submit-job --service controller --job ha-failover --platform-name <name_of_the_platform>
  2. Enterprise Console ホストで以下のコマンドを実行して、状態を確認します。

    bin/platform-admin.sh list-platform-service --platform-name <name_of_the_platform>

    必要な出力は「Controller: provisioned」です。

  3. Enterprise Console ホストで以下のコマンドを実行して、コントローラバージョンを確認します。

    bin/platform-admin.sh list-node --service controller --platform-name <name_of_the_platform>

    出力にはホストのバージョンが表示されます。

    出力例
    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

    アップグレードするには、プライマリコントローラのアプリサーバーとMySQLが実行されている必要があります。セカンダリコントローラのMySQLも実行されている必要があります。

ステップ3:プライマリコントローラのアップグレード

以下のコマンドのいずれかを使用して、プライマリコントローラをアップグレードできます。
オプション1 - 検出とアップグレード

プライマリコントローラを検出およびアップグレードするには、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>
オプション2 - アップグレード

プライマリコントローラをアップグレードするには、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>
プライマリアップグレードが失敗した場合は、「Troubleshooting the Upgrade」を参照してください。

ステップ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>

出力にはホストのバージョンが表示されます。

出力例
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が両方のホストで実行されていることを確認してください。希望どおりにアップグレードできない場合は、「Verify the Primary Upgrade is Unsatisfactory」を参照してください。

ステップ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>

セカンダリコントローラのアップグレードが失敗した場合は、可能な復元オプションについて、「Upgrade the Secondary Controller Fails」を参照してください。

ステップ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>

出力にはホストのバージョンが表示されます。

出力例
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
  • オプション 2:HA ツールキット(HATK)を使用して手動フェールオーバーを実行します。最近実行されたフェールオーバーが原因で、現在のセカンダリホストは、プライマリホストとして機能していた既知の正常なホストです。フェールオーバーすることでサービスをすばやく復元し、その後セカンダリホストとして再ビルドすることで、アップグレードが失敗したホストを修正できます。

アップグレードの失敗

プライマリアップグレードの失敗を通知する次のエラーが表示された場合:

コントローラ: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
  • オプション 2:セカンダリホストでフェールオーバーを実行し、再構築します。最近実行されたフェールオーバーが原因で、現在のセカンダリホストは、プライマリホストとして機能していた既知の正常なホストです。フェールオーバーすることでサービスをすばやく復元し、その後セカンダリホストとして再ビルドすることで、アップグレードが失敗したホストを修正できます。Enterprise Console ホストから:

    1. 次の情報を入力します。

      bin/platform-admin.sh submit-job --service controller --job ha-failover --platform-name <name_of_the_platform> --args forceFailover=true
    2. 次の情報を入力します。

      bin/platform-admin.sh submit-job --service controller --job incremental-replication --platform-name <name_of_the_platform>
    3. 次の情報を入力します。

      bin/platform-admin.sh submit-job --service controller --job finalize-replication --platform-name <name_of_the_platform>

プライマリアップグレードの確認に満足できない

プライマリアップグレードが成功したにも関わらず、手動の検証中に問題が見つかった場合には、セカンダリのフェールオーバーと再ビルドによってアップグレードをロールバックできます。

ダウンタイムメンテナンスウィンドウが閉じている場合、古いデプロイのバージョンとサービスを復元する必要があります。最近実行されたフェールオーバーが原因で、現在のセカンダリホストは、プライマリホストとして機能していた既知の正常なホストです。フェールオーバーすることでサービスをすばやく復元し、その後セカンダリホストとして再ビルドすることで、アップグレードが失敗したホストを修正できます。

Enterprise Console ホストから:

  1. プライマリホストを古いバージョンに戻すには、ha-failover コマンドを入力します。

    bin/platform-admin.sh submit-job --service controller --job ha-failover --platform-name <name_of_the_platform> --args forceFailover=true
  2. ダウンタイムを短縮するには、incremental-replication コマンドを入力します。大規模なデータを処理する場合、複製時間とダウンタイムがデータサイズによって異なるため、これが推奨されます。

    bin/platform-admin.sh submit-job --service controller --job incremental-replication --platform-name <name_of_the_platform>
  3. セカンダリホストを再構築するには、finalize-replication コマンドを入力します。

    bin/platform-admin.sh submit-job --service controller --job finalize-replication --platform-name <name_of_the_platform>

セカンダリコントローラのアップグレードの失敗

セカンダリアップグレードの失敗を通知する次のエラーが表示された場合:

コントローラ: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
  • オプション 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>

    詳細については、「Initiate Controller Database Incremental Replication」を参照してください。

  • オプション 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
    注: フラグ removeBinaries=true はオプションです。このフラグの使用は、展開の状況によって異なります。removeBinaries=false の場合、コントローラに影響を与えたり、コントローラがアンインストールされたりすることなく、Enterprise Console でコントローラが認識されなくなります。

コントローラをアップグレードせずに HA モジュールをアップグレードする方法

Enterprise Console UI または CLI を使用して、コントローラをアップグレードせずに HA モジュールをアップグレードできます。両方のコントローラが Enterprise Console によって管理されている場合、HA コントローラをアップグレードすると HA モジュールが自動的にアップグレードされます。

以下の手順は、次のような例のシナリオについて説明しています。

  1. 現在、Enterprise Console とコントローラの両方でバージョン 4.5.13 を実行しています。
  2. HA モジュールをアクティブ化します。
  3. 次に、Enterprise Console にのみ、最新バージョン(4.5.15 以降)へのアップグレードを実行します。
  4. HA モジュールは、Enterprise Console UI または CLI のいずれかからアップグレードできます。

    • Enterprise Console UI で、次の手順を実行します。

      1. Enterprise Console にログインし、[Controller] ページにアクセスします。

      2. [More] メニューから [Upgrade HA Modules] を選択します。

    • CLI から、Enterprise Console ホストで次のコマンドを実行して HA モジュールをアップグレードします。

      bin/platform-admin.sh submit-job --job upgrade-ha-modules --service controller

HA モジュールは、コントローラをアップグレードせずに最新バージョンにアップグレードされます。HA モジュールをアップグレードすると、コントローラ上でダウンタイムは必要なくなり、すべての HA 設定が保持されます。