Hyper-Vの上でさらにHyper-Vを動かせるNested Hyper-V。Windows 10の新ビルドで登場
10月13日付けでWindows 10のInsider Previewとして公開されたBuild 10565で、Hyper-Vの上でさらにHyper-Vを実行できるNested Hyper-V機能が、早期プレビューとして実装されたと、マイクロソフトのVirtualization Blogにポストされた記事「Windows Insider Preview: Nested Virtualization」で紹介されています(日本マイクロソフト 高添氏の紹介記事)。
Hyper-Vの上でHyper-Vが動くということはつまり、物理マシンの上にWindows 10をインストールし、そこで起動したHyper-V上の仮想マシンの上にさらにWindows 10をインストールし、さらにそこで起動したHyper-Vの上でWindows 10をインストールして実行できる、ということになります。
Nested Hyper-Vを紹介する前述の記事では、実際に1台のPC上で3重にネストされたWindows 10の画面が示されていました。
Nested Hyper-Vはどのような仕組みなのか、説明を引用します。
Hyper-V relies on hardware virtualization support (e.g. Intel VT-x and AMD-V) to run virtual machines. Typically, once Hyper-V is installed, the hypervisor hides this capability from guest virtual machines, preventing guests virtual machines from installing Hyper-V (and many other hypervisors, for that matter).
Hyper-Vは仮想マシンの実行の際にハードウェアの仮想化支援機能に依存します(例:Intel VT-xやAMD-Vなど)。基本的には、Hyper-Vをインストールするとハイパーバイザはこうした機能をゲスト仮想マシンからは見えなくしてしまうため、ゲスト仮想マシンにHyper-Vをインストールすることはできないのです。
Nested virtualization exposes hardware virtualization support to guest virtual machines. This allows you to install Hyper-V in a guest virtual machine, and create more virtual machines “within” that underlying virtual machine.
Nested仮想化はこのハードウェア仮想化支援機能をゲスト仮想マシンに対しても見えるようにします。これによって、ゲスト仮想マシンでもHyper-Vのインストールが可能になり、仮想マシン“内”で仮想マシンを作成できるようになります。
Hyper-V Containerのために仮想マシンのネストが必要だった
なぜマイクロソフトはNested Hyper-Vを実装しようとしているのかというと、その理由はこれから登場予定のコンテナ技術である「Hyper-V Container」にあります。
次期Windows ServerではDockerのようなコンテナ機能である「Windows Server Container」が実装されることはすでに発表されていますが、もう1つ「Hyper-V Container」という機能も実装されます。
これはコンテナの分離レベルをHyer-Vの機能を用いて仮想マシン並みに引き上げることで、軽量で迅速なコンテナの利点を生かしつつ仮想マシンの持つセキュアな環境を実現するというもの。
Hyper-Vをネスト可能にすることで、このHyper-V Containerを仮想環境上で利用できるようになります。そのためにマイクロソフトはNested Hyper-Vに取り組んでいるのです。
あわせて読みたい
Node.js、初のLong Term Support対象となる「Node.js 4.2」コード名“Argon”がリリース。リリースから2年半はメンテナンス
≪前の記事
OpenStackのマネージドサービスを提供するBlue Box、「Private Cloud as a Service」の背景を聞く