
Temos um hipervisor KVM ( L0
, AMD, Kernel: Linux level0kvmhypervisor 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
), que executa uma máquina virtual que eu gostaria de usar como um hipervisor VirtualBox aninhado ( L1
). Então, o que estou tentando fazer é executar o VirtualBox dentro do KVM. Alguns detalhes sobre o hipervisor KVM ( L0
):
# cat /proc/cpuinfo
processor : 0 ... 23
vendor_id : AuthenticAMD
cpu family : 23
model : 113
model name : AMD Ryzen 9 3900 12-Core Processor
stepping : 0
microcode : 0x8701021
cpu MHz : 2193.155
cache size : 512 KB
physical id : 0
siblings : 24
core id : 0
cpu cores : 12
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : ... svm ...
bugs : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips : 6188.58
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
# dpkg --list | egrep -- "(kvm|libvirt)" | sed 's/amd64.*//g'
ii libsys-virt-perl 5.0.0-1
ii libvirt-clients 5.0.0-4+deb10u1
ii libvirt-daemon 5.0.0-4+deb10u1
ii libvirt-daemon-system 5.0.0-4+deb10u1
ii libvirt-glib-1.0-0:
ii libvirt0:
ii python3-libvirt 5.0.0-1
ii qemu-kvm 1:3.1+dfsg-8+deb10u8
A opção aninhada também está habilitada:
# cat /sys/module/kvm_amd/parameters/nested
1
Dentro da máquina virtual KVM, onde o VirtualBox está instalado (L1): estou tentando iniciar uma VM criada pelo Vagrant e recebo a seguinte mensagem de erro:
...
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "357a07b4-7d81-4336-9ea6-0dbf0ab49d18", "--type", "headless"]
Stderr: VBoxManage: error: AMD-V is not available (VERR_SVM_NO_SVM)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole
Estas são as configurações de CPU KVM XML para o L1
hipervisor VirtualBox:
<vcpu placement='static'>1</vcpu>
<cpu mode='host-model' check='partial'>
<model fallback='allow'/>
</cpu>
Acredito que algo deve ser mudado aqui, mas não tenho certeza do que. Não consigo encontrar nenhum recurso sobre esse assunto, por isso estou perguntando aqui. Como posso fazer com que o hipervisor VirtualBox ( L1
) seja executado dentro de uma máquina virtual KVM para iniciar uma VM?
Qualquer ajuda seria muito apreciada.
Responder1
<cpu mode='host-passthrough'>
<feature policy='require' name='svm'/>
</cpu>
Use essas configurações para uma CPU AMD no arquivo de configurações da máquina virtual.