Microsoft loves Linux - статья 3, базовые функции Linux/FreeBSD Integration Services

Возможности Hyper-V для Linux и FreeBSD

Данные возможности подразделяются на две категории - функциональность вне гостевой системы и функциональность, требующая взаимодействия с гостем.

Функциональность первой категории не зависит от того, какая ОС работает как гостевая, поэтому работает на Windows, Linux и FreeBSD и является той, куда Microsoft инвестирует большую часть ресурсов. Особенность здесь в том, что для Linux и FreeBSD все работает аналогично тому, как работает для Windows VM. Например:

  • Быстрая live-миграция ВМ между Hyper-V хостами, используя RDMA

  • Storage Quality-of-Service (QoS)

  • Software Defined Networking

Вторая категория требует взаимодействия с гостем:

  • Операции с гостем

  • Прямые коммуникации гость-хост

  • Динамическая память

  • Live-бэкап 

Взаимодействие с гостем реализуется через Linux/FreeBSD Integration Services, описанные в прошлой части.

Операции с гостем

Операции с гостем в лице Linux или FreeBSD выполняются также, как выполняются для гостя Windows, с помощью следующих инструментов:

  • Hyper-V Manager:  графический интерфейс для управления хостами и гостями

  • PowerShell:  интерфейс управления через командную строку на Windows для выполнения операций с ВМ. Несмотря на то, что PowerShell работает на Windows, с ним можно выполнять операции над ВМ с Linux/FreeBSD.

  • System Center Virtual Machine Manager:  Графический интерфейс для управления масштабными развертываниями. VMM работает с Linux ВМ так же, как и с Windows. FreeBSD не поддерживается.

Гостевые операции включают в себя включение/выключение, установление в паузу и возобновление сеанса гостевой ВМ. Операция остановки имеет два варианта - turn off и shutdown. Извне ВМ, для Hyper-V легко просто выключить ее - это эквивалентно выключению обычного компьютера. Однако это ведет к "грязному" выключению, с сопутствующими проблемами типа оборванных операций с файловой системой и пр. По этой причине в Hyper-V есть функция shutdown, которая использует реализацию LIS/BIS для корректного выключения ОС с использованием стандартных процедур. Реализация этого в Hyper-V позволяет выполнять shutdown без необходимости входа на гостя, поэтому любой с соответствующими правами доступа к Hyper-V может выполнить эту операцию.

Синхронизация времени

При запуске или возобновлении сеанса гостя с Linux/FreeBSD, его часы устанавливаются в соответствии с часами на хосте Hyper-V и далее, для синхронизации, используют соответствующие хостовые счетчики. Однако поддержка точного времени на госте - задача сложная, и временные отклонения неизбежны, пока не будет синхронизации с неким внешним источником. Гости на Windows обычно находятся в домене, используя механизмы синхронизации Active Directory Domain Controller, для Linux/FreeBSD же рекомендуется использовать NTP-сервис для каждого из гостей.

Прямые коммуникации гость-хост

Для прямой коммуникации (без необходимости в наличии сетевого подключения между ними, например, в среде, где хостовая и гостевая сети изолированы друг от друга с целью обеспечения безопасности) между хостом и гостями у Hyper-V есть два механизма.

Первый - Data Exchange, также известный Key/Value Pairs или просто KVP.  KVP состоят из ключа и значения строкового типа до 1024 символов. Эти пары видны гостю и хосту, и канал общения открыт в обе стороны.   Здесь можно почитать подробнее о том, как устроен этот механизм и как его можно использовать. Некоторые пары создаются автоматически для гостя и хоста и используются для передачи информации - например, одна создается у хоста с именем самого хоста, и гость может понять, на каком хосте он находится. Аналогично KVP с IP-адресом гостя - чтобы хост знал этот адрес для своего гостя.

Второй - file copy. Файл переносится с хоста на гостя, и для пакетной передачи данных этот механизм гораздо более эффективней первого. Передача данных производится в одном направлении - только от хоста на гостя. Реализовано на основе Powershell-командлета Copy-VMFile , внутри Linux-гостя общение происходит с процессом hv_fcopy_daemon (часть LIS), поэтому он должен быть запущен.

Другая функциональность

Современные дистрибутивы Linux (но не FreeBSD) могут загружаться с UEFI и работать как ВМ в Hyper-V Generation 2.  ВМ второго поколения не имеют поддержки большинства legacy-устройств и могут, например, выполнять PXE boot с помощью синтетического сетевого адаптера. Для того, чтобы Linux запустился на Hyper-V 2012 на втором поколении, нужно отключить опцию Secure Boot, но уже скоро, в Windows Server 2016 Technical Preview 2 и новых версиях Hyper-V, Linux-дистрибутивы будут работать и с Secure Boot, в том случае, если указать Microsoft UEFI Certificate Authority любым из поддерживаемых способов - Hyper-V Manager UI, PowerShell или System Center VMM UI.

У Hyper-V также есть функция изменения размера виртуального диска гостя, даже если он работает, и эта операция не вызовет никакого даунтайма - в случае, если гостем является Linux/FreeBSD, новый размер виртуального диска можно будет посмотреть сразу же с помощью соответствующих команд, например, df -k.

Резюме

Hyper-V имеет набор базовых функций, позволяющих запускать Linux/FreeBSD в качестве гостя - большинство функций работают независимо от гостевой ОС.

В следующей части - обзор двух важных функций - динамической памяти и live-бэкапа. 

From <http://blogs.technet.com/b/server-cloud/archive/2015/09/30/microsoft-loves-linux-deep-dive-2-linux-and-freebsd-integration-services-core-features.aspx>