これは かそうましんの うぃんどうず
『これはのみのぴこ』(谷
川俊太郎 著、和田 誠 絵、サンリード 1998年) という絵本をご存じでしょうか? ご家庭に小さなお子さんをお持ちの方は、平日にNHKの教育テレビ (現在はEテレと言うみたいですが)をぼうと眺めていて目にした(耳にした)ことがある方もいるかと思います。蚤の「ぴこ」の紹介から始まり、「ぷち」へと続く、壮大 (?) な物語です。今回は、「これは かそうましんの うぃんどうず (これは仮想マシンの Windows) ...」でいきましょう。
何の話かと言うと、仮想化テクノロジの入れ子で、VMware がまたやってくれました。仮想化テクノロジの入れ子というと、このブログでも、VMware Player の仮想マシンで VMware ESXi ホストを動かしたり、VMware Player や Hyper-V の仮想マシンで、Xen Server を動かしてみたことをお伝えしたことがあります。
仮想化でこれはできない? ・・・ 仮想化の仮想化 (2011/01/24)
つい最近、リリースされた、VMware Workstation 8、VMware Fusion 4、VMware ESXi 5.0 では、仮想マシンのゲストでハイパーバイザーを動かすオプションが追加されています。詳しくは、以下の VMware コミュニティ向けの記事をご覧ください。
■VMware Communities > Running Nested VMs
[URL] http://communities.vmware.com/docs/DOC-8970
この10月にリリースされたばかりの、VMware Player 4.0は、おそらく VMware Workstation 8.0 と同じコード ベースなので、できるかどうか試してみました。そしたらできました。次のスクリーンショットは、Windows 7 x64 にインストールした VMware Player 4.0に、とある細工をした仮想マシンを作成して、その中に Windows Server 2008 R2 をインストールしたものです。仮想マシンの中ですが、Hyper-V の役割を有効化して、Hyper-V ハイパーバイザーをロードし、さらにその上で仮想マシン (Windows Server 2008 R2のインストール画面でわかるように x64 仮想マシン)を動かしているところです。
とある細工をした仮想マシンと言っても、仮想マシンのプロセッサに新たに追加された「Intel VT-x/EPT または AMD-V/RVI を仮想化」オプションを有効化して、さらに VMX ファイルに「Hypervisor.cpuid.v0 = FALSE」の 1 行を追加しただけです。もちろん、物理マシンは、Intel VT-x/EPT に対応したマシンを使用しています。
同じ方法で作成した仮想マシンに、Citrix XenServer 6.0 をインストールしてみました。
Xen カーネル ベースの XenServer は、ハードウェア (物理でも仮想でも) がハードウェア仮想化支援に対応していなくても、準仮想化で Linux ゲストを動かすことができます。ただし、完全仮想化で Windows ゲストを動かすためには、ハードウェア仮想化支援が必須になります。上のスクリーンショットを見ればわかるように、VMware Player の仮想マシン上で動く、XenServer 6.0 ホスト上で、x64 仮想マシンが動いています。
「Hypervisor.cpuid.v0 = FALSE」のおまじないが、物理マシンのハードウェア仮想化支援を仮想マシンにバイパスしているようなのですが、ハイパーバイザーは物理ハードウェアのすぐ上で動くものという常識が頭から離れず、混乱してしまいます。VMware さんは、いつもやってくれます。
『これはのみのぴこ』的に表現するなら...
これは かそうましんの うぃんどうず の
かそうましんを ほすとしている はいぱーぶい の
うぃんどうず さーばーが うごいている かそうましん を
ほすとしている ぶいえむうぇあ ぷれーやー のとなり の
かそうましんの なかでうごいている ぜんさーばー の
かそうましんに うぃんどうず さーばー のいんすとーるを はじめたけど
じかんが かかりそうなので ぷちっ
おあとがよろしいようで (←これって誤用みたいですね)。