Выпуск гипервизора Xen 4.12
После восьми месяцев разработки опубликован релиз свободного гипервизора Xen 4.12. По сравнению с прошлым выпуском в Xen 4.12 внесено 1466 изменений. В разработке нового выпуска приняли участие такие компании, как Citrix, SUSE, ARM, Xilinx, Oracle и Amazon.
Ключевые изменения в Xen 4.12:
- Добавлена возможность сборки Xen только с поддержкой режимов HVM/PVH (полная и комбинированная виртуализация) или PV (паравиртуализация). Код с реализацией данных режимов теперь отделён и может выборочно включаться через опции KCONFIG при сборке гипервизора. Указанная возможность позволяет собрать минимально необходимый вариант Xen, что положительно сказывается на безопасности за счёт сокращения векторов для атаки, а также приводит к снижению потребления памяти;
- Существенно улучшен режим DM_RESTRICT для снижения привилегий компонентов QEMU, применяемых для эмуляции оборудования. Сброс привилегий позволяет минимизировать негативные последствия в случае эксплуатации уязвимостей в QEMU. Кроме снижения привилегий реализована поддержка дополнительных техник изоляции, таких как chroot, RLIMIT и пространства имён. Также добавлен сброс привилегий при live-миграции;
- Представлен Argo, новый механизм для безопасного обмена данными между виртуальными машинами, реализованный на уровне гипервизора и отвечающий требованиям к высоконадёжным системам. Например, для обеспечения должного уровня изоляции в Argo применяется копирование данных кольцевые буферы, регистрируемые виртуальными машинами, без совместного использования одной области памяти несколькими VM, без обращения к Xenstore и без предоставления доступа к памяти VM (Table Grant_Table). Кроме того, Argo обеспечивает изоляцию на уровне производительности, т.е. не позволяет вредоносной активности в одной виртуальной машине повлиять на производительность другой;
- Внесены многочисленные улучшения производительности и расширена функциональность интерфейса интроспекции виртуальных машин (VMI, Virtual Machine Introspection), позволяющий задействовать аппаратные механизмы виртуализации Intel EPT и AMD RVI для контроля обращения к критичным с точки зрения безопасности областям памяти и блокирования возможных атак, в том числе проводимых с использованием ранее неизвестных уязвимостей (0-day). Задействована поддержка Altp2m и Intel #VE/VMFUNC, которая позволила снизить накладные расходы в процессе интроспекции на 5–20%;
- По умолчанию задействован планировщик Credit2. По сравнению с ранее поставлявшимся планировщиком Credit1, Credit2 хорошо масштабируется и лучше справляется с нагрузками, чувствительными к задержкам, такими как работа с видео и звуком, а также более оптимален для систем с unikernel, применяемых для обособленного выполнения поверх гипервизора отдельных приложений. При этом, в отличие от специализированных планировщиков RTDS и ARINC653, Credit2 использует прежний универсальный алгоритм справедливого распределения ресурсов, подходящий для решения задач общего назначения;
- Добавлена поддержка загрузки с использованием загрузчика GRUB2. Пользователи теперь могут использовать GRUB2 для загрузки гостевых систем в режиме PVH с выбором любых доступных ядер через загрузочное меню;
- Реализация PVH Dom0 («dom0=pvh») переведена из разряда экспериментальных на уровень готовых для ознакомления («tech preview»). Гостевые системы PVH не требуют для своего выполнения компонентов помимо гипервизора, поэтому они как и гостевые системы PV могут загружаться в условиях, когда не запущено других гостевых систем, и могут выполнять функции базового окружения Dom0 (ранее запуск в качестве Dom0 был возможен только для гостевых систем в режиме PV, так как гостевые системы в режиме HVM требуют выполнения компонентов QEMU на стороне Dom0 для эмуляции оборудования, что не позволяет использовать их как Dom0). Применение PVH Dom0 существенно повышает безопасность конфигураций Xen, так как по сравнению с PV позволяет исключить при работе примерно 1.5 млн строк кода QEMU. Из изменений в PVH Dom0 отмечается добавление опции «dom0-iommu=map-reserved» и поддержка переноса domU из PVH dom0;
- Для встраиваемых систем, в которых виртуальные машины размещены в отдельных дисковых разделах, добавлен режим Dom0less, позволяющий создать и загрузить ARM VM из Device Tree сразу после запуска Xen без использования Dom0 (в традиционных окружениях Xen вначале загружается ядро и инструментарий Dom0). Применение Dom0less позволяет более чем на 90% сократить время запуска и упрощает сертификацию виртуализированных систем на предмет соответствия требованиям к устройствам, требующим повышенной надёжности (Safety-Critical Systems);
- Добавлена возможность сборки урезанной конфигурации для ARM, которая включает минимальны набор компонентов (примерно на 50 тысяч строк кода меньше, чем в обычном режиме). Например, Xen может быть собран для специфичного оборудования, такого как Renesas RCar 3 и Xilinx Ultrascale+ MPSoC, включая только необходимые драйверы и возможности;
- Улучшен код для маппинга IOMMU, что позволило существенно сократить время запуска на системах с процессорами AMD EPYC;
- Добавлена поддержка автоматической установки размерами памяти для Dom0. Выделяемая для Dom0 память может задаваться как процент от всей памяти в системе (например, 10%) или как базовый размер + смещение (например, 1ГБ + 10%).
© OpenNet