Требования к системе для hyper-v в windows 10windows 10 hyper-v system requirements

Для чего это нужно?

Hyper-V является версией гипервизора от Microsoft. Работает этот компонент виртуализации непосредственно на оборудовании. С его помощью выполняется запуск виртуальных машин в системе х86-64. Гипервизор установлен во всех 64-битных вариантах Виндовс 10 (кроме версии Win 10 Home).

Hyper-V применяется:

  • для создания нескольких виртуальных машин на одном физическом сервере;
  • в качестве безопасной платформы для тестирования ПО.

Гипервизор позволяет создать на компьютере пользователя эмуляторы ПК. Эти виртуальные машины используют часть ресурсов устройства. На эмуляторы можно установить изолированный Виндовс и использовать платформу для тестирования компьютерных разработок.

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

Вызвать проблемы в работе приложений виртуализации могут службы безопасности Виндовса (например, Device Guard и Credential Guard), которые также рекомендуется деактивировать. Прежде чем отключать Гипер-В, нужно проверить его наличие и включение. Ведь в режиме «по умолчанию» в лицензионных сборках гипервизор должен быть отключен.

Как найти Hyper-V:

  • активировать «Поиск»;
  • в поисковой строке написать: msinfo32.exe;
  • откроется окно «System Information»;

  • активировать «System Summary»;
  • отыскать фразу «A hypervisor has been detected. Features required…» («Обнаружен гипервизор. Компоненты…не отображаются…»).

Найденный Hyper-V можно отключить, если он мешает работе других приложений виртуализации. Оборудование ПК функционирует без сбоев при каком-то одном активированном гипервизоре.

Важно! Гипервизор является встроенным компонентом 64-разрядных версий Виндовса. Отключать или включать его можно через служебные программы или используя возможности самой системы

Установка Hyper-V

Так как в настоящее время технология Hyper-V развивается весьма активно,
перед началом установки рекомендую накатить последние системные обновления:
среди них наверняка будет что-то новенькое и для Hyper-V. Для этого в режиме
полной установки выбери Start –> Control Panel -> Windows Update, щелкни View
update history, укажи, а затем установи необходимые обновления. В Server Core
просмотр обновлений производится командой «wmic qfe list». Как вариант, их можно
просто скачать с сайта Microsoft и установить стандартным образом или
воспользоваться «Диспетчером сервера». В частности, следует установить KB956710,
KB950050. Некоторые обновления потребуют последующей перезагрузки системы. Но
есть еще один нюанс, о котором нужно знать. Во многих руководствах по Hyper-V
рекомендуется использовать только английскую версию Win2k8. К счастью для тех,
кто не владеет языком Шекспира, Microsoft выпустила обновление KB951636 — набор
Hyper-V Language Pack (support.microsoft.com/kb/951636), в котором есть и
русский язык. Это обновление содержит два пакета: для x86 и x64 гостевых систем.
Но перед его инсталляцией необходимо установить Windows Server 2008 MUI Language
Pack, а затем добавить в систему поддержку нужного языка. Последнее
нетривиально. Надо извлечь из img-образа каталог своего языка (внутри несколько
файлов, основной — Lp.cab), потом в консоли «Regional and Language Options»
перейти во вкладку «Keyboards and Languages», где нажать на Install/uninstall
languages и указать на извлеченный каталог с языковыми файлами.

Сам процесс добавления новой роли выполняется стандартно в «Диспетчере
сервера» (Server Manager) при помощи мастера добавления ролей, вызываемого
нажатием ссылки «Добавить роли» (Add Roles). Перейдя на страницу выбора ролей «Select
Server Roles», отмечаем флажком Hyper-V и переходим к следующему шагу «Create
Virtual Networks». Здесь необходимо отметить один или несколько физических
сетевых адаптеров, которые будут использованы при создании виртуальных сетей.
Рекомендуют одно сетевое устройство использовать только для удаленного
управления компьютером, не задействуя его в виртуальной сети. Далее знакомимся с
установками и, если все в порядке, нажимаем кнопку Install. Возможно, будет
предложено произвести некоторые действия, например, включить поддержку
виртуализации в BIOS для Intel VT (для AMD-V она активирована по умолчанию). По
всем вопросам здесь же присутствуют ссылки, по которым можно получить
дополнительную информацию. Чуть позже потребуется перезагрузка. После рестарта
обязательно зарегистрируйся в системе под той же учетной записью. Еще какое-то
время уйдет на автоматическую установку компонентов и конфигурирование при
помощи «Resume Configuration Wizard».

Для установки Hyper-V в режиме Server Core необходимо произвести стандартные
настройки сервера (смотри статью «Без окон, без дверей» в августовском ][ за
2008 год) и затем ввести команду:

Кроме самой роли Hyper-V, будет установлен инструмент удаленного управления «Hyper-V
Tools». Если управление Hyper-V планируется производить с другого Win2k8, то в
«Диспетчере сервера» открываем «Компоненты» (Features) и нажимаем (Add Features).
В окне выбора компонентов переходим в «Средства удаленного администрирования
сервера –> Средства администрирования ролей», где отмечаем «Средства Hyper-V» (Remote
Server Administration Tools -> Remote Administration Tools -> Hyper-V Tools).

Перенос Windows 10 с ноутбука на виртуальную машину VirtualBox установленную на стационарном компьютере с Windows 8.1

Автор Владимир
Привет друзья! Ещё совсем недавно сделать это было невозможно, но с выходом последней версии VirtualBox 5.0.4 для Windows осуществить такой перенос можно и даже сохраняется работоспособность большей части установленных программ и антивируса, прямо чудеса виртуализации, подробности в сегодняшней занимательной статье!

Вообще тема переноса нормальной операционной системы на виртуальную машину очень интересна, ведь перенести можно всё: Windows XP, Vista, 7, 8.1, 10. Вы можете переносить операционные системы с ноутбука на ноутбук или с ноута на стационарный компьютер и наоборот. К примеру у нескольких моих знакомых есть самописные программы, авторов которых уже не найти и работают проги только на Windows XP и Windows 7, естественно вы захотите перенести старые программы на свой новый компьютер или ноутбук с Windows 8.1, 10, но запустить такое приложение в новых операционных системах не получиться. Так что же, держать из-за нескольких программ старый компьютер? А может лучше просто взять и перенести реальную Windows XP и Windows 7 со старого компьютера на виртуальную машину установленную на ноутбук с Windows 10! Чем не выход?
 

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

Или наоборот, вам может понадобиться перенести с ноутбука на простой системный блок операционную систему Windows 10, именно это мне пришлось недавно делать для одного своего приятеля при следующих обстоятельствах.
 
Мой знакомый купил ноутбук с Windows 10 (БИОС UEFI) и я установил на него множество программ, через несколько месяцев оказалось, что ноут неисправен и нужна диагностика в сервисном центре, которая будет проходить две недели, то есть две недели человек должен был не работать на ноутбуке, в его условиях это было просто невозможно. Разбирать ноут было нельзя и на время ремонта «сервисмены» не предложили другой машины. Выручило то, что у знакомого был ещё системный блок с установленной Windows 8.1 тогда я решил поступить так: 

Конвертировал диск (C:) ноутбука с Windows 10 в файл виртуального диска VHD и сохранил его на переносном жёстком диске USB. Затем на обычный стационарный компьютер установил виртуальную машину VirtualBox 5.0.4, уже в ней создал виртуалку, но виртуальный диск не создавал, а указал созданный на ноутбуке файл VHD. При создании виртуальной машины отметил пункт Включить EFI (Только специальные ОС), так как на ноутбуке был включен UEFI, затем запустил виртуальную машину, ещё для запуска Windows 10 пришлось восстановить загрузчики всё!
Подробности далее в статье.

1. Конвертируем диск (C:) ноутбука в файл виртуального диска VHD с помощью программы Disk2vhd v2.01
 
Итак, имеем ноутбук с БИОСом UEFI и установленной Windows 10 на диске GPT. 

Управление дисками ноутбука

В первую очередь конвертируем диск (C:) ноутбука в файл виртуального диска VHD и расположим его на разделе (I:) принадлежащем переносному винчестеру USB.

Сделать это можно четырьмя способами, но сегодня будем использовать программу Disk2vhd v2.01.

https://technet.microsoft.com/ru-ru/sysinternals/ee656415
Запускаем программу,

в главном окне можете снять галочку с «Use Vhdx» и создастся обычный файл VHD совместимый с Windows 7, если галочку не снимать, то создастся файл нового формата VHDX.

Отмечаем галочками разделы жёсткого диска конвертируемые в файл виртуального диска VHD, нам нужен диск C:\ с установленной Windows 10.
Даём имя будущему виртуальному диску Windows 10.
Жмём на кнопку проводника в правой части окна.

Сохраним файл виртуального диска на Новый том (I:) переносного винчестера USB, так как на нём есть свободное место.

Сохранить.

Нажмите Create (Создать). 

Начинается процесс создания точной копии диска (C:) ноутбука с установленной Windows 10 в файле виртуального диска VHD на Новом томе (I:).

Процесс завершён.

Жмём «Close. 

Файл VHD создан и находится на Новом томе (I:).

Подключаем переносной жёсткий диск USB с файлом VHD к простому стационарному компьютеру. Устанавливаем виртуальную машину VirtualBox 5.0.4 на компьютер и настраиваем её.

 
На простом системном блоке с обычным БИОС установлена Windows 8.1 на диске MBR.
Если у вас ещё не установлена VirtualBox, то устанавливаем.
 

Главный вопрос ИТ-профессионала – «Зачем?» (или «А нафига?»)

  1. У вас основная ОС на Linux-серверах.
  2. Вам нужно запускать экзотику.
  3. Вам нужны готовые виртуальные сервера от вендеров (думаю это просто вопрос времени).
  4. Вы не любите Microsoft.
  5. VMware вы получили на халяву вместе с оборудованием.

Табличка размышлений

За переход на Hyper-V Против перехода на Hyper-V
Сокращение расходов на лицензии VMware Известность платформы VMware
На базе этой же платформы построен Azure Размер дистрибутива (спойлер: Nano Server не является аналогом esxi — это немного другая идеология и позиционирование)
Интересная сетевая виртуализация Простая схема лицензирования
Репликация на другие СХД виртуалок штатными методами Поддержка большого числа разных ОС
Бонусы при покупке комплекта для построения виртуализации (набор CIS, в который входят Windows Datacenter + System Center) VMware уже работает
Различные плюшки при разворачивании Windows-серверов Нет поддержки именно гипервизора как отдельного продукта
Можно уменьшать диски на лету VDI тут можно использовать только для лабы/тестов. Для продакшена это не подходит
Более оперативная поддержка новых версий Windows Наличие интересных законченных решений для виртуализации, когда ты у одного вендора покупаешь и железо и софт, и получаешь одну консоль управления и одно окно техподдержки
Это Microsoft Это Microsoft

Ресурсы Hyper-V для ИТ-специалистовHyper-V resources for IT Pros

ЗадачаTask РесурсыResources
Оцените Hyper-VEvaluate Hyper-V

— Обзор технологии Hyper-V- Hyper-V Technology Overview- Новые возможности Hyper-V в Windows Server- What’s new in Hyper-V on Windows Server- Требования к системе для Hyper-V в Windows Server- System requirements for Hyper-V on Windows Server- Поддерживаемые гостевые операционные системы Windows для Hyper-V- Supported Windows guest operating systems for Hyper-V — Поддерживаемые виртуальные машины Linux и FreeBSD- Supported Linux and FreeBSD virtual machines- Совместимость функций по поколениям и гостям- Feature compatibility by generation and guest

Планирование Hyper-VPlan for Hyper-V

— Следует ли создать виртуальную машину поколения 1 или 2 в Hyper-V?- Should I create a generation 1 or 2 virtual machine in Hyper-V? — Планирование масштабируемости Hyper-V в Windows Server- Plan for Hyper-V scalability in Windows Server — Планирование сетей Hyper-V в Windows Server- Plan for Hyper-V networking in Windows Server — Планирование безопасности Hyper-V в Windows Server- Plan for Hyper-V security in Windows Server

Начало работы с Hyper-VGet started with Hyper-V

— Загрузка и установка Windows Server 2019- Download and install Windows Server 2019

Вариант установки Server Core или GUI Windows Server 2019 в качестве узла виртуальной машиныServer Core or GUI installation option of Windows Server 2019 as virtual machine host

— Установка роли Hyper-V в Windows Server- Install the Hyper-V role on Windows Server- Создание виртуального коммутатора для виртуальных машин Hyper-V- Create a virtual switch for Hyper-V virtual machines- Создание виртуальной машины в Hyper-V- Create a virtual machine in Hyper-V

Обновление узлов и виртуальных машин Hyper-VUpgrade Hyper-V hosts and virtual machines

— Обновление узлов кластера Windows Server- Upgrade Windows Server cluster nodes- Обновление версии виртуальной машины- Upgrade virtual machine version

Настройка Hyper-V и управление имConfigure and manage Hyper-V

— Настройка узлов для динамической миграции без отказоустойчивой кластеризации- Set up hosts for live migration without Failover Clustering- Удаленное управление Nano Server- Managing Nano Server remotely- Выбор контрольных точек «Стандартный» или «Рабочая»- Choose between standard or production checkpoints- Включение и отключение контрольных точек- Enable or disable checkpoints- Управление виртуальными машинами Windows с помощью PowerShell Direct- Manage Windows virtual machines with PowerShell Direct- Настройка реплики Hyper-V- Set up Hyper-V Replica

БлогиBlogs

Ознакомьтесь с последними сообщениями от руководителей программ, менеджеров по продуктам, разработчиков и тестировщиков в группах Microsoft Virtualization и Hyper-V.Check out the latest posts from Program Managers, Product Managers, Developers and Testers in the Microsoft Virtualization and Hyper-V teams.

— Блог по виртуализации- Virtualization Blog- Блог по Windows Server- Windows Server Blog- Блог по виртуализации Бен Армстронга (архивный)- Ben Armstrong’s Virtualization Blog (archived)

Форум и группы новостейForum and newsgroups

Есть вопросы?Got questions? Общайтесь с коллегами, специалистами MVP и группой разработчиков Hyper-V.Talk to your peers, MVPs, and the Hyper-V product team.

— Сообщество Windows Server- Windows Server Community- Форум TechNet по Windows Server Hyper-V- Windows Server Hyper-V TechNet forum

Требования к конкретным функциямRequirements for specific features

Ниже приведены требования для дискретного назначения устройств и экранированных виртуальных машин.Here are the requirements for discrete device assignment and shielded virtual machines. Описание этих функций см. в статье новые возможности Hyper-V в Windows Server.For descriptions of these features, see What’s new in Hyper-V on Windows Server.

Отдельное назначение устройствDiscrete device assignment

Требования к узлу аналогичны существующим требованиям к функции SR-IOV в Hyper-V.Host requirements are similar to the existing requirements for the SR-IOV feature in Hyper-V.

Процессор должен иметь либо расширенную таблицу страниц Intel (EPT), либо таблицу вложенных страниц AMD (НПТ).The processor must have either Intel’s Extended Page Table (EPT) or AMD’s Nested Page Table (NPT).

Набор микросхем должен иметь следующие компоненты:The chipset must have:

Перераспределение прерываний. Технология Intel VT-d с возможностью повторного сопоставления прерываний (VT-D2) или любой другой версией модуля управления памятью ввода-вывода AMD (ввод-вывод ММУ).Interrupt remapping — Intel’s VT-d with the Interrupt Remapping capability (VT-d2) or any version of AMD I/O Memory Management Unit (I/O MMU).

Повторное сопоставление DMA. Технология Intel VT-d с недействительными в очереди или любыми ММУами AMD ввода-вывода.DMA remapping — Intel’s VT-d with Queued Invalidations or any AMD I/O MMU.

Службы контроля доступа (ACS) на корневых портах PCI Express.Access control services (ACS) on PCI Express root ports.

Таблицы встроенного по должны предоставлять ММУ ввода-вывода гипервизору Windows.The firmware tables must expose the I/O MMU to the Windows hypervisor

Обратите внимание, что эта функция может быть отключена в UEFI или BIOS.Note that this feature might be turned off in the UEFI or BIOS. Инструкции см

в документации по оборудованию или обратитесь к изготовителю оборудования.For instructions, see the hardware documentation or contact your hardware manufacturer.

Устройствам требуется GPU или энергонезависимый объем памяти (NVMe).Devices need GPU or non-volatile memory express (NVMe). Для GPU только некоторые устройства поддерживают дискретное назначение устройств.For GPU, only certain devices support discrete device assignment. Чтобы проверить, ознакомьтесь с документацией по оборудованию или обратитесь к изготовителю оборудования.To verify, see the hardware documentation or contact your hardware manufacturer. Дополнительные сведения об этой функции, включая способы ее использования и рекомендации, см. в блоге по виртуализации в разделе Post «дискретное назначение устройств—описание и фон».For details about this feature, including how to use it and considerations, see the post «Discrete Device Assignment — Description and background» in the Virtualization blog.

Экранированные виртуальные машиныShielded virtual machines

Эти виртуальные машины полагаются на безопасность на основе виртуализации и доступны начиная с Windows Server 2016.These virtual machines rely on virtualization-based security and are available starting with Windows Server 2016.

Требования к узлу :Host requirements are:

  • UEFI 2.3.1 c — поддерживает безопасную, измеряемую загрузкуUEFI 2.3.1c — supports secure, measured boot

    Следующие два являются необязательными для безопасности на основе виртуализации в целом, но требуются для размещения, если требуется обеспечить защиту с помощью этих функций:The following two are optional for virtualization-based security in general, but required for the host if you want the protection these features provide:

  • TPM версии 2.0 — защищает активы безопасности платформыTPM v2.0 — protects platform security assets

  • IOMMU (Intel VT-D) — позволяет гипервизору обеспечивать защиту прямого доступа к памяти (DMA)IOMMU (Intel VT-D) — so the hypervisor can provide direct memory access (DMA) protection

Требования к виртуальной машине :Virtual machine requirements are:

Создание виртуальной машины Hyper-V

Для запуска процесса создания виртуальной машины, пройдите по пути: меню «Действие», «Создать», «Виртуальная машина…». Далее откроется мастер создания виртуальной машины.

В первом окне «Приступая к работе» нажмите на кнопку «Далее». В следующем окне «Укажите имя и местонахождение» дайте понятное имя для создаваемой виртуальной машины (я назвал «Windows 7×64»), и выберите место для ее сохранения.

По умолчанию, файлы виртуальной машины сохраняются на диске «С» в папке «ProgramData»:

C:\ProgramData\Microsoft\Windows\Hyper-V

На моем компьютере виртуальные машины сохраняются не на системном, а на другом диске в специальной папке («Virtual Machines»). Поэтому, если вы хотите сохранить виртуальную машину не в папке по умолчанию, поставьте галку напротив пункта «Сохранить виртуальную машину в другом месте», а затем выберите папку для сохранения. Папку для хранения файлов виртуальной машины создайте заранее.

В окне «Укажите поколение» по умолчанию выбрано «Поколение 1», которое подойдет для большинства случаев. «Поколение 2» загружается не со всех образов, по существу, это виртуальная машина с UEFI.

В окне «Выделите память» необходимо выбрать объем выделяемой памяти для этой виртуальной машины. Я выделил 2 ГБ памяти со своего компьютера из 8 ГБ.

В следующем окне «Настройка сети» выберите ранее созданный сетевой адаптер (виртуальный коммутатор).

В окне «Подключить виртуальный жесткий диск» отобразится информация об имени виртуальной машины, о ее расположении на жестком диске, объем дискового пространства, выделяемого для виртуальной машины (по умолчанию предлагалось 127 ГБ, я выбрал — 50 ГБ).

Для установки ОС выберите пункт «Установить операционную систему с загрузочного компакт- или DVD-диска». Здесь выберите «Физический CD или DVD-диск» для установки системы с диска, помещенного в оптический привод, или выберите «Файл образа (.iso)» для установки операционной системы непосредственно с ISO образа ОС, который находится на компьютере.

При помощи кнопки «Обзор…» я выбрал образ операционной системы Windows 7 Максимальная SP1 x64, расположенный на внешнем жестком диске, который в данный момент подключен к моему компьютеру.

В окне «Завершение работы мастера создания виртуальной машины» отображена конфигурация созданной виртуальной машины. Нажмите на кнопку «Готово» для завершения создания ВМ.

После применения настроек, в окне «Диспетчер Hyper-V» появится созданная виртуальная машина, и отобразятся ее настройки.

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

В открывшемся окне войдите в меню «Действие», выберите команду «Пуск», или просто нажмите на зеленую кнопку «Пуск».

Далее в окне виртуальной машины Windows Hyper-V начнется процесс установки операционной системы на компьютер, в данном случае Windows 7.

На моем сайте вы можете прочитать подробные статьи о процессе установки операционных систем Windows.

Вам также может быть интересно:

  • Песочница Windows 10 (Windows Sandbox): безопасная изолированная среда
  • Виртуальная машина VMware Workstation

После завершения установки операционной системы, гостевая ОС готова к работе. На этом изображении видно, что на моем (хостовом) компьютере работает операционная система Windows 10, а в окне запущена виртуальная машина Hyper-V с операционной системой Windows 7.

В виртуальной машине можно создавать снимки виртуальной системы (контрольные точки) для того, чтобы сохранить состояние операционной системы на определенный период времени.

Создать контрольную точку можно из окна приложения, Управлять контрольными точками (восстановить состояние виртуальной машины, удалить ненужные точки) можно из раздела «Контрольные точки» в Диспетчере Hyper-V.

Какие функции имеет Hyper-V?What features does Hyper-V have?

Hyper-V предлагает множество функций.Hyper-V offers many features. Это обзор, сгруппированный по функциям, предоставляемым или помогающим в работе.This is an overview, grouped by what the features provide or help you do.

Вычислительная среда . Виртуальная машина Hyper-V включает те же основные компоненты, что и физический компьютер, например память, процессор, хранилище и сеть.Computing environment — A Hyper-V virtual machine includes the same basic parts as a physical computer, such as memory, processor, storage, and networking. Все эти части имеют функции и параметры, которые можно настроить разными способами для удовлетворения различных потребностей.All these parts have features and options that you can configure different ways to meet different needs. Хранилище и сеть могут считаться своими категориями, так как их можно настроить различными способами.Storage and networking can each be considered categories of their own, because of the many ways you can configure them.

Аварийное восстановление и резервное копирование . для аварийного восстановления реплика Hyper-V создает копии виртуальных машин, предназначенные для хранения в другом физическом расположении, чтобы можно было восстановить виртуальную машину из копии.Disaster recovery and backup — For disaster recovery, Hyper-V Replica creates copies of virtual machines, intended to be stored in another physical location, so you can restore the virtual machine from the copy. Для резервного копирования Hyper-V предлагает два типа.For backup, Hyper-V offers two types. В одном из них используются сохраненные состояния, а в другом используется служба теневого копирования томов (VSS), что позволяет создавать резервные копии, совместимые с приложениями, для программ, поддерживающих VSS.One uses saved states and the other uses Volume Shadow Copy Service (VSS) so you can make application-consistent backups for programs that support VSS.

Оптимизация . Каждая поддерживаемая гостевая операционная система имеет настроенный набор служб и драйверов, называемый службами Integration Services, которые упрощают использование операционной системы на виртуальной машине Hyper-V.Optimization — Each supported guest operating system has a customized set of services and drivers, called integration services, that make it easier to use the operating system in a Hyper-V virtual machine.

Переносимость — такие функции, как динамическая миграция, миграция хранилища и импорт и экспорт, упрощают перемещение и распространение виртуальной машины.Portability — Features such as live migration, storage migration, and import/export make it easier to move or distribute a virtual machine.

Удаленное подключение . Hyper-V включает подключение к виртуальной машине, средство удаленного подключения для использования с Windows и Linux.Remote connectivity — Hyper-V includes Virtual Machine Connection, a remote connection tool for use with both Windows and Linux. В отличие от удаленный рабочий стол, это средство предоставляет доступ к консоли, что позволяет увидеть, что происходит на гостевом компьютере, даже если операционная система еще не загружена.Unlike Remote Desktop, this tool gives you console access, so you can see what’s happening in the guest even when the operating system isn’t booted yet.

Безопасность — безопасная загрузка и экранированные виртуальные машины помогают защититься от вредоносных программ и другого несанкционированного доступа к виртуальной машине и ее данным.Security — Secure boot and shielded virtual machines help protect against malware and other unauthorized access to a virtual machine and its data.

Сводные сведения о функциях, появившихся в этой версии, см. в статье новые возможности Hyper-V в Windows Server.For a summary of the features introduced in this version, see What’s new in Hyper-V on Windows Server. Некоторые функции или части имеют ограничение на количество, которое можно настроить.Some features or parts have a limit to how many can be configured. Дополнительные сведения см. в разделе Планирование масштабируемости Hyper-V в Windows Server 2016.For details, see Plan for Hyper-V scalability in Windows Server 2016.

Управление

VMware vSphere 6.0 Enterprise Plus Microsoft Hyper-V 2012 R2 Datacenter
Централизованное управление Да (vCenter Server + усовершенствованный веб-клиент vSphere, vCenter Server Appliance, SSO Да (System Center 2012 R2 VMM) (SCVMM)
Интеграция с Active Directory Да (хосты vCenter и ESXi), усовершенствованный SSO Да (SCVNN)
Управление через браузер Да (улучшенный веб-клиент vSphere с усовершенствованным SSO и плагин для BDE (Big Data Extension) Не ограничено через портал самообслуживания (Self Service Portal, SSP)
Обновление гипервизора Да (через VMware Update Manager, CLI и AutоDeploy) Да (Cluster Aware Update, Fabric Update, Management Server)
Межплатформенное управление Бесплатный Add-on Multi-Hypervisor Manager SCVMM может управлять виртуальными средами VMware и Citrix
Обновление ВМ Да (Update Manager и vCenter Configuration Manager (vCM) Да (контрольные точки), включает «живой» экспорт
Поддержка Maintenаnce Mode Да (автоматическая миграция ВМ средствами vMotion на другой хост в кластере DRS Да
Средство управления питанием Да, с распределением питания Да, с оптимизацией питания
API для интеграции с системами резервного копирования Да (vStorage API Data Protection) Да (VSS API)
Шаблоны ВМ Да, с многосайтовой библиотекой контента Да, включая шаблоны Gen2
Профили хостов Да (профили хостов, усовершенствованные для автоматического развертывания) Да (профили физических компьютеров)
P2V,V2V Да (VMware Converter) Нет (более не поддерживается, но можно использовать прежние версии VMM)
Живая миграция ВМ Да (vMotion через vSwitch, vCenter Server и без общих ресурсов хранения, удаленная vMotion при RTT до 100 мс) Да (неограниченная одновременная, без общих ресурсов — Shared Nothing; новы опции — сжатие и SMB3)
Миграция хранилища (Storage Migration) Да (Live Storage vMotion, включая реплицированные ВМ), опциональное задание места хранилища для каждого диска ВМ Да («живая» и Shared Nothing)
Профили хранения Да (управление хранением по политикам) Да (классификация хранения)
Защита VM LOCKSTEP Да (Fault Tolerance), поддерживается 4 vCPU без ограничений на типы дисков Нет

Высокая доступность (HA) и управление ресурсами

VMware vSphere 6.0 Enterprise Plus Microsoft Hyper-V 2012 R2 Datacenter
Узлов на кластер 64 64
ВМ на кластер 8000 8000
HA (рестарт ВМ при отказе) VMware HA Да (кластеризация и Heartbeat)
Отказоустойчивость (Fault Tolerance) Да (100% доступность для бизнес-критичных приложений в ВМ), даже при аппаратном отказе Нет
Репликация Нативная (vSpare Replication) Hyper-V Replica
Автоматическое управление ресурсами Планировщик Distributed Resource Scheduler (DRS) для балансирования нагрузки Dynamic Optimization
Пулы ресурсов Да Да (Host Group)
Совместимость миграции Да (улучшенная совместимость vMotion); EVC в настройках DRS Да (для процессоров)

Hyper-V hypercalls

Hyper-V’s hypercalls are organized in a table in the CONST section, using the hypercall structure (see this). Let’s hit a breakpoint in one of the hypercalls handlers. For that we need to execute a vmcall in the root partition. Note that even though VT-x let us execute vmcall from CPL3, Hyper-V forbids it and only lets us execute vmcall from CPL0. The classical option to call a hypercall would be to compile a driver and call the hypercall ourselves. An easier (though a bit hacky) option is to break on nt!HvcallInitiateHypercall, which wraps the hypercall:


Where rcx is hypercall id, and rdx, r8 are the input and output parameters. The register mapping is different for fast and non-fast calling convention, as documented in the TLFS:

Register mapping for hypercall inputs when the Fast flag is zero:


Register mapping for hypercall inputs when the Fast flag is one:


Let’s see an example for that. We will break on a hypercall handler, after triggering it manually from the root partition. To keep things simple, we’ll pick a hypercall which usually doesn’t get called in normal operation: hv!HvInstallIntercept. First, we need to find it’s hypercall id. There’s a convenient reference for documented hypercalls in Appendix A of TLFS. Specifically, hv!HvInstallIntercept is hypercall id == 0x4d.

Assuming we already have the two debuggers running and an IDA instance we use as a reference, we should first rebase our binary (Edit -> Segments -> Rebase Program) to the base of the running hypervisor address. This step is optional but would save us the need to calculate VAs manually due to ASLR. To get the Hyper-V base, run “lm m hv” in the debugger that’s connected to the hypervisor, and use that address to rebase the idb:


Great! Now, on the second debugger, which is connected to the kernel, bp on nt!HvcallInitiateHypercall.

When this breakpoint hits (happens all the time), ntos is just about to issue a hypercall to Hyper-V. The “hypercall input value”, which hold some flags and the hypercall call code, is on rcx (first argument to nt!HvCallInitiateHypercall). By modifying rcx, we can change the hypercall that will get called.

The hypercall input value isn’t simply the id: it’s the id encoded with some flags, which indicate what type of hypercall we are issuing, and in what “fashion” we want this hypercall to be called. There are different ways to call a hypercall in Hyper-V:

  • Simple – perform a single operation and has a fixed-size set of input and output parameters.
  • Rep (repeat) – perform multiple operations, with a list of fixed-size input and/or output elements.

The encoding for the hypercall input value is available in the TLFS. The lower bits represent the call code for the hypercall:


And the meaning of the fields can be seen here (source: TLFS):


When we break on nt!HvcallInitiateHypercall, we might end up hitting a rep or fast hypercall. Some hypercalls must be called “fast” (as indicated by the 16th bit) or in a repeat. You can see these requirements in the same hypercall table in appendix A in TLFS. For our example, we call it in with register-base calling convention, so set rcx=1<<16 | 0x4d (or in other words, hypercall id 0x4d, with “fast” bit on).

Now, let’s talk about how we pass arguments to hypercalls handlers when we call them from the root partition. The arguments are set in the rdx and r8 registers. Please note, that there is a difference between fast call and non-fast call (in non-fast call, r8 is the output parameter). In the upcoming example, we’ll see a fast call, so r8 will be the second argument.

Inside the hypercall handler, which resides in the hypervisor, the registers are managed differently. The first argument to the hypercall handler, rcx, is a pointer to a structure which holds all the hypercall’s arguments (so, rdx and r8 will be the first 2 qwords in it). The rest of the arguments, rdx, r8, will be set by the hypervisor, and we don’t have direct control over them from a guest partition.

Let’s check it out on hv!HvInstallIntercept. On the left we see our kernel debugger where we break on nt!HvcallInitiateHypercall and set the registers. Then we continue execution and see that the hypercall handler is hit in hvix64.exe. There, *rcx will hold the arguments we passed on registers.


Success!

If we keep stepping, we will return from the function relatively fast, since the first thing that this hypercall handler does is getting the relevant partition by PartitionID, which is its first argument. Simply set rdx=ffffffffffffffff, which is HV_PARTITION_ID_SELF (defined among other definitions in the TLFS):

Then the flow can continue. It’s a pretty common pattern we find in lots of different hypercall handlers, so it’s worth to keep it in mind.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий