12.3. コンピュートノードの削除
オーバークラウドからコンピュートノードを削除する必要がある状況が出てくる可能性があります。たとえば、問題のあるコンピュートノードを置き換える必要がある場合などです。
オーバークラウドからコンピュートノードを削除する前に、負荷をそのノードから別のコンピュートノードに移行してください。詳しくは、「 コンピュートノード間の仮想マシンインスタンスの移行 」を参照してください。
前提条件
-
Placement サービスパッケージ
python3-osc-placement
がアンダークラウドにインストールされていること。
手順
source コマンドでオーバークラウド設定を読み込みます。
$ source ~/stack/overcloudrc
オーバークラウド上で削除するノードの Compute サービスを無効にし、ノードで新規インスタンスがスケジューリングされないようにします。
(overcloud) $ openstack compute service list (overcloud) $ openstack compute service set <hostname> nova-compute --disable
ヒント--disable-reason
オプションを使用して、サービスを無効にする理由についての簡単な説明を追加します。これは、Compute サービスを後で再デプロイする場合に役立ちます。source コマンドでアンダークラウド設定を読み込みます。
(overcloud) $ source ~/stack/stackrc
オーバークラウドスタックの UUID を特定します。
(undercloud) $ openstack stack list
削除するノードの UUID を特定します。
(undercloud) $ openstack server list
オーバークラウドスタックからノードを削除し、それに応じてプランを更新します。
(undercloud) $ openstack overcloud node delete --stack <stack_uuid> [node1_uuid] [node2_uuid] [node3_uuid]
openstack overcloud node delete
コマンドが完全に終了したことを確認します。(undercloud) $ openstack stack list
削除の操作が完了すると、
オーバークラウド
スタックのステータスはUPDATE_COMPLETE
と表示されます。重要同じホスト名を使用して Compute サービスを再デプロイする場合は、再デプロイするノードに既存のサービスレコードを使用する必要があります。その場合は、この手順の残りのステップを省略して、「同じホスト名を使用した Compute サービスの再デプロイ」の手順に進んでください。
ノードから Compute サービスを削除します。
(undercloud) $ source ~/stack/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service delete <service-id>
ノードから Open vSwitch エージェントを削除します。
(overcloud) $ openstack network agent list (overcloud) $ openstack network agent delete <openvswitch-agent-id>
削除した Compute サービスを、Placement サービスのリソースプロバイダーから除外します。
(overcloud) $ openstack resource provider list (overcloud) $ openstack resource provider delete <uuid>
ノード数が含まれる環境ファイルの
ComputeCount
パラメーターを減らします。このファイルは、通常node-info.yaml
という名前です。たとえば、ノードを 2 つ削除する場合、ノード数を 5 から 3 に減らします。parameter_defaults: ... ComputeCount: 3 ...
ノード数を減らすと、
openstack overcloud deploy
の実行時に director は新規ノードをプロビジョニングしません。
オーバークラウドから自由にノードを削除して、別の目的でそのノードを再プロビジョニングできるようになりました。
同じホスト名を使用した Compute サービスの再デプロイ
無効にした Compute サービスを再デプロイするには、同じホスト名を持つコンピュートノードを再び動作状態にした後に、Compute サービスを再度有効にします。
手順
削除した Compute サービスを、Placement サービスのリソースプロバイダーから除外します。
(undercloud) $ source ~/overcloudrc (overcloud) $ openstack resource provider list (overcloud) $ openstack resource provider delete <uuid>
Compute サービスのステータスを確認します。
(overcloud) $ openstack compute service list --long ... | ID | Binary | Host | Zone | Status | State | Updated At | Disabled Reason | | 80 | nova-compute | compute-1.localdomain | nova | disabled | up | 2018-07-13T14:35:04.000000 | gets re-provisioned | ...
再デプロイしたコンピュートノードのサービスの状態が再び「up」になってから、サービスを再度有効にします。
(overcloud) $ openstack compute service set compute-1.localdomain nova-compute --enable