ネストされた仮想化について


このドキュメントでは、ネストされた仮想化に対する 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 の関係を示します。

図 1. L0 物理ホスト、L1 VM、L2 VM の関係。

ユースケース

ネストされた仮想化の使用では、次のようなシナリオが考えられます。

  • Compute Engine で実行できない VM があります。たとえば、オンプレミス ワークロードの障害復旧ソリューションが、Compute Engine VM にフェイルオーバーする VM 上で実行されているとします。ネストされた仮想化を実行すると、Compute Engine への VM の移植にかかる時間を短縮できます。

  • さまざまなバージョンの OS でソフトウェア パッケージの新しいバージョンのテストと検証を行うソフトウェア検証フレームワークがあります。ネストされた仮想化を使用すると、Compute Engine イメージのライブラリを変換して管理する必要がなくなります。

パフォーマンスに関する注意事項

ハードウェア補助によるネストされた仮想化であっても、ネストされた VM で CPU バウンドのワークロードを実行すると、パフォーマンスが 10% 以上低下することがあります。また、入出力バウンドのワークロードでも 10% 以上減少する可能性があります。

制限事項

L1 VM には次の制限事項があります。

  • Linux ベースの OS を実行する必要があります。Windows Server イメージは使用できません。

  • E2 および N2D のマシンタイプは使用できません。

  • Intel Haswell 以降のプロセッサを使用する必要があります。AMD プロセッサはサポートされていません。ゾーンのデフォルトのプロセッサが Sandy Bridge または Ivy Bridge の場合、そのゾーンの VM の最小 CPUIntel Haswell 以降に変更してください。各ゾーンでサポートされているプロセッサの詳細については、利用可能なリージョンとゾーンをご覧ください。

L2 VM には次の制限事項があります。

  • QEMU を実行できる OS を使用する必要があります。
  • ライセンスされた OS の場合、お客様所有ライセンスを使用する必要があります。

テスト済みのオペレーティング システム

次の表に、Google が基本的な起動テストと統合テストを実施する L1 と L2 OS の組み合わせを示します。表にない VM の組み合わせで実行に問題がある場合は、Cloud カスタマーケアに問い合わせる前に、テスト済み OS の組み合わせでテストを行い、同じ問題が発生するかどうか確認してください。L2 VM OS の場合、Google はサポートを提供していないため、お客様所有ライセンスの使用が必要です。

L1 VM OS L2 VM OS
Debian 9、カーネル バージョン 4.9 CentOS 6.5、カーネル バージョン 2.6
Debian 9、カーネル バージョン 4.9
RHEL 5.11、カーネル バージョン 2.6
SLES 12 SP3、カーネル バージョン 4.4
Ubuntu 16.04 LTS、カーネル バージョン 4.15
Windows Server 2016 Datacenter
SLES 12 SP3、カーネル バージョン 4.4 SLES 12 SP3、カーネル バージョン 4.4
Ubuntu 16.04 LTS、カーネル バージョン 4.15 Ubuntu 16.04 LTS、カーネル バージョン 4.15

ネストされた仮想化の使用

ネストされた仮想化を使用するには、次の手順を行います。

  1. ネストされた仮想化の制約が無効になっているかどうかを確認する

  2. ネストされた仮想化が有効になった L1 VM を作成する

  3. ネストされた L2 VM を作成する

ネストされた仮想化が有効になっている VM またはネストされた VM の作成中に問題が発生した場合は、ネストされた仮想化のトラブルシューティングをご覧ください。