Как включить вложенную виртуализацию, чтобы использовать VirtualBox внутри виртуальной машины KVM?

Как включить вложенную виртуализацию, чтобы использовать VirtualBox внутри виртуальной машины KVM?

У нас есть гипервизор 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), который запускает виртуальную машину, которую я хотел бы использовать как вложенный гипервизор VirtualBox ( L1). Поэтому я пытаюсь запустить VirtualBox внутри KVM. Некоторые подробности о гипервизоре 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

Также включена вложенная опция:

# cat /sys/module/kvm_amd/parameters/nested 
1

Внутри виртуальной машины KVM, где установлен VirtualBox (L1): Я пытаюсь запустить виртуальную машину, созданную Vagrant, и получаю следующее сообщение об ошибке:

...
==> 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

Ниже приведены настройки процессора KVM XML для L1гипервизора VirtualBox:

<vcpu placement='static'>1</vcpu>
<cpu mode='host-model' check='partial'>
  <model fallback='allow'/>
</cpu>

Я считаю, что здесь что-то нужно изменить, но я не совсем уверен, что именно. Я не могу найти никаких ресурсов по этой теме, поэтому и спрашиваю здесь. Как мне запустить гипервизор VirtualBox ( L1) внутри виртуальной машины KVM, чтобы запустить VM?

Любая помощь будет высоко оценен.

решение1

<cpu mode='host-passthrough'>
    <feature policy='require' name='svm'/>
</cpu>

Используйте эти настройки для процессора AMD в файле настроек виртуальной машины.

Связанный контент