Zdravím, Snažím se ( hlavně z důvodů testování) rozchodit nested virtualizaci pod KVM/Qemu. Mám Supermicro server s CPU Intel Xeon E3-1230 V2, OS Debian Wheezy s backports kernelem 3.16 a qemu balíček z backports.
uname -rv
3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt25-2~bpo70+1 (2016-04-12)
kvm --version
QEMU emulator version 2.1.2 (Debian 1:2.1+dfsg-12+deb8u5a~bpo70+1), Copyright (c) 2003-2008 Fabrice Bellard
libvirtd --version
libvirtd (libvirt) 1.2.9
VT-d je povoleno v Biosu, intel_iommu=on v /etc/default/grub.cfg
dmesg | grep -e DMAR -e IOMMU
[ 0.000000] ACPI: DMAR 0x00000000CDECEC38 000078 (v01 INTEL SNB 00000001 INTL 00000001)
[ 0.000000] Intel-IOMMU: enabled
[ 0.029242] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c9008020660262 ecap f010da
[ 0.029316] IOAPIC id 2 under DRHD base 0xfed90000 IOMMU 0
[ 0.652518] DMAR: No ATSR found
[ 0.652531] IOMMU 0 0xfed90000: using Queued invalidation
[ 0.652532] IOMMU: Setting RMRR:
[ 0.652539] IOMMU: Setting identity map for device 0000:00:1a.0 [0xcdd3c000 - 0xcdd58fff]
[ 0.652556] IOMMU: Setting identity map for device 0000:00:1d.0 [0xcdd3c000 - 0xcdd58fff]
[ 0.652564] IOMMU: Prepare 0-16MiB unity mapping for LPC
[ 0.652569] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[ 0.721558] AMD IOMMUv2 driver by Joerg Roedel..
[ 0.721560] AMD IOMMUv2 functionality not available on this system
EPT flag CPU je taky dostupný.
egrep -wo '^flags|vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo --color | sort |uniq -c
8 aes
8 ept
8 flags
8 flexpriority
8 lm
8 tpr_shadow
8 vmx
8 vnmi
8 vpid
konfigurace kvm pro nested je taky povolena:
cat /etc/modprobe.d/kvm-intel.conf
options kvm ignore_msrs=1
options kvm-intel nested=y ept=y
v konfiguraci vm mám
..
<kvm>
<hidden state='on'/>
</kvm>
</features>
<cpu mode='host-passthrough'>
</cpu>
..
..
..
<source bridge='br0'/>
<target dev='vnet0'/>
<model type='e1000'/>
ESXi 6 šlo z média ve virtuálu normálně nainstalovat, ale při instalaci to hlásilo:
"HARDWARE_VIRTUALIZATION WARNING: Hardware Virtualization is not a feature of the CPU, or is not enabled in the BIOS"
K ESXi se pak lze připojit pomocí vSphere klienta ovšem při pokusu spustit 64-bit VM to zahlásí tuto chybu.
Failed to start the virtual machine.
This virtual machine is configured for 64-bit guest operating systems. However, 64-bit operation is not possible.
This host supports Intel VT-x, but the Intel VT-x implementation is incompatible with VMware ESX.
Ve VM je pak upravený /etc/vmware/config takto:
..
vhv.allow = "TRUE"
hv.assumeEnabled="TRUE"
vmx.allowNested = "TRUE"
Takže se ptám, je to vina Qemu? A pokud ano, doporučili byste kompilaci vlastního Qemu, a pokud ano, jakého abych nenarazil na nějaký problém kvůli staršímu kernelu?