- Как включить вложенную виртуализацию в Hyper V
- Вложенная виртуализация Hyper-V в Windows Server 2016
- Вложенная виртуализация Hyper-V
- Архитектура
- Ограничения
- Аппаратные
- Программные
- Применение
- Настройка
- Обновление версии VM
- Установка Hyper-V в Windows 10 Install Hyper-V on Windows 10
- Проверьте следующие требования Check Requirements
- Включение Hyper-V с помощью PowerShell Enable Hyper-V using PowerShell
- Включение Hyper-V с помощью CMD и DISM Enable Hyper-V with CMD and DISM
- Включение роли Hyper-V с помощью раздела «Параметры» Enable the Hyper-V role through Settings
- Знакомство с Hyper-V в Windows 10 Introduction to Hyper-V on Windows 10
- Причины использовать виртуализацию Reasons to use virtualization
- Системные требования System requirements
- Операционные системы, которые можно запустить на виртуальной машине Operating systems you can run in a virtual machine
- Различия между Hyper-V в Windows и Windows Server Differences between Hyper-V on Windows and Hyper-V on Windows Server
- Ограничения Limitations
Как включить вложенную виртуализацию в Hyper V
29 августа 2019
Вложенная виртуализация в Hyper V или Nested Virtualization доступна с редакций Windows Server 2016 и Windows 10. Грубо говоря это возможность виртуализировать Hyper V внутри Hyper V. Для настройки этой возможности нужно будет выполнить несколько команд Powershell. Кроме этого процессор должен быть Intel.
Установка ESXI на Hyper V, что тоже относится к вложенной виртуализации, у меня получалось, но ошибками и в конце концов я стал запускать Hyper V и ESXI поверх VMWare Workstation. Работать вместе Hyper V и VMWare Workstation тоже не могут. Опыт включения вложенной виртуализации для других платформ у меня отсутствует.
Первое с чем мы столкнемся при попытке включения или установки роли Hyper V во вложенном варианте это отсутствие возможности поставить галочку в GUI. Можно будет установить только консоль для управления. Эту ситуацию можно обойти установив Hyper V через Powershell, но и там мы встретим ошибку:
- Не удалось запустить виртуальную машину так как не работает один из компонентов Hyper-V
- Hyper-V cannot be installed: the processor does not have required virtualization capabilities
Первое что нужно сделать это выключить виртуальную машину. Я предпочитаю делать это через Powershell:
Далее нам нужно включить расширение Hyper-V:
Если у вас появится какая-то ошибка это может значить, что виртуальная машина была импортирована и имеет старую версию. В этом случае можно обновить виртуальную машину Hyper-V:
Для нормальной работы сети нам нужно включить MAC spoofing:
Либо через интерфейс:
Остальные ограничения связанные с Nested Virtualization, которые не получиться использовать:
- Динамическая память
- Изменение памяти работающей VM
Были проблемы с сетевыми адаптерами. При попытках настроить Docker на VM никак не работала сеть и в таких случаях помогала переустановка драйвера на сетевом адаптере основной ОС. Это происходило на Windows 10.
Вложенная виртуализация Hyper-V в Windows Server 2016
Ни для кого не секрет, что в Windows Server 2016 появилась вложенная виртуализация Hyper-V. Несмотря на то, что на момент написания статьи доступна лишь версия Technical Preview 5, уже в ней можно очень близко познакомиться с новым функционалом, о котором я и постараюсь коротко рассказать в этой статье.
Хочу отметить, что все сказанное относится к предрелизной версии и может сильно отличаться от официального релиза.
Если вам интересна тематика Windows Server, рекомендую обратиться к тегу Windows Server на моем блоге.
Вложенная виртуализация Hyper-V
Функция вложенной виртуализации в гипервизорах разных производителей доступна достаточно давно. Например у VMWare поддержка 64х-битных вложенных виртуальных машин была реализована в версии ESXi 5.1 и это было аж в 2011 году, не говоря о поддержке 32х-битных вложенных ОС, доступных ещё ранее. Другие вендоры также не отставали. Тем не менее, у Microsoft мы не могли увидеть такого функционала до сегодняшнего дня. Почему? Официального ответа мне найти не удалось, но можно говорить как об общей позиции (неприоритетная на то время задача), так и о чисто логических рассуждениях — в 2008 году с выходом Windows Server 2008 и последующей 2008 R2 говорить о вложенной виртуализации было не совсем актуально, ведь гипервизор был ещё во многом сыроват по многим направлениям (например max. vCPU упиралось в 4 шт.), а ситуация с конкурентами была такова, что Microsoft по сути вынужден был активно их догонять.
Архитектура
Классическая виртуализация первого типа представляет из себя гипервизор, разграничивающий доступ к оборудованию между единственным родительским и множеством гостевых разделов. При этом доступен только один уровень виртуализации — Level 1 — и использование вложенных виртуальных машин (VM внутри VM) не подразумевается. В общем виде архитектура выглядит следующим образом 1 :
Раньше попытка развернуть роль Hyper-V внутри виртуальной машины непременно заканчивалась ошибкой:
Так происходило потому, что гипервизор намеренно маскировал от гостевых ОС наборы аппаратных инструкций (Virtualization Extensions), отвечающих за виртуализацию 2 — Intel VT-x и AMD-V (все мы помним, что Hyper-V — это система именно аппаратной виртуализации и без поддержки функционала со стороны «железа» работать не будет).
Теперь же архитектура изменилась таким образом, что появилась возможность передачи наборов аппаратных инструкций в гостевые ОС (по умолчанию этот функционал отключен):
Все это открывает возможности для вложенной виртуализации, которая при этом не ограничена вторым уровнем (Level 2 на рис. вверху).
Но как и у любой свежей технологии (в данном случае свежей именно для Microsoft), у неё есть некоторые ограничения, о которых ниже.
Ограничения
Условно можно разделить на аппаратные и программные.
Аппаратные
Аппаратные ограничения упираются в обязательную поддержку процессором Intel технологий VT-x 3 и EPT. Если наличие VT-x было стандартным требованиям и для ранних версий Hyper-V, то необходимость в EPT появилась только сейчас и только для вложенной виртуализации 4 :
И я ничего не забыл, не написав про процессоры AMD. Дело в том, что в Windows Server 2016 TP5 вложенная виртуализация на процессорах AMD пока что не поддерживается.
Программные
Программных ограничений значительно больше:
- Использование Windows Server 2016 или Windows 10 как в родительском, так и в гостевых разделах;
- Виртуальная машина с версией конфигурации 8.0 и выше;
Для вложенных виртуальных машин не поддерживается:
- Динамическая память;
- Динамическая миграция;
- Снимки виртуальных машин и состояния Save/Restore;
Важно помнить, что если вы собрались выпускать вложенные виртуальные машины во внешнюю сеть, то на виртуальном адаптере «хостовой» виртуальной машины будет поднят виртуальный свитч и на нем будут несколько виртуальных сетевых адаптеров, а значит несколько MAC-адресов, а значит надо включать спуфинг MAC-адресов на адаптере. Это тоже в некотором смысле ограничение.
Есть и обходной вариант — использовать NAT (это тоже новый функционал, о котором расскажу ниже).
Применение
У тех, кто встретился с вложенной виртуализацией впервые, может возникнуть вопрос об области её применения. Остановимся на этом более подробно.
Наиболее адекватными сценариями представляются тестирование и разработка. В продакшене вы конечно можете использовать полностью вложенную виртуальную инфраструктуру, но непременно столкнетесь с падением производительности вложенных экземпляров.
Мне стало интересно проверить на реальной среде падение производительности ЦП внутри виртуальных машин разной степени вложенности. Для этого я использовал Hot CPU Tester Pro. Хоть и тестирование получилось исключительно субъективное, но оно как минимум намекает на существенное падение отдачи CPU:
Моего терпения хватило только для развертывания экземпляра третьей вложенности.
Настройка
Для возможности использовать вложенную виртуализацию, необходимо выполнить ряд настроек на хостовой ОС. Приступаем.
Обновление версии VM
Если по каким-либо причинам ваша виртуальная машина имеет версию конфигурации ниже 7.1 (например она смигрировала на ваш Hyper-V с предыдущих версий Technical Preview), то обязательно обновляем конфигурацию вручную, нажав правой кнопкой по VM и выбрав Обновить версию конфигурации:
Установка Hyper-V в Windows 10 Install Hyper-V on Windows 10
Включение Hyper-V для создания виртуальных машин в Windows 10. Enable Hyper-V to create virtual machines on Windows 10.
Hyper-V можно включить разными способами, в том числе используя панель управления Windows 10, PowerShell или с помощью средства обслуживания образов развертывания и управления ими (DISM). Hyper-V can be enabled in many ways including using the Windows 10 control panel, PowerShell or using the Deployment Imaging Servicing and Management tool (DISM). В этом документе последовательно описан каждый из указанных способов. This documents walks through each option.
Примечание. Механизм Hyper-V встроен в Windows в качестве дополнительной функции. Скачать Hyper-V нельзя. Note: Hyper-V is built into Windows as an optional feature — there is no Hyper-V download.
Проверьте следующие требования Check Requirements
- Windows 10 Корпоративная, Pro или для образовательных учреждений Windows 10 Enterprise, Pro, or Education
- 64-разрядный процессор с поддержкой преобразования адресов второго уровня (SLAT). 64-bit Processor with Second Level Address Translation (SLAT).
- Поддержка расширения режима мониторинга виртуальной машины (технология VT-c на компьютерах с процессорами Intel). CPU support for VM Monitor Mode Extension (VT-c on Intel CPUs).
- Не менее 4 ГБ оперативной памяти. Minimum of 4 GB memory.
Роль Hyper-V невозможно установить в Windows 10 Домашняя. The Hyper-V role cannot be installed on Windows 10 Home.
Выполните обновление с выпуска Windows 10 Домашняя до выпуска Windows 10 Pro, открыв раздел Параметры > Обновление и безопасность > Активация. Upgrade from Windows 10 Home edition to Windows 10 Pro by opening up Settings > Update and Security > Activation.
Дополнительные сведения и советы по устранению неполадок см. в статье Требования к системе для Hyper-V в Windows 10. For more information and troubleshooting, see Windows 10 Hyper-V System Requirements.
Включение Hyper-V с помощью PowerShell Enable Hyper-V using PowerShell
Откройте консоль PowerShell от имени администратора. Open a PowerShell console as Administrator.
Выполните следующую команду. Run the following command:
Если не удается найти команду, убедитесь, что вы используете PowerShell от имени администратора. If the command couldn’t be found, make sure you’re running PowerShell as Administrator.
По завершения установки выполните перезагрузку. When the installation has completed, reboot.
Включение Hyper-V с помощью CMD и DISM Enable Hyper-V with CMD and DISM
Система обслуживания образов развертывания и управления ими (DISM) позволяет настраивать ОС Windows и образы Windows. The Deployment Image Servicing and Management tool (DISM) helps configure Windows and Windows images. Помимо всего прочего? средство DISM может включать функции Windows во время выполнения операционной системы. Among its many applications, DISM can enable Windows features while the operating system is running.
Чтобы включить роль Hyper-V с помощью DISM, выполните указанные ниже действия. To enable the Hyper-V role using DISM:
Запустите PowerShell или сеанс CMD от имени администратора. Open up a PowerShell or CMD session as Administrator.
Введите следующую команду: Type the following command:
Дополнительные сведения о DISM см. в разделе Техническое руководство по DISM. For more information about DISM, see the DISM Technical Reference.
Включение роли Hyper-V с помощью раздела «Параметры» Enable the Hyper-V role through Settings
Щелкните правой кнопкой мыши кнопку Windows и выберите пункт «Приложения и компоненты». Right click on the Windows button and select ‘Apps and Features’.
Выберите Программы и компоненты справа в разделе связанные параметры. Select Programs and Features on the right under related settings.
Выберите пункт Включение или отключение компонентов Windows. Select Turn Windows Features on or off.
Выберите Hyper-V и нажмите кнопку ОК. Select Hyper-V and click OK.
После завершения установки вам будет предложено перезапустить компьютер. When the installation has completed you are prompted to restart your computer.
Знакомство с Hyper-V в Windows 10 Introduction to Hyper-V on Windows 10
Вы разработчик программного обеспечения, ИТ-специалист или просто увлекаетесь технологиями? Тогда вам наверняка приходится работать с несколькими операционными системами. Whether you are a software developer, an IT professional, or a technology enthusiast, many of you need to run multiple operating systems. Hyper-V позволяет запускать несколько операционных систем в виде виртуальных машин в Windows. Hyper-V lets you run multiple operating systems as virtual machines on Windows.
В частности, Hyper-V предоставляет возможность выполнять виртуализацию оборудования. Hyper-V specifically provides hardware virtualization. Это означает, что каждая виртуальная машина работает на виртуальном оборудовании. That means each virtual machine runs on virtual hardware. Hyper-V позволяет создавать виртуальные жесткие диски, виртуальные коммутаторы и ряд других виртуальных устройств, каждое из которых можно добавить в виртуальную машину. Hyper-V lets you create virtual hard drives, virtual switches, and a number of other virtual devices all of which can be added to virtual machines.
Причины использовать виртуализацию Reasons to use virtualization
Виртуализация позволяет выполнять следующие операции. Virtualization allows you to:
Запуск программного обеспечения, для которого требуются более старые версии Windows или операционные системы, отличные от Windows. Run software that requires an older versions of Windows or non-Windows operating systems.
Эксперименты с другими операционными системами. Experiment with other operating systems. Hyper-V существенно упрощает создание и удаление различных операционных систем. Hyper-V makes it very easy to create and remove different operating systems.
Тестирование программного обеспечения в нескольких операционных системах с помощью нескольких виртуальных машин. Test software on multiple operating systems using multiple virtual machines. Благодаря Hyper-V их можно запускать на настольном компьютере или ноутбуке. With Hyper-V, you can run them all on a single desktop or laptop computer. Эти виртуальные машины можно экспортировать, а затем импортировать в любую другую систему Hyper-V, включая Azure. These virtual machines can be exported and then imported into any other Hyper-V system, including Azure.
Системные требования System requirements
Hyper-V доступен в 64-разрядных версиях Windows 10 Профессиональная, Корпоративная и для образовательных учреждений. Hyper-V is available on 64-bit versions of Windows 10 Pro, Enterprise, and Education. Он недоступен в версии Домашняя. It is not available on the Home edition.
Выполните обновление с выпуска Windows 10 Домашняя до выпуска Windows 10 Профессиональная, открыв раздел Параметры > Обновление и безопасность > Активация. Upgrade from Windows 10 Home edition to Windows 10 Pro by opening Settings > Update and Security > Activation. Здесь вы можете посетить Магазин Windows и приобрести обновление. Here you can visit the store and purchase an upgrade.
Большинство компьютеров работают под управлением Hyper-V, однако каждая виртуальная машина работает под управлением полностью отдельной операционной системы. Most computers run Hyper-V, however each virtual machine runs a completely separate operating system. Как правило, на компьютере с 4 ГБ ОЗУ можно запустить одну или несколько виртуальных машин, однако для запуска дополнительных виртуальных машин либо установки и запуска ресурсоемкого ПО, такого как игры, видеоредакторы или программы для технического проектирования, потребуются дополнительные ресурсы. You can generally run one or more virtual machines on a computer with 4GB of RAM, though you’ll need more resources for additional virtual machines or to install and run resource intense software like games, video editing, or engineering design software.
Дополнительные сведения о требованиях Hyper-V к системе и о том, как проверить, будет ли Hyper-V работать на конкретном компьютере, см. в статье Справочник по требования к системе для Hyper-V. For more information about Hyper-V’s system requirements and how to verify that Hyper-V runs on your machine, see the Hyper-V Requirements Reference.
Операционные системы, которые можно запустить на виртуальной машине Operating systems you can run in a virtual machine
Hyper-V в Windows поддерживает много операционных систем на виртуальных машинах, в том числе различные выпуски Linux, FreeBSD и Windows. Hyper-V on Windows supports many different operating systems in a virtual machine including various releases of Linux, FreeBSD, and Windows.
Напоминаем, что необходимо иметь действующую лицензию на все операционные системы, используемые на виртуальной машине. As a reminder, you’ll need to have a valid license for any operating systems you use in the VMs.
Дополнительные сведения об операционных системах, которые поддерживаются как гостевые в Hyper-V в Windows, см. в статьях Гостевые операционные системы, поддерживаемые в Windows и Гостевые операционные системы, поддерживаемые в Linux. For information about which operating systems are supported as guests in Hyper-V on Windows, see Supported Windows Guest Operating Systems and Supported Linux Guest Operating Systems.
Различия между Hyper-V в Windows и Windows Server Differences between Hyper-V on Windows and Hyper-V on Windows Server
Некоторые функции работают по-разному в Hyper-V для Windows и Windows Server. There are some features that work differently in Hyper-V on Windows than they do in Hyper-V running on Windows Server.
Компоненты Hyper-V, доступные только в Windows Server: Hyper-V features only available on Windows Server:
- динамическая миграция виртуальных машин с одного узла на другой; Live migration of virtual machines from one host to another
- реплика Hyper-V; Hyper-V Replica
- Виртуальный адаптер Fiber Channel Virtual Fiber Channel
- сеть СSR-IOV; SR-IOV networking
- общий доступ к .VHDX. Shared .VHDX
Компоненты Hyper-V, доступные только в Windows 10: Hyper-V features only available on Windows 10:
- Быстрое создание и коллекция виртуальных машин Quick Create and the VM Gallery
- Сеть по умолчанию (коммутатор NAT) Default network (NAT switch)
Модель управления памятью отличается в Hyper-V в Windows. The memory management model is different for Hyper-V on Windows. При управлении памятью Hyper-V на сервере предполагается, что на нем запущены только виртуальные машины. On a server, Hyper-V memory is managed with the assumption that only the virtual machines are running on the server. В Hyper-V для Windows при управлении памятью учитывается тот факт, что кроме виртуальных машин на большинстве клиентских компьютеров работает локальное программное обеспечение. In Hyper-V on Windows, memory is managed with the expectation that most client machines are running software on host in addition to running virtual machines.
Ограничения Limitations
Программы, которые зависят от наличия определенного оборудования, не будут нормально работать на виртуальной машине. Programs that depend on specific hardware will not work well in a virtual machine. Например, это игры или приложения, которым нужны графические процессоры. For example, games or applications that require processing with GPUs might not work well. С приложениями, использующими таймеры длительностью менее 10 мс, например приложениями для микширования музыки в режиме реального времени или приложениями, чувствительными к задержкам, также возможны проблемы. Also, applications relying on sub-10ms timers such as live music mixing applications or high precision times could have issues running in a virtual machine.
Кроме того, если включен Hyper-V, проблемы могут возникать и с чувствительными к задержкам высокоточными приложениями, работающими в операционной системе сервера виртуальных машин. In addition, if you have Hyper-V enabled, those latency-sensitive, high-precision applications may also have issues running in the host. Это связано с тем, что при включенной виртуализации ОС сервера виртуальных машин тоже работает поверх уровня виртуализации Hyper-V, как и гостевые операционные системы. This is because with virtualization enabled, the host OS also runs on top of the Hyper-V virtualization layer, just as guest operating systems do. Однако отличие операционной системы сервера виртуальных машин от гостевых ОС заключается в том, что она имеет прямой доступ к оборудованию, что обеспечивает правильную работу приложений с особыми требованиями к оборудованию. However, unlike guests, the host OS is special in that it has direct access to all the hardware, which means that applications with special hardware requirements can still run without issues in the host OS.