17回目となる今回は、OpenStackのベアメタル・プロビジョニング・サービスである「Ironic」を取り上げる。Ironicは仮想インスタンスと同様に、OpenStack UIからの操作で、物理インスタンスをデプロイできる。

提供する機能と応用例

Ironicは、物理マシンをOpenStackのインスタンスとして利用するためのベアメタル・プロビジョニングを実施する。Ironicは物理マシンのプロビジョニングを行うため、サーバの電源操作や起動順位の操作が必要となる。これにより、汎用性の高いネットワークブート規格「PXE(Preboot eXecution Environment)」や標準インタフェース規格「IPMI(Intelligent Platform Management Interface)」を利用するためのドライバが提供されている。加えて、より幅広い物理マシンを扱うために、各ベンダーに対応したドライバも提供されている。

なお、物理インスタンスの削除を実施すると、ディスクの初期化などのクリーニング処理が行われ、物理リソースとして再利用することができる。

物理インスタンスは、次のような仮想インスタンスが不得意としている分野での利用が期待される。

  • ハイパフォーマンスコンピューティング(HPC)
  • データベースホスティング
  • 高性能かつ高セキュリティ要件のための専用ハードウェア
  • クラウドインフラの高速デプロイ

ベアメタル・プロビジョニングを行う際に必要な情報

Ironicで物理マシンをOpenStack用の物理リソースと認識させるには、物理マシンの情報をあらかじめ登録する必要がある。従来のIronicでは登録作業を管理者が手動で行う必要があったが、現在では、自動的に情報を収集して登録するように開発が進められている。

物理マシンについて、1台ずつあらかじめIronicに登録する必要がある情報は以下のようになる。

登録情報 説明
物理マシン情報 Ironic用管理インタフェース情報(例:IPMIのIPアドレスとユーザー名とパスワード)、サーバスペック(例:CPU、メモリ、ディスク)、デプロイ用ポート情報(例:MACアドレス)
対応するベアメタルドライバ 電源のオン/オフなど、Ironicによって利用されるドライバで、一般的にはIPMIとなる。そのほか、各ベンダーに対応したドライバ(例:CIMC、iLO、DRAC)も提供されている
対応するデプロイイメージ ユーザーが利用するOSイメージをデプロイするために、最初にブートするイメージ

また、実際にユーザーが物理マシンをデプロイする際、ダッシュボードサービス「Horizon」などから指定する情報は以下のようになる。

登録情報 説明
ユーザーイメージ 物理マシンに書き込まれるOSイメージ。利用したいOS毎に必要となる(例:Red Hat Enterprise Linux)
フレーバー 作成するノードのスペック(例:CPU、メモリ、ディスク)を予め定義する必要が有る。指定したフレーバーを超えるスペックを持つ物理マシンが選択される
ネットワーク デプロイ後に使用するネットワーク。物理スイッチと連動させることによってテナントネットワークを実現することができる

Ironicの物理インスタンス起動の動作

Ironicでの物理インスタンス起動の動作は、デプロイイメージの起動、ユーザーイメージの起動、Cloud initの順で実施される。

(1)ユーザーがHorizonから物理インスタンスの作成をリクエストすると、コンピュートサービス「Nova」はフレーバーを満たす物理マシンを選択し、Ironicに物理インスタンスのデプロイを指示する。

(2)Ironicはイメージサービス「Glance」やネットワークサービス「Neutron」と連携して、対応したデプロイイメージをTFTPサーバにコピーし、デプロイイメージの起動準備を行う。

(3)起動準備が終わると、Ironicは物理マシンにPXE起動設定を行い、電源をオンする(一般的にはIPMI経由)。

(4)PXE起動設定が行われた物理マシンはDHCPサーバからIPアドレスとPXEブートに必要な情報(TFTPサーバのIPアドレスなど)を取得する。

(5)TFTPサーバが物理マシンのMACアドレスに対応したデプロイイメージを物理マシンに送信し、デプロイイメージが起動する。

物理インスタンス作成リクエストからデプロイイメージの起動まで

(6)デプロイイメージによって、ローカルディスクがiSCSIターゲットとして設定される。Ironicは、ユーザーが実際に使用するOSであるユーザーイメージを、ddコマンドを用いてローカルディスクにコピーする。

(7)Ironicはローカルディスクからブートするように物理マシンに対して設定を行い、次に再起動を実施する。

ユーザーイメージのコピーからユーザーイメージの起動まで

(8)物理マシン上ではユーザーイメージが起動する。

(9)ユーザーイメージ起動後にCloud initが実行される。この際にSSH公開鍵の取得などが実施され、ユーザーが物理インスタンスとして使用することができる。

Cloud init実行まで

以上が、物理マシンをOpenStackの物理インスタンスとして使用するまでの流れになる。

物理インスタンスを起動した後に、ネットワークスイッチと連携してテナントネットワークを実現するなどの開発も進んでおり、ベアメタル・プロビジョニングの利便性向上が期待されている。

各サービスが提供する主な機能

ベアメタル・プロビジョニング・サービス「Ironic」に関わる各サービスが提供する主な機能を以下にまとめる。

サービス名称 サービスが提供する機能
ironic-api ironic-conductorのREST APIリクエストを処理するサービス
ironic-conductor 各サービスと連携してベアメタルプロビジョニングを行うサービス

今回はOpenStackコンポーネントの紹介として、ベアメタル・プロビジョニング・サービス「Ironic」を紹介した。次回から、OpenStackの構築について説明する。

知念 紀昭
ネットワンシステムズ株式会社 市場開発本部 ソリューション・サービス企画室 第1チーム
レッドハットの認定資格「RED HAT CERTIFIED ENGINEER IN RED HAT OPENSTACK」を保持。仮想化ハードウェア・ソフトウェアの評価・検証業務を経て、現在クラウドソリューションを担当している。