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 を使用してアップグレードする場合:


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

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

フェイルオーバーを実行してHAペアの状態を確認するには、以下を行います。

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

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

    service appdcontroller status
  3. HA ツールキット(HATK)実装をシャットダウンします
  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>

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

    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
CODE

すべてのホストが新規バージョンと表示されていること、コントローラがプライマリで実行され、セカンダリでは停止していること、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
CODE

セカンダリホストのバージョンがアップグレードされていることを確認してください。また、プライマリが稼働状態で、セカンダリコントローラ 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 ホストから:

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

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

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

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

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

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

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

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
    CODE
  2. ダウンタイムを短縮するには、incremental-replication コマンドを入力します。大規模なデータを処理する場合、複製時間とダウンタイムがデータサイズによって異なるため、これが推奨されます。

    bin/platform-admin.sh submit-job --service controller --job incremental-replication --platform-name <name_of_the_platform>
    CODE
  3. セカンダリホストを再構築するには、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 モジュールが自動的にアップグレードされます。

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

  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 設定が保持されます。