第6章 オーバークラウドのアップグレード

本項ではオーバークラウドをアップグレードします。これには、以下のワークフローが含まれます。

  • Fast Forward Upgrade の prepare コマンドの実行
  • fast forward upgrade コマンドの実行
  • コントローラーノードのアップグレード
  • コンピュートノードのアップグレード
  • Ceph Storage ノードのアップグレード
  • Fast Forward Upgrade の最終処理

このワークフローを一旦開始すると、全ステップを完了するまでオーバークラウドの OpenStack サービスは完全には制御できなくなることを認識しておいてください。これは、全ノードが OpenStack Platform 13 に正常にアップグレードされるまで、ワークロードは管理できないことを意味します。ワークロード自体は影響を受けず、稼働を続けます。オーバークラウドのワークロードへの変更または追加は、Fast Forward Upgrade が完了するまで待つ必要があります。

6.1. Fast Forward Upgrade の コマンド

Fast Forward Upgrade プロセスには、プロセスの特定の段階で実行するさまざまなコマンドが含まれます。以下の一覧は、各コマンドに関する基本的な情報の一部を示しています。

重要

この一覧には、各コマンドに関する情報のみが含まれます。これらのコマンドは特定の順序で実行し、オーバークラウドに固有のオプションを指定する必要があります。適切なステップでこれらのコマンドを実行するよう指示されるまで待ちます。

openstack overcloud ffwd-upgrade prepare
このコマンドにより、オーバークラウドのアップグレードの初期準備のステップが実行されます。これには、アンダークラウド上の現在のオーバークラウドプランを新しい OpenStack Platform 13 オーバークラウドプランおよび更新された環境ファイルに置き換えることが含まれます。このコマンドは、openstack overcloud deploy コマンドと同じように機能し、多くの同一オプションが使用されます。
openstack overcloud ffwd-upgrade run
このコマンドは、Fast Forward Upgrade プロセスを実行します。director は、新しい OpenStack Platform 13 オーバークラウドプランに基づいて Ansible Playbook のセットを作成し、オーバークラウド全体で Fast Forward タスクを実行します。これには、OpenStack Platform の 10 から 13 までの各バージョンでアップグレードプロセスを実行することが含まれます。
openstack overcloud upgrade run
このコマンドは、ロールの単一ノードまたは複数のノードに対して、ノード固有のアップグレード設定を実行します。director は、オーバークラウドのプランに基づいて Ansible Playbook のセットを作成し、選択したノードに対してタスクを実行します。これにより、OpenStack Platform 13 の適切な設定でノードが設定されます。このコマンドは、ロールごとに更新を実施する方法も提供します。たとえば、以下のコマンドを実行してコントローラーノードを最初にアップグレードしてから、再度コマンドを実行してコンピュートノードと Ceph Storage ノードをアップグレードします。
openstack overcloud ceph-upgrade run
このコマンドにより、Ceph Storage バージョンのアップグレードが実行されます。Ceph Storage ノードに対して openstack overcloud upgrade run を実行した後に、このコマンドを実行します。director は ceph-ansible を使用して Ceph Storage バージョンのアップグレードを実行します。
openstack overcloud ffwd-upgrade converge
このコマンドにより、オーバークラウドのアップグレードの最終ステップが実施されます。この最終ステップでは、オーバークラウドの Heat スタックを OpenStack Platform 13 のオーバークラウドプランおよび更新された環境ファイルと同期します。これにより、作成されるオーバークラウドが新規の OpenStack Platform 13 オーバークラウドの設定と一致します。このコマンドは、openstack overcloud deploy コマンドと同じように機能し、多くの同一オプションが使用されます。

これらのコマンドは、特定の順序で実行する必要があります。本章の残りの項に従って、これらのコマンドを使用して Fast Forward Upgrade を実行します。

注記

オーバークラウドにカスタム名を使用する場合には、各コマンドに --stack オプションを使用してカスタム名を設定します。

6.2. オーバークラウドの Fast Forward Upgrade の実行

Fast Forward Upgrade には、以下のタスクを実行する 2 つのコマンドが必要です。

  • オーバークラウドのプランを OpenStack Platform 13 に更新します。
  • Fast Forward Upgrade に備えてノードを準備します。
  • Fast Forward Upgrade の対象となる各バージョンのアップグレードステップを順番に実行します。以下の作業が含まれます。

    • 各 OpenStack Platform サービスのバージョン固有のタスク
    • リポジトリーの変更。Fast Forward Upgrade の対象となる OpenStack Platform バージョンを 1 つずつ順番に切り替える
    • データベースのアップグレードに必要な特定のパッケージを更新する
    • データベースのバージョンを 1 つずつ順番にアップグレードする
  • OpenStack Platform 13 への最終アップグレードに向けてオーバークラウドを準備します。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. お使いのデプロイメントに適したすべての該当するオプションおよび環境ファイルと共に、Fast Forward Upgrade の prepare コマンドを実行します。

    $ openstack overcloud ffwd-upgrade prepare \
        --templates \
        -e /home/stack/templates/overcloud_images.yaml \
        -e /home/stack/templates/deprecated_cli_options.yaml \
        -e /home/stack/templates/custom_repositories_script.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e /home/stack/templates/ceph-customization.yaml \
        -e <ENVIRONMENT FILE>

    以下のオプションの中で、お使いの環境に適切なオプションを追加します。

    • カスタム設定環境ファイル (-e)以下に例を示します。

      • コンテナーイメージの場所が記載された環境ファイル (overcloud_images.yaml)。アップグレードのコマンドで --container-registry-file の使用に関する警告が表示される場合があることに注意してください。このオプションは非推奨になり、コンテナーイメージの環境ファイルには -e の使用が推奨されるようになっているので、この警告は無視して問題ありません。
      • 該当する場合は、非推奨になった CLI オプションを Heat パラメーターにマッピングする環境ファイル。deprecated_cli_options.yaml を使用します。
      • 該当する場合は、カスタムリポジトリーのスクリプトを指定する環境ファイル。custom_repositories_script.yaml を使用します。
      • Ceph Storage ノードを使用する場合には、関連する環境ファイル
      • お使いの環境に関連する追加の環境ファイル
    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
    • 該当する場合は、--roles-file でカスタムロール (roles_data) ファイルを指定します。
    重要

    ffwd-upgrade コマンドの実行を確認するプロンプトが表示されます。yes と入力してください。

    注記

    openstack ffwd-upgrade prepare コマンドは複数回実行できます。コマンドが失敗した場合は、テンプレートの問題を修正してから、コマンドを再実行できます。

  3. オーバークラウドプランが OpenStack Platform 13 バージョンに更新されます。Fast Forward Upgrade の準備が完了するまで待ちます。
  4. アップグレードを行う前に、オーバークラウドのスナップショットまたはバックアップを作成します。
  5. Fast Forward Upgrade の コマンドを実行します。

    $ openstack overcloud ffwd-upgrade run
    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
    重要

    ffwd-upgrade コマンドの実行を確認するプロンプトが表示されます。yes と入力してください。

    注記

    openstack ffwd-upgrade run コマンドは複数回実行できます。コマンドが失敗した場合は、テンプレートの問題を修正してから、コマンドを再実行できます。

  6. Fast Forward Upgrade が完了するまで待ちます。

この段階では、

  • ワークロードは引き続き稼働中です。
  • オーバークラウドのデータベースは OpenStack Platform 12 バージョンにアップグレードされました。
  • オーバークラウドのサービスがすべて無効化されます。
  • Ceph Storage ノードはまだバージョン 2 のままです。

これは、オーバークラウドが、OpenStack Platform 13 に達するための標準のアップグレードステップを実行できる状態にあることを意味します。

6.3. コントローラーノードおよびカスタムロールノードのアップグレード

すべてのコントローラーノード、分割されたコントローラーサービス、およびその他のカスタムノードを OpenStack Platform 13 にアップグレードするには、以下のプロセスを使用します。このプロセスでは、--nodes オプションを指定して openstack overcloud upgrade run コマンドを実行し、操作を選択したノードだけに制限します。

$ openstack overcloud upgrade run --nodes [ROLE]

[ROLE] をロール名またはロール名のコンマ区切りリストに置き換えます。

オーバークラウドでモノリシックなコントローラーノードが使用されている場合は、Controller ロールに対してこのコマンドを実行します。

オーバークラウドで分割されたコントローラーサービスが使用されている場合は、以下のガイドに従ってノードのロールを次の順序でアップグレードします。

  • Pacemaker を使用するすべてのロール。たとえば、ControllerOpenStackDatabaseMessaging、および Telemetry 等。
  • Networker ノード
  • その他すべてのカスタムロール

以下のノードはまだアップグレード しないでください

  • DPDK ベースまたはハイパーコンバージドインフラストラクチャー (HCI) コンピュートノードなど、あらゆる種別のコンピュートノード
  • CephStorage ノード

これらのノードは後でアップグレードします。

注記

OpenStack Platform サービスはオーバークラウド上では非アクティブな状態で検証できないため、以下の手順のコマンドでは --skip-tags validation のオプションを使用しています。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. モノリシックなコントローラーノードを使用している場合は、Controller ロールに対してアップグレードコマンドを実行します。

    $ openstack overcloud upgrade run --nodes Controller --skip-tags validation
    • カスタムのスタック名を使用する場合は、--stack オプションでその名前を渡します。
  3. 複数のロールにわたって分割されたコントローラーサービスを使用している場合の操作は以下のとおりです。

    1. Pacemaker サービスを使用するロールのアップグレードコマンドを実行します。

      $ openstack overcloud upgrade run --nodes ControllerOpenStack --skip-tags validation
      $ openstack overcloud upgrade run --nodes Database --skip-tags validation
      $ openstack overcloud upgrade run --nodes Messaging --skip-tags validation
      $ openstack overcloud upgrade run --nodes Telemetry --skip-tags validation
      • カスタムのスタック名を使用する場合は、--stack オプションでその名前を渡します。
    2. Networker ロールのアップグレードコマンドを実行します。

      $ openstack overcloud upgrade run --nodes Networker --skip-tags validation
      • カスタムのスタック名を使用する場合は、--stack オプションでその名前を渡します。
    3. Compute ロールまたは CephStorage ロールを除く、残りすべてのカスタムロールのアップグレードコマンドを実行します。

      $ openstack overcloud upgrade run --nodes ObjectStorage --skip-tags validation
      • カスタムのスタック名を使用する場合は、--stack オプションでその名前を渡します。

この段階では、

  • ワークロードは引き続き稼働中です。
  • オーバークラウドのデータベースが OpenStack Platform 13 バージョンにアップグレードされました。
  • コントローラーノードが OpenStack Platform 13 にアップグレードされました。
  • すべてのコントローラーサービスが有効化されました。
  • コンピュートノードは、まだアップグレードする必要があります。
  • Ceph Storage ノードはバージョン 2 のままなので、アップグレードする必要があります。
警告

コントローラーサービスは有効化されていますが、コンピュートノードと Ceph Storage サービスが無効になるまではワークロードの操作は実行しないでください。ワークロードを操作すると、仮想マシンが孤立してしまう可能性があります。環境全体がアップグレードされるまで待ってください。

6.4. テスト用コンピュートノードのアップグレード

このプロセスは、テスト用に選択したコンピュートノードをアップグレードします。このプロセスでは、openstack overcloud upgrade run コマンドに --nodes オプションを指定して、操作をテスト用ノードのみに制限して実行する必要があります。この手順では、コマンドで --nodes compute-0 を例として使用しています。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. アップグレードのコマンドを実行します。

    $ openstack overcloud upgrade run --nodes compute-0 --skip-tags validation
    注記

    OpenStack Platform サービスはオーバークラウド上では非アクティブな状態で検証できないため、上記のコマンドには --skip-tags validation を使用しています。

    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
  3. テスト用ノードのアップグレードが完了するまで待ちます。

6.5. 全コンピュートノードのアップグレード

重要

このプロセスでは、残りのコンピュートノードをすべて OpenStackPlatform 13 にアップグレードします。このプロセスは、openstack overcloud upgrade run コマンドに --nodes Compute オプションを指定して、操作をコンピュートノードのみに制限して実行する必要があります。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. アップグレードのコマンドを実行します。

    $ openstack overcloud upgrade run --nodes Compute --skip-tags validation
    注記

    OpenStack Platform サービスはオーバークラウド上では非アクティブな状態で検証できないため、上記のコマンドには --skip-tags validation を使用しています。

    • カスタムのスタック名を使用している場合には、--stack オプションでその名前を渡します。
    • カスタムの Compute ロールを使用する場合には、--nodes オプションでそのロール名を含めます。
  3. コンピュートノードのアップグレードが完了するまで待ちます。

この段階では、

  • ワークロードは引き続き稼働中です。
  • コントローラーノードとコンピュートノードが OpenStack Platform 13 にアップグレードされました。
  • Ceph Storage ノードはバージョン 2 のままなので、アップグレードする必要があります。

6.6. 全 Ceph Storage ノードのアップグレード

重要

このプロセスでは、Ceph Storage ノードをアップグレードします。このプロセスでは、以下の操作を行います。

  • --nodes CephStorage オプションを指定して openstack overcloud upgrade run コマンドを実行し、操作を Ceph Storage ノードだけに制限する
  • openstack overcloud ceph-upgrade run コマンドを実行し、コンテナー化された Red Hat Ceph Storage 3 クラスターへのアップグレードを実施する

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. アップグレードのコマンドを実行します。

    $ openstack overcloud upgrade run --nodes CephStorage --skip-tags validation
    注記

    OpenStack Platform サービスはオーバークラウド上では非アクティブな状態で検証できないため、上記のコマンドには --skip-tags validation を使用しています。

    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
  3. ノードのアップグレードが完了するまで待ちます。
  4. Ceph Storage のアップグレードコマンドを実行します。以下に例を示します。

    $ openstack overcloud ceph-upgrade run \
        --templates \
        -e <ENVIRONMENT FILE> \
        -e /home/stack/templates/overcloud_images.yaml \
        -e /home/stack/templates/deprecated_cli_options.yaml \
        -e /home/stack/templates/custom_repositories_script.yaml
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e /home/stack/templates/ceph-customization.yaml \
        --ceph-ansible-playbook '/usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml,/usr/share/ceph-ansible/infrastructure-playbooks/rolling_update.yml'

    以下のオプションの中で、お使いの環境に適切なオプションを追加します。

    • カスタム設定環境ファイル (-e)以下に例を示します。

      • コンテナーイメージの場所が記載された環境ファイル (overcloud_images.yaml)。アップグレードのコマンドで --container-registry-file の使用に関する警告が表示される場合があることに注意してください。このオプションは非推奨になり、コンテナーイメージの環境ファイルには -e の使用が推奨されるようになっているので、この警告は無視して問題ありません。
      • 該当する場合は、非推奨になった CLI オプションを Heat パラメーターにマッピングする環境ファイル。deprecated_cli_options.yaml を使用します。
      • 該当する場合は、カスタムリポジトリーのスクリプトを指定する環境ファイル。custom_repositories_script.yaml を使用します。
      • Ceph Storage ノード用の関連する環境ファイル
      • お使いの環境に関連する追加の環境ファイル
    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
    • 該当する場合は、--roles-file でカスタムロール (roles_data) ファイルを指定します。
    • 以下の Ansible Playbook
    • /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
    • /usr/share/ceph-ansible/infrastructure-playbooks/rolling_update.yml
  5. Ceph Storage ノードのアップグレードが完了するまで待ちます。

6.7. ハイパーコンバージドノードのアップグレード

ComputeHCI ロールからのハイパーコンバージドノードしか使用しておらず、専用のコンピュートノードまたは Ceph ノードを使用していない場合には、以下の手順を実施してノードをアップグレードします。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. アップグレードのコマンドを実行します。

    $ openstack overcloud upgrade run --roles ComputeHCI

    カスタムのスタック名を使用している場合には、--stack オプションでアップグレードコマンドにその名前を渡します。

  3. Ceph Storage のアップグレードコマンドを実行します。以下に例を示します。

    $ openstack overcloud ceph-upgrade run \
        --templates \
        -e /home/stack/templates/overcloud_images.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e /home/stack/templates/ceph-customization.yaml \
        -e <ENVIRONMENT FILE>

    以下のオプションの中で、お使いの環境に適切なオプションを追加します。

    • カスタム設定環境ファイル (-e)以下に例を示します。

      • コンテナーイメージの場所が記載された環境ファイル (overcloud_images.yaml)。アップグレードのコマンドで --container-registry-file の使用に関する警告が表示される場合があることに注意してください。このオプションは非推奨になり、コンテナーイメージの環境ファイルには -e の使用が推奨されるようになっているので、この警告は無視して問題ありません。
      • 該当する場合は、非推奨になった CLI オプションを Heat パラメーターにマッピングする環境ファイル。deprecated_cli_options.yaml を使用します。
      • 該当する場合は、カスタムリポジトリーのスクリプトを指定する環境ファイル。custom_repositories_script.yaml を使用します。
      • Ceph Storage ノード用の関連する環境ファイル
    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
    • 該当する場合は、--roles-file でカスタムロール (roles_data) ファイルを指定します。
    • 以下の Ansible Playbook
    • /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
    • /usr/share/ceph-ansible/infrastructure-playbooks/rolling_update.yml
  4. Ceph Storage ノードのアップグレードが完了するまで待ちます。

6.8. 混在型ハイパーコンバージドノードのアップグレード

ComputeHCI ロール等のハイパーコンバージドノードに加えて専用のコンピュートノードまたは Ceph ノードを使用している場合には、以下の手順を実施してノードをアップグレードします。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. コンピュートノードのアップグレードコマンドを実行します。

    $ openstack overcloud upgrade run --roles Compute
    If using a custom stack name, pass the name with the --stack option.
  3. ノードのアップグレードが完了するまで待ちます。
  4. ComputeHCI ノードのアップグレードコマンドを実行します。

    $ openstack overcloud upgrade run --roles ComputeHCI
    If using a custom stack name, pass the name with the --stack option.
  5. ノードのアップグレードが完了するまで待ちます。
  6. Ceph Storage ノードのアップグレードコマンドを実行します。

    $ openstack overcloud upgrade run --roles CephStorage
  7. Ceph Storage ノードのアップグレードが完了するまで待ちます。
  8. Ceph Storage のアップグレードコマンドを実行します。以下に例を示します。

    $ openstack overcloud ceph-upgrade run \
        --templates \
        -e /home/stack/templates/overcloud_images.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e /home/stack/templates/ceph-customization.yaml \
        -e <ENVIRONMENT FILE>

    以下のオプションの中で、お使いの環境に適切なオプションを追加します。

    • カスタム設定環境ファイル (-e)以下に例を示します。

      • コンテナーイメージの場所が記載された環境ファイル (overcloud_images.yaml)。アップグレードのコマンドで --container-registry-file の使用に関する警告が表示される場合があることに注意してください。このオプションは非推奨になり、コンテナーイメージの環境ファイルには -e の使用が推奨されるようになっているので、この警告は無視して問題ありません。
      • 該当する場合は、非推奨になった CLI オプションを Heat パラメーターにマッピングする環境ファイル。deprecated_cli_options.yaml を使用します。
      • 該当する場合は、カスタムリポジトリーのスクリプトを指定する環境ファイル。custom_repositories_script.yaml を使用します。
      • Ceph Storage ノード用の関連する環境ファイル
      • お使いの環境に関連する追加の環境ファイル
    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
    • 該当する場合は、--roles-file でカスタムロール (roles_data) ファイルを指定します。
    • 以下の Ansible Playbook
    • /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
    • /usr/share/ceph-ansible/infrastructure-playbooks/rolling_update.yml
  9. Ceph Storage ノードのアップグレードが完了するまで待ちます。

この段階では、

  • 全ノードが OpenStack Platform 13 にアップグレードされ、ワークロードは引き続き稼働しています。

環境はアップグレードされましたが、最後のステップを 1 つ実行して、アップグレードの最終処理を行う必要があります。

6.9. Fast Forward Upgrade の最終処理

Fast Forward Upgrade には、オーバークラウドスタックを更新する最終ステップが必要です。これにより、スタックのリソース構造が OpenStackPlatform 13 の標準のデプロイメントと一致し、今後、通常の openstack overcloud deploy の機能を実行できるようになります。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. Fast Forward Upgrade の最終処理のコマンドを実行します。

    $ openstack overcloud ffwd-upgrade converge \
        --templates \
        -e /home/stack/templates/overcloud_images.yaml \
        -e /home/stack/templates/deprecated_cli_options.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e /home/stack/templates/ceph-customization.yaml \
        -e <OTHER ENVIRONMENT FILES>

    以下のオプションの中で、お使いの環境に適切なオプションを追加します。

    • カスタム設定環境ファイル (-e)以下に例を示します。

      • コンテナーイメージの場所が記載された環境ファイル (overcloud_images.yaml)。アップグレードのコマンドで --container-registry-file の使用に関する警告が表示される場合があることに注意してください。このオプションは非推奨になり、コンテナーイメージの環境ファイルには -e の使用が推奨されるようになっているので、この警告は無視して問題ありません。
      • 該当する場合は、非推奨になった CLI オプションを Heat パラメーターにマッピングする環境ファイル。deprecated_cli_options.yaml を使用します。
      • Ceph Storage ノードを使用する場合には、関連する環境ファイル
      • お使いの環境に関連する追加の環境ファイル
    • カスタムのスタック名を使用する場合には、--stack オプションでその名前を渡します。
    • 該当する場合は、--roles-file でカスタムロール (roles_data) ファイルを指定します。
    重要

    ffwd-upgrade コマンドの実行を確認するプロンプトが表示されます。yes と入力してください。

  3. Fast Forward Upgrade の最終処理が完了するまで待ちます。

6.10. 次のステップ

オーバークラウドのアップグレードが完了しました。これで、「8章アップグレード後のステップの実行」に記載のステップに従って、アップグレード後のオーバークラウドの設定を行うことができます。今後のデプロイメント操作では、OpenStack Platform 13 環境に関連する全環境ファイルを必ず指定してください。これには、アップグレード中に新規作成または変換した環境ファイルが含まれます。