Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Info

Данная статья применима к:

  • ОС СН Смоленск 1.6
  • ОС ОН Орёл 2.12


Введение

Вложенная аппаратная виртуализация (далее - ВАВ) - это виртуализация в которой одни виртуальные машины работают внутри других виртуальных машин в рамках одного гипервизора. Используется при ВАВ используется при ограниченных физических ресурсах по железу, например для создания стендов с ПК СВ "Брест" в контексте облачной виртуализации.

Warning
По умолчанию (из коробки) ВАВ не работает.


Info
titleДля включения ВАВ, необходимо соблюдение следующих условий:
  1. Использование новейших достаточно новых процессоров Intel или AMD;
  2. Включение поддержки nested на хостовой машине
Настройка
  1. ;

Проверка возможности включения ВАВ на хост-машине

Для процессоров Intel и процессоров AMD используются разные модули виртуализации - модуль kvm_intel и модуль kvm_amd. Если есть сомнения в том, какой именно модуль используется на машине, проверить загруженный модуль можно командой:

Command

Для включения поддержки nested на Intel необходимо ввести следующую команду:

Code Block
languagexml
sudo echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf

Для AMD

Для включения поддержки nested на AMD необходимо ввести следующую команду:

Code Block
languagexml
sudo echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf

Перезагрузить хостовую машину командой:

Code Block
languagexml
sudo reboot

Или модули ядра:

 Для Intel:

Code Block
languagexml
linenumberstrue
sudo modprobe -r kvm_intel 
sudo modprobe kvm_intel

Для AMD

Code Block
languagexml
linenumberstrue
sudo modprobe -r kvm_amd 
sudo modprobe kvm_amd

Проверка

Для Intel

Чтобы проверить, включена ли поддержка nested на Intel после перезагрузки системы/модулей необходимо ввести следующую команду:

Code Block
languagexml
sudo cat /sys/module/kvm_intel/parameters/nested

Если выводится ответ:

Code Block
languagexml
N

То это означает что nested не включена

Если выводится ответ:

Code Block
languagexml
Y

То это означает что nested включена

Для AMD

Чтобы проверить, включена ли поддержка nested для AMD необходимо ввести следующую команду:

Code Block
languagexml
sudo cat /sys/module/kvm_amd/parameters/nested

Если выводится ответ:

Code Block
languagexml
0

То это означает что nested не включена

Если выводится ответ:

Code Block
languagexml
1

То это означает что nested включена

Пример ВАВ с использованием virt-manager:

Далее, чтобы ВАВ могла использоваться, в настройках создаваемой ВМ в разделе "Процессоры" необходимо выбрать тип конфигурации - "Копировать конфигурацию ЦП хоста".

expand
lsmod | grep kvm

Для того, чтобы проверить, поддерживает ли используемый процессор ВАВ, нужно выполнить одно из следующих команд:

Для процессоров Intel (модуль kvm_intel)Для процессоров AMD (модуль kvm_amd)


Command

cat /sys/module/kvm_intel/parameters/nested



Command

cat /sys/module/kvm_amd/parameters/nested


Если ВАВ поддерживается, то в выводе команды будет указано Y или 1.
Если ВАВ не поддерживаетя, то в выводе команды будет указано N или 0.

Включение ВАВ на хост-машине

  1. Временное включение без перезагрузки ОС, изменения остаются в силе до перезагрузки ОС:
    1. Остановить все запущенные виртуальные машины;
    2. Выгрузить модуль виртуализации:

      Для процессоров Intel (модуль kvm_intel)Для процессоров AMD (модуль kvm_amd)


      Command

      sudo modprobe -r kvm_intel



      Command

      sudo modprobe  -r kvm_amd



    3. Загрузить модуль виртуализации с включенной ВАВ:

      Для процессоров Intel (модуль kvm_intel)Для процессоров AMD (модуль kvm_amd)


      Command

      sudo modprobe kvm_intel nested=1



      Command

      sudo modprobe kvm_amd nested=1



  2. Постоянное включение, автоматическое включение после перезагрузки ОС:
    1. Отредактировать (при отсутствии - создать) файл /etc/modprobe.d/kvm.conf, включив в него следующую строчку:

      Для процессоров Intel (модуль kvm_intel)Для процессоров AMD (модуль kvm_amd)


      Command

      options kvm_intel nested=1



      Command

      options kvm_amd nested=1



    2. Перезагрузить машину:

      Command
      sudo reboot


Включение ВАВ на гостевой машине

  1. Открыть Менеджер Виртуальных Машин;
  2. Выбрать виртуальную машину, в которой требуется использовать ВАВ;
  3. Выбрать страницу "Показать виртуальное оборудование";
  4. Выбрать пункт "Процессоры";
  5. Включить отметку "Копировать конфигурацию ЦП хоста";
  6. Нажать кнопку "Сохранить";

Image Modified

Либо в настройках вирт-менеджера указать для всех создаваемых ВМ использование конфигурации ЦП хостовой машины.:

  • "Менеджер виртуальных машин" - "Правка" - "Параметры" - на вкладке "Новая ВМ"
-
  • ;
  • в выпадающем списке параметров в пункте: "ЦП по умолчанию" выбрать
-
  • значение "Копировать описание процессора хоста":
Expand
titleПример:

Во вложенной


Проверка работоспособности ВАВ на гостевой машине

Для проверки работоспособности ВАВ на гостевой машине:

  1. Установить на гостевой машине пакет astra-kvm:

    Command
    sudo apt install astra-kvm



  2. Выполнить на гостевой машине команду проверки работоспособности хоста виртуализации:

    Command
    Titlesudo 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 обозначает, что виртуализация работает нормально.

Известные проблемы

Во вложенной ВМ не работает мышь если не добавить устройство "Планшет".

Для этого добавления планшета при создании ВМ в окне проверки конфигурации необходимо:

  1. Нажать кнопку "Добавить оборудование";
  2. Слева выбрать тип добавляемого виртуального оборудования: "Ввод" (4я строка сверху);
  3. Оставить предложенный по умолчанию тип "Графический планшет USB EvTouch";
  4. Нажать кнопку готово.


Expand
titleПример: