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