Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ISSU を使用した Red Hat Openstack 13 による Contrail Network のアップグレード

このドキュメントでは、Red Hat Openstack Platform 13(RHOSP13)を使用している環境で、インサービスソフトウェアアップグレード(ISSU)で Contrail Networkingをアップグレードする手順を説明します。

この手順を使用する状況

RHOSP13 を使用している環境で Contrail Networking を実行している場合、この手順をアップグレードするには、この手順を使用します。

この手順は、次の Contrail Network アップグレードで検証済みです。

表 1:RHOSP13 検証済みアップグレードシナリオを使用した Contrail Networking

Contrail Networkingリリースの開始

ターゲットContrail Networkingアップグレードリリース

5.0 または 5.1

1907

1907

1908

1908

1909

1909

1910

1910

1911

1911

1912

Contrail Networkingリリース1912.L0および2003以降、Red Hat Openstackオーケストレーションを使用する環境でContrail Networkingをアップグレードするには、ゼロインパクトアップグレード(ZIU)手順を使用します。 Red Hat Openstackを使用した環境でのゼロインパクトアップグレードプロセスを使用したContrail Networkingの更新を参照してください。

この手順を使用して Contrail Networkingリリースを他のリリースにアップグレードする場合は、ジュニパーネットワークスのプロフェッショナルサービスを利用する必要があります。プロフェッショナルサービスとの連携については、ジュニパーの担当者にお問い合わせください。

始める前に

  • Contrail Networkingリリースの値を取得します ContrailImageTag 。この値は、次の場所にある readme ファイルから取得できます。

  • オーバークラウドノードの RHEL サブスクリプションを有効にします。

  • CEPHまたは同様のストレージがない場合は、コンピュートノードのSSH移行を有効にします。

    コンピューティングノードをアップグレードするにはワークロードの移行が必要であり、CEPHまたは同様のストレージではVMの移行が可能です。

    • ~/tripleo-heat-templates/environments/contrail/contrail-services.yaml ファイルで値を変更しますMigrationSshKey

      移行用の SSH キーを含むパラメーターは MigrationSshKey 、通常、オーバークラウド展開中に提供されます。このパラメーターは、VM があるコンピューティング ノードから別のコンピューティング ノードに移行できるように、コンピューティング ノード間で SSH キーを渡すために使用されます。このパラメーターは MigrationSshKey 、ファイルに追加 contrail-services.yaml できる省略可能なパラメーターです。既定では、このパラメーターはファイルに含まれ contrail-services.yaml ていません。

      次のコマンドを実行して、SSHキーを見つけます。

      (undercloud) [stack@queensa ~]$ cat .ssh/id_rsa

      (undercloud) [stack@queensa ~]$ cat .ssh/id_rsa.pub

  • Contrail 設定データベースをバックアップします。

    「Contrail データベースを JSON 形式でバックアップおよび復元する方法」を参照してください

手順

  1. https://github.com/Juniper/contrail-tripleo-heat-templates からContrail TripleOヒートテンプレート(Stable/Queensブランチ)を入手してください。

    最新のディレクトリ () をコピーする場合は、contrail-tripleo-heat-templates既存のディレクトリのバックアップを作成します。、contrail-services.yaml、( compute-nic-config.yaml カーネル モードを実行しているコンピューティング ノードの場合)、およびcontrail-dpdk-nic-config.yaml(dpdk モードを実行しているコンピューティング ノードの場合)ファイルで構成contrail-net.yamlを復元する必要があります。

  2. Contrail TripleO Puppet モジュールを最新バージョンに更新し、必要に応じて Swift アーティファクトを準備します。
  3. Docker レジストリを Contrail Networking イメージで準備します。アンダークラウドまたは別のノードにすることができます。
  4. アンダークラウドで実行されている Red Hat のバージョンを更新します。
    メモ:

    この手順では、 5 で Contrail Controller ISSU(インサービスソフトウェアアップグレード)ノードを展開する前に、アンダークラウドで実行されている Red Hat のバージョンを更新します。

    環境内で順序を変更する必要がある場合は、この手順を実行する前に Contrail Controller の ISSU(インサービスソフトウェアアップグレード)ノードを展開することができます。

    アップグレード プロセスを開始する前に、次の手順を実行します。

    • お使いのバージョンのContrail Networkingで実行するRed Hatソフトウェアを特定します。 「Contrail Networkingがサポートするプラットフォーム」を参照してください

    • ヒートテンプレートのコピーを使用してアンダークラウドを更新した場合は、ヒートテンプレートを /usr/share/openstack-tripleo-heat-templates から /home/stack/tripleo-heat-templatesにコピーします。

    • 新しいサーバー・ノードをベア・メタル・ノードとして追加し、ノードに対してイントロスペクションを実行して、デプロイメントの準備を整えます。これらの手順は、「 オーバークラウドの設定」にまとめられています。

    このアップグレード プロセスの実行の詳細については、 RedHat の第 3 章を参照してください。アンダークラウドのアップグレード

    更新中に問題が発生した場合は、「 任意のオーバークラウド ノードに対するアップグレード実行コマンドの失敗」を参照してください。

  5. Contrail Controller の ISSU(インサービスソフトウェアアップグレード)ノードを展開します。
    1. 新しいサーバー ノードを準備し、ISSU ノードのフレーバー contrail-controller-issu を作成します。ISSU ノードのハードウェア要件は、Contrail コントローラ ノードと同じです。
    2. yaml ファイル ~/tripleo-heat-templates/environments/contrail/contrail-issu.yaml のパラメーターを準備します。
      • ContrailIssuSshKey- ssh キーを生成して設定します。ISSU と Contrail Controller ノード間の SSH アクセスが必要です。

        ContrailIssuSshKey は と同じです MigrationSshKey

      • ContrailIssuImageTag- アップグレード手順の新しい Docker イメージ タグを設定します。

      • ContrailControllerIssuCount- 必要な ISSU ノード数を設定します。この値は、クラスター サイズ、予想されるアップグレード期間など、さまざまなクラスター要件に依存する可能性があります 1 or 3

    3. ファイル内の~/tripleo-heat-templates/environments/contrail/contrail-services.yaml パラメーターを更新しますServiceNetMap

      ContrailIssuControlNetwork- と同じ ContrailControlNetwork値を に設定します。デフォルト値 tenantは です。

    4. デプロイに使用するすべてのパラメーターと新しい環境ファイルを指定してコマンドを実行 deploy します。
    5. ISSU ノード上の Contrail サービスのステータスを確認します。

      すべてのサービスは active である必要があります。

      sudo contrail-status

  6. アップグレード手順の準備をします。
    1. パラメーター ContrailImageTag を新しいバージョンに更新します。
    2. 新しい OpenStack コンテナをダウンロードし、新しいコンテナを含む新しい overcloud_images.yaml 環境ファイルを使用します。

      OpenStack コンテナをアップロードします。

    3. openstack overcloud upgrade prepare --stack overcloud --templates ~/tripleo-heat-templatesデプロイと ISSU ノードのすべてのオプションを指定してコマンドを実行し、ヒート テンプレートを更新します。

      この手順で更新されるファイルは、展開によって異なります。次の例では、 overcloud_images.yamlnetwork-isolation.yamlcontrail-plugins.yamlcontrail-services.yamlcontrail-net.yamlcontrail-issu.yaml、および roles_data.yam はオーバークラウド更新用に準備されています。

  7. インサービスソフトウェアアップグレード(ISSU)同期を実行します。
    1. ISSU ノードへの SSH 接続を確立します。
      メモ:

      3 つの ISSU ノードが展開されている場合は、手順全体で SSH 操作を実行し、同じノードでスクリプトを実行する必要があります。

    2. ISSU ディレクトリを見つけます。

      cd /etc/contrail/issu

    3. ISSU ノードを古いクラスタとペアリングします。

      ./issu_node_pair.sh

    4. ISSU ノード上の Contrail サービスのステータスを確認します。

      、 、および config_svcmonitor のコンテナーはすべて config_devicemgr状態である必要がありますinactiveconfig_schema他のすべてのコンテナーはそのactive状態にある必要があります。

    5. ISSU sync コンテナーを実行します。

      ./issu_node_sync.sh

    6. ISSU コンテナー ログを確認します。
    7. すべての ISSU ノードでコンテナーを再起動します contrail_control_control
      メモ:

      スクリプトは issu_node_sync ステップ 7.e で実行されます。

      ISSU ノードは、これらの手順に正確に従うことができる場合、このアップグレード手順中に再起動されません。ただし、特殊な状況では、ISSU ノードの再起動が必要になる場合があります。

      手順 7.e の後に ISSU ノードが再起動された場合は、スクリプトを再実行します issu_node_sync

      このスクリプトは、コンテナーを起動しissu_node_sync、、 config_schema、 、および config_svcmonitor コンテナーを停止しますconfig_devicemgr

      スクリプトを実行 issu_node_sync した後、 issu-run-sync コンテナーがアクティブで実行中であることを確認できます。

      docker ps -a | grep issu-run-sync

      また、 contrail_control_control スクリプトの実行後に issu_node_sync 、すべての ISSU ノードでコンテナーを再起動する必要があります。

  8. コンピューティング ノードをアップグレードします。

    すべての計算ノードでこれらの手順を実行します。

    1. アップグレードするコンピューティング ノードを選択し、そこからワークロードを移行します。
    2. 移行されたインスタンスに状態がある active ことを確認します。
    3. 選択した計算ノードをアップグレードします。

      さまざまなコンピューティング ノードに対してコンマ区切りリストを使用できます。

      アンダークラウドノードで次のコマンドを実行します。

      アンダークラウドノードで次のコマンドを実行します。

    4. 手順 8.c の後、計算ノードで新しいカーネルまたは新しいシステム レベルのコンポーネントを使用する場合は、次の手順を実行します。
      1. 選択したノードを再起動します。

      2. カーネル モードの計算ノードの場合:

        アップグレード ノードへの SSH 接続を確立します。

    5. 手順 8.c の後で再起動が必要ない場合は、すべての DPDK モード コンピューティング ノードのインターフェイスを再初期化 vhost0 します。

      アップグレードしたコンピューティング ノードに SSH 接続し、次のコマンドを実行します。

    6. アップグレードしたコンピューティング ノード上の Contrail サービスの状態を確認します。

      sudo contrail-status

      ステータス activeは でなければなりません。

  9. OpenStack コントローラ上の etc. を含む Neutron, Heat, Contrail プラグインをアップグレードし、ISSU ノードに接続します。

    単一のOpenStackコントローラを使用する環境の例:

    複数の Openstack コントローラーがある環境の例(3 つのコントローラーを表示):

  10. ISSU ノードを Contrail コントロール プレーンから切断します。
    1. ISSU ノードへの SSH 接続を確立します。
    2. 次のコマンドを実行します。
    3. ISSU ノード上の Contrail サービスのステータスを確認します。

      sudo contrail-status

      ステータス active は または backupでなければなりません。

  11. Contrailコントロールプレーンノードをアップグレードします。
    1. 次のコマンドを実行します。
    2. ContrailコントロールプレーンノードでContrailサービスのステータスを確認します。

      sudo contrail-status

      ステータス active は または backupでなければなりません。

  12. Contrail Analytics および Contrail AnalyticsDB ノードをアップグレードします。

    3 つの Contrail Analytics ノードと 3 つの Contrail AnalyticsDB ノードがある環境の例:

  13. ISSU ノードをアップグレードした Contrail コントロール プレーン ノードに接続します。
    1. ISSU ノードへの SSH 接続を確立します。
    2. ISSUノードをアップグレードされたContrailコントロールプレーンとペアリングします。

      cd /etc/contrail/issu ./issu_node_pair.sh add pair_with_new

    3. 新しいContrailコントロールプレーンとデータを同期します。

      issu_config=issu_revert.conf ./issu_node_sync.sh

    4. アップグレードされたノードでコンテナーを再起動します control

      ディレクターから次のコマンドを実行します。

      openstack server list --name "overcloud-contrailcontroller-" -c Networks -f value | cut -d'=' -f2 | xargs -i ssh heat-admin@{} sudo docker restart contrail_control_control

  14. コンピュートノードとOpenStackコントローラでアップグレード後タスクを実行します。
  15. ISSUとアップグレードされたContrailコントロールプレーンを切断します。
    1. ISSU ノードへの SSH 接続を確立します。
    2. ISSU ノードと古い Contrail クラスタのペアリングを解除します。
  16. OpenStackノードとコンピュートノードをアップグレードしたコントロールプレーンに再接続します。

    からのすべてのパラメーター deployを指定してコマンドを実行します。

  17. ノードが新しいカーネルまたは新しいシステムレベルのコンポーネントを使用している場合は、OpenStack コントローラと Contrail コントローラノードを再起動します。
    • RedHat オーバークラウドの再起動の章のセクション 5.1 に記載されているように、OpenStack コントローラを再起動します。

    • Contrailコントローラを1つずつ再起動します。

      各コントローラにSSH接続し、sudo再起動を実行します。ノードが再起動され、Contrailサービスが起動するまで待つ必要があります。

      sudo contrail-status

  18. すべてのアップグレード ノードで Contrail サービスのステータスを確認します。

    sudo contrail-status

    ステータス activeは でなければなりません。

  19. クラスタから ISSU ノードを削除します。

    set ContrailControllerIssuCount: 0

    すべてのパラメーターを指定してスタックデプロイコマンドを実行します。

    openstack overcloud deploy \ … -e ~/tripleo-heat-templates/environments/contrail/contrail-issu.yaml

トラブルシューティング

既知の問題は次のとおりです。

OpenStack コントローラのアップグレード実行コマンドの失敗

問題

説明

次のエラーが表示されます。

詳細は https://access.redhat.com/solutions/4122571 を参照してください。

ソリューション

  • OpenStack コントローラノードへの SSH 接続を作成します。

  • 次のコマンドを実行します。sudo docker rm cinder_volume_init_bundle

  • Cinderボリュームが障害リソースリストにあるかどうかを確認します。

    sudo pcs status

  • Cinder ボリュームが障害リソース・リストにないかどうかを確認します。

    sudo pcs resource cleanup

  • アップグレード run コマンドを再実行します。

いずれかのオーバークラウドノードに対するアップグレード実行コマンドの失敗

問題

説明

次のエラーが表示されます。

ソリューション

これは、変数が欠落している場合のデフォルトの動作が壊れています。

tripleo-heat-templates/common/deploy-steps.j2 を編集して、次の変更を適用します。

deploy-steps.j2 を編集した後、prepareステップ 5 で指定したコマンドを実行します。6.c.完了したら、中断したところからアップグレード手順を続行します。