Службы интеграции 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).

Предварительно нужно удостовериться в наличии установленных 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 <path> -Online. Если нужно применить обновление IS на выключенной ВМ (offline vm servicing), то рекомендуем обратиться к данному руководству.

Примечание: более новая версия IS выложена в виде vmguest.iso (смотрите ниже, неофициальный источник загрузки) для упрощения процесса самостоятельного обновления.

Где я могу найти VMGuest.iso?


Загрузить VMGuest.ISO можно здесь. Данный образ содержит IS Windows Server 2012 R2, обновленные на текущий момент (февраль, 2017. Версия IS 6.3.9600.18398). Вы можете использовать их для установки или обновления IS «доисторических» ОС на узлах Windows Server 2016 (миграция на новые ОС предпочтительна) или на узлах Windows Server 2012 R2/Windows 8.1.

Об авторе


Роман Левченко начал свою IT-карьеру в 2007 году и на данный момент работает в качестве Системного Архитектора в лидирующем интеграторе. Имеет опыт построения комплексных систем преимущественно на базе продуктов Microsoft с использованием облачных технологий Azure и широкого спектра аппаратного обеспечения от ведущих вендоров. Сертифицирован по технологиям Windows Server, Hyper-V, System Center, VMware vSphere и системам объединенных коммуникаций. Впервые получил статус MVP в 2014 году и является VMware vExpert с 2016 года. Делится своим практическим опытом по автоматизации (PowerShell), облачным технологиям (Azure, Hybrid/Private Clouds) и виртуализации в блоге, активно участвует в жизни технических сообществ.
Поделиться с друзьями
-->

Комментарии (14)


  1. osipov_dv
    09.03.2017 14:57
    -2

    Докатились, теперь уже на хабре инструкции по установке чего-то примитивного…
    Ждем гуртовщиков мыши…


  1. Jemdo
    09.03.2017 15:21

    Настроить сеть в 2003 х64 под Hyper-V действительно то ещё испытание, как минимум из-за подобных заголовков: https://technet.microsoft.com/en-us/library/ee956895(v=ws.10).aspx. Сколько не старался — не смог отказаться от легаси на 2003 x64.
    Миграция же зачастую невозможна из-за специфики используемого софта.


    1. ildarz
      09.03.2017 17:32
      +1

      У вас 2003 x64 по сети грузятся, что ли? Других проблем там вроде нет. У нас с момента выхода Hyper-V 2008 R2 такие машины в виртуалках живут без всякого легаси.


      1. DikSoft
        10.03.2017 09:52

        — а точно x64? С x86 проблем нет, а вот с x64…


        1. ildarz
          10.03.2017 11:42

          Точно. Причем некоторые пережили уже две миграции со сменой поколения гипервизоров — 2008 R2 -> 2012 R2 -> 2016.


      1. marinichev
        10.03.2017 11:00

        Нубский вопрос, но может быть кто-то порекомендует пару-тройку дельных ссылок en/ru по настройке сети в SCVMM 2012R2. Дело в том, что настроить сеть в Hyper-V не сложно на самих физических хостах и в Failover cluster. Но хотелось бы понимать, как тоже делать из консоли VMM. Читал и на Хабре статьи, и на technet, но толи конкретика туманна, толи я сильно не в теме. Профили портов, порты, виртуальные и логические свитчи и адаптеры, балансировщики… путаница. Что это, зачем это, в какой последовательности настраивается? Спасибо.


        1. Courteous
          10.03.2017 12:09

          Добрый день!

          Очень понятно и кратко описал John Savill в своей заметке
          Дополнительно можно ознакомиться с постером Networking in VMM (см.conf.steps)


  1. sayrys
    11.03.2017 17:00

    Забавно, но по ссылке в статье для Windows 8.1 (и Windows Server 2012 R2) предлагают устанавливать компоненты интеграции более чем годовалой давности (6.3.9600.17903) в которых есть известные проблемы. Тут можно посмотреть список версий на текущий момент времени: Hyper-V Integration Services: List of Build Numbers. А вот ISO свеженький — с последней версией.

    Раньше хоть вручную можно было обновиться, а сейчас? =)


    1. Courteous
      11.03.2017 18:14

      ISO просто личный, — поэтому он и последний :). Что касается этого KB, то он был ещё со времен technical preview. Потом вышел доп. KB , обновляющий IS до 18080 и исправляющий нек-ые проблемы в специф.сценариях (по Вашей хорошей ссылке версионность показана. Не хватает доп.таблички для WS 2016 с IS 10.0.14393).

      По поводу «вручную». Что именно? Поясните, пожалуйста.
      :: VMGuest.iso спец-но выложил для упрощения процесса, остальные сценарии тоже описаны.


      1. sayrys
        12.03.2017 00:15

        По поводу «вручную». Что именно? Поясните, пожалуйста.


        Неправильно выразился. Имел ввиду: ранее это было возможно сделать без скачивания файла, просто через GUI, а сейчас порядок изменился и надо искать что-то дополнительно.


        1. Courteous
          12.03.2017 13:36

          Почему Вы решили, что нужно искать что-то дополнительно? (пытаюсь понять некорректно ли я в статье описал или Вы просто недочитали :)). IS из WS2012R2 или KB Вам нужен только в редких случаях.

          В основном — WU всё сделает за вас. Не нужно думать как автоматизировать (VMM/SCCM/powershell и т.д.)процесс. Ручное обновление через GUI, конечно, не проблема, но если у Вас SMB.

          Как правило, никто и не занимался этим вопросом, если реальных проблем не возникало (как в IS до 18080, к примеру). Изменения только лишь в плюс, на мой взгляд. Минус одна административная задача.


          1. sayrys
            12.03.2017 15:36
            +1

            По статье все нормально, мне даже нравится то, что МС сделали с вариантом распространения компонентов интеграции.

            Но из минусов, что вижу я это то, что из GUI убрали всю информацию об установленных внутри компонентах интеграции. Из самой же ВМ их версию просто так тоже не посмотреть. Соответственно администратор просто не знает установлены ли в системе необходимые компоненты (тут я больше про IaaS говорю, в SMB где все управляется одним админом или малой группой можно и договориться).

            А ранее МС поддерживали только ВМ внутри которых версия компонентов интеграции соответствует версии хоста (точную формулировку увы не помню уже). Сейчас они просто говорят — саппортим если поставлены все обновления.


            1. Courteous
              13.03.2017 00:35

              Стоит исходить из списка поддерживаемых ОС (см Int.Services колонку). Никто нас не «развернет», если будет built-in версия, а есть уже новее.

              cluadmin.msc, VMM — всё осталось. Ну и PowerShell, как базис. Я не представляю себе, что даже 10-20 ВМ будут чекать из GUI. 1 liner в PS и делов то.

              Процесс упрощен, но соглашусь с тем. что остался вопрос по поводу управления приходящих апдейтов из WU. надеюсь, что будет прозрачная и простая идентификация IS-обновлений от других. Банально для того, чтобы доп. проверять через скрипт и т.д.

              Не мало важно ещё и про Conf.version не забывать, к-ый как раз в GUI и добавили


  1. 14th
    12.03.2017 14:35
    +1

    Миграция с 2003 в некоторых случаях невозможна в принципе: автор системы де материализовался, однако работать она должна еще, как минимум, пять лет после ликвидации из реестра ю.л. Есть еще большие крайности: обеспечить работу 16-бит систем.

    Ну и размножение сущностей имеет место быть: добавляется новая ветка реестра для хранения и так известных параметров системы.