25.01.2022

Выпуск гипервизоров Xen 4.16 и Intel Cloud Hypervisor 20.0

После восьми месяцев разработки опубликован релиз свободного гипервизора Xen 4.16. В разработке нового выпуска приняли участие такие компании, как Amazon, Arm, Bitdefender, Citrix и EPAM Systems. Выпуск обновлений для ветки Xen 4.16 продлится до 2 июня 2023 года, а публикация исправлений уязвимостей до 2 декабря 2024 года.

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

  • В TPM Manager, обеспечивающий работу виртуальных чипов для хранения криптографических ключей (vTPM), реализуемых на базе общего физического TPM (Trusted Platform Module), внесены исправления для последующей реализации поддержки спецификации TPM 2.0.
  • Повышена зависимость от прослойки PV Shim, применяемой для запуска немодифицированных паравиртуализированных гостевых систем (PV) в окружениях PVH и HVM. В дальнейшем использование 32-разрядных паравиртуализированных гостевых систем будет возможным только в режиме PV Shim, что позволит уменьшить количество мест в гипервизоре, в которых потенциально могут быть уязвимости.
  • Добавлена возможность загрузки на устройствах Intel без программируемого таймера (PIT, Programmable Interval Timer).
  • Проведена чистка устаревших компонентов, прекращена сборка по умолчанию кода «qemu-xen-traditional» и PV-Grub (необходимость в данных специфичных для Xen форках пропала после передачи изменений с поддержкой Xen в основной состав QEMU и Grub).
  • Для гостевых систем с архитектрой ARM реализована начальная поддержка виртуализированных счётчиков для отслеживания производительности (Performance Monitor Counters).
  • Улучшена поддержка режима dom0less, позволяющего обойтись без развёртывания окружения dom0 при запуске виртуальных машин на ранней стадии загрузки сервера. Внесённые изменения позволили реализовать поддержку 64-разрядных систем ARM с EFI-прошивками.
  • Улучшена поддержка гетерогенных 64-разрядных систем ARM на базе архитектуры big.LITTLE, комбинирующих в одном чипе мощные, но потребляющие много энергии, ядра, и менее производительные, но более энергоэффективные ядра.

Одновременно компания Intel опубликовала выпуск гипервизора Cloud Hypervisor 20.0, построенного на основе компонентов
совместного проекта Rust-VMM, в котором кроме Intel также участвуют компании Alibaba, Amazon, Google и Red Hat. Rust-VMM написан на языке Rust и позволяет создавать специфичные для определённых задач гипервизоры. Cloud Hypervisor является одним из таких гипервизоров, который предоставляет высокоуровневый монитор виртуальных машин (VMM), работающий поверх KVM и оптимизированный для решения задач, свойственных для облачных систем. Код проекта доступен под лицензией Apache 2.0.

Cloud Hypervisor cфокусирован на запуске современных дистрибутивов Linux с использованием паравиртуализированных устройств на базе virtio. Из ключевых задач упоминается: высокая отзывчивость, низкое потребление памяти, высокая производительность, упрощение настройки и сокращение возможных векторов для атак. Поддержка эмуляции сведена к минимуму и ставка делается на паравиртуализацию. В настоящее время поддерживаются только системы x86_64, но в планах имеется и поддержка AArch64. Из гостевых систем пока поддерживается только 64-разрядные сборки Linux. Настройка CPU, памяти, PCI и NVDIMM производится на этапе сборки. Предусмотрена возможность миграции виртуальных машин между серверами.

В новой версии:

  • Для архитектур x86_64 и aarch64 теперь допускается создание до 16 PCI-сегментов, что увеличивает общее число допустимых PCI-устройств с 31 до 496.
  • Реализована поддержка привязки виртуальных CPU к физическим ядрам CPU (CPU pinning). Для каждого vCPU теперь можно определить ограниченный набор хостовых CPU, на которых допускается выполнение, что может быть полезным при прямом отражении (1:1) ресурсов хоста и гостевой системы или при запуске виртуальной машины на определённом узле NUMA.
  • Улучшена поддержка виртуализации ввода/вывода. Каждый регион VFIO теперь может быть отражён в память, что снижает число операций выхода из виртуальной машины и позволяет добиться повышения производительности проброса устройств в виртуальную машину.
  • В коде на языке Rust проведена работа по замене unsafe-секций на альтернативные реализации, выполняемые в режиме safe. Для оставшихся unsafe-секций добавлены подробные комментарии с пояснением почему оставленный unsafe-код можно считать безопасным.

Источник.