このドキュメントでは、ネストされた仮想化に対する Compute Engine のサポートについて説明します。ネストされた仮想化では、他の VM 内で仮想マシン(VM)インスタンスを実行して、独自の仮想環境を作成できます。ネストされた仮想化をサポートするために、Compute Engine は VM に Intel VT-x 命令を追加します。これにより、VM を作成すると、その VM 上にあるハイパーバイザは追加の VM を実行できるようになります。
Compute Engine VM は、Google のセキュリティ強化された KVM ベースのハイパーバイザを備えた物理ホストで実行されます。ネストされた仮想化では、物理ホストとそのハイパーバイザはレベル 0(L0)環境にあります。L0 環境には複数のレベル 1(L1)VM をホストできます。各 L1 VM には、レベル 2(L2)VM のインストールに使用するもう 1 つのハイパーバイザがあります。図 1 に、物理ホスト、L1 VM、L2 VM の関係を示します。
ユースケース
ネストされた仮想化の使用としては、次のようなシナリオが考えられます。
Compute Engine で実行できない VM があります。たとえば、オンプレミス ワークロードの障害復旧ソリューションが、Compute Engine VM にフェイルオーバーする VM 上で実行されているとします。ネストされた仮想化を実行すると、Compute Engine への VM の移植にかかる時間を短縮できます。
さまざまなバージョンの OS でソフトウェア パッケージの新しいバージョンのテストと検証を行うソフトウェア検証フレームワークがあります。ネストされた仮想化を使用すると、Compute Engine イメージのライブラリを変換して管理する必要がなくなります。
パフォーマンスに関する注意事項
ハードウェア補助によるネストされた仮想化であっても、ネストされた VM で CPU バウンドのワークロードを実行すると、パフォーマンスが 10% 以上低下することがあります。また、入出力バウンドのワークロードでも 10% 以上低下する可能性があります。
制限事項
L1 VM には次の制限事項があります。
L1 VM でサポートされているハイパーバイザは Linux KVM のみです。Microsoft Hyper-V はサポートされていません。
次の VM は使用できません。
E2 VM
AMD と Arm のプロセッサを搭載した VM
各ゾーンでサポートされているプロセッサの詳細については、利用可能なリージョンとゾーンをご覧ください。
L2 VM には次の制限事項があります。
- ライセンス取得済みのオペレーティング システムの場合は、お客様が所有するライセンスを使用する必要があります。
ネストされた仮想化の使用
ネストされた仮想化を使用するには、次の手順を行います。
ネストされた仮想化が有効になっている VM またはネストされた VM の作成中に問題が発生した場合は、ネストされた仮想化のトラブルシューティングをご覧ください。