Представляем вложенную виртуализацию в Windows Server 2016

Опубликовано: 18 Апреля, 2023

Фон вложенной виртуализации

Windows Server 2016 Technical Preview 4 содержит новую вложенную функцию виртуализации, о которой ИТ-группы просили еще со времен первой версии Hyper-V. Если вы впервые столкнулись с этой концепцией, вложенная виртуализация предоставляет возможность запуска среды виртуализации внутри виртуальной машины (ВМ). Вы спросите, а зачем мне это? Одним из наиболее распространенных применений вложенной виртуализации является среда обучения, поскольку она уменьшает количество физических серверов, необходимых для запуска гипервизоров для обучения пользователей.

Короче говоря, вложенная виртуализация позволяет вам установить роль Hyper-V на физическом сервере, создать виртуальную машину, которая выполняется в гипервизоре Hyper-V, установить и запустить роль Hyper-V в этой виртуальной машине и создать новую виртуальную машину внутри оригинал ВМ. Современные гипервизоры, такие как Hyper-V, используют поддержку аппаратной виртуализации процессоров Intel и AMD для запуска виртуальных машин. Однако только в этой последней версии Windows Server гипервизор Hyper-V предоставляет эти критически важные функции аппаратной виртуализации непосредственно виртуальным машинам.

Требования к развертыванию для вложенной виртуализации

Прежде чем вы сможете развернуть вложенную виртуализацию, вы должны настроить свою среду так, чтобы она соответствовала описанным здесь минимальным требованиям.

Для физического хоста:

  • Windows Server 2016 Technical Preview 4 со всеми установленными обновлениями
  • Процессор Intel с поддержкой Intel VT-x (например, AMD-V еще не поддерживается)
  • Рекомендуется не менее 16 ГБ ОЗУ (ОЗУ для хоста и вложенного гипервизора)
  • Защита устройств отключена
  • Безопасность на основе виртуализации (VBS) отключена

Вложенная виртуальная машина с Hyper-V

  • Windows Server 2016 Technical Preview 4 со всеми установленными обновлениями
  • Минимум 4 ГБ оперативной памяти для запуска (рекомендуется 8 ГБ)
  • Динамическая память отключена
  • Подмена MAC-адреса включена
  • Емкость дискового пространства для размещения виртуальных машин и файлов, таких как ISO
  • Виртуальная машина поколения 2 (рекомендуется)

Настройка узла Hyper-V для поддержки вложенной виртуализации

В этом разделе вы узнаете, как подготовить физический хост для поддержки вложенной виртуализации. Выполните приведенную ниже процедуру перед созданием виртуальной машины, в которой вы планируете установить роль Hyper-V:

  • Убедитесь, что физический узел соответствует рекомендуемым требованиям для запуска Hyper-V (Intel VT-X, 16 ГБ ОЗУ, 1 диск ОС, 1 диск данных для хранения ВМ, сетевая карта 1 ГБ).
  • Установите Windows Server 2016 Technical Preview на хост (используйте USB-накопитель емкостью не менее 8 ГБ для создания загрузочного установочного носителя).
  • Настройте физический сервер со всеми последними обновлениями
  • Установите роль Hyper-V с помощью диспетчера серверов или PowerShell (перезагрузите сервер после завершения установки).
  • Убедитесь, что одна сетевая карта включена в качестве сетевого коммутатора Hyper-V.
  • Убедитесь, что Device Guard отключен

После выполнения всех этих шагов вы можете настроить виртуальную машину для вложенной виртуализации.

Настройка виртуальной машины для вложенной виртуализации

После правильной настройки физического хоста вы можете создать виртуальную машину для поддержки вложенной виртуализации. Используйте следующую процедуру при подготовке новой виртуальной машины на физическом хосте:

  1. Создайте виртуальную машину, используя следующий пример конфигурации:
    • Имя — вложенный хост
    • Поколение — виртуальная машина поколения 2
    • Оперативная память — 8 ГБ с отключенной динамической памятью (рекомендуемый минимум)
    • Сеть — 1 сетевой адаптер (рекомендуемый минимум)
    • Хранилище ОС — 127 ГБ
    • Хранилище данных. Настройте дополнительный виртуальный жесткий диск и выберите его размер в зависимости от того, сколько виртуальных машин вы планируете создать и запустить. Кроме того, подумайте о том, чтобы сделать его фиксированным диском.
    • Процессоры — 2 процессора (минимум рекомендуется, в зависимости от вашей рабочей нагрузки)
  2. Установите Windows Server 2016 Technical Preview 4.
  3. Настройте виртуальную машину с теми же обновлениями, что и физический узел.
  4. Настройте диск данных с разделом GPT, используя формат NTFS.
  5. Включите высокопроизводительную конфигурацию питания.
  6. Выключите виртуальную машину после завершения настройки.

Теперь вы должны включить вложенную виртуализацию и подмену MAC-адресов на новой виртуальной машине. Вы можете сделать это вручную с помощью PowerShell или запустить общедоступный предопределенный сценарий, чтобы настроить виртуальную машину и включить вложенную виртуализацию. Если вы хотите выполнить эту задачу вручную, вы можете открыть окно Windows PowerShell с правами администратора, а затем запустить следующие командлеты PowerShell, чтобы включить вложенную виртуализацию и подмену MAC-адресов.

$VM = «Вложенный хост»

Set-VMProcessor -ИМЯ_VM $VM -ExposeVirtualizationExtensions $true

Set-VMNetworkAdapter -VMNAME $VM -MacAddressSpoofing on

Если вам неудобно запускать отдельные командлеты PowerShell и вы предпочитаете выполнять сценарии, созданные группой продуктов, вы можете перейти и получить их по этой ссылке. На этом сайте вы найдете два скрипта:

  • Enable-NestedVM.ps1 — включает необходимые параметры для вложенной виртуализации.
  • Get-NestedVirtStatus.ps1 — проверяет правильность настройки хоста и виртуальной машины.

Чтобы убедиться, что физический хост и виртуальная машина правильно настроены с помощью сценария с именем Get-NestedVirtStatus.ps1, выполните следующие действия:

  1. Откройте консоль Windows PowerShell с правами администратора.
  2. Выполните сценарий Get-NestedVirtStatus.ps1.
  3. Просмотрите отчет, который описывает, что включено и отключено, а также поддерживает ли физический хост и виртуальная машина вложенную виртуализацию. Формат отчета будет аналогичен следующей информации:

Хост виртуализации SERVER2016 поддерживает вложенную виртуализацию: ДА

Компьютер: SERVER2016

Производитель: Хьюлетт-Паккард

Модель: ХП ХХХХХ

ПроцессорПроизводитель: GenuineIntel

Название продукта: Windows Server 2016 Technical Preview 4

Тип установки: сервер

Идентификатор издания: ServerDatacenter

Лаборатория сборки: 10586.63.amd64fre.th2_release.160104-1513

Работа гипервизора: True

FullHyperVRole: True

HostNestedSupport: Истина

HypervisorLoadOptionsPresent: Ложь

Значение гипервизоралоадоптионсвалуе:

IumInstalled: Ложь

VbsRunning: Ложь

ВбсРегенаблед: Ложь

BuildSupported: Истина

VbsPresent: Ложь

Поиск виртуальных машин… найдено 1 виртуальная машина.

Проверка виртуальных машин… готово.

Виртуальная машина NestedHost поддерживает вложенную виртуализацию: ДА

Имя: вложенный хост

SupportsNesting: True

ExposeVirtualizationExtensions: True

Динамикмемориенаблед: ложь

SnapshotEnabled: Ложь

Состояние: Выкл.

Если по какой-либо причине физический хост или виртуальная машина не соответствуют требуемой конфигурации для поддержки вложенной виртуализации, вы можете использовать сценарий Enable-NestedVM.ps1 для автоматической настройки системы.

Чтобы выполнить сценарий Enable-NestedVM.ps1, выполните следующие действия:

  1. Откройте консоль Windows PowerShell с правами администратора.
  2. Выполните сценарий с именем виртуальной машины в качестве параметра командной строки.

.Enable-NestedVM.ps1 -VMNAME «NestedHost»

  1. Создается отчет, в котором описывается, настроена ли виртуальная машина для поддержки вложенной виртуализации. Если виртуальная машина настроена правильно, вы увидите следующие сообщения:

PS C: est>.Enable-NestedVm.ps1 -vmName «NestedHost»

Этот скрипт установит для NestedHost следующее, чтобы включить вложение:

Нет, виртуальная машина уже настроена для вложения

  1. Если виртуальная машина настроена неправильно, вы увидите следующие сообщения:

PS C: est>.Enable-NestedVm.ps1 -vmName «NestedHost»

Этот скрипт установит для NestedHost следующее, чтобы включить вложение:

Расширения виртуализации будут включены

При желании включить подмену mac-адреса

Введите Y, чтобы принять или N, чтобы отменить: Y

ПРЕДУПРЕЖДЕНИЕ:
Вложенная виртуализация — это неподдерживаемая функция предварительной версии. Гипервизоры, отличные от гипервизора Hyper-V, работающего на гостевой виртуальной машине, скорее всего, выйдут из строя. Кроме того, некоторые функции Hyper-V несовместимы с вложенной виртуализацией, например динамическая память, контрольные точки и сохранение/восстановление.

Подмена Mac-адреса не включена (у вложенных гостей не будет сети).

Вы хотите включить подмену MAC-адресов? (Д/Н) Д

  1. Если параметр ОЗУ виртуальной машины был настроен на менее 4 ГБ или была включена динамическая память, то в отчете будет предложено установить минимальный объем памяти на 4 ГБ и отключить динамическую память.

Настройка виртуальной машины с ролью Hyper-V

Теперь, когда виртуальная машина настроена для поддержки вложенной виртуализации, вы должны установить роль Hyper-V в виртуальной машине. Вы можете использовать следующую процедуру для правильной настройки виртуальной машины:

  1. Откройте консоль диспетчера Hyper-V и запустите виртуальную машину с именем NestedHost.
  2. Войдите в виртуальную машину NestedHost в качестве локального администратора.
  3. С помощью диспетчера серверов (можно также использовать PowerShell) установите роль Hyper-V, как показано на рисунке 1.

Изображение 14767
Рисунок 1: Установка роли Hyper-V

  1. Создайте виртуальный коммутатор с помощью сетевого адаптера Hyper-V, как показано на рисунке 2.

Изображение 14768
Рисунок 2: Создание виртуального коммутатора Hyper-V

  1. Не включайте параметр «Миграция виртуальной машины».
  2. Установите расположение по умолчанию для виртуальных жестких дисков и файлов конфигурации, как показано на рис. 3.

Изображение 14769
Рисунок 3: Установка мест хранения по умолчанию

  1. Выберите параметр для автоматического перезапуска виртуальной машины после установки.
  2. Нажмите кнопку «Установить», чтобы начать установку роли Hyper-V.
  3. После перезагрузки виртуальной машины войдите в виртуальную машину NestedHost в качестве локального администратора.
  4. На виртуальной машине NestedHost запустите консоль диспетчера Hyper-V.
  5. С помощью консоли диспетчера Hyper-V создайте виртуальную машину с именем NestedVM и установите Windows Server 2016 Technical Preview 4. Для выполнения этого шага вам потребуется сделать ISO-образ носителя доступным для виртуальной машины NestedHost.
  6. Вложенный хост также поддерживает функцию расширенного сеанса для подключения к виртуальным машинам, работающим на нем, как показано на рис. 4.

Изображение 14770
Рис. 4. Вложенная виртуальная машина, работающая на узле виртуальных машин с ролью Hyper-V.

Вывод

Вложенная виртуализация — это новая технология в Windows Server 2016 Technical Preview 4, которая позволяет виртуализировать узел Hyper-V и запускать виртуальные машины на этом виртуализированном узле. Хотя вложенная виртуализация является очень полезной функцией, например, для развертывания обучающих сред в корпоративных инфраструктурах, которым необходимо минимизировать затраты на оборудование, на данном этапе она не предназначена для развертывания рабочих нагрузок. Один из недостатков использования этой функции заключается в том, что вы столкнетесь с небольшим снижением производительности для рабочих нагрузок, выполняемых на вложенном узле виртуализации, для каждого дополнительного уровня абстракции над аппаратным уровнем. Одним из основных преимуществ этой технологии является то, что эта технология позволяет реализовать сценарии, которые нельзя было создать в предыдущих версиях Hyper-V, и эта функция наверняка будет приветствоваться ИТ-группами, активно использующими виртуализацию Windows Server.