После десяти месяцев разработки представлен релиз свободного гипервизора Xen 4.5. По сравнению с прошлым выпуском в Xen 4.5 внесено почти 12 тысяч изменений, что в 10 раз больше, чем было добавлено в процессе разработки Xen 4.4. По числу и важности добавленных новшеств Xen 4.5 отмечен как наиболее крупный выпуск за всю историю проекта.
Ключевые изменения в Xen 4.5:
- Полное прекращение поддержки инструментария XM/XEND и удаление из кодовой базы связанных с ним компонентов. На смену XM/XEND пришел продвигаемый последние несколько выпусков инструментарий XL, который обратно совместим с файлами конфигурации и утилитами XM/XEND, базируется на использовании библиотеки libxl (xm/xend написан на Python, а xl на Си) и может выступать в роли прозрачной замены xend для большинства систем. Исключение составляют конфигурации, в которых используются встроенные Python-скрипты, определение совместно используемых дисков с использованием нотации "w!", генерация окружений командами "xm vm-create" и "xm vm-start";
- Начальная поддержка доменов (dom0), обеспечивающих работу в режиме PVH, который комбинирует элементы режимов паравиртуализации (PV) и полной виртуализации (HVM). PVH может использоваться на системах с процессорами Intel при выполнении dom0 во FreeBSD и Linux. В режиме PVH с одной стороны применяется полная виртуализация на уровне ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти, но с другой стороны используются методы паравиртуализации для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием. Таким образом, PVH, как и режим PV, обеспечивает высокую производительность, благодаря исключению накладных расходов на симуляцию аппаратных устройств, но использует вместо PV MMU свойственные HVM механизмы аппаратной виртуализации для обеспечения более строгой изоляции виртуальных окружений.
- Экспериментальная поддержка планирования заданий в режиме реального времени, что позволяет организовать выполнение в виртуальных окружениях задач, работающих в режиме реального времени, а также обеспечить работу операционных систем реального времени внутри гостевых виртуальных машин. Новый планировщик RTDS (Real-Time-Deferrable-Server) реализует возможность предсказуемого гарантированного выделения вычислительных ресурсов, привязывая к VCPU такие дополнительные параметры, как маска для закрепления выполнения на определённых физических CPU и максимальный размер ресурсов CPU, которые могут быть выделены за квант времени планировщика. При работе на многоядерных системах предоставляются возможность формирования многоядерных виртуальных машин;
- Добавлена поддержка набора инструкций SMAP (Supervisor Mode Access Prevention), реализованного в новых процессорах Intel. SMAP позволяет блокировать доступ к данным в пространстве пользователя из привилегированного кода, выполняемого на уровне ядра. Для Xen данный режим предоставляет защиту от внесения модификаций в гипервизор в случае успешной атаки на компоненты, работающие в пространстве пользователя;
- Существенное улучшение поддержки конфигураций высокой доступности на основе системы Remus, позволяющей организовать синхронизацию виртуальных машин на разных серверах и обеспечить горячее резервное копирование Xen-окружений. Обеспечение высокой надежности осуществляется за счёт поддержания на запасном сервере полностью синхронизированной копии виртуального окружения. В случае сбоя, при переключении на резервный сервер сохраняются все запущенные процессы, открытые файлы и TCP-сессии. В версии 4.5 обеспечена интеграция Remus с инструментарием XL, улучшена поддержка DRDB, повышена стабильность работы, включена поддержка механизма COLO (coarse grain lock-stepping);
- Улучшения, специфичные для архитектуры x86:
- Возможность мягкой привязки физических процессоров к виртуальным. Например, теперь возможно определить какому набору физических CPU следует отдавать предпочтение при работе vCPU, и Xen при возможности будет следовать заданному правилу;
- Снижены задержки при обработке прерываний в процессе проброса PCI-устройств на крупных серверах, содержащих более двух процессров;
- Поддержка прикрепления к гостевой системе нескольких обработчиков ввода/вывода (IO-REQ), что позволяет привязать к одному домену несколько экземпляров QEMU и ускорить работу конфигураций с несколькими бэкендами (QEMU), выполняющими разные виды эмуляции;
- Реализация таймера событий высокой точности (HPET) изменена для более быстрого и точного предоставления значений;
- Значительно ускорен процесс загрузки на системах с большим объёмом памяти (1 Тб и выше) за счёт обеспечения чистки памяти в параллельном потоке;
- Расширение средств интроспекции гостевых систем с использованием аппаратных механизмов виртуализации Intel EPT и AMD RVI с целью контроля обращения к критичным с точки зрения безопасности областям памяти и блокирования возможных атак;
- Поддержка технологии Intel Resource Director, предоставляемой процессорами Intel Haswell и позволяющей осуществлять детализированный мониторинг наполнения кэша
(Server Cache QoS Monitoring);
- Задействование vAPIC-расширений, доступных в процессорах Intel SandyBridge, для оптимизации работы гостевых систем, работающих в режиме PVHVM, за счёт оптимизации ввода/вывода и сокращения задержек в обработке прерываний;
- Для AMD Kabini, Kaveri и более новых процессоров добавлена поддержка расширений DBE (Data Breakpoint Extensions) и маскировки MSR;
- Улучшения, специфичные для архитектуры ARM:
- Использование IOMMU (SMMUv1) для изоляции между гостевыми системами;
- Поддержка выделения до 1 Тб памяти для гостевой системы;
- Поддержка загрузки в режиме UEFI;
- Поддержка контроллера прерываний GIC v3 (Generic Interrupt Controller), в том числе с поддержкой Message Signaled Interrupts (MSI) и более 8 CPU на гостевую систему;
- Поддержка технологии Super Pages;
- Поддержка проброса MMIO-регионов для PCI-устройств. Полноценной поддержки проброса PCI пока нет, но у учётом того, что в ARM-платах обычно не используются полноценные PCI-устройства, для организации доступа к сетевым устройствам и хранилищам достаточно проброса MMIO-регионов;
- Поддержка интерфейса управления питанием PSCI 0.2 (Power State Coordination Interface);
- Обеспечена поддержка плат: AMD Seattle, Broadcom 7445D0 A15, Midway (Calxeda), Vexpress (ARM Ltd.), OMAP5, DRA7 (Texas Instrument), Exynos5250 (Exynos 5 Dual), Odroid-Xu, Exynos 5420 (Exynos Octa) (Samsung), SunXI (AllWinner aka A20/A21), CubieTruck, CubieBoard, Mustang (Applied Micro-X-Gene, ARMv8 SoC), McDivitt/HP Moonshot (Applied Micro X-Gene);
- Улучшение инструментария:
- Поддержка инфраструктуры JSON в Libxenlight (libxl), что позволяет использовать формат JSON при обмене данными с другими инструментариями;
- В Libxenlight (libxl) добавлена поддержка отслеживания конфигурации домена;
- Поддержка Systemd;
- Поддержка идентификаторов генерации виртуальной машины (VM Generation ID), позволяющих обеспечить миграцию гостевых систем с контроллерами домена на базе Windows 2012 Server и более новых выпусков;
- В libvirt добавлена поддержка миграции окружений, проброса PCI/SR-IOV, PV-консоли, флагов PARAVIRT и ACPI. Улучшены средства преобразования файлов конфигураций между xl и libvirt domXML.
- Xen 4.5 поставляется с QEMU 2.0 и SeaBIOS 1.7.5.
|