SC2012VMM でディスク2台構成の仮想マシンテンプレート作成したら・・・あれ?

Windows Developer Days の Hyper-V セッションの中で、ディスクは2台構成にしませんか?というお話をさせていただきました。

image

理由は簡単で、

① Hyper-V は IDE コントローラにつながった VHD(VHDX) からブートする必要がある

② SCSI コントローラーに接続した VHD(VHDX)では、ホットプラグ対応や ODX(ストレージ専用機への処理のオフロード)が利用できる

という Hyper-V の制約からくるものに加えて・・・

③ Windows Azure の仮想マシンで実現されている、ドライブ毎のライフサイクル管理を実現する

ためです。

****

② は、現行バージョンでも使えますが、次期サーバー OS の新機能 ReFS や ODX を活用するためには必須の設計となりますので、覚えておきましょう。

(ReFSの初期版はブート対応ではなく、ODXは SCSI コントローラー経由のディスクでサポートされる予定なので)

③ はチャレンジになると思いますが、アプリケーションの仮想化やサンドボックス化を進めることで、それらはOSと切り離して管理することができます。

そして、切り離しに成功した環境では、アプリは同じでOSを新しくしたり、OSはそのままにアプリを新しいものに付け替えたりすることが容易になるわけです。

仮想か物理か?という話ではなく、レイヤーを分けるという意味での仮想化の特徴をうまくとらえた仕組みと言えます。

******

さて、本題に入りましょう。

上記のような背景があるなら、SC2012VMMで仮想マシンのテンプレートを作る際にも ディスク2台構成にしたいと思うはずです。

仮想マシンを誰が作っても自動的にディスクが2台構成になるように、テンプレートに仕込んでおくというわけですね。

そこで、VMMのライブラリにOSの入った Sysprep済みVHDと、NTFSでフォーマットが終わっている容量127GBのVHDを用意し、それをベースにテンプレートを作成しました。

もちろん仮想マシンの作成には成功するのですが、残念ながら Windows のエクスプローラーから2台目のディスクが見えません。

オフラインになっているんです。

そこで、以下のような対策をしてみました。

まずは、以下の内容を持つ OnlineDisk.txt を作り、ライブラリに配置します。

--------------------------------------

Select disk 1

online disk

attributes disk clear readonly noerr

select partition 1

active

rescan

exit

------------------- -------------------

そして、仮想マシンテンプレートの 「OSの構成」の一番下にある[GUIRunOnce]に以下のコマンドを追加しました。

---------------------------------------

diskpart /s \\HV001.contoso.com\MSSCVMMLibrary\OnlineDisk.txt

---------------------------------------

\\以下は、ライブラリ上のファイルへのパスです。

この状態でテンプレートを保存し、実際に仮想マシンを作ってみると、ちゃんとディスク2台構成の仮想マシンができました。

ディスク複数台構成は、仮想マシンの管理だけを見ると管理工数が増えそうですが、その上のアプリケーションレイヤーまで意識したライフサイクルを考えるならば、管理工数を削減できる可能性を秘めた設計手法です。

もし、同じようなところで悩まれている方がいたら、参考にしてみてください。

日本マイクロソフト 高添