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