После восьми месяцев разработки представлен релиз свободного гипервизора Xen 4.4. По сравнению с прошлым выпуском в Xen 4.4 внесено 1193 изменений, в том числе добавлена поддержка нового режима PVH, произведена интеграция libvirt с libxl, улучшена поддержка SPICE, обеспечена поддержка вложенного запуска окружений, подготовлена возможность запуска гостевых систем в режиме EFI, улучшена поддержка архитектуры ARM.
В процессе подготовки Xen 4.4 разработчики попытались перейти на 6-месячный цикл формирования выпусков, но из-за праздников и непредвиденных проблем разработка затянулась на 6 дополнительных недель. При разработке Xen 4.4 также была значительно увеличена интенсивность тестирования кодовой базы: в систему регрессивного тестирования osstest добавлены дополнительные тесты, код Xen прошёл проверку в тестовом наборе XenRT компании Citrix, были учтены результаты статического анализа кода в системе Coverity. В связи с этим, разработчики позиционируют Xen 4.4 как один из самых безопасных и надёжных выпусков.
Ключевые улучшения в Xen 4.4:
Экспериментальная поддержка режима PVH для гостевых систем, который комбинирует элементы режимов паравиртуализации (PV) и полной виртуализации (HVM). В режиме PVH с одной стороны применяется полная виртуализация на уровне ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти, но с другой стороны используются методы паравиртуализации для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием. Таким образом, PVH, как и режим PV, обеспечивает высокую производительность, благодаря исключению накладных расходов на симуляцию аппаратных устройств, но использует вместо PV MMU свойственные HVM механизмы аппаратной виртуализации для обеспечения более строгой изоляции виртуальных окружений. Поддержка работы в качестве гостевой системы PVH уже присутствует во FreeBSD 10 и Linux.
Для библиотеки libvirt, предоставляющей средства для унифицированного локального и удаленного управления виртуальными окружениями, выполнена работа по обеспечению поддержки библиотеки libxl с реализацией API для использования в сторонних приложениях возможностей нового инструментария XL, пришедшего на смену XM/XEND. В результате обеспечена возможность интеграции XL с любыми инструментами, которые поддерживают libvirt, от графических менеджеров виртуальных машин до облачных платформ, подобных CloudStack и OpenStack;
Новый масштабируемый интерфейс для каналов событий (паравиртуализированных прерываний), в котором устранены ранее действующие ограничения в 1024 и 4096 каналов на домен для 32- и 64-разрядных систем. С учётом того, что Dom 0 использует несколько каналов событий для каждой гостевой системы (обычно 4), на одном сервере получалось запустить не более 300-500 гостевых систем.
В условиях использования мощных многоядерных систем или запуска в гостевых окружениях легковесных операционных систем, таких как Mirage и OSv, нацеленных на выполнение обособленных программ поверх гипервизора, указанные ограничения становятся узким местом в инфраструктуре. Новый ABI на основе FIFO поднимает лимит до более 100 тысяч каналов событий, а также предоставляет поддержку установки множественных и справедливых приоритетов. Новый API требует специальной поддержки со стороны гостевой системы, например, подобная поддержка появится в ядре Linux 3.14.
Поддержка виртуализации на системах с архитектурой ARM получила статус стабильной. ABI гипервизора для ARM и ARM64 стабилизирован и отныне будет развиваться с учётом сохранения обратной совместимости, что позволит без изменения использовать в будущих выпусках Xen гостевые системы, использующие Xen 4.4 ARM ABI. В порт для ARM добавлена порция новых функций: обеспечена возможность хранения образов гостевых систем на дисковых разделах или разделах LVM при помощи xen-blkback, в 64-разрядный порт Xen для ARM добавлена поддержка загрузки гостевых систем, реализована поддержка протокола ARM/multiboot, добавлена поддержка PSCI, добавлена поддержка плат Arndale, Calxeda ECX-2000 (Midway), Applied Micro X-Gene Storm, TI OMAP5 и Allwinner A20/A30;
Поддержка создания вложенных виртуальных окружений на оборудовании Intel. Гостевые системы HVM могут получить доступ к возможностям виртуализации оборудования, позволяющим запустить в гостевой системе собственный гипервизор, например, Xen, KVM, VMWare или HyperV. Вложенная виртуализация пока не готова для промышленного применения, но уже достаточно зрела для перехода из категории экспериментальных возможностей на стадию пригодности для начального ознакомления (tech preview);
В основную кодовую базу GRUB интегрирован код для поддержки протокола Xen pv, что позволит добиться полной совместимости с Xen в будущих выпусках GRUB и избавиться от необходимости использования отдельного порта pvgrub для образов гостевых систем, работающих в режиме паравиртуализации;
В реализацию протокола SPICE, используемого для организации доступа к виртуализированным рабочим столам, добавлена поддержка перенаправления USB, совместного доступа к буферу обмена и возможность использования vdagent;
Улучшена интеграция Xen с распределенной файловой системой GlusterFS. В GlusterFS 3.5 появилась поддержка создания iSCSI-узлов, что позволяет создать iSCSI устройства в Dom0 и обеспечить хранение дисков гостевых систем в GlusterFS;
Домены драйверов в Linux избавлены от привязки к событиям udev, используемым для запуска бэкендов для гостевых систем. Вместо udev теперь используется собственный демон, работающий поверх libxl и обеспечивающий более высокий уровень гибкости при запуске бэкендов в форме пользовательских процессов, например, теперь можно запускать бэкенды Qdisk, что было невозможно с udev;
Экспериментальная поддержка загрузки гостевых систем в режиме EFI;
Улучшена поддержка использования в окружении Xen облачной операционной системы Mirage OS, которая обеспечивает возможность запуска поверх гипервизора приложений на языке OCaml с минимальной системной обвязкой;
Компоненты QEMU обновлены до версии 1.6, SeaBIOS обновлён до версии 1.7.3.1;
Дополнительно можно отметить выпуск Xen Orchestra 3.3, web-интерфейса для администрирования системы виртуализации на базе XCP (Xen Cloud Platform), XenServer и других систем, поддерживающих протокол xapi. Проект позиционируется как многоплатформенная и свободная альтернатива проприетарному продукту XenCenter. Xen Orchestra предоставляет web-интерфейс для выполнения ежедневных типовых задач администраторов систем на базе гипервизора Xen, таких как управление виртуальными машинами и серверами XCP, в том числе миграция окружений между пулами, управление репозиториями хранения и визуализация состояния инфраструктуры виртуализации. В новой версии добавлена поддержка создания снапшотов, удаления хоста из пула, инициирования действий с хостом (перезапуск стека, перезагрузка, завершение работы), управления содержимым лога.
В процессе подготовки Xen 4.4 разработчики попытались перейти на 6-месячный цикл формирования выпусков, но из-за праздников и непредвиденных проблем разработка затянулась на 6 дополнительных недель. При разработке Xen 4.4 также была значительно увеличена интенсивность тестирования кодовой базы: в систему регрессивного тестирования osstest добавлены дополнительные тесты, код Xen прошёл проверку в тестовом наборе XenRT компании Citrix, были учтены результаты статического анализа кода в системе Coverity. В связи с этим, разработчики позиционируют Xen 4.4 как один из самых безопасных и надёжных выпусков.
Ключевые улучшения в Xen 4.4:
Экспериментальная поддержка режима PVH для гостевых систем, который комбинирует элементы режимов паравиртуализации (PV) и полной виртуализации (HVM). В режиме PVH с одной стороны применяется полная виртуализация на уровне ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти, но с другой стороны используются методы паравиртуализации для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием. Таким образом, PVH, как и режим PV, обеспечивает высокую производительность, благодаря исключению накладных расходов на симуляцию аппаратных устройств, но использует вместо PV MMU свойственные HVM механизмы аппаратной виртуализации для обеспечения более строгой изоляции виртуальных окружений. Поддержка работы в качестве гостевой системы PVH уже присутствует во FreeBSD 10 и Linux.
Для библиотеки libvirt, предоставляющей средства для унифицированного локального и удаленного управления виртуальными окружениями, выполнена работа по обеспечению поддержки библиотеки libxl с реализацией API для использования в сторонних приложениях возможностей нового инструментария XL, пришедшего на смену XM/XEND. В результате обеспечена возможность интеграции XL с любыми инструментами, которые поддерживают libvirt, от графических менеджеров виртуальных машин до облачных платформ, подобных CloudStack и OpenStack;
Новый масштабируемый интерфейс для каналов событий (паравиртуализированных прерываний), в котором устранены ранее действующие ограничения в 1024 и 4096 каналов на домен для 32- и 64-разрядных систем. С учётом того, что Dom 0 использует несколько каналов событий для каждой гостевой системы (обычно 4), на одном сервере получалось запустить не более 300-500 гостевых систем.
В условиях использования мощных многоядерных систем или запуска в гостевых окружениях легковесных операционных систем, таких как Mirage и OSv, нацеленных на выполнение обособленных программ поверх гипервизора, указанные ограничения становятся узким местом в инфраструктуре. Новый ABI на основе FIFO поднимает лимит до более 100 тысяч каналов событий, а также предоставляет поддержку установки множественных и справедливых приоритетов. Новый API требует специальной поддержки со стороны гостевой системы, например, подобная поддержка появится в ядре Linux 3.14.
Поддержка виртуализации на системах с архитектурой ARM получила статус стабильной. ABI гипервизора для ARM и ARM64 стабилизирован и отныне будет развиваться с учётом сохранения обратной совместимости, что позволит без изменения использовать в будущих выпусках Xen гостевые системы, использующие Xen 4.4 ARM ABI. В порт для ARM добавлена порция новых функций: обеспечена возможность хранения образов гостевых систем на дисковых разделах или разделах LVM при помощи xen-blkback, в 64-разрядный порт Xen для ARM добавлена поддержка загрузки гостевых систем, реализована поддержка протокола ARM/multiboot, добавлена поддержка PSCI, добавлена поддержка плат Arndale, Calxeda ECX-2000 (Midway), Applied Micro X-Gene Storm, TI OMAP5 и Allwinner A20/A30;
Поддержка создания вложенных виртуальных окружений на оборудовании Intel. Гостевые системы HVM могут получить доступ к возможностям виртуализации оборудования, позволяющим запустить в гостевой системе собственный гипервизор, например, Xen, KVM, VMWare или HyperV. Вложенная виртуализация пока не готова для промышленного применения, но уже достаточно зрела для перехода из категории экспериментальных возможностей на стадию пригодности для начального ознакомления (tech preview);
В основную кодовую базу GRUB интегрирован код для поддержки протокола Xen pv, что позволит добиться полной совместимости с Xen в будущих выпусках GRUB и избавиться от необходимости использования отдельного порта pvgrub для образов гостевых систем, работающих в режиме паравиртуализации;
В реализацию протокола SPICE, используемого для организации доступа к виртуализированным рабочим столам, добавлена поддержка перенаправления USB, совместного доступа к буферу обмена и возможность использования vdagent;
Улучшена интеграция Xen с распределенной файловой системой GlusterFS. В GlusterFS 3.5 появилась поддержка создания iSCSI-узлов, что позволяет создать iSCSI устройства в Dom0 и обеспечить хранение дисков гостевых систем в GlusterFS;
Домены драйверов в Linux избавлены от привязки к событиям udev, используемым для запуска бэкендов для гостевых систем. Вместо udev теперь используется собственный демон, работающий поверх libxl и обеспечивающий более высокий уровень гибкости при запуске бэкендов в форме пользовательских процессов, например, теперь можно запускать бэкенды Qdisk, что было невозможно с udev;
Экспериментальная поддержка загрузки гостевых систем в режиме EFI;
Улучшена поддержка использования в окружении Xen облачной операционной системы Mirage OS, которая обеспечивает возможность запуска поверх гипервизора приложений на языке OCaml с минимальной системной обвязкой;
Компоненты QEMU обновлены до версии 1.6, SeaBIOS обновлён до версии 1.7.3.1;
Дополнительно можно отметить выпуск Xen Orchestra 3.3, web-интерфейса для администрирования системы виртуализации на базе XCP (Xen Cloud Platform), XenServer и других систем, поддерживающих протокол xapi. Проект позиционируется как многоплатформенная и свободная альтернатива проприетарному продукту XenCenter. Xen Orchestra предоставляет web-интерфейс для выполнения ежедневных типовых задач администраторов систем на базе гипервизора Xen, таких как управление виртуальными машинами и серверами XCP, в том числе миграция окружений между пулами, управление репозиториями хранения и визуализация состояния инфраструктуры виртуализации. В новой версии добавлена поддержка создания снапшотов, удаления хоста из пула, инициирования действий с хостом (перезапуск стека, перезагрузка, завершение работы), управления содержимым лога.