Компания Intel объявила о выпуске новой версии своего «Cloud Hypervisor 0.3», монитора виртуальных машин с открытым исходным кодом , работающего поверх KVM. Проект ориентирован исключительно на запуск современных облачных рабочих нагрузок, а также на ограниченный набор аппаратных архитектур и платформ.
Облачные рабочие нагрузки — это нагрузки, обычно выполняемые клиентами в среде облачного провайдера. Гипервизор основан на компонентах совместного проекта Rust-VMM, в который, помимо Intel, входят Alibaba, Amazon, Google и Red Hat.
Rust-VMM написан на Rust и позволяет создавать гипервизоры, специально разработанные для решения конкретных задач. Cloud Hypervisor — один из таких гипервизоров, предоставляющий высокоуровневый монитор виртуальных машин (VMM) и оптимизированный для решения задач облачных вычислений.
Cloud Hypervisor специализируется на запуске современных дистрибутивов Linux с использованием виртуальных машин paravirtio.
Ключевые особенности включают: высокую скорость отклика, низкое потребление памяти, высокую производительность, упрощенную настройку и снижение количества векторов атак.
Поддержка эмуляции сведена к минимуму, с упором на паравиртуализацию. В настоящее время поддерживаются только системы x86_64, но в планах также поддержка AArch64. Из гостевых систем в настоящее время поддерживаются только 64-битные сборки Linux. Процессор, память, PCI и NVDIMM настраиваются на этапе сборки, а виртуальные машины также могут быть перенесены между серверами.
Код проекта доступен по лицензии Apache 2.0.
Основные новые возможности Cloud Hypervisor 0.3
В новой версии Cloud Hypervisor 0.3 существенно исключена паравиртуализированная операция ввода-вывода в отдельных процессах . Для взаимодействия с блочными устройствами добавлена возможность использования бэкэндов vhost-user-blk.
Это изменение позволяет подключать блочные устройства на основе модуля vhost-user, такие как SPDK, к облачному гипервизору в качестве бэкэндов для паравиртуализированного хранилища.
Поддержка удаления сетевых операций в бэкендах vhost-user-net , появившаяся в предыдущей версии, расширена за счет нового бэкенда, основанного на виртуальном сетевом контроллере TAP. Этот бэкенд написан на Rust и теперь используется Cloud Hypervisor в качестве основной паравиртуализированной сетевой архитектуры.
Для повышения эффективности и безопасности связи между хост-системой и гостевой системой предлагается гибридная реализация сокетов с адресацией AF_VSOCK (виртуальные сетевые сокеты), работающая через virtio.
Реализация основана на опыте проекта Firecracker, разработанного компанией Amazon. VSOCK позволяет использовать стандартный API сокетов POSIX для взаимодействия между приложениями в гостевой системе и на стороне хоста, что упрощает адаптацию обычных сетевых программ для этого взаимодействия и реализацию взаимодействия между несколькими клиентскими программами и серверным приложением.
Ещё одним важным изменением является внедрение первоначальной поддержки API управления с использованием протокола HTTP . В будущем этот API позволит выполнять асинхронные операции в гостевых системах, такие как подключение ресурсов в режиме реального времени и миграция сред.
Также подчеркивается добавление уровня с реализацией транспорта на основе virtio MMIO (virtio memory mapped), который можно использовать для создания минималистичных гостевых систем, не требующих эмуляции шины PCI.
В рамках инициативы по расширению поддержки встроенного гостевого запуска облачный гипервизор добавил возможность пересылки паравиртуализированных устройств IOMMU через virtio, что может повысить безопасность встроенной и прямой переадресации устройств.
Наконец, среди других новых функций, отмеченных в анонсе, следует упомянуть поддержку Ubuntu 19.10, а также добавленную возможность запуска гостевых систем с объемом оперативной памяти более 64 ГБ.
Если вы хотите узнать больше об этом, а также поработать с этим гипервизором, вы можете найти подробную информацию по следующей ссылке.