4.5. デプロイインターフェイスの設定
ベアメタルノードをプロビジョニングする場合、オーバークラウド上の Bare Metal Provisioning サービス (ironic) は、ベアメタルノード上のディスクにベースオペレーティングシステムのイメージを書き込みます。デフォルトでは、デプロイインターフェイスは iSCSI マウントにイメージをマウントし、そのイメージを各ノードのディスクにコピーします。あるいは、直接デプロイを使用して、ディスクイメージを HTTP の保管場所から直接ベアメタルノード上のディスクに書き込むこともできます。
iSCSI デプロイインターフェイスのサポートは、Red Hat OpenStack Platform (RHOSP) バージョン 17.0 で非推奨になり、RHOSP 18.0 で削除されます。直接デプロイは、RHOSP 17.0 からデフォルトのデプロイインターフェイスになります。
プロビジョニングプロセスでは、デプロイインターフェイスが重要なロールを果たします。デプロイインターフェイスはデプロイメントをオーケストレーションし、イメージをターゲットディスクに転送するメカニズムを定義します。
前提条件
-
ironic-conductor
を実行する Bare Metal サービスノードに設定された依存関係パッケージ。 - OpenStack Compute (nova) が Bare Metal サービスのエンドポイントを使用するように設定されている。
- 利用可能なハードウェア用にフレーバーが作成され、nova が正しいフレーバーから新規ノードを起動する。
Image サービス (glance) でイメージが利用可能であること。
- bm-deploy-kernel
- bm-deploy-ramdisk
- user-image
- user-image-vmlinuz
- user-image-initrd
- Ironic API サービスに登録するためのハードウェア
ワークフロー
以下に示すワークフローの例を使用して、標準的なデプロイプロセスについて説明します。使用する ironic ドライバーインターフェイスによって、一部の手順が異なる場合があります。
- Nova スケジューラーが Nova API からインスタンスのブート要求を受け取る。
- Nova スケジューラーが該当するハイパーバイザーを識別し、ターゲットの物理ノードを識別する。
- Nova Compute マネージャーが選択したハイパーバイザーのリソースを要求する。
- Nova のブート要求が指定するネットワークインターフェイスに基づき、Nova Compute マネージャーがバインド前のテナント仮想インターフェイス (VIF) を Networking サービスに作成する。
Nova Compute が Nova Compute の仮想レイヤーから
driver.spawn
を呼び出し、必要なすべての情報が含まれる子タスクを作成する。子タスク作成プロセス中に、仮想ドライバーは以下の処理を完了します。- デプロイイメージ、インスタンスの UUID、要求された機能、およびフレーバー属性に関する情報で、ターゲットの ironic ノードを更新する。
- ironic API をコールして、ターゲットノードの電源およびデプロイインターフェイスを検証する。
- VIF をノードに接続する。それぞれの neutron ポートは、任意の ironic ポートまたはグループにアタッチすることができます。ポートグループはポートに優先します。
- コンフィグドライブを生成する。
- Nova ironic 仮想ドライバーが、Ironic API を使用してベアメタルノードに対応する Ironic Conductor にデプロイ要求を発行する。
- 仮想インターフェイスが接続され、PXE/TFTP オプションを設定するために Neutron API が DHCP を更新する。
- ironic ノードのブートインターフェイスが (i)PXE 設定を準備し、デプロイカーネルおよび ramdisk をキャッシュする。
- ironic ノードの管理インターフェイスがコマンドを発行し、ノードのネットワークブートを有効にする。
- 必要に応じて、ironic ノードのデプロイインターフェイスがインスタンスイメージ、カーネル、および ramdisk をキャッシュする。
- ironic ノードの電源インターフェイスがノードに電源投入を指示する。
- ノードがデプロイ ramdisk を起動する。
- iSCSI デプロイメントの場合には、Conductor が iSCSI 経由でイメージを物理ノードにコピーする。直接デプロイメントの場合には、デプロイ ramdisk が一時 URL からイメージをダウンロードする。この URL は、Swift API と互換性のあるオブジェクトストアまたは HTTP の URL でなければなりません。
- ノードのブートインターフェイスがインスタンスイメージを参照するように PXE 設定を切り替え、ramdisk エージェントにノードのソフトパワーオフを指示する。ソフトパワーオフに失敗した場合には、ベアメタルノードの電源は IPMI/BMC により切断されます。
- デプロイインターフェイスがネットワークインターフェイスにすべてのプロビジョニングポートの削除を指示し、テナントポートをノードにバインドし、ノードの電源を投入する。
これで、新規ベアメタルノードのプロビジョニングの状態が active
になります。
4.5.1. オーバークラウドにおける直接デプロイインターフェイスの設定
iSCSI デプロイインターフェイスがデフォルトのデプロイインターフェイスです。ただし、直接デプロイインターフェイスを有効にして、イメージを HTTP の保管場所からターゲットディスクにダウンロードすることができます。
iSCSI デプロイインターフェイスのサポートは、Red Hat OpenStack Platform (RHOSP) バージョン 17.0 で非推奨になり、RHOSP 18.0 で削除されます。直接デプロイは、RHOSP 17.0 からデフォルトのデプロイインターフェイスになります。
前提条件
-
オーバークラウドノードのメモリー
tmpfs
には、少なくとも 8 GB の RAM が必要です。
手順
カスタム環境ファイル
/home/stack/templates/direct_deploy.yaml
を作成または変更し、IronicEnabledDeployInterfaces
パラメーターおよびIronicDefaultDeployInterface
パラメーターを指定します。parameter_defaults: IronicEnabledDeployInterfaces: direct IronicDefaultDeployInterface: direct
iscsi を使用するようにノードを登録する場合には、
IronicEnabledDeployInterfaces
パラメーターにiscsi
の値を含めます。parameter_defaults: IronicEnabledDeployInterfaces: direct,iscsi IronicDefaultDeployInterface: direct
デフォルトでは、各ノードの Bare Metal Provisioning サービス (ironic) エージェントは、HTTP リンクを通じて Object Storage サービス (swift) に保管されているイメージを取得します。あるいは、ironic は、
ironic-conductor
HTTP サーバーを通じて、このイメージを直接ノードにストリーミングすることもできます。イメージを提供するサービスを変更するには、/home/stack/templates/direct_deploy.yaml
ファイルのIronicImageDownloadSource
をhttp
に設定します。parameter_defaults: IronicEnabledDeployInterfaces: direct IronicDefaultDeployInterface: direct IronicImageDownloadSource: http
オーバークラウドのデプロイメントにカスタム環境ファイルを追加します。
$ openstack overcloud deploy \ --templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic.yaml \ -e /home/stack/templates/direct_deploy.yaml \ ...
デプロイメントが完了するまで待ちます。
IronicDefaultDeployInterface
を指定しない、または別のデプロイインターフェイスを使用する場合には、ノードを作成または更新する際にデプロイインターフェイスを指定します。
$ openstack baremetal node create --driver ipmi --deploy-interface direct $ openstack baremetal node set <NODE> --deploy-interface direct