Включение nested виртуализации в KVM

Включение nested виртуализации в KVM

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Вложенная (nested) виртуализация позволяется запускать виртуальные сервера внутри существующего виртуального сервера, используя аппаратное ускорение хоста.

Данный метод лучше всего использовать для тестового стенда или отладки. Не рекомендуется использовать для продакшн.

Проверяем поддержку nested виртуализации

Для процессоров Intel проверяем файл /sys/module/kvm_intel/parameters/nested, для AMD - /sys/module/kvm_amd/parameters/nested.

Если в качестве содержимого наблюдаем 1 или Y, значит процессор поддерживает nested виртуализацию, в противном случае - 0 и N говорит о том, что nested виртуализация не поддерживается.

Активируем nested виртуализацию для Intel-процессоров

Сперва необходимо отключить все работающие виртуальные сервера и выгрузить модуль kvm_probe.

1
modprobe -r kvm_intel

Активируем опцию:

1
modprobe kvm_intel nested=1

Nested виртуализация активирована до следующей перезагрузки сервера.
Для перманентного применения необходимо в конфигурационный файл /etc/modprobe.d/kvm.conf добавить строчку:

1
options kvm_intel nested=1

Активируем nested виртуализацию для AMD-процессоров

Сперва необходимо отключить все работающие виртуальные сервера и выгрузить модуль kvm_amd .

1
modprobe -r kvm_amd

Активируем опцию:

1
modprobe kvm_amd nested=1

Nested виртуализация активирована до следующей перезагрузки сервера.
Для перманентного применения необходимо в конфигурационный файл /etc/modprobe.d/kvm.conf добавить строчку:

1
options kvm_amd nested=1

Проверяем активацию nested виртуализации.

1
2
3
4
5
6
7
8
# virt-host-validate
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
LXC: Checking for Linux >= 2.6.26 : PASS
...