Компанія Amazon опублікувала систему віртуалізації Firecracker 1.0

Компанія Amazon опублікувала значний випуск монітора віртуальних машин (VMM, Virtual Machine Monitor) Firecracker 1.0.0, розрахованого на запуск віртуальних машин із мінімальними накладними витратами. Firecracker є відгалуженням від проекту CrosVM, використовуваного компанією Google для запуску додатків Linux та Android у ChromeOS. Розробка Firecracker ведеться у підрозділі Amazon Web Services з метою підвищення продуктивності та ефективності роботи платформ AWS Lambda та AWS Fargate. Код Firecracker написаний мовою Rust та поширюється під ліцензією Apache 2.0.

Firecracker пропонує легковажні віртуальні машини, які називають microVM. Для повноцінної ізоляції microVM застосовуються технології апаратної віртуалізації на базі гіпервізора KVM, але забезпечується продуктивність і гнучкість на рівні звичайних контейнерів. Система доступна для архітектур x86_64 та ARM64, і протестована на CPU сімейства Intel Skylake, Intel Cascade Lake, AMD Zen2 та ARM64 Neoverse N1. Надаються засоби для інтеграції Firecracker у runtime систем контейнерної ізоляції, таких як Kata Containers, Weaveworks Ignite та containerd (надається runtime firecracker-containerd).

Компанія Amazon опублікувала систему віртуалізації Firecracker 1.0

Програмне оточення, що виконується всередині віртуальних машин, урізане і містить тільки мінімальний набір компонентів. Для економії пам'яті, скорочення часу запуску та підвищення безпеки в оточеннях запускається урізане ядро ​​Linux (підтримуються ядра 4.14 та 5.10), з якого виключено все зайве, у тому числі скорочено функціональність та видалено підтримку пристроїв.

При запуску з урізаним ядром додаткова витрата пам'яті порівняно з контейнером не перевищує 5 Мб. Затримка з моменту запуску microVM до початку виконання програми заявлена ​​в межах від 6 до 60 мс (в середньому 12 мс), що дозволяє породжувати нові віртуальні машини з інтенсивністю до 180 оточень за секунду на хості з 36 ядрами CPU.

Для управління віртуальними оточеннями у просторі користувача виконується фоновий процес Virtual Machine Manager, що надає RESTful API, що реалізує такі функції, як налаштування, запуск та зупинка microVM, вибір шаблонів CPU (C3 або T2), визначення числа віртуальних процесорів (vCPU) та розміру пам'яті, додавання мережевих інтерфейсів та дискових розділів, завдання обмежень на пропускну здатність та інтенсивність виконання операцій, надання додаткової пам'яті та потужностей CPU у разі нестачі ресурсів.

Крім використання як глибшого рівня ізоляції для контейнерів Firecracker також підходить для забезпечення роботи FaaS-систем (Функція як послуга), що пропонують модель безсерверних обчислень, розробка при якій ведеться на рівні підготовки набору невеликих окремих функцій, кожна з яких забезпечує обробку певної події та розрахована на відокремлену роботу без прив'язки до оточення (stateless, результат не залежить від минулого стану та вмісту ФС). Функції запускаються лише за необхідності і відразу після обробки події завершують свою роботу. FaaS-платформа сама розміщує підготовлені функції, організує керування та забезпечує масштабування оточень, необхідних для виконання підготовлених функцій.

Додатково можна відзначити публікацію компанією Intel гіпервізора Cloud Hypervisor 21.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 реалізовано можливість ефективної локальної live-міграції, яку можна використовувати для оновлення оточень на льоту (Live Upgrade). Новий режим відрізняється відключенням порівняння пам'яті вихідного та цільового оточення, що дозволяє знизити час операції оновлення на льоту з 3 секунд до 50 мс. Як рекомендоване заявлено ядро ​​Linux 5.15 (у 5.14 є проблеми з virtio-net).

Джерело: opennet.ru

Додати коментар або відгук