Portál AbcLinuxu, 6. května 2025 07:40
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.9VT-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 systemEPT 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 vpidkonfigurace kvm pro nested je taky povolena:
cat /etc/modprobe.d/kvm-intel.conf options kvm ignore_msrs=1 options kvm-intel nested=y ept=yv 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?
Před nějakým časem jsem tady napsal blog na téma Virtualizovaný cluster ve virtuálním prostředí. A protože tam se předpokládá "zahnízdění" KVM, je to zpracované i v readme:
Virtuální hostitel vyžaduje pro spouštění virtuálních nodů procesor, s hardwarovou podporou virtualizace a virtualizační prostředí, ve kterém bude spouštěn musí mít také podporu pro "zahnízdění" dalších virtuálů.
Primárně se počítá s virtualizací hostitele v rámci linuxového systému, který má zaveden 'kvm' modul (KVM hypervizor) s aktivovanou podporou pro "zahnízdění" ("nested") virtuálů.
To zda-li je aktivivaná podpora "zahnízdění" lze v linuxovém prostředí zjistit dotazem na kvm modul příslušného typu procesoru:
root@fyzicky_hostitel:~# modinfo kvm_intel | grep -i nested parm: nested:boolini root@fyzicky_hostitel:~# cat /sys/module/kvm_intel/parameters/nested NPro AMD..
root@fyzicky_hostitel:~# modinfo kvm_amd | grep -i nested parm: nested:int root@fyzicky_hostitel:~# cat /sys/module/kvm_amd/parameters/nested 1
Poznámka: U procesorů typu AMD je ve výchozím stavu podpora "zahnízdění" aktivována. U procesorů Intel nikoliv!!!
Aktivaci "zahnízdění" lze provést pouze při zavádění modulu. a to buď při startu linuxového systému:
A, předáním parametru 'kvm-intel.nested=1'
resp. 'kvm-amd.nested=1'
jádru při zavádění systému
B, nebo uvedením následujícího parametru do souboru v /etc/modprobe.d/kvm.conf
options kvm-intel nested=y options kvm-amd nested=yNebo opětovným zavedením modulu u systému již spuštěného:
root@fyzicky_hostitel:~# rmmod kvm-intel && modprobe kvm-intel nested=yPozor: Za běhu lze provést zavedení modulu s podporou "zahnízdění" pouze za předpokladu, že modul, který byl zaveden bez podory zahnízdění žádný virtuál nepoužívá!!!
root@fyzicky_hostitel:~# modinfo kvm_intel | grep -i nested parm: nested:bool root@fyzicky_hostitel:~# cat /sys/module/kvm_intel/parameters/nested Y
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.