Windows 11/10のネストされた仮想化とは?仕組みと有効化方法を徹底解説
ネストされた仮想化(Nested Virtualization)とは、仮想マシンの中でさらにハイパーバイザーを動作させる技術のことです。Windows 10から導入されたこの機能について、必要性にかかわらず知っておくと役立つ情報をわかりやすく解説します。
コンテナーの中にコンテナー:Windowsにおけるネストされた仮想化
従来は、メインメモリが許す限り並列にコンテナーを作成し、それぞれ異なる用途で利用することができました。MicrosoftはInsiderビルド10565において、ネストされた仮想化機能をリリースしました。この機能により、Windowsではコンテナーの中にさらにコンテナーを作成できるようになります。まだ発展途上の機能ではありますが、押さえておくべきポイントを紹介します。
Hyper-Vを使った仮想化の仕組み
Windowsでは、Dockerを利用してシンプルなコンテナーを並列に作成できるほか、より高性能とされるHyper-Vコンテナーを作成することも可能です。ただし、Windowsコンテナーを並列に作成した場合、多くのケースで同じライブラリやリソースを共有してしまいます。その結果、問題のあるコンテナーがリソースを占有したまま解放せず、他のコンテナーの動作を妨げる事態が発生しかねません。これこそが、Hyper-Vコンテナーが登場した大きな理由です。
Hyper-Vコンテナーは、仮想環境ごとにすべてを個別に構築します。つまり、OS自体も再作成され、その仮想区画内で動作するアプリケーションに提供されます。共通の仮想リソースが存在しないため、リソースの競合が起きないのが特徴です。

Windowsのネストされた仮想化は、このHyper-Vによって実現されています。Microsoftによると、現時点でネストされた仮想化が正式に動作するのはHyper-Vコンテナーのみです。そのため、まず1つ目のコンテナーを作成し、その内部にもう1つのコンテナーを作成するという手順を守る必要があります。他のハイパーバイザーを使用したり、既存のコンテナーと並列に新たなHyper-Vコンテナーを作成しようとしても、正常に動作しない可能性があります。
ネストされた仮想化の仕組みと実装方法
先述のとおり、Hyper-Vコンテナーを作成すると、他のハイパーバイザーからはその存在が見えなくなります。つまり、ゲスト側から見えるのはコンテナーだけであり、実際のCPUは隠蔽されるため、並列にもう1つのコンテナーを作成することはできません。ここで生じる疑問は、「複数のHyper-Vコンテナーを並列に作成できるのか、それとも最初のコンテナーの中にしか作成できないのか」という点です。
Microsoftの公式ブログによれば、一度Hyper-Vコンテナーを作成すると、他のハイパーバイザーは実際のCPUを認識できないため、外側に追加のHyper-Vコンテナーをインストールすることはできません。代わりに、他の仮想化ソフトを実行すると、そのソフトはコンテナーを実際のCPUだと誤認識し、そのコンテナーの内部に仮想コンテナーを作成します。
これがネストされた仮想化です。コンテナーの中にコンテナーが入っており、しかもそれぞれが完全に独立しているため、共有ライブラリやドライバーによる干渉は発生しません。並列コンテナーの可否という疑問は残るものの、非常に魅力的な仕組みと言えます。以下は、Microsoftが公開しているネストされた仮想化の動作イメージです。

ネストされた仮想化を実際に導入する際には、いくつかの要件を確認する必要があります。主なチェックポイントは以下のとおりです。
- RAMの容量 … RAMは制限要因となります。搭載メモリが許容できる範囲でしかコンテナーを作成できません
- プロセッサーの対応状況 … Microsoftによると、現時点ではIntel VT-x対応CPUのみサポートされています
- ダイナミックメモリの無効化 … 動的メモリ機能はオフにしておく必要があります
- ランタイムメモリの管理 … 実行時のメモリ使用量を常に把握しておきましょう
現時点では依然として多くの課題が残されており、Microsoftが今後のアップデートで順次対応していくと見られます。ネストされた仮想化を試したい場合は、GitHubで公開されている専用のPowerShellスクリプトを利用すると便利です。
Windows 11/10はネストされた仮想化に対応している?
はい、Windows 11およびWindows 10はどちらもネストされた仮想化に対応しています。注意点として、これはソフトウェアベースの機能ではなくハードウェア依存の機能です。そのため、お使いのPCのCPUがSLAT(Second Level Address Translation/セカンドレベルアドレス変換)に対応している必要があります。非対応の場合、ネストされた仮想化を利用することはできません。
Windows 11/10でネストされた仮想化を有効にする方法
Hyper-Vで仮想マシンを作成する場合、特別な設定を追加で有効にする必要はありません。一方、VirtualBoxやVMwareなどサードパーティ製の仮想化ソフトを使用する場合は、各ソフトに用意された該当設定を探してください。仮想OSの中でさらに別の仮想マシンを作成・操作できるよう、仮想マシンを起動する前に必ずこれらの設定をオンにしておきましょう。
Windows 10でネストされた仮想化コンテナーを作成する具体的な手順などの詳細については、MicrosoftのMSDNブログ記事を参照することをおすすめします。
-
Windows 11/10のProgramDataフォルダーとは?役割とトラブル時の対処法を解説
Windows 11/10は、オペレーティングシステムの動作を支えるために、多数のシステムファイルやフォルダーを自動的に作成します。その中でもProgramDataフォルダーは重要なシステムフォルダーのひとつです。このフォルダーには、従来のデスクトップアプリやUWPアプリ(Microsoft Storeアプリ)のデータが格納されています。 ProgramDataフォルダーは、ユーザーが勝手に閲覧したり改変したりしないよう、既定では非表示に設定されています。そのため、名前の変更・移動・削除といった操作は絶対に行わないでください。 ProgramDataフォルダーの役割 ProgramDataフォ
-
Windows 11/10のシステム予約パーティションとは?役割と削除について解説
新規にフォーマットしたディスクにWindows 11/10やWindows 8/7をクリーンインストールすると、セットアップはまずハードディスクの先頭部分に小さなパーティションを作成します。これが「システム予約パーティション(System Reserved Partition)」です。その後、残りの未割り当て領域を使ってシステムドライブ(Cドライブ)が作成され、オペレーティングシステムがインストールされます。 エクスプローラーでPCを開いても、このパーティションは表示されません。ドライブ文字が割り当てられていないためで、通常見えるのはシステムドライブであるCドライブだけです。システム予約パーテ