Автор статьи – Михаил Комаров, MVP – Cloud and Datacenter Management Добрый день.Теги: #Hyper-V #Windows Server 2016 #вложенная виртуализация #вложенная виртуализацияЦель сегодняшней статьи — рассказать о реализации вложенной виртуализации на платформе Hyper-V. Ни для кого не секрет, что Hyper-V не поддерживает вложенную виртуализацию, в отличие от других производителей.
С выходом Windows Server 2016 Техническая предварительная версия 4 (TP4), которая предназначена для тех, кто хочет опробовать новый функционал, ситуация изменилась.
Демонстрации вложенной виртуализации можно увидеть в записи доклада " Один отчет, один ноутбук, один центр обработки данных " События Microsoft TechDay 2015 .
Все демонстрации проводились на HP Blade Gen 8 с базовым процессором Intel Xeon E5 2670 и 32 ГБ оперативной памяти.
Выбор этой системы был обусловлен желанием показать, насколько низким может быть порог вхождения в технологии виртуализации.
В общем, обычная система по сегодняшним меркам, когда у большинства дома стоит Intel Core i3 или выше, а объем оперативной памяти начинается от 8Гб.
Это означает, что при необходимости вы можете использовать вложенную виртуализацию.
Архитектура Вспомним классический вариант виртуализации.
Если у нас есть физический хост с поддержкой технологии виртуализации на уровне чипсета и процессора и необходимыми опциями, включенными в BIOS, то мы получаем следующую картину:
На нулевом уровне находится физический хост, а на первом уровне — тонкий уровень программного обеспечения, называемый гипервизором.Также на первом уровне есть раздел с корневой операционной системой и разделы для виртуальных машин.
Проиллюстрируем с помощью утилиты CoreInfo от Марка Руссиновича поведение параметров процессора, связанное с виртуализацией.
В таблице показаны первые несколько строк утилиты CoreInfo.
До включения роли Hyper-V параметр процессора, связанный с виртуализацией, передавался в операционную систему.Это можно увидеть в двух строках в левой части таблицы.
Первый параметр — отсутствие гипервизора, второй — флаг, отвечающий за виртуализацию.
После включения роли гипервизора еще раз посмотрим на свойства процессора в корневом разделе и увидим следующее: гипервизор включен, а флаг, связанный с виртуализацией, не транслируется в корневой раздел операционной системы.
Обратим также внимание на значение подписи микропроцессора, которое в нашем случае равно 0000710 и связано с физическим процессором.
Перейдем к вложенной виртуализации.
На рисунке видно, что необходимо перебросить флаг, связанный с виртуализацией, в гостевую ОС.То есть в общем-то мы должны сказать гипервизору на первом уровне, что необходимо включить поддержку виртуализации в общем процессоре виртуальной машины.
Для этого вам необходимо запустить скрипт, изменяющий некоторые свойства виртуальной машины.
Одним из основных свойств, которые меняет скрипт, является поведение процессора виртуальной машины.
// Set-VMProcessor -VMName $vmName -ExposeVirtualizationExtensions $true //.
О других параметрах мы поговорим чуть позже.
Проиллюстрируем поведение параметров процессора, связанных с виртуализацией, на виртуальной машине.
В таблице показаны первые несколько строк утилиты CoreInfo.
Из таблицы видно, что виртуальная машина «понимает», что она работает под гипервизором.Но до запуска скрипта флаг, связанный с виртуализацией, не передается.
Далее выполнился скрипт, изменивший свойства нашей виртуальной машины и ее процессора, и появился флаг, связанный с виртуализацией.
Далее мы включили роль Hyper-V, после чего появился тонкий слой виртуализации и наша операционная система переместилась в свой корневой раздел, флаг виртуализации исчез.
Обратим также внимание на значение подписи микропроцессора, которое в нашем случае стало FFFFFFFF, что указывает на виртуализацию процессора.
Далее мы создали виртуальную машину внутри виртуальной машины и для чистоты эксперимента запустили утилиту CoreInfo.
В целом ожидаемый результат — наличие гипервизора и отсутствие флага виртуализации на первом этапе и наличие флага виртуализации на втором.В результате мы имеем вот такое решение.
Настройки и ограничения Теперь поговорим о некоторых ограничениях этой технологии в TP4 для включенной вложенной виртуализации на первом уровне виртуальной машины:Пошаговая инструкция выглядит так:
- В настоящее время поддержка доступна только для процессоров Intel с поддержкой EPT (SLAT).
- Динамическую память необходимо отключить.
- Изменение размера памяти приводит к ошибкам.
- Снимки с работающей виртуальной машины не допускаются.
- Живая миграция приводит к ошибкам.
- Сохранение и восстановление могут привести к ошибкам.
- Вам необходимо включить подмену MAC в свойствах сетевого адаптера.
В результате у нас есть решение, которое позволит вам делать множество вещей на одном физическом хосте.
- Устанавливаем сборку на физический хост с включенными опциями виртуализации.
- Создаем виртуальную машину, в которой включим виртуализацию.
На эту машину желательно выделить не менее 4ГБ ОЗУ, иначе скрипт придется править.
Виртуальную машину необходимо выключить!
- Запускаем скрипт на физическом хосте, указав имя ранее созданной виртуальной машины.
Ссылка на скрипт находится в конце статьи.
- Включите роль Hyper-V на виртуальной машине.
- Создаем новую виртуальную машину с помощью диспетчера Hyper-V в ранее созданной виртуальной машине.
Например, кластер, собранный из хостов Hyper-V, что позволит сократить количество используемого оборудования как дома, так и в учебных аудиториях.
Ресурсы Техническая предварительная версия Windows Server Анонс поддержки вложенной виртуализации от группы продуктов (англ.
) Ссылка на утилиту CoreInfo Ссылка на скрипт на GitHub Спасибо за внимание, Михаил Комаров MVP — управление облаком и центром обработки данных
-
Хабравиджет: Наш Api Убогий
19 Oct, 24 -
Тнт Открывает Онлайн-Кинотеатр По Подписке
19 Oct, 24 -
Джефф Дин Раскрывает Секреты Google
19 Oct, 24 -
Neonray: Улучшен Веб-Доступ
19 Oct, 24 -
2 Новых Календаря На Всю Жизнь
19 Oct, 24