Hyper-V

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Microsoft Hyper-V (кодовое имя Viridian[1]), — система аппаратной виртуализации для x64-систем на основе гипервизора[2]. Бета-версия Hyper-V была включена в x64-версии Windows Server 2008, а финальная версия (автоматически, через Windows Update) была выпущена 26 июня 2008[3]. Ранее была известна как виртуализация Windows Server (Windows Server Virtualization).

Версии и варианты[править | править вики-текст]

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

  1. Как отдельный продукт Microsoft Hyper-V Server. Существует три версии: Hyper-V Server 2012 R2 (текущая версия Hyper-V), Hyper-V Server 2012, Hyper-V Server 2008 R2 и Hyper-V Server 2008.
  2. Как роль Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 и x64 битная версия Windows 8 Pro.

Отдельная версия Hyper-V Server является бесплатной. Первая версия была выпущена 1 октября 2008. Является базовым («Server Core») вариантом Windows Server 2008, то есть включает в себя полную функциональность Hyper-V; прочие роли Windows 2008 Server отключены, также лимитированы службы Windows.[4] Бесплатная 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

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 по сравнению с прочими операционными системами, которым требуется более медленная эмуляция устройств.

Системные требования / Спецификации[править | править вики-текст]

  1. x64-совместимый процессор, поддерживающий запуск x64-версии Windows Server 2008 Standard, Windows Server 2008 Enterprise или Windows Server 2008 Datacenter.
  2. Аппаратная поддержка виртуализации. Эта особенность процессоров, дающая возможность аппаратной виртуализации; касается технологий Intel VT и AMD Virtualization (AMD-V, ранее известная как Pacifica).
  3. NX-бит-совместимый процессор и активированая аппаратная поддержка Data Execution Prevention (DEP).
  4. Память объёмом минимум 2 Гб (каждая виртуальная ОС требует собственного объёма памяти, поэтому реально нужно больше).
  5. Windows 2008 Standard (64-bit) Hyper-V Core требует примерно 3 Гб дискового пространства в установленном виде.
  6. Windows 2008 Standard (64-bit) Hyper-V с GUI требует примерно 8 Гб дискового пространства в установленном виде.
  7. Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core версии поддерживает до 31 Гб памяти для работы VM, плюс 1 Гб для родительской ОС Hyper-V. [1]
  8. Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core поддерживает до 8 процессоров с 1, 2 или 4 ядрами.
  9. Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core поддерживает до 384 гостевых ОС [2].
  10. Windows 2008 Standard (64-bit) Hyper-V с GUI или в виде Core поддерживает 32-битные (x86) и 64-битные (x86_64) гостевые виртуальные машины.

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

Поддержка гостевых ОС[править | править вики-текст]

Список поддерживаемых/протестированных операционных систем включает[5]

  • Windows Server 2012 R1/R2

Гостевые 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 не поддерживаются, но, тем не менее, могут успешно запускаться.[9][10][11]

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

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

При использовании гостевых ОС 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 были перенесены в основное дерево[14]. Таким образом, дистрибутивы с ядрами новее, чем 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[15] (начиная с версии RHEL 5.5). Однако, при автоматическом обновлении ядра гостевой системы RHEL 5 может возникнуть проблема, описанная в статье KB2387594.

Совместимость 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 файлам, однако формат открыт и опубликован[16], и многие фирмы разработали такую поддержку сами.

Ограничения[править | править вики-текст]

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

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Microsoft to ship Windows Server 2008, over time, in eight flavors. Проверено 13 ноября 2007. Архивировано из первоисточника 23 марта 2012.
  2. Paul Thurrott. Windows Server Virtualization Preview. Проверено 25 сентября 2007. Архивировано из первоисточника 23 марта 2012.
  3. http://www.microsoft.com/presspass/features/2008/jun08/06-26hyperv.mspx (англ.). Проверено 26 июня 2008. Архивировано из первоисточника 23 марта 2012.
  4. Microsoft (1 октября 2008). Microsoft помогает покупателям преодолеть сложности с виртуализацией и получить виртуальность немедленно. Пресс-релиз. Проверено 2008-10-02.
  5. Supported Guest OS on Windows Server 2008 Hyper-V
  6. Microsoft releases Hyper-V RC1
  7. Microsoft and Red Hat sign virtualization pact
  8. FreeBSD Support on Windows Server Hyper-V
  9. Установка Fedora Core 8 на Hyper-V
  10. Предварительный обзор: Fedora 9 Alpha, запущенная на Hyper-V Beta: CRN
  11. Установка Ubuntu 7.10 на Hyper-V
  12. Обзор продукта Hyper-V
  13. Microsoft Hyper-V: из-за чего столько шума?
  14. Hyper-V drivers in mainline kernel - what's next
  15. What are Flex Guest Entitlements in Red Hat Network?
  16. Virtual Hard Disk Image Format Specification
  17. Получаем доступ к USB-устройствам в виртуальных машинах Microsoft
  18. Hyper-V: Живая миграция против быстрой

Литература[править | править вики-текст]

Дополнительные источники[править | править вики-текст]