【IIJ GIOの裏側を語る#6】 オンデマンドを実現するベアメタル制御

カテゴリー: インフラストラクチャーP2, 裏側を語る   パーマリンク
このエントリーをはてなブックマークに追加

『IIJ GIOの裏側を語る』連載企画の第6回です。

解説者は、IIJクラウド本部の山内です。

執筆者の紹介

株式会社インターネットイニシアティブ
クラウド本部 クラウドサービス2部
山内 徹

「第6回:オンデマンドを実現するベアメタル制御」

IIJ GIOインフラストラクチャーP2(IIJ GIO P2)のプライベートリソースではベアメタルサーバを提供していますが、今回はその仕組みについて解説します。

以下のステップで、ベアメタルサーバ制御の自動化を行っています。

  1. ベアメタルクラウドを実現するシステム構成
  2. OSインストールの準備
  3. OSのインストール
  4. Windowsのライセンス・アクティベーション
  5. OSインストール後の処理

1. ベアメタルクラウドを実現するシステム構成

ベアメタルクラウドを実現するにあたり、IIJ GIO P2プライベートリソースではFigure 1の構成になっています。スイッチに在庫としてのベアメタルサーバが接続されており、お客様から利用のお申込みがあると、未使用の在庫から適当なベアメタルサーバが選択されます。

Figure1

制御サーバ OSのインストールや設定など、ベアメタルサーバを制御するサーバ
ベアメタルサーバ お客様占有の物理サーバ。お客様からのお申し込みに応じて、OSのインストールや必要な設定が行われる
スイッチ ベアメタルサーバが接続されているネットワークスイッチ。必要に応じてベアメタルサーバ間の接続を繋ぎ変えることができる

2. OSインストールの準備

次に、サーバにOSがインストールされますが、LinuxかWindowsか、対象のOSに応じてベアメタルサーバの接続されているスイッチのポートVLANを設定します。

Figure 2

制御サーバのAPIが呼ばれると、制御サーバはインストールの準備を開始します。
まずは、インストールに必要なファイルを用意します。Linuxの場合はkickstartファイルを、Windowsの場合はインストールスクリプトを生成します。申し込み内容に応じたOSの設定はそれぞれのファイルに記述されています。

制御サーバは指定のベアメタルサーバをIPMI(Intelligent Platform Management Interface:ネットワークを通じて、コンピューターのハードウェアを操作する標準規格)を使って起動します。起動時にベアメタルサーバはPXE(Preboot eXecution Environment:インテル社が策定した、ネットワークブートの規格)ブートするよう設定されています。この時、接続されているスイッチのポートのVLANIDによって、DHCPリレーエージェントを利用し、DHCPの要求先(ここではPXEサーバと共用)を切り替えています。

先ほど、インストール対象がLinuxとWindowsに応じたポートVLANを設定すると書きましたが、これにより、OSによって異なる制御サーバが認識されるわけです(Figure 3)。

Figure 3

3. OSのインストール

起動してしばらくするとPXEブートによりIPアドレスなどのネットワーク情報が割り当てられ、それぞれのPXEサーバ(制御サーバと兼用)からNBP(Network Boot Program)をダウンロードします。

Figure 4


ここからLinuxとWindowsで動作が異なります。
Linuxの場合、OSインストールAPIによって作成されたkickstartファイルの記述に応じて、バージョンに適したOSのイメージを制御サーバよりhttpで取得し、インストールを開始します。

一方、Windowsの場合はNBPのダウンロードの後、Windows PE(Windows Preinstall Environment)という、PXEブート用のWindowsをダウンロードします。Windows PEは初期設定用のスクリプトを起動し、制御サーバからインストールするバージョンに応じたインストールイメージおよび設定スクリプトを取得し、ローカルのディスクに保存した後、再起動します。
再起動によりインストールスクリプトが起動し、ローカルディスクに保存したインストールイメージを使用してインストールを開始します。

4. Windowsのライセンス・アクティベーション

インストール処理の中で、Windowsのライセンス・アクティベーションを行います。
Windowsのアクティベーションには電話認証のほか、KMSやMAKなどいくつかの方法がありますが、P2プライベートリソースでは、直接インターネット上のマイクロソフトの認証サイトを使ってアクティベーションを行います。
インターネットへの接続には、制御サーバと同じネットワーク上にプロキシサーバが設置されており、ここを介してマイクロソフトの認証サイトへ接続し、ライセンス・アクティベーションを行います(Figure 5)。

Figure 5

5. OSインストール後の処理

Linux/Windows共に、制御サーバはインストールが完了するまで待ち続け、完了を検知するとAPIを呼び出したサーバに対して完了した旨を通知します。
OSのインストールが完了したのち、ポートVLANからお客様専用のVLAN(タグVLAN)へお客様のサーバが接続されているスイッチの設定を変更します。(OS側のタグVLANの設定は、インストール処理の中で行います)これにより、管理ゲートウェイへの接続および、お客様のサーバ同士の通信は可能になりますが、制御サーバとお客様のサーバとの相互接続は絶たれます。

Figure 6

一通りの設定が完了した後、インストールが正しく行われたかの検査を行います。
制御サーバの検査APIが呼ばれると、Linuxの場合はSSHを、Windowsの場合はWinRMを使用してお引渡し前のお客様のサーバへ接続し、検査コマンドを実行することで各種検査を行います。

ただし、スイッチの設定が変わりお客様のサーバへ直接アクセスするルートはなくなっていますので、今度はお客様のサーバに提供される管理ゲートウェイを経由して検査を行います。
管理ゲートウェイはリバースプロキシの役割も兼ねており、制御サーバからお客様のサーバへ接続することはできますが、お客様のサーバから管理ゲートウェイを経由して制御サーバへ接続することはできません。

Figure 7

検査はOSの設定のほか、ハードウェアの構成などに対しても併せて行います。検査で問題がないことが確認されたら完了です。完了した旨を通知し、お客様にお渡しします。


次回は、オブジェクトストレージ設計上のポイントについて解説します。

コメントは受け付けていません。