10.3. ベアメタルノードのスケールダウン
オーバークラウド内のベアメタルノードの数を縮小するには、ノード定義ファイルでスタックから削除するノードにタグを付け、オーバークラウドを再デプロイしてから、オーバークラウドからベアメタルノードを削除します。
前提条件
- アンダークラウドの正常なインストール。詳細は、Installing director on the undercloud を参照してください。
- オーバークラウドの正常なデプロイメント。詳細は、プリプロビジョニングされたノードを使用した基本的なオーバークラウドの設定 を参照してください。
Object Storage ノードを置き換える場合は、削除するノードから新しい置き換えノードにデータを複製します。新しいノードでレプリケーションのパスが完了するまで待機します。
/var/log/swift/swift.log
ファイルで複製パスの進捗を確認することができます。パスが完了すると、Object Storage サービス (swift) は、以下の例のようにエントリーをログに追加します。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
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
-
スケールダウンするロールについて、
overcloud-baremetal-deploy.yaml
ファイルのcount
パラメーターの数を減らします。 -
スタックから削除する各ノードの
hostname
とname
を定義します (ロールのinstances
属性で定義されていない場合)。 削除するノードに属性
provisioned: false
を追加します。たとえば、スタックからノードovercloud-objectstorage-1
を削除するには、overcloud-baremetal-deploy.yaml
ファイルに以下のスニペットを追加します。- 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
でオーバークラウドを再デプロイして、ノードをスタックに戻します。オーバークラウドからノードを削除します。
$ openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment \ /home/stack/templates/overcloud-baremetal-deploy.yaml
<stack>
を、ベアメタルノードがプロビジョニングされるスタックの名前に置き換えます。指定しない場合、デフォルトはovercloud
です。注記スタックから削除するノードを、
openstack overcloud node delete
コマンドのコマンド引数に含めないでください。
ironic ノードを削除します。
$ openstack baremetal node delete <IRONIC_NODE_UUID>
IRONIC_NODE_UUID
は、ノードの UUID に置き換えます。オーバークラウドノードをプロビジョニングして、デプロイメントコマンドに含める heat 環境ファイルを更新して生成します。
$ 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)
。
-
プロビジョニングコマンドによって生成された
overcloud-baremetal-deployed.yaml
ファイルを他の環境ファイルと共にスタックに追加し、オーバークラウドをデプロイします。$ openstack overcloud deploy \ ... -e /usr/share/openstack-tripleo-heat-templates/environments \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ --deployed-server \ --disable-validations \ ...