Windows Server 2016 и службы интеграции Hyper-V
По умолчанию, не все службы включены. 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».
Предварительно нужно удостовериться в наличии установленных April 2014, update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 (2919355) и Service Pack 1 for Windows 7.
IS из KB доступен в виде cab-файла, который можно применить через PowerShell: Add-WindowsPackage -PackagePath
Где я могу найти VMGuest.iso?
Загрузить VMGuest.ISO можно здесь. Данный образ содержит IS Windows Server 2012 R2, обновленные на текущий момент (февраль, 2017). Вы можете использовать их для установки или обновления IS «доисторических» ОС на узлах Windows Server 2016 или Windows Server 2012 R2/Windows 8.0, но лучшим решением будет спланировать миграцию для таких гостевых ОС на более новые.
Об авторе
Роман Левченко начал свою IT-карьеру в 2007 году и на данный момент работает в качестве Системного Архитектора в лидирующем интеграторе. Имеет опыт построения комплексных систем преимущественно на базе продуктов Microsoft с использованием облачных технологий Azure и широкого спектра аппаратного обеспечения от ведущих вендоров. Сертифицирован по технологиям Windows Server, Hyper-V, System Center, VMware vSphere и системам объединенных коммуникаций. Впервые получил статус MVP в 2014 году и является VMware vExpert с 2016 года. Делится своим практическим опытом по автоматизации (PowerShell), облачным технологиям (Azure, Hybrid/Private Clouds) и виртуализации в блоге, активно участвует в жизни технических сообществ.
Комментарии (2)
9 марта 2017 в 14:57
0↑
↓
Докатились, теперь уже на хабре инструкции по установке чего-то примитивного…
Ждем гуртовщиков мыши…9 марта 2017 в 15:21
0↑
↓
Настроить сеть в 2003×64 под Hyper-V действительно то ещё испытание, как минимум из-за подобных заголовков: https://technet.microsoft.com/en-us/library/ee956895(v=ws.10).aspx. Сколько не старался — не смог отказаться от легаси на 2003×64.
Миграция же зачастую невозможна из-за специфики используемого софта.