Оглавление |
---|
Информация | ||
---|---|---|
|
|
Введение
Вложенная аппаратная виртуализация (далее - ВАВ) - это виртуализация в которой одни виртуальные машины работают внутри других виртуальных машин в рамках одного гипервизора. Используется при ВАВ используется при ограниченных физических ресурсах по железу, например для создания стендов с ПК СВ "Брест" в контексте облачной виртуализации.
Предупреждение |
---|
По умолчанию (из коробки) ВАВ не работает. |
Информация | ||
---|---|---|
| ||
|
|
Проверка возможности включения ВАВ на хост-машине
Для процессоров Intel
Для включения поддержки nested на Intel необходимо ввести следующую команду:
Блок кода | ||
---|---|---|
| ||
sudo echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf |
Для AMD
Для включения поддержки nested на AMD необходимо ввести следующую команду:
Блок кода | ||
---|---|---|
| ||
sudo echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf |
Перезагрузить хостовую машину командой:
Блок кода | ||
---|---|---|
| ||
sudo reboot |
Или модули ядра:
Для Intel:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo modprobe -r kvm_intel
sudo modprobe kvm_intel |
Для AMD
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo modprobe -r kvm_amd
sudo modprobe kvm_amd |
Проверка
Для Intel
Чтобы проверить, включена ли поддержка nested на Intel после перезагрузки системы/модулей необходимо ввести следующую команду:
Блок кода | ||
---|---|---|
| ||
sudo cat /sys/module/kvm_intel/parameters/nested |
Если выводится ответ:
Блок кода | ||
---|---|---|
| ||
N |
То это означает что nested не включена
Если выводится ответ:
Блок кода | ||
---|---|---|
| ||
Y |
То это означает что nested включена
Для AMD
Чтобы проверить, включена ли поддержка nested для AMD необходимо ввести следующую команду:
Блок кода | ||
---|---|---|
| ||
sudo cat /sys/module/kvm_amd/parameters/nested |
Если выводится ответ:
Блок кода | ||
---|---|---|
| ||
0 |
То это означает что nested не включена
Если выводится ответ:
Блок кода | ||
---|---|---|
| ||
1 |
То это означает что nested включена
Пример ВАВ с использованием virt-manager:
Далее, чтобы ВАВ могла использоваться, в настройках создаваемой ВМ в разделе "Процессоры" необходимо выбрать тип конфигурации - "Копировать конфигурацию ЦП хоста".
и процессоров AMD используются разные модули виртуализации - модуль kvm_intel и модуль kvm_amd. Если есть сомнения в том, какой именно модуль используется на машине, проверить загруженный модуль можно командой:
Command |
---|
lsmod | grep kvm |
Для того, чтобы проверить, поддерживает ли используемый процессор ВАВ, нужно выполнить одно из следующих команд:
Для процессоров Intel (модуль kvm_intel) | Для процессоров AMD (модуль kvm_amd) | ||||
---|---|---|---|---|---|
|
|
Если ВАВ поддерживается, то в выводе команды будет указано Y или 1.
Если ВАВ не поддерживаетя, то в выводе команды будет указано N или 0.
Включение ВАВ на хост-машине
- Временное включение без перезагрузки ОС, изменения остаются в силе до перезагрузки ОС:
- Остановить все запущенные виртуальные машины;
Выгрузить модуль виртуализации:
Для процессоров Intel (модуль kvm_intel) Для процессоров AMD (модуль kvm_amd) Command sudo modprobe -r kvm_intel
Command sudo modprobe -r kvm_amd
Загрузить модуль виртуализации с включенной ВАВ:
Для процессоров Intel (модуль kvm_intel) Для процессоров AMD (модуль kvm_amd) Command sudo modprobe kvm_intel nested=1
Command sudo modprobe kvm_amd nested=1
- Постоянное включение, автоматическое включение после перезагрузки ОС:
Отредактировать (при отсутствии - создать) файл /etc/modprobe.d/kvm.conf, включив в него следующую строчку:
Для процессоров Intel (модуль kvm_intel) Для процессоров AMD (модуль kvm_amd) Command options kvm_intel nested=1
Command options kvm_amd nested=1
Перезагрузить машину:
Command sudo reboot
Включение ВАВ на гостевой машине
- Открыть Менеджер Виртуальных Машин;
- Выбрать виртуальную машину, в которой требуется использовать ВАВ;
- Выбрать страницу "Показать виртуальное оборудование";
- Выбрать пункт "Процессоры";
- Включить отметку "Копировать конфигурацию ЦП хоста";
- Нажать кнопку "Сохранить";
Либо в настройках вирт-менеджера указать для всех создаваемых ВМ использование конфигурации ЦП хостовой машины.:
- "Менеджер виртуальных машин" - "Правка" - "Параметры" - на вкладке "Новая ВМ"
- ;
- в выпадающем списке параметров в пункте: "ЦП по умолчанию" выбрать
- значение "Копировать описание процессора хоста":
Раскрыть | ||
---|---|---|
| ||
Проверка работоспособности ВАВ на гостевой машине
Для проверки работоспособности ВАВ на гостевой машине:
Установить на гостевой машине пакет libvirt-clients:
Command sudo apt install libvirt-clients Выполнить на гостевой машине команду проверки работоспособности хоста виртуализации:
Command Title sudo 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
Сообщение PASS обозначает, что виртуализация работает нормально.
Известные проблемы
Во вложенной ВМ не работает мышь если не добавить устройство "Планшет".
Для этого добавления планшета при создании ВМ в окне проверки конфигурации необходимо:
- Нажать кнопку "Добавить оборудование";
- Слева выбрать тип добавляемого виртуального оборудования: "Ввод" (4я строка сверху);
- Оставить предложенный по умолчанию тип "Графический планшет USB EvTouch";
- Нажать кнопку готово.
Раскрыть | ||
---|---|---|
| ||