10.3. ベアメタルノードのスケールダウン


オーバークラウド内のベアメタルノードの数を縮小するには、ノード定義ファイルでスタックから削除するノードにタグを付け、オーバークラウドを再デプロイしてから、オーバークラウドからベアメタルノードを削除します。

前提条件

  • アンダークラウドの正常なインストール。詳細は、Installing director on the undercloud を参照してください。
  • オーバークラウドの正常なデプロイメント。詳細は、プリプロビジョニングされたノードを使用した基本的なオーバークラウドの設定 を参照してください。
  • Object Storage ノードを置き換える場合は、削除するノードから新しい置き換えノードにデータを複製します。新しいノードでレプリケーションのパスが完了するまで待機します。/var/log/swift/swift.log ファイルで複製パスの進捗を確認することができます。パスが完了すると、Object Storage サービス (swift) は、以下の例のようにエントリーをログに追加します。

    Copy to Clipboard Toggle word wrap
    Mar 29 08:49:05 localhost object-server: Object replication complete.
    Mar 29 08:49:11 localhost container-server: Replication run OVER
    Mar 29 08:49:13 localhost account-server: Replication run OVER

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. stackrc アンダークラウド認証情報ファイルを入手します。

    Copy to Clipboard Toggle word wrap
    $ source ~/stackrc
  3. スケールダウンするロールについて、overcloud-baremetal-deploy.yaml ファイルの count パラメーターの数を減らします。
  4. スタックから削除する各ノードの hostnamename を定義します (ロールの instances 属性で定義されていない場合)。
  5. 削除するノードに属性 provisioned: false を追加します。たとえば、スタックからノード overcloud-objectstorage-1 を削除するには、overcloud-baremetal-deploy.yaml ファイルに以下のスニペットを追加します。

    Copy to Clipboard Toggle word wrap
    - name: ObjectStorage
      count: 3
      instances:
      - hostname: overcloud-objectstorage-0
        name: node00
      - hostname: overcloud-objectstorage-1
        name: node01
        # Removed from cluster due to disk failure
        provisioned: false
      - hostname: overcloud-objectstorage-2
        name: node02
      - hostname: overcloud-objectstorage-3
        name: node03

    オーバークラウドの再デプロイ後、provisioned: false 属性で定義したノードがスタックには存在しなくなります。ただし、これらのノードは provisioned の状態で稼働したままです。

    注記

    スタックから一時的にノードを削除する場合は、属性 provisioned: false を使用してオーバークラウドをデプロイした後に、属性 provisioned: true でオーバークラウドをデプロイすると、ノードをスタックに戻すことができます。

  6. オーバークラウドからノードを削除します。

    Copy to Clipboard Toggle word wrap
    $ openstack overcloud node delete \
      --stack <stack> \
      --baremetal-deployment \
       /home/stack/templates/overcloud-baremetal-deploy.yaml
    • <stack> を、ベアメタルノードがプロビジョニングされるスタックの名前に置き換えます。指定しない場合、デフォルトは overcloud です。

      注記

      スタックから削除するノードを、openstack overcloud node delete コマンドのコマンド引数に含めないでください。

  7. ironic ノードを削除します。

    Copy to Clipboard Toggle word wrap
    $ openstack baremetal node delete <ironic_node_uuid>

    &lt ;ironic_node_uuid&gt; をノードの UUID に置き換えます。

  8. 削除したノードのネットワークエージェントを削除します。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ for AGENT in $(openstack network agent list \
      --host <ironic_node_uuid> -c ID -f value) ; \
      do openstack network agent delete $AGENT ; done
  9. オーバークラウドノードをプロビジョニングして、デプロイメントコマンドに含める heat 環境ファイルを更新して生成します。

    Copy to Clipboard Toggle word wrap
    $ openstack overcloud node provision \
      --stack <stack> \
      --output <deployment_file> \
      /home/stack/templates/overcloud-baremetal-deploy.yaml
    • <deployment_file> は、デプロイメントコマンドに含めるために生成する heat 環境ファイルの名前に置き換えます (例 :/home/stack/templates/overcloud-baremetal-deployed.yaml)
  10. プロビジョニングコマンドによって生成された overcloud-baremetal-deployed.yaml ファイルを他の環境ファイルと共にスタックに追加し、オーバークラウドをデプロイします。

    Copy to Clipboard Toggle word wrap
    $ openstack overcloud deploy \
      ...
      -e /usr/share/openstack-tripleo-heat-templates/environments \
      -e /home/stack/templates/overcloud-baremetal-deployed.yaml \
      --disable-validations \
      ...

10.3.1. Compute ノードを手動で削除する

openstack overcloud node delete コマンドが到達不能なノードのために失敗した場合には、オーバークラウドからのコンピュートノードの削除を手動で完了する必要があります。

前提条件

手順

  1. source コマンドでアンダークラウド設定を読み込みます。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ source ~/stackrc
  2. openstack tripleo launch heat コマンドを使用して、エフェメラル Heat プロセスを起動します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ openstack tripleo launch heat --heat-dir /home/stack/overcloud-deploy/overcloud/heat-launcher --restore-db

    このコマンドは、heat プロセスを起動した後に終了します。heat プロセスは、引き続き podman Pod としてバックグラウンドで実行されます。

  3. podman pod ps コマンドを使用して、ephemeral-heat プロセスが実行されていることを確認します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ sudo podman pod ps
    POD ID        NAME            STATUS      CREATED        INFRA ID      # OF CONTAINERS
    958b141609b2  ephemeral-heat  Running     2 minutes ago  44447995dbcf  3
  4. export コマンドを使用して、OS_CLOUD 環境をエクスポートします。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ export OS_CLOUD=heat
  5. インストールされているスタックを一覧表示するには、openstack stack list コマンドを使用します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ openstack stack list
    +--------------------------------------+------------+---------+-----------------+----------------------+--------------+
    | ID                                   | Stack Name | Project | Stack Status    | Creation Time        | Updated Time |
    +--------------------------------------+------------+---------+-----------------+----------------------+--------------+
    | 761e2a54-c6f9-4e0f-abe6-c8e0ad51a76c | overcloud  | admin   | CREATE_COMPLETE | 2022-08-29T20:48:37Z | None         |
    +--------------------------------------+------------+---------+-----------------+----------------------+--------------+
  6. export コマンドを使用して、OS_CLOUD 環境をエクスポートします。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ export OS_CLOUD=undercloud
  7. 手動で削除するノードの UUID を特定します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ openstack baremetal node list
  8. 削除するノードをメンテナンスモードに移動します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ openstack baremetal node maintenance set <node_uuid>
  9. コンピュートサービスがその状態をベアメタルサービスと同期するのを待ちます。これには最大 4 分かかる場合があります。
  10. source コマンドでオーバークラウド設定を読み込みます。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ source ~/overcloudrc
  11. 削除したノードのネットワークエージェントを削除します。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ for AGENT in $(openstack network agent list --host <scaled_down_node> -c ID -f value) ; do openstack network agent delete $AGENT ; done
    • <scaled_down_node> を、削除するノードの名前に置き換えます。
  12. ノードが新しいインスタンスをスケジュールできないように、オーバークラウド上の削除されたノードでコンピュートサービスが無効になっていることを確認します。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ openstack compute service list
  13. Compute サービスが無効化されていない場合は、無効化します。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ openstack compute service set <hostname> nova-compute --disable
  14. 削除した Compute サービスを、Placement サービスのリソースプロバイダーから除外します。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ openstack resource provider list
    (overcloud)$ openstack resource provider delete <uuid>
  15. 削除するコンピュートノードに root ユーザーとしてログインします。
  16. Red Hat サブスクリプション管理に登録されているシステムのシステムプロファイルを削除します。

    Copy to Clipboard Toggle word wrap
    # subscription-manager remove --all
    # subscription-manager unregister
    # subscription-manager clean
    注記

    コンピュートノードにアクセスできない場合は、Red Hat カスタマーポータルでシステムプロファイルを削除できます。詳細は、Red Hat Subscription Management (RHSM)に登録されているシステムのシステムプロファイルを削除する方法 を参照してください。

  17. source コマンドでアンダークラウド設定を読み込みます。

    Copy to Clipboard Toggle word wrap
    (overcloud)$ source ~/stackrc
  18. スタックから Compute ノードを削除します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ openstack overcloud node delete --stack <overcloud> <node> --baremetal-deployment <baremetal_deployment_file>
    • <overcloud> は、オーバークラウドスタックの名前または UUID に置き換えてください。
    • <node> を、削除する Compute ノードの Compute サービスホスト名または UUID に置き換えます。
    • &lt ;baremetal_deployment_file> は、ベアメタルのデプロイメントファイルの名前に置き換えます。

      注記

      ノードの電源がすでにオフになっている場合、このコマンドは WARNING メッセージを返します。

      Copy to Clipboard Toggle word wrap
      Ansible failed, check log at `~/ansible.log`
      WARNING: Scale-down configuration error. Manual cleanup of some actions may be necessary. Continuing with node removal.

      このメッセージは無視しても問題ありません。

  19. オーバークラウドノードが削除されるのを待ちます。
  20. export コマンドを使用して、OS_CLOUD 環境をエクスポートします。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ export OS_CLOUD=heat
  21. ノードの削除が完了したら、オーバークラウドスタックのステータスを確認します。

    Copy to Clipboard Toggle word wrap
    (undercloud)$ openstack stack list
    表10.2 結果
    ステータス説明

    UPDATE_COMPLETE

    削除操作は正常に完了しました。

    UPDATE_FAILED

    削除操作が失敗しました。

    メンテナンスモード中にオーバークラウドノードの削除に失敗した場合は、問題はハードウェアにある可能性があります。

  22. インスタンス HA が有効な場合は、以下の操作を実行します。

    1. ノードの Pacemaker リソースをクリーンアップします。

      Copy to Clipboard Toggle word wrap
      $ sudo pcs resource delete <scaled_down_node>
      $ sudo cibadmin -o nodes --delete --xml-text '<node id="<scaled_down_node>"/>'
      $ sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<scaled_down_node>"/>'
      $ sudo cibadmin -o status --delete --xml-text '<node_state id="<scaled_down_node>"/>'
      $ sudo cibadmin -o status --delete-all --xml-text '<node id="<scaled_down_node>"/>' --force
    2. ノードの STONITH デバイスを削除します。

      Copy to Clipboard Toggle word wrap
      $ sudo pcs stonith delete <device-name>
  23. オーバークラウドで削除された Compute ノードを置き換えない場合は、ノード数を含む環境ファイルの ComputeCount パラメーターを減らします。通常、このファイルの名前は overcloud-baremetal-deploy.yaml です。たとえば、ノードを 1 つ削除する場合、ノード数を 4 から 3 に減らします。

    Copy to Clipboard Toggle word wrap
    parameter_defaults:
      ...
      ComputeCount: 3
      ...

    ノード数を減らすと、openstack overcloud deploy を実行しても director は新規ノードをプロビジョニングしません。

    注記

    デプロイメントから削除した後にコンピュートノードを置き換えるには、ベアメタルノードのスケールアップ を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.