Включение вложенной виртуализации в Proxmox

Чаще всего, виртуализация в виртуализации нужна для развертывания тестовых стендов, например, когда мы хотим познакомиться с технологией виртуализации, но у нас нет под рукой свободного железа. Также некоторые приложения могут потребовать технологии виртуализации.
Мы рассмотрим процесс включения вложенной виртуализации в Proxmox для процессоров Intel и AMD.
Поддержка вложенной виртуализации для Proxmox
Для начала, нужно чтобы сам гипервизор поддерживал технологию вложенной виртуализации.
Для процессоров Intel и AMD процесс настройки немного отличается. Уточнить процессор, на котором работает Proxmox можно командой:
lscpu | egrep --color -i "Vendor ID|Model name"
Для удобства мы создадим переменные, которые нам помогут выполнить универсальные команды для разных процессоров.
а) Для процессоров Intel:
export CPU=intel
export nested_val=Y
б) Для процессоров AMD:
export CPU=amd
export nested_val=1
Теперь тип процессора не имеет значения для наших дальнейших действий.
Проверяем, включена ли поддержка вложенной виртуализации:
cat /sys/module/kvm_${CPU}/parameters/nested
Если мы видим:
N
То создаем файл с модулем ядра командой:
echo "options kvm-${CPU} nested=${nested_val}" > /etc/modprobe.d/kvm-${CPU}.conf
И применяем изменения:
modprobe -r kvm_${CPU}
modprobe kvm_${CPU}
Еще раз проверяем:
cat /sys/module/kvm_${CPU}/parameters/nested
Мы должны увидеть:
Y
Идем дальше.
Включение VT-X для виртуальной машины
Чтобы виртуальная машина поддерживала технологии виртуализации, выполняем команду:
qm set <ID> --cpu host
* где <ID> — идентификатор виртуальной машины.
Чтобы настройка применилась, необходимо выключить и включить виртуальную машину. При этом тип процессора для виртуальной машины станет host:
Подключаемся к консоли виртуальной машины и вводим команду:
egrep --color -i "svm|vmx" /proc/cpuinfo
Мы должны увидеть большой вывод информации.
Вложенная виртуализация включена.