11.3. コンピュートノードの Multi-RHEL 環境へのアップグレード


コンピュートノードの一部を RHEL 9.2 にアップグレードし、残りのコンピュートノードは RHEL 8.4 のままにすることができます。このアップグレードプロセスには、以下の基本的な手順が含まれます。

  1. どのノードを RHEL 9.2 にアップグレードするか、そしてどのノードを RHEL 8.4 に残しておきたいかを計画します。ノードのバッチごとに作成する各ロールのロール名を選択します (例: ComputeRHEL-9.2 および ComputeRHEL-8.4)。
  2. RHEL 9.2 にアップグレードするノード、または RHEL 8.4 に残しておきたいノードを保存するロールを作成します。これらのロールは、コンピュートノードを新しいロールに移動する準備ができるまで空のままにすることができます。必要な数のロールを作成し、任意の方法でロール間でノードを分割できます。以下に例を示します。

    • 環境で ComputeSRIOV というロールが使用されており、カナリアテストを実行して RHEL 9.2 にアップグレードする必要がある場合は、新しい ComputeSRIOVRHEL9 ロールを作成し、カナリアノードを新しいロールに移動できます。
    • 環境で ComputeOffload というロールを使用しており、そのロール内のほとんどのノードを RHEL 9.2 にアップグレードするが、いくつかのノードを RHEL 8.4 に残しておきたい場合は、新しい ComputeOffloadRHEL8 ロールを作成して RHEL 8.4 ノードを保存できます。その後、元の ComputeOffload ロール内のノードを選択して、RHEL 9.2 にアップグレードできます。
  3. ノードを各コンピュートロールから新しいロールに移動します。
  4. 特定のコンピュートノード上のオペレーティングシステムを RHEL 9.2 にアップグレードします。同じロールまたは複数のロールから、ノードをバッチでアップグレードできます。

    注記

    Multi-RHEL 環境では、デプロイメントでは引き続き pc-i440fx マシンタイプを使用する必要があります。デフォルトを Q35 に更新しないでください。Q35 マシンタイプへの移行は、すべてのコンピュートノードを RHEL 9.2 にアップグレードした後に実行する、別のアップグレード後の手順です。Q35 マシンタイプの移行に関する詳細は、RHOSP 17 へのアップグレード後のホストのデフォルトマシンタイプの更新 を参照してください。

    次の手順を使用して、コンピュートノードを Multi-RHEL 環境にアップグレードします。

11.3.1. Multi-RHEL コンピュートノードのロールの作成

RHEL 9.2 にアップグレードするノード、または RHEL 8.4 に留まるノードを保存する新しいロールを作成し、ノードを新しいロールに移動します。

手順

  1. 環境に関連するロールを作成します。role_data.yaml ファイルで、新しいロールに使用するソースのコンピュートロールをコピーします。

    必要な追加のロールごとにこの手順を繰り返します。コンピュートノードを新しいロールに移動する準備ができるまで、ロールは空のままにすることができます。

    • RHEL 8 ロールを作成している場合は、以下のようになります。

      name: <ComputeRHEL8>
       description: |
        Basic Compute Node role
       CountDefault: 1
       rhsm_enforce_multios: 8.4
      ...
      ServicesDefault:
      ...
      - OS::TripleO::Services::NovaLibvirtLegacy
      注記

      RHEL 8.4 に残っているノードを含むロールには、NovaLibvirtLegacy サービスが含まれている必要があります。

    • <ComputeRHEL8> を RHEL 8.4 ロールの名前に置き換えます。
    • RHEL 9 ロールを作成している場合は、以下のようになります。

      name: <ComputeRHEL9>
       description: |
      Basic Compute Node role
       CountDefault: 1
      ...
      ServicesDefault:
      ...
      - OS::TripleO::Services::NovaLibvirt
      注記

      RHEL 9.2 にアップグレードされるノードを含むロールには、NovaLibvirt サービスが含まれている必要があります。OS::TripleO::Services::NovaLibvirtLegacyOS::TripleO::Services::NovaLibvirt に置き換えます。

    • <ComputeRHEL9> を RHEL 9.2 ロールの名前に置き換えます。
  2. overcloud_upgrade_prepare.sh ファイルを copy_role_Compute_param.sh ファイルにコピーします。

    $ cp overcloud_upgrade_prepare.sh copy_role_Compute_param.sh
  3. copy_role_Compute_param.sh ファイルを編集して、copy_role_params.py スクリプトを含めます。このスクリプトは、新しいロールの追加パラメーターとリソースを含む環境ファイルを生成します。以下に例を示します。

    /usr/share/openstack-tripleo-heat-templates/tools/copy_role_params.py --rolename-src <Compute_source_role> --rolename-dst <Compute_destination_role> \
     -o <Compute_new_role_params.yaml> \
    
    -e /home/stack/templates/internal.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml \
    -e /home/stack/templates/network/network-environment.yaml \
    -e /home/stack/templates/inject-trust-anchor.yaml \
    -e /home/stack/templates/hostnames.yml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
    -e /home/stack/templates/nodes_data.yaml \
    -e /home/stack/templates/debug.yaml \
    -e /home/stack/templates/firstboot.yaml \
       -e /home/stack/overcloud-params.yaml \
     -e /home/stack/overcloud-deploy/overcloud/overcloud-network-environment.yaml \
    -e /home/stack/overcloud_adopt/baremetal-deployment.yaml \
    -e /home/stack/overcloud_adopt/generated-networks-deployed.yaml \
    -e /home/stack/overcloud_adopt/generated-vip-deployed.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/nova-hw-machine-type-upgrade.yaml \
    -e ~/containers-prepare-parameter.yaml
    • <Compute_source_role> をコピーするソースのコンピュートロールの名前に置き換えます。
    • <Compute_destination_role> を新しいロールの名前に置き換えます。
    • -o オプションを使用して、新しいロールのソースコンピュートロールのデフォルト以外の値をすべて含む出力ファイルの名前を定義します。<Compute_new_role_params.yaml> を出力ファイルの名前に置き換えます。
  4. copy_role_Compute_param.sh スクリプトを実行します。

    $ sh /home/stack/copy_role_Compute_param.sh
  5. コンピュートノードをソースロールから新しいロールに移動します。

    python3
    /usr/share/openstack-tripleo-heat-templates/tools/baremetal_transition.py  --baremetal-deployment /home/stack/tripleo-<stack>-baremetal-deployment.yaml  --src-role <Compute_source_role>  --dst-role <Compute_destination_role> <Compute-0> <Compute-1> <Compute-2>
    注記

    このツールには、アンダークラウドのアップグレード中にエクスポートした元の /home/stack/tripleo-<stack>-baremetal-deployment.yaml ファイルが含まれています。このツールは、/home/stack/tripleo-<stack>-baremetal-deployment.yaml ファイル内のソースロール定義をコピーし、名前を変更します。次に、新しく作成された宛先ロールとの競合を防ぐために、hostname_format を変更します。続いて、ツールはノードをソースロールから宛先ロールに移動し、count 値を変更します。

    • <stack> は、スタックの名前に置き換えます。
    • <Compute_source_role> を新しいロールに移動するノードを含むソースコンピュートロールの名前に置き換えます。
    • <Compute_destination_role> を新しいロールの名前に置き換えます。
    • <Compute-0> <Compute-1> <Compute-2> を、新しいロールに移動するノードの名前に置き換えます。
  6. ノードを再プロビジョニングして、スタック内の環境ファイルを新しいロールの場所で更新します。

    $ openstack overcloud node provision --stack <stack> --output /home/stack/overcloud_adopt/baremetal-deployment.yaml /home/stack/tripleo-<stack>-baremetal-deployment.yaml
    注記

    出力された baremetal-deployment.yaml ファイルは、オーバークラウドの導入中に overcloud_upgrade_prepare.sh ファイルで使用されたファイルと同じものです。

  7. RHEL 8.4 に残っているコンピュートロールを COMPUTE_ROLES パラメーターに含めて、次のスクリプトを実行します。たとえば、RHEL 8.4 に残っているノードを含む ComputeRHEL8 というロールがある場合は、COMPUTE_ROLES = --role ComputeRHEL8 となります。

    python3
    /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \
        ${COMPUTE_ROLES} \
        --enable-multi-rhel \
        --excludes collectd \
        --excludes nova-libvirt \
        --minor-override "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \
        --major-override "{${EL9_TAGS}${NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \
        --output-env-file \
        /home/stack/containers-prepare-parameter.yaml
  8. この手順を繰り返して追加のロールを作成し、追加のコンピュートノードをそれらの新しいロールに移動します。

11.3.2. コンピュートノードのオペレーティングシステムのアップグレード

選択したコンピュートノードのオペレーティングシステムを RHEL 9.2 にアップグレードします。異なるロールから複数のノードを同時にアップグレードできます。

前提条件

環境に必要なロールが作成されていることを確認してください。Multi-RHEL 環境のロールの作成に関する詳細は、Multi-RHEL コンピュートノードのロールの作成 を参照してください。

手順

  1. skip_rhel_release.yaml ファイルで、SkipRhelEnforcement パラメーターを false に設定します。

    parameter_defaults:
      SkipRhelEnforcement: false
  2. 次の例に示すように、-e system_upgrade.yaml 引数と必要なその他の -e 環境ファイル引数を overcloud_upgrade_prepare.sh スクリプトに含めます。

    $ openstack overcloud upgrade prepare --yes \
    ...
    -e /home/stack/system_upgrade.yaml  \
    -e /home/stack/<Compute_new_role_params.yaml> \
    ...
    • アップグレード固有のパラメーターを持つ system_upgrade.yaml ファイルを含めます (-e)。
    • 新しいロールに必要なパラメーターを含む環境ファイルを含めます (-e)。<Compute_new_role_params.yaml> を新しいロール用に作成した環境ファイルの名前に置き換えます。
    • 複数のロールからノードを同時にアップグレードする場合は、作成した新しいロールごとに環境ファイルを含めます。
  3. オプション: インスタンスを移行します。移行計画の詳細は、コンピュートノード間の仮想マシンの移行 および 移行の準備 を参照してください。
  4. overcloud_upgrade_prepare.sh スクリプトを実行します。
  5. 特定のコンピュートノード上のオペレーティングシステムをアップグレードします。アップグレードするノードのコンマ区切りリストを指定して、--limit オプションを使用します。以下の例では、computerhel9-0computerhel9-1computerhel9-2、および computesriov-42 ノードを ComputeRHEL9 および ComputeSRIOV ロールからアップグレードします。

    $ openstack overcloud upgrade run --yes --tags system_upgrade --stack <stack> --limit computerhel9-0,computerhel9-1,computerhel9-2,computesriov-42
    • <stack> は、スタックの名前に置き換えます。
  6. コンピュートノード上のコンテナーを RHEL 9.2 にアップグレードします。アップグレードするノードのコンマ区切りリストを指定して、--limit オプションを使用します。以下の例では、computerhel9-0computerhel9-1computerhel9-2、および computesriov-42 ノードを ComputeRHEL9 および ComputeSRIOV ロールからアップグレードします。

    $ openstack overcloud upgrade run --yes --stack <stack>  --limit computerhel9-0,computerhel9-1,computerhel9-2,computesriov-42
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.