VMware ESXi(vSphere)では、正式サポートではないが、検証用にネスト仮想化(Nested Virtualize)を使用することができる。 これを使用して、ESXiのゲストOSとしてUbuntu(Linux)をインストールし、その中でVirtualBoxを使用することを考えた。
最終的にはPCF Dev(Pivotal Cloud Foundry Develop)を使用したかったのだが、エラーでネスト仮想化できず失敗した...
自宅LinuxVMでPCF Dev(Cloud Foundry)を構築する(失敗) - designetwork
サーバースペック
試験した環境は以下の通り。ゲストOSはUbuntuを使っているが、Windows, Linux問わず同様にエラーで失敗した。
物理サーバー
仮想サーバー Ubuntu16.04.1 (Linux)
- CPU:1CPU2コア
- Memory:3GB
- DISK:64GB
- Virtual Box 5.1
ESXiのネストのための設定
ネスト(Nested)構成にするため、追加設定が必要となる。以下の通りゲストOSのVT-xを有効化してサービスを再起動する。
# vi /etc/vmware/config libdir = "/usr/lib/vmware" authd.proxy.nfc = "vmware-hostd:ha-nfc" authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl" authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl" authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc" authd.fullpath = "/sbin/authd" vhv.enable = TRUE // add # /etc/init.d/hostd restart watchdog-hostd: Terminating watchdog process with PID 98940 hostd stopped. Ramdisk 'hostd' with estimated size of 127MB already exists hostd started. ~ #
vSphereのゲストOSはデフォルトではVT-xが有効になっていない。 仮想マシンをpoweroffし、設定を変更する。「オプション」タブの「CPU/MMU 仮想化」はデフォルトで”自動”になっているところを”Intel VT-x/AMD-vを命令セット仮想化に使用し、ソフトウェアをMMU仮想化に使用”を選択する。 仮想マシンpoweroff > 設定変更 > 仮想マシンパワーオン の順で作業する。
VT-x is not available
上記のPCF Devインストールの中でエラーに遭遇した。
VirtualBox
FAILED
Error: failed to start VM: failed to execute 'VBoxManage startvm pcfdev-v0.389.0 --type headless': exit status 1: VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole
Waiting for VM "pcfdev-v0.389.0" to power on...
VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX)
VT-x(CPU仮想化機構)が動作していないというように見える。
vSphere Clientエラー
ゲストOSをパワーオフし、サマリ画面を見ると以下のような状態になっている。 仮想マシンが起動できない。サマリ画面ではこのようなエラーが表示されている。
Virtualized Intel VT-x/EPT is not supported on this platform.
仮想 msg.intel.hvhwmmu を使わずに続行しますか?
しかし、パワーオンしようとした際にエラーが発生した。失敗...
仮想 msg.intel.hvhwmmu には msg.intel.hvhwmmu の優先モードが必要です。自動に戻しています。
CPU(Core 2 Quad)がゲスト仮想化に対応していない
原因が分からず調査していたら以下のディスカッションを発見。
こちらによると、Core 2 QuadではNested VMをサポートしていない...
Core 2 systems do not support EPT, so you will not be able to run nested 64-bit VMs.
まとめ
Core 2 Quad(Duo)はネスト仮想化(Nested Virtualization)を使用できない。 Core iシリーズ以上のCPUに変更する必要あがある。