Hyper-V — система аппаратной виртуализации для x64-систем на основе гипервизора.

Бета-версия Hyper-V была включена в x64-версии Windows Server 2008, а законченная версия (автоматически, через Windows Update) была выпущена 26 июня 2008 года. Ранее была известна как виртуализация Windows Server (Windows Server Virtualization).


Hyper-V существует в двух вариантах:

— Как отдельный продукт Microsoft Hyper-V Server. Имеется четыре версии: Hyper-V Server 2012 R2 (текущая версия Hyper-V), Hyper-V Server 2012, Hyper-V Server 2008 R2 и Hyper-V Server 2008.

— Как роль Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 и x64-разрядной Pro- и Enterprise-версии Windows 8, Windows 8.1, Windows 10.

Отдельная версия Hyper-V Server — бесплатная. Первая версия была выпущена 1 октября 2008 года. Является базовым («Server Core») вариантом Windows Server 2008, то есть включает в себя полную функциональность Hyper-V; прочие роли Windows 2008 Server отключены, также ограничены службы Windows. Бесплатная 64-разрядная Core-версия Hyper-V ограничена интерфейсом командной строки (CLI PowerShell), где конфигурация текущей ОС, физического аппаратного и программного оборудования выполняется при помощи команд оболочки. Новое меню интерфейса управления позволяет выполнить простую первичную конфигурацию, а некоторые свободно распространяемые скрипты расширяют данную концепцию. Администрирование и конфигурирование виртуального сервера (или гостевых ОС) выполняется с помощью ПО, установленного на ПК под управлением Windows Vista, Windows 7 или Windows 2008 Server с установленным дополнением для администрирования Hyper-V из MMC. Другим вариантом администрирования/конфигурирования сервера Windows 2008 Core является использование удалённой Windows или Windows Server при перенаправлении (некоторой) консоли управления (MMC), указывающей на Core Server. Это значительно упрощает настройку, сводя её к нескольким щелчкам мыши.

В Windows Server 2012 включена обновлённая версия Hyper-V.


Архитектура:

Hyper-V поддерживает разграничение согласно понятию раздел. Раздел — логическая единица разграничения, поддерживаемая гипервизором, в котором работают операционные системы. Каждый экземпляр гипервизора должен иметь один родительский раздел с запущенной Windows Server 2008. Стек виртуализации запускается на родительском разделе и обладает прямым доступом к аппаратным устройствам. Затем родительский раздел порождает дочерние разделы, на которых и располагаются гостевые ОС. Дочерний раздел также может породить собственные дочерние разделы. Родительский раздел создает дочерние при помощи API-гипервизора, представленного в Hyper-V.

Виртуализированные разделы не имеют ни доступа к физическому процессору, ни возможности управлять его реальными прерываниями. Вместо этого у них есть виртуальное представление процессора и гостевой виртуальный адрес, зависящий от конфигурации гипервизора, вовсе необязательно при этом занимающий всё виртуальное адресное пространство. Гипервизор может определять подмножество процессоров для каждого раздела. Гипервизор управляет прерываниями процессора и перенаправляет их в соответствующий раздел, используя логический контроллер искусственных прерываний (Synthetic Interrupt Controller или сокр. SynIC). Hyper-V может аппаратно ускорять трансляцию адресов между различными гостевыми виртуальными адресными пространствами при помощи IOMMU (I/O Memory Management Unit — Устройство управления вводом-выводом памяти), которое работает независимо от аппаратного управления памятью, используемого процессором.

Дочерние разделы не имеют непосредственного доступа к аппаратным ресурсам, но зато получают виртуальное представление ресурсов, называемое виртуальными устройствами. Любая попытка обращения к виртуальным устройствам перенаправляется через VMBus к устройствам родительского раздела, которые и обработают данный запрос. VMBus — это логический канал, осуществляющий взаимодействие между разделами. Ответ возвращается также через VMBus. Если устройства родительского раздела также являются виртуальными устройствами, то запрос будет передаваться дальше, пока не достигнет такого родительского раздела, где он получит доступ к физическим устройствам. Родительские разделы запускают провайдер сервиса виртуализации (Virtualization Service Provider или сокр. VSP), который соединяется с VMBus и обрабатывает запросы доступа к устройствам от дочерних разделов. Виртуальные устройства дочернего раздела работают с клиентом сервиса виртуализации (Virtualization Service Client или сокр. VSC), который перенаправляет запрос через VMBus к VSP родительского раздела. Этот процесс прозрачен для гостевой ОС.

Виртуальные устройства также поддерживают технологию Windows Server Virtualization, называемую прогрессивный ввод-вывод (англ. Enlightened I/O), для накопителей, сетевых и графических подсистем в том числе. Enlightened I/O — специализированная виртуализационная реализация высокоуровневых протоколов, как, например, SCSI, для возможности работать с VMBus напрямую, что позволяет параллельно обрабатывать любые уровни эмуляции устройства. Это делает взаимодействие более эффективным, но взамен требует от гостевой ОС поддержки Enlightened I/O. Только Windows Server 2008 R2, Windows Server 2008, Windows 7, Windows Vista, Red Hat Enterprise Linux и SUSE Linux сейчас обладают поддержкой Enlightened I/O, позволяющей им работать быстрее в качестве гостевых ОС под Hyper-V, чем прочим операционным системам, которым требуется более медленная эмуляция устройств.


Системные требования / Спецификации:

— x64-совместимый процессор, поддерживающий запуск x64-версии Windows Server 2008 Standard, Windows Server 2008 Enterprise или Windows Server 2008 Datacenter.

— Аппаратная поддержка виртуализации. Это особенность процессоров, дающая возможность аппаратной виртуализации; касается технологий Intel VT и AMD Virtualization (AMD-V, ранее известная как Pacifica).

— NX-бит-совместимый процессор и активированная аппаратная поддержка Data Execution Prevention (DEP).

— Память объёмом не менее 2 ГБ (каждая виртуальная ОС требует собственного объёма памяти, поэтому в действительности нужно больше).

— Windows 2008 Standard (64-bit) Hyper-V Core требует примерно 3 ГБ дискового пространства в установленном виде.

— Windows 2008 Standard (64-bit) Hyper-V с GUI требует примерно 8 ГБ дискового пространства в установленном виде.

— Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core-версии поддерживает до 31 ГБ памяти для работы VM, плюс 1 ГБ для родительской ОС Hyper-V.

— Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core поддерживает до 8 процессоров с 1, 2 или 4 ядрами.

— Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core поддерживает до 384 гостевых ОС.

— Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core поддерживает 32-разрядные (x86) и 64-разрядные (x86_64) гостевые виртуальные машины.

— Отдельный Hyper-V Server не требует установленного Windows Server 2008, минимальный объём памяти — 1 ГБ, минимум места на диске — 2 ГБ.


Поддержка гостевых ОС:

Поддерживаемые / протестированные операционные системы:

— Windows Server 2012 R1/R2

— Windows Server 2008 x86/x64 SP1/SP2 и R2

— Windows HPC Server 2008

— Windows Server 2003 x86/x64 SP2 R2

— Windows 2000 Server SP4 и Advanced Server SP4

— Windows 7 и Windows 8.1 Pro и Windows 8.1 Update 1

— Windows Vista SP1/SP2 (кроме редакций Home)

— Windows XP Professional SP2/SP3/x64

— SUSE Linux Enterprise Server (SLES) 10 SP3 и 11

— Red Hat Enterprise Linux (RHEL) 5.2 — 5.6 (x86 Edition или x86_64 Edition)

— Red Hat Enterprise Linux (RHEL) 6.0, 6.1 (x86 Edition или x86_64 Edition)

— CentOS 5.2 — 5.6, 6.0, 7

— FreeBSD 8.2-8.3

— Ubuntu 12.04, 16.04.3

— Debian 7.6

Гостевые Windows Server 2008 и Windows HPC Server 2008 могут быть сконфигурированы для 1-, 2- или 4-процессорного SMP, Windows Server 2003 и Windows Vista для 1- или 2-процессорного SMP. Прочие гостевые ОС, такие как Ubuntu Linux 6.06/6.10/7.10 или Fedora 8/9, не поддерживаются, но, тем не менее, могут успешно запускаться.

Гостевые ОС с поддержкой технологии Enlightened I/O и ядром с поддержкой режима гипервизора, как, например, Windows Server 2008, Windows Vista SP1 и готовящееся предложение от Citrix XenServer и Novell позволят использовать ресурсы хоста более эффективно благодаря тому, что VSC-драйверы в этих гостевых ОС будут взаимодействовать напрямую с VSP через VMbus. ОС без поддержки Enlightened I/O будут запускаться с эмуляцией ввода-вывода; тем не менее компоненты интеграции (которые включают в себя VSC-драйверы) доступны для Windows Server 2003 SP2, Windows XP SP3, Windows Vista SP1 и Linux и позволяют достичь большей производительности.

Гостевые системы Linux также могут быть паравиртуализованы в Hyper-V. Однако сейчас подобным образом официально поддерживаются Microsoft при установке компонентов интеграции только SLES 10 SP3, SLES 11, RHEL и CentOS 5.2, 5.3, 5.4, 5.5, 5.6, 6.0 и 6.1 для x86 и x64.

При использовании гостевых ОС Windows версий до Server 2003 невозможно использование виртуальных SCSI-дисков и адаптеров в них. Это связано с тем, что гостевой драйвер виртуального SCSI-контроллера (STORVSC) основан на подсистеме STORPORT, которая появилась только в Server 2003.


Поддержка Linux:

Hyper-V обеспечивает базовую поддержку виртуализации гостевых Linux-систем в режиме эмуляции устройств, не требуя никаких изменений. Эмулируются контроллеры дисков IDE PIIX4 и PCI Ethernet-адаптер DEC 21140 Tulip, однако скорость работы может быть невысокой и имеется ограничение 128 ГБ на диск.

Паравиртуализация достижима при включении модулей ядра Linux или при установке дополнительных компонентов интеграции (Integration Components). Ранние версии компонентов интеграции функционировали как прослойка между интерфейсом гостевого ядра Xen и Hyper-V (Hypercall Translator). Позднее была реализована прямая поддержка шины VMBbus без Xen. 20 июля 2009 года Microsoft опубликовала эти драйверы под лицензией GPL, и они были официально включены в ядро Linux (опция STAGING/HYPERV). В процессе работы над драйверами различные компоненты постепенно покидали ветку STAGING и начиная с версии ядра Linux 3.4 были перенесены в основное дерево. Таким образом, дистрибутивы с ядрами новее, чем 2.6.32, могут включать встроенную поддержку паравиртуализации Hyper-V (однако, как правило, не включают). Данные драйверы содержат поддержку шины VMbus и позволяют гостевой операционной системе Linux работать c устройствами в режиме Enlightened I/O. Поддерживаются устройства Synthetic IDE, Synthetic SCSI и Synthetic Ethernet. Поддерживаются SMP до 4 ядер и такие функции, как синхронизация времени (в RHEL5 только для 32-битных систем), остановка системы (shutdown) и проверка активности (heartbeat).

Для поддерживаемых систем SLES, RHEL и CentOS компания Microsoft бесплатно распространяет Linux Integration Components 2.1 (для SuSe и RHEL5), Linux Integration Components 3.4 (для RHEL6), которые содержат исходные тексты и скрипты для компиляции, автоматической установки драйверов и автоматической загрузки модулей при старте. Начиная с RHEL 6.4, паравиртуальные драйверы Hyper-V входят в состав системы, поэтому Integration Components более не нужны (хотя и могут применяться).

Интеграция функций мыши гостевой системы Linux ранее достигалась при установке драйверов Citrix XEN Satori InputVSC (являются комбинацией исходных текстов под GPL2 и проприетарных бинарных объектных файлов). В ядре Linux 2.6.39 появилась свободная поддержка InputVSC-мыши. Linux IС 3 также содержат модули поддержки мыши.

Гостевая машина c RedHat Enterprise Linux, работающая под Hyper-V, может пользоваться службами RedHat Networks благодаря лицензии Flex Guest Entitlements (начиная с версии RHEL 5.5). Однако при автоматическом обновлении ядра гостевой системы RHEL 5 может возникнуть проблема, описанная в статье KB2387594.


Hyper-V для Windows Server 2012:

Версия Hyper-V в Windows Server 2012 года поддерживает Windows 8.1 (32- и 64-разрядную). Также стоит отметить, что максимальное число поддерживаемых процессоров для операционных систем Windows Server и Linux увеличено с четырех до 64.


Совместимость VHD с Virtual Server 2005 и Virtual PC 2004/2007:

Hyper-V, как Virtual Server 2005 и Virtual PC 2004/2007, хранит виртуальные диски (в том числе системные тома гостевых ОС) в файлах с расширением VHD. Этот файл содержит гостевую ОС целиком, хотя для некоторых файлов можно настроить откаты и пр.

Старые vhd-файлы от Virtual Server 2005 и Virtual PC 2004/2007 можно скопировать и использовать с помощью Windows 2008 Hyper-V Server, но некоторые изменения в виртуальном оборудовании (видео- и сетевая карта) будут означать потребность гостевых ОС в обновлении драйверов, и, как следствие, в случае последних версий Windows может потребоваться повторная активация.

Microsoft не предоставляет ни DLL, ни API для посекторного доступа к vhd-файлам, однако формат открыт и опубликован, и многие фирмы разработали такую поддержку сами.


Ограничения:

По состоянию на декабрь 2008 года Hyper-V не поддерживает доступ к USB-устройствам или воспроизведение звуков в гостевых ВМ. Тем не менее, обходным маневром для доступа к USB-накопителям в гостевых ВМ может послужить использование Microsoft Remote Desktop Client для открытия доступа к накопителям хоста для «гостей» через соединение Remote Desktop Connection. Другая возможность — использовать устройства типа USB-over-Network с установкой драйверов в каждую виртуальную машину.

Также Hyper-V весьма слаб в поддержке старых приложений для MS-DOS, в том числе игр. Unreal mode в «гостях» не поддерживается вовсе, хотя он правильно поддерживается в Virtual PC.

Также Hyper-V поддерживает живую миграцию (начиная с Windows Server 2008 R2) гостевых ВМ, где живая миграция понимается как поддержка сетевых соединений и отсутствие прерываний выполнения служб во время переноса ВМ. Ранее вместо этого Hyper-V на Server 2008 редакций Enterprise и Datacenter поддерживал быструю миграцию, во время которой гостевая ВМ приостанавливается на одном хосте и «пробуждается» уже на другом. Такая операция занимает столько времени, сколько требуется для передачи активной памяти гостевой ВМ по сети от первого хоста второму.


   Программное обеспечение