Архитектура служб интеграции Hyper-V и их работа в различных ОС

Я часто использую слова «службы интеграции» или «Integration Services» (также известные как «компоненты интеграции» или «Integration Components» в предварительных версиях Hyper-V). Но еще не писал, что стоит за этими словами и из чего собственно состоят сами службы интеграции. Еще во времена Virtual Server 2005 мы устанавливали в гостевых ОС специальные дополнения — VMAdditions, — которые, во-первых, существенно ускоряли работу ОС в виртуальной машине, а во-вторых предоставляли дополнительные возможности. В Hyper-V эта ситуация изменилась не принципиально. Но я бы хотел немного глубже затронуть вопрос о том, из чего же состоят компоненты интеграции Hyper-V и какой функционал приносит их установка в зависимости от версии ОС в виртуальных машинах.

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

  1. Драйверы синтетических устройств
    • Контроллер IDE (фильтр Fast Path) — ускоряет операции ввода/вывода на виртуальных дисках IDE за счет того, что не использует драйвер из поставки ОС, а направляет данные напрямую в VMbus. (Штатный драйвер ОС работает через эмуляцию, но используется только на этапе загрузки).
    • Контроллер SCSI — эмулируемого аналога не существует, и синтетический драйвер требуется для подключения виртуальных дисков SCSI. Скорость виртуального SCSI лишь немногим больше скорости виртуального IDE при использовании фильтра. Сравнивать эмулируемый IDE (без использования фильтра) с синтетическим SCSI бессмысленно, так как эмулируемый заведомо значительно медленнее.
    • Сетевой адаптер — драйвер для «Network Adapter», который работает через VMbus. Без установки служб интеграции можно работать только через эмулируемый «Legacy Network Adapter», который значительно медленнее синтетического.
    • Видеоадаптер — драйвер видеоконтроллера в ВМ, который поддерживает начальные функции ускорения 3D и работает заметно быстрее, чем без установки служб интергации. Однако, если для вас действительно важна производительность подсистемы видео в виртуальной машине, я все равно рекомендую использовать терминальный доступ к ней, так как драйвер RDP работает быстрее.
    • Мышь — требуется для корректной работы с виртуальными машинами через подключение к «Удаленному рабочему столу». Решает проблемы «зависания» курсора и его скачков по экрану. Без этого драйвера мышь в ВМ не работает вообще, если вы подключаетесь сначала через «Удаленный рабочий стол» (например, к родительской системе), а затем вызываете подключение к ВМ с помощью инструмента «Virtual Machine Connection» консоли Hyper-V Manager.
  2. Службы в гостевой ОС
    • Выключение — позволяет вам корректно погасить ОС в виртуальной машине одним нажатием кнопки, не заходя в ВМ и не пользуясь сетью. В отличии от «грязного» выключения ВМ (который является аналогом принудительного отключения питания) сохраняет настройки и останавливает операции с диском, оставляя файловую систему в корректном состоянии.
    • Синхронизация времени. Вообще говоря, ВМ всегда использует время из «родительской» системы при включении. Службы интеграции для этого не нужны — более того, отключить это вы не можете. Но службы интеграции используются в том случае, если ваша ВМ уже работает включенной, и вы не хотите зависеть от капризов виртуального таймера. В этом случае автоматическая синхронизация времени происходит раз в пять секунд, а также в следующих ситуациях:
      • запуск службы «Hyper-V Time Synchronization»;
      • восстановление из сохраненного состояния (Saved State);
      • возобновление после паузы.
    • Обмен данными — мы уже писали о том, что такое Data Exchange, и как можно настроить обмен некоторой информацией между родительской системой и виртуальной машиной. Скоро будет опубликована и заключительная статья из этого цикла.
    • «Пульс» (Heartbeat)  — возможность понимать, что ВМ «жива и здорова» и продолжает общаться с родительской системой. Состояние ВМ отображается в консоли «Hyper-V Manager», и в случае проблем вы увидите сообщение «Lost Communication». Оно говорит о том, что ВМ по каким-то причинам перестала передавать свой пульс. SCVMM также умеет обрабатывать такие события.
    • Резервное копирование при помощи VSS — для тех гостевых ОС, которые поддерживают Volume Shadow Services, возможно резервное копирование запущенных ВМ при помощи VSS.

Важно понимать, что все пять последних возможностей включены по умолчанию — но не всегда это может оказаться желательным. Впрочем, эти возможности отключаются индивидуально в настройках каждой ВМ. Итак, теперь давайте взглянем на матрицу по версиям ОС. Какие функции служб интеграции доступны в каких гостевых ОС?

Увы, службы интеграции для Windows 2000 и Windows XP x86 не включают драйвер синтетического контроллера SCSI. Он использует архитектуру virtual miniport, которая в этих ОС отсутствует. Также в них отсутствует полноценная поддержка VSS — а значит, нет и службы Hyper-V Volume Shadow Copy Requestor. В Windows XP x64 все это есть, так как она имеет общий код с Windows Server 2003 — для которой и разрабатывались эти драйвер и служба. О компонентах интеграции для Linux я вообще лучше промолчу. Или напишу отдельную статью.