Обновление гипервизоров Intel Cloud Hypervisor 0.3 и Amazon Firecracker 0.19, написанных на Rust

Компания Intel опубликовала новую версию гипервизора Cloud Hypervisor 0.3. Гипервизор построен на основе компонентов
совместного проекта 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 производится на этапе сборки. Предусмотрена возможность миграции виртуальных машин между серверами.

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

  • Продолжена работа по выносу паравиртуализированного ввода/вывода в отдельные процессы. Для взаимодействие с блочными устройствами добавлена возможность использования бэкендов vhost-user-blk. Изменение позволяет подключать к Cloud Hypervisor блочные устройства на базе модуля vhost-user, такие как SPDK, в качестве бэкендов для паравиртуализированных хранилищ;
  • Появившаяся в прошлом выпуске поддержка выноса сетевых операций в бэкенды vhost-user-net, расширена новым бэкендом на базе виртуального сетевого драйвера TAP. Бэкенд написан на языке Rust и теперь используется в Cloud Hypervisor в качестве основной паравиртуализированной сетевой архитектуры;
  • Для повышения эффективности и защищённости коммуникаций между хост-окружением и гостевой системой предложена гибридная реализация сокетов с адресацией AF_VSOCK (виртуальные сетевые сокеты), работающая через virtio. Реализация основана на наработках проекта Firecracker, развиваемого компанией Amazon. VSOCK позволяет использовать штатный POSIX Sockets API для взаимодействия между приложениями на стороне гостевой системы и хоста, что позволяет легко адаптировать для такого взаимодействия обычные сетевые программы и реализовать взаимодействие нескольких клиентских программ с одним серверным приложением;
  • Обеспечена начальная поддержка управляющего API, использующего протокол HTTP. В будущем данный API позволит инициировать выполнение асинхронных операций над гостевыми системами, таких как горячее подключение ресурсов и миграция окружений;
  • Добавлен слой с реализацией транспорта на базе virtio MMIO (Memory mapped virtio), который может быть использован для создания минималистичных гостевых систем, не требующих эмуляции шины PCI;
  • В рамках инициативы по расширению поддержки запуска вложенных гостевых систем в Cloud Hypervisor добавлена возможность проброса паравиртуализированных устройств IOMMU через virtio, позволяющего повысить защищённость вложенного и прямого проброса устройств.
  • Обеспечена поддержка Ubuntu 19.10;
  • Добавлена возможность запуска гостевых систем с более чем 64 ГБ ОЗУ.

Дополнительно можно отметить новый выпуск смежно развиваемого монитора виртуальных машин Firecracker, также написанного на Rust, базирующегося на Rust-VMM и работающего поверх KVM. Firecracker является ответвлением от проекта CrosVM, используемого компанией Google для запуска приложений Linux и Android в ChromеOS. Разработка Firecracker ведётся в подразделении Amazon Web Services с целью повышения производительности и эффективности работы платформ AWS Lambda и AWS Fargate.

Платформа рассчитана на запуск виртуальных машин с минимальными накладными расходами и предоставляет средства для создания и управления изолированными окружениями и сервисами, построенными с использованием бессерверной модели разработки (функция как услуга). Firecracker предлагает легковесные виртуальные машины, именуемые microVM, для полноценной изоляции которых применяются технологии аппаратной виртуализации, но при этом обеспечивается производительность и гибкость на уровне обычных контейнеров. Например, при использовании Firecracker время с момента запуска microVM до начала выполнения приложения не превышает 125мс, что позволяет запускать новые виртуальные машины с интенсивностью до 150 окружений в секунду.

В новом выпуске Firecracker добавлен режим работы без запуска обработчика API («—no-api»), ограничивающий окружение только жёстко заданными в файле конфигурации настройками. Статическая конфигурация задаётся через опцию «—config-file» и определяется в формате JSON. Из опций командной строки также добавлена поддержка разделителя «—«, указанные после которого флаги передаются по цепочке без обработки.

Развивающая Firecracker компания Amazon также объявила об оказании спонсорской поддержки разработчиков языка программирования Rust. Отмечается, что Rust всё чаще используется в проектах компании и разработки на нём уже внедрены в таких службах, как Lambda, EC2 и S3. Amazon предоставил проекту Rust инфраструктуру для хранения выпусков и сборок в S3, запуска регрессивных тестов в EC2 и поддержания сайта docs.rs с документацией для всех пакетов из репозитория crates.io.

Amazon также представил программу AWS Promotional Credit, в рамках которого открытые проекты могут получить бесплатный доступ к сервисам AWS, которые можно использовать для хранения ресурсов, сборки, непрерывной интеграции и тестирования. Из уже одобренных для участия в программе проектов кроме Rust отмечены AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy и Julia. Заявки принимаются от любых открытых проектов, поставляемых под лицензиями, одобренными OSI.

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

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