Выпуск гипервизора Xen 4.17

После года разработки опубликован релиз свободного гипервизора Xen 4.17. В разработке нового выпуска приняли участие такие компании, как Amazon, Arm, Bitdefender, Citrix, EPAM Systems и Xilinx (AMD). Формирование обновлений для ветки Xen 4.17 продлится до 12 июня 2024 года, а публикация исправлений уязвимостей до 12 декабря 2025 года.

Ключевые изменения в Xen 4.17:

  • Обеспечено частичное соответствие требованиям к разработке безопасных и надёжных программ на языке Си, сформулированным в спецификациях MISRA-C, применяемых при создании критически важных систем. В Xen официально внедрены 4 директивы и 24 правила MISRA-C (из 143 правил и 16 директив), а также обеспечена интеграция в сборочные процессы статического анализатора MISRA-C, проверяющего выполнение требований спецификации.
  • Предоставлена возможность определения статической конфигурации Xen для систем ARM, которая заранее жёстко определяет все ресурсы, необходимые для загрузки гостевых систем. Все ресурсы, такие как разделяемая память, каналы для уведомления о событиях и место в куче гипервизора, распределяются заранее при запуске гипервизора, а не выделяются динамически, что исключает возможные сбои из-за нехватки ресурсов во время работы.
  • Для встраиваемых систем на базе архитектуры ARM реализована экспериментальная (tech preview) поддержка виртуализации ввода/вывода c использованием протоколов VirtIO. Для обмена данными с виртуальным устройством ввода/вывода задействован транспорт virtio-mmio, что позволило обеспечить совместимость с широким спектром устройств VirtIO. Реализована поддержка фронтэнда для Linux, инструментария (libxl/xl), режима dom0less и бэкендов, запускаемых в пространстве пользователя (протестированы бэкенды virtio-disk, virtio-net, i2c и gpio).
  • Улучшена поддержка режима dom0less, позволяющего обойтись без развёртывания окружения dom0 при запуске виртуальных машин на ранней стадии загрузки сервера. Предоставлена возможность определения пулов CPU (CPUPOOL) на стадии загрузки (через device tree), что позволяет использовать пулы в конфигурациях без dom0, например, для привязки разных типов ядер CPU на системах ARM на базе архитектуры big.LITTLE, комбинирующих в одном чипе мощные, но потребляющие много энергии, ядра, и менее производительные, но более энергоэффективные ядра. Кроме того, в dom0less предоставлена возможность привязки фронтэнда/бэкенда паравиртуализации к гостевым системам, что позволяет загружать гостевые системы с необходимыми паравиртуализированными устройствами.
  • На системах ARM структуры виртуализации памяти (P2M, Physical to Machine) теперь выделяются из пула памяти, образуемого при создании домена, что позволяет повысить эффективность изоляции между гостевыми системами при возникновении связанных с памятью сбоев.
  • Для систем ARM добавлена защита от уязвимости Spectre-BHB в микроархитектурных структурах процессоров.
  • На системах ARM предоставлена возможность запуска операционной системы Zephyr в корневом окружении Dom0.
  • Предоставлена возможность отдельной (out-of-tree) сборки гипервизора.
  • На системах x86 обеспечена поддержка больших страниц IOMMU (superpage) для всех типов гостевых систем, что позволяет увеличить пропускную способность при пробросе PCI-устройств. Добавлена поддержка хостов, оснащённых до 12 ТБ ОЗУ. На этапе загрузки реализована возможность задания параметров cpuid для dom0. Для управления в гостевых системах реализованными на уровне гипервизора мерами защиты от атак на CPU предложены параметры VIRT_SSBD и MSR_SPEC_CTRL.
  • Отдельно развивается транспорт VirtIO-Grant, отличающийся от VirtIO-MMIO более высоким уровнем безопасности и возможностью запуска обработчиков в отдельном изолированном домене для драйверов. В VirtIO-Grant вместо прямого маппинга памяти используется трансляция физических адресов гостевой системы в grant-ссылки, что позволяет использовать предварительно согласованные области разделяемой памяти для обмена данных между гостевой системой и бэкендом VirtIO, без предоставления бэкенду прав на выполнение маппинга памяти. Поддержка VirtIO-Grant уже реализована в ядре Linux, но пока не включена в бэкенды QEMU, в virtio-vhost и в инструментарий (libxl/xl).
  • Продолжается развитие инициативы Hyperlaunch, нацеленной на предоставления гибких инструментов для настройки запуска виртуальных машин во время загрузки системы. В настоящее время уже готов первый набор патчей, позволяющих определять PV-домены и передавать их образы при загрузке гипервизору. Реализовано также всё необходимое для запуска подобных паравиртуализированных доменов, включая компоненты Xenstore для PV-драйверов. После принятия патчей начнётся работа по включению поддержки устройств PVH и HVM, а также реализации отдельного домена domB (builder domain), пригодного для организации измеряемой загрузки (measured boot), подтверждающей достоверность всех загружаемых компонентов.
  • Продолжается работа по созданию порта Xen для архитектуры RISC-V.

Источник: opennet.ru

Добавить комментарий