第9章 ノードのスケーリングと置き換え
オーバークラウドの作成後に、ノードを追加または削除する必要がある場合があります。たとえば、オーバークラウドのコンピュートノードを追加する場合などです。このような状況では、オーバークラウドの更新が必要です。
警告
インスタンスの高可用性を実装している場合には、アップグレードやスケールアップはできないので (https://access.redhat.com/documentation/ja/red-hat-openstack-platform/8/single/high-availability-for-compute-instances/ で説明しています)、操作を試みても失敗してしまいます。
また、インスタンスの高可用性を有効にすると、将来、director を使用したアップグレードはできなくなります。これは、メジャーアップグレードとマイナーアップグレードの両方に該当します。詳しくは、https://access.redhat.com/ja/solutions/2898841 を参照してください。
以下の表を使用して、各ノード種別のスケーリングに対するサポートを判断してください。
ノード種別
|
スケールアップ
|
スケールダウン
|
備考
|
---|---|---|---|
コントローラー
|
☓
|
☓
| |
コンピュート
|
○
|
○
| |
Ceph Storage ノード
|
○
|
☓
|
オーバークラウドを最初に作成する際に Ceph Storage ノードを 1 つ以上設定する必要があります。
|
Block Storage ノード
|
☓
|
☓
| |
Object Storage ノード
|
○
|
○
|
リングを手動で管理する必要があります (「Object Storage ノードの置き換え」に説明を記載)。
|
重要
オーバークラウドをスケーリングする前には、空き領域が少なくとも 10 GB のあることを確認してください。この空き領域は、イメージの変換やノードのプロビジョニングプロセスのキャッシュに使用されます。
9.1. コンピュートノードまたは Ceph Storage ノードの追加
director のノードプールにさらにノードを追加するには、登録する新規ノードの詳細を記載した新しい JSON ファイル (例:
newnodes.json
) を作成します。
{ "nodes":[ { "mac":[ "dd:dd:dd:dd:dd:dd" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.207" }, { "mac":[ "ee:ee:ee:ee:ee:ee" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.208" } ] }
これらのパラメーターについての説明は、「オーバークラウドへのノードの登録」を参照してください。
以下のコマンドを実行して、これらのノードを登録します。
$ openstack baremetal import --json newnodes.json
新規ノードを追加した後には、それらのイントロスペクションプロセスを起動します。各新規ノードに以下のコマンドを使用します。
$ ironic node-list $ ironic node-set-maintenance [NODE UUID] true $ openstack baremetal introspection start [NODE UUID] $ ironic node-set-maintenance [NODE UUID] false
このコマンドは、ノードのハードウェアプロパティーの検出とベンチマークを実行します。
イントロスペクションプロセスの完了後には、各新規ノードを任意のロールにタグ付けしてスケーリングします。たとえば、コンピュートノードの場合には、以下のコマンドを使用します。
$ ironic node-update [NODE UUID] add properties/capabilities='profile:compute,boot_option:local'
または、Automated Health Check (AHC) ツールを使用して、新規ノードを必要なロールに自動的にタグ付けすることもできます。詳しくは、「付録C プロファイルの自動タグ付け」を参照してください。
デプロイメント中に使用するブートイメージを設定します。
bm-deploy-kernel
および bm-deploy-ramdisk
イメージの UUID を確認します。
$ glance image-list +--------------------------------------+------------------------+ | ID | Name | +--------------------------------------+------------------------+ | 09b40e3d-0382-4925-a356-3a4b4f36b514 | bm-deploy-kernel | | 765a46af-4417-4592-91e5-a300ead3faf6 | bm-deploy-ramdisk | | ef793cd0-e65c-456a-a675-63cd57610bd5 | overcloud-full | | 9a51a6cb-4670-40de-b64b-b70f4dd44152 | overcloud-full-initrd | | 4f7e33f4-d617-47c1-b36f-cbe90f132e5d | overcloud-full-vmlinuz | +--------------------------------------+------------------------+
新規ノードの
deploy_kernel
および deploy_ramdisk
設定にこれらの UUID を設定します。
$ ironic node-update [NODE UUID] add driver_info/deploy_kernel='09b40e3d-0382-4925-a356-3a4b4f36b514' $ ironic node-update [NODE UUID] add driver_info/deploy_ramdisk='765a46af-4417-4592-91e5-a300ead3faf6'
オーバークラウドをスケーリングするには、ロールに必要なノード数を指定して
openstack overcloud deploy
を再実行する必要があります。たとえば、コンピュートノード 5 台にスケーリングするには、以下のコマンドを実行します。
$ openstack overcloud deploy --templates --compute-scale 5 [OTHER_OPTIONS]
上記のコマンドにより、オーバークラウドのスタック全体が更新されます。このコマンドが更新するのは、スタックのみである点に注意してください。オーバークラウドの削除や、スタックの置き換えは行われません。
重要
コンピュート以外のノードに対する同様のスケジューリングパラメーターなど、最初に作成したオーバークラウドからの環境ファイルおよびオプションをすべて追加するようにしてください。