Опубликована вторая версия Служб интеграции Hyper-V для Linux

Сегодняшняя новость уже успела вызвать неслабый ажиотаж в некоторых кругах. Шутка ли — Microsoft заявила о том, что вносит свой вклад в ядро Linux на условиях General Public License (GPL) 2. Речь идёт, ни много ни мало, о примерно двадцати тысячах строках кода.

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

Что было раньше?

Для того, чтобы правильно понять то, о чём было объявлено сегодня, потребуется разобраться и в том, что же было до того. И начать придётся с понимания того факта, что это уже вторая версия Служб интеграции Hyper-V для Linux.

Первая версия Служб интеграции Hyper-V для Linux Вторая версия Служб интеграции Hyper-V для Linux
Разработана компанией Citrix Разработана Технологическим центром открытых исходных текстов Micorsoft (Microsoft Open Source Technology Center, OSTC)
Поддерживает только первую версию Hyper-V (роль виртуализации в Windows Server 2008 и Hyper-V Server 2008); Поддерживает обе версии Hyper-V. первую версию Hyper-V:
  • роль виртуализации в составе Windows Server 2008 Standard, Enterprise и Datacenter;
  • Microsoft Hyper-V Server 2008;
вторую версию Hyper-V — в Release Candidate (RC):
  • роль виртуализации в составе Windows Server 2008 R2  Standard, Enterprise, and Datacenter;
  • Microsoft Hyper-V Server 2008 R2.
Требует использования расширений Xen для ядра Linux, так как работает через адаптер гипервызовов (Hypercall Adapter). Не требует использования расширенй Xen для ядра Linux. Это — одна из причин заявленного увеличения производительности второй версии.
Доступна для использования в производственной среде. Опубликована предварительная версия (см. ниже).
 
Что стало теперь?

Сегодня Microsoft опубликовала дистрибутив второго Кандидата для выпуска (Release Candidate 2, RC2) второй версии Служб интеграции Hyper-V для Linux. Кроме того, корпорация предложила его исходный текст для включения в ядро Linux. Фактически речь идёт об одном и том же коде, представленном в двух вариантах для двух разных аудиторий и целей.

Готовый дистрибутив Исходный текст
Предназначен для администраторов Предназначен для разработчиков
Опубликован для загрузки на сайте Microsoft Connect Предложен для включения в ядро Linux и расположен в дереве исходных текстов по адресу «/drivers/staging/hv».
Предназначен для использования только с дистрибутивами, которые поддерживаются Microsoft по условиям соглашений, заключённых ранее с Novell и Red Hat.
  • SUSE Linux Enterprise Server 10 SP1, 10 SP2 и 11 (x86 и x64);
  • Red Hat Enterprise Linux 5.2 и 5.3 (x86 и x64).
Кроме того, Microsoft работает с Red Hat для того, чтобы официально сертифицировать данную версию Служб интеграции.
Предназначен для свободного использования в любых дистрибутивах Linux, но не предполагает никакой поддержки со стороны Microsoft. Все обязательства по поддержке ложатся на поставщика дистрибутива, включающего Службы интеграции в свой продукт.
Со временем будет вытеснен кодом Служб интеграции, который будет добавлен в ядро соответствующих дистрибутивов. Со временем будет добавлен в большинство популярных дистрибутивов.
Но зачем?

Вы можете поинтересоваться — какая в этом выгода для Microsoft. Ведь Linux всегда был конкурентом Windows — так зачем же за свой счёт облегчать жизнь как разработчикам, так и пользователям конкурирующего продукта?

Дело в том, что эпоха ожесточённой конкуренции на рынке ОС уже фактически в прошлом. Ниши чётко поделены, и по собственной статистике Microsoft в около 80% виртуальных машин запущены различные версии Windows. Для того, чтобы изменить баланс сил, потребовалось бы приложить огромные усилия. Они в любом случае не окупятся за счёт тех долей процента, которые можно было бы выиграть тем или иным образом.

Зато виртуализация — это сравнительно молодая и очень быстро растущая отрасль. И вот здесь конкуренция даёт о себе знать очень остро. Поэтому представить условия для установки любых продуктов поверх своего решения — это очень хороший ход.

Теперь получается, что в недалёком будущем практически любая версия Linux прямо «из коробки» будет отлично работать в виртуальных машинах Microsoft. Во-первых, это даст сильное преимущество перед конкурирующими решениями для виртуализации, если их разработчики не смогут быстро предоставить такое же удобство своим пользователям. А во-вторых, это страхует Microsoft против возможных упрёков во включении служб интеграции в состав своих собственных ОС, что тоже немаловажно.

Но как?

Некоторые технические и организационные подробности для тех, кому близка тема свободных ОС. Текущая версия Служб интеграции Hyper-V для Linux включает три драйвера.

  • VMBus (высокопроизводительная шина данных для обмена информацией между ВМ и родительской системой);
  • синтетический сетевой контроллер;
  • синтетический контроллер дисков с поддержкой быстрой загрузки (FastPath).

Вообще говоря, Linux может работать в виртуальных машинах Hyper-V и без этих драйверов, что уже было неоднократно подтверждено различными энтузиастами. Разница только в производительности — ведь без драйверов синтетических устройств вы сможете использовать только их эмулируемые аналоги. В частности, придётся в явном виде добавить в ВМ эмулируемую сетевую карту, а подсистема работы с дисками хоть и не потребует каких-то изменений в конфигурации ВМ, но просто будет вынуждена работать через обычные драйверы.

Код, предложенный Microsoft, будет добавлен в ядро Linux версии 2.6.32 через Linux Driver Project. Как следует из названия, это команда разработчиков, которые занимаются добавлением и поддержкой драйверов в ядре Linux. Если быть ещё более точным, то со стороны сообщества Linux с программистами Micorosft тесно сотрудничал Грег Кроа-Хартман (Greg Kroah-Hartman).

Более того, Microsoft берёт на себя обязательства и в дальнейшем поддерживать и улучшать код служб интеграции. Для чего специально выделены два сотрудника из лаборатории Microsoft, расположенной в Кэмбридже, штат Массачусетс. Хэнк Джансен (Hank Janssen) и Хайанг Янг (Haiyang Zhang) официально назначены специалистами по поддержке (maintainer) проекта служб интеграции Hyper-V для Linux. В планах по дальнейшему развитию значится добавление таких функций, как:

  • симметричная многопроцессорность (SMP). Сегодня в Hyper-V поддерживаются только ВМ с Linux, использующие один вирутальный процессор;
  • дополнительные службы, а именно:
    • завершение работы гостевой ОС по сигналу из родительской системы (Shutdown);
    • обмен парами ключей и значений (KVP Exchange).

По мере завершения работы над этими функциями их код будет так же направляться для включения в ядро Linux.

Важно понимать, что ещё одно популярное дополнение, которое является частью Служб интеграции для Windows, не входит в комплект Служб интеграции для Linux. Речь идёт о драйвере для мыши, также известном как InputVSC. Он позволяет переносить указатель мыши между окнами виртуальной машины и рабочим столом родительской системы без необходимости предварительно извлекать его с помощью клавиатурной комбинации. Также он решает распространённую проблему, которая заключается в том, что мышь вообще не работает в окне подключения к виртуальной машине (VMConnect), открытом через сеанс «Удалённого рабочего стола» (Remote Desktop). Этот драйвер разработан отдельно компанией Citrix в рамках «Project Satori». Вы можете загрузить его на сайте Служб интеграции Citrix для Hyper-V.

Дополнительная информация