После восьми месяцев разработки представлен релиз свободного гипервизора Xen 4.4. По сравнению с прошлым выпуском в Xen 4.4 внесено 1193 изменений. В Xen 4.4 добавлена поддержка нового режима PVH для гостевых систем, в libvirt добавлена поддержка libxl, улучшена поддержка SPICE, добавлена экспериментальная поддержка вложенного запуска окружений, возможность запуска гостевых систем в режиме EFI, улучшена поддержка архитектуры ARM и усилена интеграция с GlusterFS.
В процессе подготовки 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- и 63-разрядных систем. С учётом того, что Dom 0 использует несколько каналов событий (обычно 4) для каждой гостевой системы, на одной системе получалось запустить не более 300-500 гостевых систем. Новый ABI на основе FIFO поднимает лимит до более сотни тысяч каналов событий и также предоставляет поддержку установки множественных и справедливых приоритетов. Новый API требует специальной поддержки со стороны гостевой системы, например, подобная поддержка появится в ядре Linux 3.14.
- Поддержка виртуализации на системах с архитектурой ARM получила статус стабильной. ABI гипервизора для ARM и ARM64 стабилизирован и отныне будет развиваться с учётом сохранения обратной совместимости, что позволит без изменения использовать в будущих выпусках Xen гостевые системы, использующие Xen 4.4 ARM ABI. Реализовано множество новых функций: обеспечена возможность зранения образов гостевых систем на дисковых разделах или разделах 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 вместо BIOS;
- Улучшена поддержка использования в окружении 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, в том числе миграция окружений между пулами, управление репозиториями хранения и визуализация состояния инфраструктуры виртуализации. В новой версии добавлена поддержка создания снапшотов, удаления хоста из пула, инициирования действий с хостом (перезапуск стека, перезагрузка, завершение работы), реализована возможность управления содержимым лога.