Абнаўленне гіпервізораў 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 зфакусаваны на запуску сучасных дыстрыбутываў 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. Рэалізацыя заснавана на напрацоўках праекта Петарда, які развіваецца кампаніяй Amazon. VSOCK дазваляе выкарыстоўваць штатны POSIX Sockets API для ўзаемадзеяння паміж прыкладаннямі на баку гасцявой сістэмы і хаста, што дазваляе лёгка адаптаваць для такога ўзаемадзеяння звычайныя сеткавыя праграмы і рэалізаваць узаемадзеянне некалькіх кліенцкіх праграм з адным серверным дадаткам;
  • Забяспечана пачатковая падтрымка кіраўніка API, які выкарыстоўвае пратакол HTTP. У будучыні дадзены API дазволіць ініцыяваць выкананне асінхронных аперацый над гасцёўнямі сістэмамі, такіх як гарачае падлучэнне рэсурсаў і міграцыя асяродкаў;
  • Дададзены пласт з рэалізацыяй транспарта на базе virtio MMIO (Memory mapped virtio), які можа быць скарыстаны для стварэння мінімалістычных гасцявых сістэм, не патрабавальных эмуляцыі шыны PCI;
  • У рамках ініцыятывы па пашырэнні падтрымкі запуску ўкладзеных гасцявых сістэм у Cloud Hypervisor дададзена магчымасць пракіду паравіртуалізаванай прылад IOMMU праз virtio, які дазваляе павысіць абароненасць укладзенага і прамога пракіду прылад.
  • Забяспечана падтрымка Ubuntu 19.10/XNUMX;
  • Дададзена магчымасць запуску гасцявых сістэм з больш за 64 ГБ АЗП.

Дадаткова можна адзначыць новы выпуск сумежна развіваецца манітора віртуальных машын Петарда, таксама напісанага на 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

Дадаць каментар