Интерфейс гостевой службы hyper v что это за служба
Windows Server 2016 и службы интеграции Hyper-V
Службы интеграции Hyper-V отвечают за эффективное взаимодействие виртуальных машин и гипервизора посредством установки дополнительных сервисов в гостевую ОС. Для понимания степени важности, предлагаем кратко рассмотреть каждую из них, а также ключевые изменения в Windows Server 2016.
По умолчанию, не все службы включены. Guest Services, как правило, включается по мере необходимости. Остальные отвечают за более важную функциональность.
Operating System Shutdown – включает возможность завершения работы ВМ (аналогия привычного shutdown из гостевой ОС), используя Hyper-V Manager или PowerShell/WMI.
Time Synchronization – отвечает за предоставление синхронизации времени между хостом и виртуальной машины.
Data Exchange или KVP (key-value pairs) – предоставляет функционал обмена значениями формата key + value типа strings, расположенных в ветке реестра HKLM\Software\Microsoft\Virtual Machine\ или в файлах kvp_pool_x (для ОС Linux) через VMbus. На стороне хоста WMI-запросами занимается VMMS.exe (функции AddKvpItems, ModifyKvpItems и RemoveKvpItems). В свою очередь, на ВМ должна быть запущена служба Hyper-V Data Exchange Service.
HKLM\Software\Microsoft\Virtual Machine\Auto содержит информацию о ВМ, которая генерируется во время первого запуска службы Hyper-V Data Exchange Service.
HKLM\Software\Microsoft\Virtual Machine\External содержит данные, отправленные пользователем со стороны хоста. По умолчанию данный раздел пуст и не содержит никаких объектов KVP.
HKLM\Software\Microsoft\Virtual Machine\Guest презентует данные, которые необходимо отправить узлу виртуализации из данной ВМ. К примеру, сведения о AVMA-активации или кастомные параметры, которые вашему приложению необходимо передать на уровень выше (да, в целом, мы можем добавлять собственные пары key + value и работать с ними через KVP и WMI без предоставления credentials. Новая аналогия – PowerShell Direct, но со своими плюсами и минусами).
HKLM\Software\Microsoft\Virtual Machine\Guest\Parameters содержит информацию об узле виртуализации (наименование, FQDN, VMID и так далее). Запомните эту ветку – она далее нам пригодится.
Heartbeat отвечает за проверку состояния ВМ через hearbeats, выполняемые в определенный интервал, между ВМ и узлом.
Backup (volume snapshot) включает возможность использования задач резервного копирования ВМ на уровне хоста для обеспечения консистентности резервных копий.
Guest Services обеспечивают передачу файлов в ВМ через WMI или PowerShell (Copy-VMFile). По умолчанию, не включена. Более подробно можно почитать здесь.
Что нужно учитывать в Windows Server 2016?
Все помнят, что для установки служб интеграции приходилось монтировать ISO-образ (%systemroot%\system32\vmguest.iso) через опцию «Insert Integration Services Setup Disk» в консоли ВМ и запускать процесс установки внутри ВМ. Затем проверять версию IS время от времени для её актуализации (vmguest.iso, так же как и узел, тоже обновлялся через Windows Update). Данный процесс существенно поменялся в Windows Server 2016. Опции в консоли теперь нет, как и самого vmguest.iso. Теперь распространением IS на ВМ занимается сам Windows Update. Но есть особенности, которые мы рассмотрим ниже.
Автоматическая доставка IS через Windows Update доступна для новых ОС внутри ВМ (начиная с Windows Server 2012 R2/Windows 8.1 и новее). Дополнительных действий от вас не требуется.
Если гостевые ОС на базе Windows Server 2012/Windows 8 и старше, то требуется наличие рабочей службы Data Exchange Service (рассмотренная выше). DES предоставляет доступ к параметрам /values HostSystemOSMajor и HostSystemOSMinor, располагающимся в ветке HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters, для определения необходимости обновления IS на ВМ. Данные параметры должны присутствовать и иметь значения. В противном случае (к примеру, если DES не включен для ВМ или служба не выполняется), IS не будут предоставляться через WU.
TIP: мы можем вручную создать или изменить данные значения реестра для подачи «фальш»-сигнала, но данное действие официально не поддерживается.
Предположим, что в рамках ВМ выполняется Windows Server 2012 R2, а на хосте – Windows Server 2016. DES получает сведения о ВМ, сверяет значения между имеющимися на узле и полученные от ВМ и они оказываются различными, таким образом IS на ВМ не актуальны и их обновление будет выполнено через WU.
В случае с ОС на базе Linux, как правило, IS идут встроенными. В ряде случаев требуется пакет Linux Integration Services или FreeBSD Integration Services. Получить подробные сведения о требованиях к различным дистрибутивам и функциональности можно из статьи «Supported Linux and FreeBSD virtual machines for Hyper-V on Windows».
Если у Вас всё ещё есть виртуализированный Windows Server 2003, который уже не поддерживается, то, как минимум, рекомендуется устанавливать IS, используя vmguest.iso из Windows Server 2012 R2, к примеру. Надежность и производительность не гарантируется, но 2003-й год был уже 14 лет назад. Конечно, миграция на более новые версии ОС будет предпочтительна в данном случае.
Как установить IS вручную?
Если DES не выполняется или Windows Update недоступен из ВМ, то есть специальный KB для самостоятельной загрузки IS «Hyper-V integration components update for Windows virtual machines that are running on a Windows 10 or Windows Server 2016-based host» (доступная в KB версия IS: 6.3.9600.17903) + IS Update для устранения проблем с Windows Server Guest OSes (IS ver.6.3.9600.18080, применим и для Windows 7/8.1).
-Online. Если нужно применить обновление IS на выключенной ВМ (offline vm servicing), то рекомендуем обратиться к данному руководству.
990x.top
Простой компьютерный блог для души)
Hyper-V — что это за служба и как её отключить?
Данный компонент является виртуальной машиной Microsoft, позволяющая запускать другие операционные системы внутри работающей Windows.
Гипервизор — что это такое? На самом деле это сложное слово означает просто программу, которая умеет создавать и запускать виртуальные компьютеры на одном физическом. То есть виртуальные машины или гостевые операционные системы.
Простыми словами: ПО Hyper-V позволяет создавать в некотором смысле виртуальные компьютеры, внутри которых функционирует операционная система. При создании такой виртуальный ПК настраивается, например можно указать размер жесткого диска, обьем оперативной памяти:
После создания — виртуальный ПК, или виртуальную машину можно запустить. Такой ПК реализован в отдельном окне. Внутри — обычная операционная система, например OS Windows, в которой можно устанавливать софт и работать с ней так, будто это совсем отдельный ПК. Встроенное решение виртуальных машин Microsoft — можно назвать базовым, существует профессиональные программы, специализирующимися на этом деле, например VMware Workstation (платная), Oracle VM VirtualBox (бесплатная).
Диспетчер Hyper-V — менеджер виртуальных машин, их может быть несколько. Каждую можно запустить, если физический компьютер потянет. На картинке выше пример виртуальной машины, маленькое окошко, которое по факту является целым настоящим виртуальным ПК, где своя операционка, обьем оперативки (RAM), процессор (CPU), жесткий диск (HDD).
Для корректной работы Hyper-V необходима активация функций виртуализации в BIOS, позволяющие виртуальным машинам отправлять команды напрямую. Данные функции у Intel — это VT-x (или Intel Virtualization Technology), а также дополнительно VT-d, у AMD — SVM Mode. PS: название параметров может отличаться в зависимости от модели материнской платы.
Hyper-V — как отключить?
Hyper-V является системным компонентом. Деактивировать нужно через системные параметры отключения встроенных компонентов.
Важно: проблема в том, что некоторое ПО, которое использует технологии виртуализации — может глючить при активном Hyper-V. Пример такого ПО: эмулятор Android BlueStacks, виртуальная машина VirtualBox, это может касаться и NoxPlayer.
Стандартный способ деактивации Hyper-V:
Снимаем галочку с данного пункта:
Другие названия пункта, могут идти как дополнительные, их тоже стоит отключить: Windows Hypervisor Platform, Virtual Machine Platform.
Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!
Службы интеграции Hyper-V
Службы интеграции (часто называемые компонентами интеграции) — это службы, позволяющие виртуальной машине связываться с узлом Hyper-V. Многие из этих служб используются для удобства, а другие могут быть достаточно важны для правильной работы виртуальной машины.
В этой статье приведены справочные сведения по каждой из служб интеграции, доступной в Windows. Она также является отправной точкой для получения любых сведений, связанных с конкретными службами интеграции и их историей.
Руководства пользователя:
Краткий справочник
Имя | Название службы Windows | Имя управляющей программы Linux | Описание | Влияние на виртуальную машину при отключении |
---|---|---|---|---|
Служба пульса Hyper-V | vmicheartbeat | hv_utils | Сообщает, что виртуальная машина работает нормально. | Различается |
Завершение работы службы виртуальной машины Hyper-V | vmicshutdown | hv_utils | Позволяет узлу управлять выключением виртуальных машин. | Высокая |
Служба синхронизации времени Hyper-V | vmictimesync | hv_utils | Синхронизирует время виртуальной машины со временем на главном компьютере. | Высокая |
Служба обмена данными Hyper-V (KVP) | vmickvpexchange | hv_kvp_daemon | Позволяет виртуальной машине и узлу обмениваться между собой простыми метаданными. | Средний |
Служба запросов на теневое копирование томов Hyper-V | vmicvss | hv_vss_daemon | Позволяет службе теневого копирования томов выполнить резервное копирование виртуальной машины без ее выключения. | Различается |
Интерфейс гостевой службы Hyper-V | vmicguestinterface | hv_fcopy_daemon | Предоставляет интерфейс для узла Hyper-V для копирования файлов с виртуальной машины и на виртуальную машину. | Низкий |
Служба PowerShell Direct для Hyper-V | vmicvmsession | недоступно | Позволяет управлять виртуальной машиной с помощью PowerShell без подключения к сети. | Низкий |
Служба пульса (Hyper-V)
Имя службы Windows: vmicheartbeat
Имя управляющей программы Linux: hv_utils
Описание. Сообщает узлу Hyper-V, что на виртуальной машине установлена операционная система и что она загрузилась надлежащим образом.
Добавлено в: Windows Server 2012, Windows 8
Влияние. При отключении виртуальная машина не может сообщать о корректной работе своей операционной системы. Это может повлиять на некоторые виды мониторинга и диагностики на стороне узла.
Служба пульсов позволяет ответить на простые вопросы, например: «Загрузилась ли виртуальная машина?».
Когда Hyper-V сообщает, что состояние виртуальной машины — «Запущена» (см. пример ниже), это означает, что Hyper-V выделил ресурсы для виртуальной машины, и это не означает, что на виртуальной машине установлена или нормально работает операционная система. Здесь оказывается полезной служба пульсов. Служба пульсов сообщает Hyper-V о том, что операционная система на виртуальной машине загрузилась.
Проверка пульсов с помощью PowerShell
Запустите Get-VM от имени администратора, чтобы увидеть пульсы от виртуальной машины:
Выходные данные должны иметь следующий вид:
Поле Status определяется службой пульсов.
Служба завершения работы в качестве гостя (Hyper-V)
Имя службы Windows: vmicshutdown
Имя управляющей программы Linux: hv_utils
Описание. Позволяет узлу Hyper-V запрашивать завершение работы виртуальной машины. Компьютер виртуальной машины всегда может принудительно выключить виртуальную машину, но это похоже на нажатие кнопки выключения в отличие от корректного завершения работы.
Добавлено в: Windows Server 2012, Windows 8
Влияние:высокая степень влияния. При отключении узел не сможет корректно завершить работу виртуальной машины. Выключение будет только жестким, что может привести к потере или повреждению данных.
Служба синхронизации времени Hyper-V
Имя службы Windows: vmictimesync
Имя управляющей программы Linux: hv_utils
Описание: Синхронизирует системное время виртуальной машины с системным временем физического компьютера.
Добавлено в: Windows Server 2012, Windows 8
Влияние:высокая степень влияния. При отключении время на виртуальной машине будет случайным образом отклоняться от времени компьютера.
Служба обмена данными Hyper-V (KVP)
Имя службы Windows: vmickvpexchange
Имя управляющей программы Linux: hv_kvp_daemon
Описание. Предоставляет механизм для обмена простыми метаданными между виртуальной машиной и узлом.
Добавлено в: Windows Server 2012, Windows 8
Влияние. При отключении виртуальные машины с системой Windows 8, Windows Server 2012 или более ранней версией не будут получать обновления для служб интеграции Hyper-V. Отключение обмена данными также может повлиять на некоторые виды мониторинга и диагностики на стороне узла.
Служба обмена данными (иногда называемая KVP) предоставляет небольшой объем данных о виртуальной машине узлу Hyper-V (и наоборот) с помощью пар «ключ-значение» (KVP) в реестре Windows. Тот же механизм может также применяться для совместного использования настроенных данных виртуальной машиной и узлом.
Пары «ключ-значение» состоят из ключа и значения. И ключ, и значение являются строками, другие типы данных не поддерживаются. При создании или изменении пары «ключ-значение» она доступна как в гостевой ОС, так и на узле. Данные из пары «ключ-значение» передаются через шину VMbus Hyper-V и не требуют никакого сетевого подключения между гостевой ОС и узлом Hyper-V.
Служба обмена данными — это мощный инструмент для сохранения данных о виртуальной машине; для совместного использования интерактивных данных или передачи данных используйте PowerShell Direct.
Руководства пользователя:
Служба запросов на теневое копирование томов Hyper-V
Имя службы Windows: vmicvss
Имя управляющей программы Linux: hv_vss_daemon
Описание. Позволяет службе теневого копирования томов выполнять резервное копирование приложений и данных на виртуальной машине.
Добавлено в: Windows Server 2012, Windows 8
Влияние. При отключении невозможно выполнить резервное копирование виртуальной машины во время выполнения (с помощью VSS).
Служба запросов на теневое копирование томов необходима для службы теневого копирования томов (VSS). Служба теневого копирования томов (VSS) захватывает и копирует образы для резервного копирования в работающих системах, в частности на серверах, без существенного снижения производительности и с сохранением стабильности работы служб, предоставляемых этими системами. Для этого служба интеграции координирует рабочие нагрузки виртуальной машины с процессом резервного копирования узла.
Дополнительные сведения о теневом копировании томов см. здесь.
Интерфейс гостевой службы Hyper-V
Примечания.
Отключено по умолчанию. См. раздел PowerShell Direct с использованием Copy-Item.
Служба PowerShell Direct для Hyper-V
Имя службы Windows: vmicvmsession
Имя управляющей программы Linux: отсутствует
Описание. Предоставляет механизм для управления виртуальной машиной с помощью PowerShell, используя сеанс виртуальной машины без виртуальной сети.
Добавлено в: Windows Server TP3, Windows 10
Влияние. При отключении этой службы узел не сможет подключиться к виртуальной машине с помощью PowerShell Direct.
Примечания.
Изначально эта служба называлась службой сеансов виртуальных машин Hyper-V.
PowerShell Direct находится в активной разработке и доступен только для узлов и гостевых ОС с Windows 10 и Windows Server Technical Preview 3 или более поздней версией.
С помощью PowerShell Direct можно управлять виртуальной машиной средствами PowerShell с узла Hyper-V независимо от конфигурации сети и параметров удаленного управления на узле Hyper-V или виртуальной машине. Это позволяет администраторам Hyper-V автоматизировать управление и настройку с помощью сценариев.
Архитектура Hyper-V: Глубокое погружение
Что же такое – Hyper-V?
Hyper-V – это одна из технологий виртуализации серверов, позволяющая запускать на одном физическом сервере множество виртуальных ОС. Эти ОС именуются «гостевыми», а ОС, установленная на физическом сервере – «хостовой». Каждая гостевая операционная система запускается в своем изолированном окружении, и «думает», что работает на отдельном компьютере. О существовании других гостевых ОС и хостовой ОС они «не знают».
Эти изолированные окружения именуются «виртуальными машинами» (или сокращенно — ВМ). Виртуальные машины реализуются программно, и предоставляют гостевой ОС и приложениям доступ к аппаратным ресурсам сервера посредством гипервизора и виртуальных устройств. Как уже было сказано, гостевая ОС ведет себя так, как будто полностью контролирует физический сервер, и не имеет представления о существовании других виртуальных машин. Так же эти виртуальные окружения могут именоваться «партициями» (не путать с разделами на жестких дисках).
Впервые появившись в составе Windows Server 2008, ныне Hyper-V существует в виде самостоятельного продукта Hyper-V Server (де-факто являющегося сильно урезанной Windows Server 2008), и в новой версии – R2 – вышедшего на рынок систем виртуализации Enterprise-класса. Версия R2 поддерживает некоторые новые функции, и речь в статье пойдет именно об этой версии.
Гипервизор
Термин «гипервизор» уходит корнями в 1972 год, когда компания IBM реализовала виртуализацию в своих мэйнфреймах System/370. Это стало прорывом в ИТ, поскольку позволило обойти архитектурные ограничения и высокую цену использования мэйнфреймов.
Гипервизор – это платформа виртуализации, позволяющая запускать на одном физическом компьютере несколько операционных систем. Именно гипервизор предоставляет изолированное окружение для каждой виртуальной машины, и именно он предоставляет гостевым ОС доступ к аппаратному обеспечению компьютера.
Гипервизоры можно разделить на два типа по способу запуска (на «голом железе» или внутри ОС) и на два типа по архитектуре (монолитная и микроядерная).
Гипервизор 1 рода
Гипервизор 1 типа запускается непосредственно на физическом «железе» и управляет им самостоятельно. Гостевые ОС, запущенные внутри виртуальных машин, располагаются уровнем выше, как показано на рис.1.
Рис.1 Гипервизор 1 рода запускается на «голом железе».
Гипервизор 2 рода
В отличие от 1 рода, гипервизор 2 рода запускается внутри хостовой ОС (см. рис.2).
Рис.2 Гипервизор 2 рода запускается внутри гостевых ОС
Виртуальные машины при этом запускаются в пользовательском пространстве хостовой ОС, что не самым лучшим образом сказывается на производительности.
Примерами гипервизоров 2 рода служат MS Virtual Server и VMware Server, а так же продукты десктопной виртуализации – MS VirtualPC и VMware Workstation.
Монолитный гипервизор
Гипервизоры монолитной архитектуры включают драйверы аппаратных устройств в свой код (см. рис. 3).
Рис. 3. Монолитная архитектура
Микроядерная архитектура
При микроядерной архитектуре драйверы устройств работают внутри хостовой ОС.
Хостовая ОС в этом случае запускается в таком же виртуальном окружении, как и все ВМ, и именуется «родительской партицией». Все остальные окружения, соответственно – «дочерние». Единственная разница между родительской и дочерними партициями состоит в том, что только родительская партиция имеет непосредственный доступ к оборудованию сервера. Выделением памяти же и планировкой процессорного времени занимается сам гипервизор.
Рис. 4. Микроядерная архитектура
Архитектура Hyper-V
На рис.5 показаны основные элементы архитектуры Hyper-V.
Рис.5 Архитектура Hyper-V
Как видно из рисунка, гипервизор работает на следующем уровне после железа – что характерно для гипервизоров 1 рода. Уровнем выше гипервизора работают родительская и дочерние партиции. Партиции в данном случае – это области изоляции, внутри которых работают операционные системы. Не нужно путать их, к примеру, с разделами на жестком диске. В родительской партиции запускается хостовая ОС (Windows Server 2008 R2) и стек виртуализации. Так же именно из родительской партиции происходит управление внешними устройствами, а так же дочерними партициями. Дочерние же партиции, как легко догадаться – создаются из родительской партиции и предназначены для запуска гостевых ОС. Все партиции связаны с гипервизором через интерфейс гипервызовов, предоставляющий операционным системам специальный API. Если кого-то из разработчиков интересуют подробности API гипервызовов — информация имеется в MSDN.
Родительская партиция
Рис.6 Компоненты родительской партиции Hyper-V
Стек виртуализации
Рабочий процесс виртуальной машины (VMWP)
Для управления виртуальной машиной из родительской партиции запускается особый процесс – рабочий процесс виртуальной машины (VMWP). Процесс этот работает на уровне пользователя. Для каждой запущенной виртуальной машины служба VMMS запускает отдельный рабочий процесс. Это позволяет изолировать виртуальные машины друг от друга. Для повышения безопасности, рабочие процессы запускаются под встроенным пользовательским аккаунтом Network Service.
Процесс VMWP используется для управления соответствующей виртуальной машиной. В его задачи входит:
Создание, конфигурация и запуск виртуальной машины
Пауза и продолжение работы (Pause/Resume)
Сохранение и восстановление состояния (Save/Restore State)
Создание моментальных снимков (снапшотов)
Кроме того, именно рабочий процесс эмулирует виртуальную материнскую плату (VMB), которая используется для предоставления памяти гостевой ОС, управления прерываниями и виртуальными устройствами.
Виртуальные устройства
Драйвер виртуальной инфраструктуры (VID)
Драйвер виртуальной инфраструктуры (vid.sys) работает на уровне ядра и осуществляет управление партициями, виртуальными процессорами и памятью. Так же этот драйвер является промежуточным звеном между гипервизором и компонентами стека виртуализации уровня пользователя.
Библиотека интерфейса гипервизора
Библиотека интерфейса гипервизора (WinHv.sys) – это DLL уровня ядра, которая загружается как в хостовой, так и в гостевых ОС, при условии установки компонент интеграции. Эта библиотека предоставляет интерфейс гипервызовов, использующийся для взаимодействия ОС и гипервизора.
Провайдеры служб виртуализации (VSP)
Провайдеры служб виртуализации работают в родительской партиции и предоставляют гостевым ОС доступ к аппаратным устройствам через клиент служб виртуализации (VSC). Связь между VSP и VSC осуществляется через виртуальную шину VMBus.
Шина виртуальных машин (VMBus)
Назначение VMBus состоит в предоставлении высокоскоростного доступа между родительской и дочерними партициями, в то время как остальные способы доступа значительно медленнее из-за высоких накладных расходах при эмуляции устройств.
Если гостевая ОС не поддерживает работу интеграционных компонент – приходится использовать эмуляцию устройств. Это означает, что гипервизору приходится перехватывать вызовы гостевых ОС и перенаправлять их к эмулируемым устройствам, которые, напоминаю, эмулируются рабочим процессом виртуальной машины. Поскольку рабочий процесс запускается в пространстве пользователя, использование эмулируемых устройств приводит к значительному снижению производительности по сравнению с использованием VMBus. Именно поэтому рекомендуется устанавливать компоненты интеграции сразу же после установки гостевой ОС.
Как уже было сказано, при использовании VMBus взаимодействие между хостовой и гостевой ОС происходит по клиент-серверной модели. В родительской партиции запущены провайдеры служб виртуализации (VSP), которые являются серверной частью, а в дочерних партициях – клиентская часть – VSC. VSC перенаправляет запросы гостевой ОС через VMBus к VSP в родительской партиции, а сам VSP переадресовывает запрос драйверу устройства. Этот процесс взаимодействия абсолютно прозрачен для гостевой ОС.
Дочерние партиции
Вернемся к нашему рисунку с архитектурой Hyper-V, только немного сократим его, поскольку нас интересуют лишь дочерние партиции.
Рис. 7 Дочерние партиции
ОС Windows с установленными компонентами интеграции
ОС не из семейства Windows, но поддерживающая компоненты интеграции
Существуют так же ОС, не относящиеся к семейству Windows, но поддерживающие компоненты интеграции.На данный момент – это только SUSE Linux Enterprise Server и Red Hat Enterprise Linux. Такие ОС при установке компонент интеграции используют VSC сторонних разработчиков для взаимодействия с VSC по VMBus и доступа к оборудованию. Компоненты интеграции для Linux разработаны компанией Microsoft совместно с Citrix и доступны для загрузки в Microsoft Download Center. Поскольку компоненты интеграции для Linux были выпущены под лицензией GPL v2, ведутся работы по интеграции их в ядро Linux через Linux Driver Project, что позволит значительно расширить список поддерживаемых гостевых ОС.
Вместо заключения
На этом я, пожалуй, закончу свою вторую статью, посвященную архитектуре Hyper-V. Предыдущая статья вызвала у некоторых читателей вопросы, и надеюсь, что теперь я на них ответил.
Надеюсь, что чтение не было слишком скучным. Я достаточно часто использовал «академический язык», но это было необходимо, поскольку тематика статьи предполагает очень большой объем теории и практически нуль целых нуль десятых практики.
Выражаю огромную благодарность Mitch Tulloch и Microsoft Virtualization Team. На основе их книги Understanding Microsoft Virtualization Solutions и была подготовлена статья.