Релиз гипервизора Xen 4.10
После шести месяцев разработки состоялся релиз свободного гипервизора Xen 4.10. По сравнению с прошлым выпуском в Xen 4.10 внесено 1250 изменений, что на 20% меньше, чем в прошлом выпуске. В разработке нового выпуска приняли участие такие компании, как Amazon, AMD, Arm, Cavium, Citrix, EPAM, Huawei Technologies, Intel, Linaro, Nokia, Oracle, Red Hat и SUSE.
Ключевые изменения в Xen 4.10:
- В планировщик Credit2, рассчитанный на нагрузки, чувствительные к задержкам, добавлена поддержка «мягкой» привязки к ядрам CPU (Soft-affinity), позволяющей выделить определённый CPU для предпочтительной обработки виртуальной машины (не жесткое закрепление, а привязка на уровне приоритетов, позволяющая поднять эффективность использования процессорного кэша). Кроме того, добавлена возможность определения максимальных процессорных ресурсов, которые может занять виртуальная машина, даже если на хост системе имеются свободные ресурсы;
- В планировщик «null» внесены оптимизации, направленные на обеспечение минимальных накладных расходов от работы планировщика, предсказуемой производительности и уровня задержек близкого к системам, работающим без использования виртуализации, в условиях когда каждый виртуальный CPU закреплён за физическим CPU. Добавлена поддержка трассировки для проведения оптимизации окружений и возможность применения «мягкой» привязки к ядрам CPU (Soft-affinity) без жесткого закрепления VCPU за CPU;
- Проведена оптимизация производительности интерфейса интроспекции виртуальных машин (VMI, Virtual Machine Introspection), позволяющий задействовать аппаратные механизмы виртуализации Intel EPT и AMD RVI для контроля обращения к критичным с точки зрения безопасности областям памяти и блокирования возможных атак. В новой версии добавлен программный механизм перебора таблиц страниц памяти, который можно использовать на процессорах ARM, что позволяет применять инструментарий altp2m на ARM-системах;
- В ядро Linux 4.14 добавлен бэкенд-драйвер с реализацией PV Calls ABI, позволяющий перенаправлять POSIX-вызовы, инициированный из приложения в DomU, для обработки на стороне Dom0 или другой гостевой системы. Например, обращение к сетевому сокету может быть выполнено на стороне Dom0;
- Значительно улучшен интерфейс управления гипервизором. Появилась возможность изменить некоторые загрузочные параметры без перезапуска Xen (например, можно на лету менять уровень лога). В файл конфигурации добавлена опция type для выбора типа гостевых систем (PV, PVH или HVM). Опция pvh удалена, вместо неё предложен набор специфичных для PVH настроек. Опция builder объявлена устаревшей. Полностью разделён код PV и PVH/HVM. Внесённые изменения позволили сохранить обратную совместимость на новом оборудовании, но сократить размер кодовой базы за счёт удаления старого кода паравиртуализации (гипервизор теперь можно собрать без PV);
- Проведена чистка кода и переработка архитектуры гипервизора для систем x86, что позволило существенно поднять безопасность и исключить многие векторы для совершения атак.
Стабилизирована и переведена в разряд официально поддерживаемых вторая версия ABI-интерфейса PVH (PVHv2) для DomU, комбинирующего элементы режимов паравиртуализации (PV) для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием, с применением полной виртуализации (HVM) для ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти. Гостевые системы в режиме PVHv2 содержат меньше критичного кода и менее подвержены атакам, по сравнению с PV и HVM.
Также полностью переработан и консолидирован интерфейс для взаимодействия между Xen и QEMU, который переведён на один универсальный гипервызов (hypercall) DMOP (Device Model Operation Hypercall), который позволяет использовать драйвер privcmd для аудита любых областей памяти QEMU и параметров, переданных в Xen через DMOP. Реализован экспериментальный драйвер dm_restrict, позволяющий включить ограничения того, что модели устройств, такие как QEMU, могут делать после запуска. Например, можно блокировать эксплуатацию уязвимостей в QEMU;
- Для процессоров Intel добавлена поддержка технологии кэширования L2 CAT (L2 Cache Allocation Technology), применяемой в некоторых серверных платформах. В Xen предоставлен механизм для партицирования или совместного использования процессорного кэша второго уровня между виртуальными машинами;
- В гостевых системах, выполняемых в режиме HVM, добавлена поддержка исключений LMCE (Local Machine-Check Exception) на процессорах Intel. LMCE позволяет повысить эффективность передачи исключений MCE, информирующих о критических ошибках оборудования, от гипервизора к виртуальным машинам, так как LMCE будет подставлен только в необходимый vCPU, а не разослан всем vCPU;
- На системах с CPU Intel добавлена поддержка механизма обеспечения безопасности UMIP (User Mode Instruction Prevention), позволяющего запретить выполнение некоторых процессорных инструкций, если текущий уровень привилегий выше 0;
- Расширены возможности гипервизора для процессоров ARM. Добавлена поддержка SoC на основе 64-разрядной архитектуры Armv8-A, применяемой в чипах Qualcomm Centriq 2400 и Cavium ThunderX. Реализована поддержка эмуляции SBSA UART для систем ARM, что позволяет гостевым системам получить доступ к консоли без наличия паравиртуализированного драйвера консоли. Добавлена поддержка ITS (Interrupt Translation Service), применяемого в контроллерах прерываний на базе архитектуры GICv3, таких как ARM CoreLink GIC-500, что позволило улучшить эффективность изоляции и повысить производительность виртуализации на ARM-системах с большим числом прерываний. В загрузчик GRUB2 интегрирована поддержка архитектуры Armv8-A.
© OpenNet