Rust тилинде жазылган Intel Cloud Hypervisor 0.3 жана Amazon Firecracker 0.19 гипервизорлоруна жаңыртуу

Intel жарыяланган гипервизордун жаңы версиясы Cloud Hypervisor 0.3. Гипервизор компоненттердин үстүнө курулган
биргелешкен долбоор Rust-VMM, ага Intelден тышкары Alibaba, Amazon, Google жана Red Hat дагы катышат. Rust-VMM Rust тилинде жазылган жана тапшырмага тиешелүү гипервизорлорду түзүүгө мүмкүндүк берет. Cloud Hypervisor - бул KVMдин үстүндө иштеген жана булуттагы жергиликтүү тапшырмалар үчүн оптималдаштырылган жогорку деңгээлдеги виртуалдык машина монитордун (VMM) камсыз кылган ушундай гипервизорлордун бири. Долбоор коду жеткиликтүү Apache 2.0 астында лицензияланган.

Cloud Hypervisor virtio негизделген паравиртуалдаштырылган түзмөктөрдү колдонуу менен заманбап Linux дистрибутивдерин иштетүүгө багытталган. Белгиленген негизги максаттардын арасында: жогорку жооп кайтаруу, эстутумду аз керектөө, жогорку өндүрүмдүүлүк, жөнөкөйлөштүрүлгөн конфигурация жана мүмкүн болгон чабуул векторлорун азайтуу.

Эмуляцияны колдоо минималдуу деңгээлде сакталып, паравиртуалдаштырууга басым жасалат. Учурда бир гана x86_64 системалары колдоого алынат, бирок AArch64 колдоо пландаштырылган. Конок системалары үчүн учурда Linuxтун 64 биттик түзүмдөрү гана колдоого алынат. CPU, эстутум, PCI жана NVDIMM монтаждоо стадиясында конфигурацияланган. Виртуалдык машиналарды серверлердин ортосунда көчүрүү мүмкүн.

Жаңы версияда:

  • Паравиртуалдаштырылган I/O өзүнчө процесстерге жылдыруу боюнча иштер улантылды. Блок түзмөктөр менен өз ара аракеттенүү үчүн backends колдонуу мүмкүнчүлүгү кошулду vhost-user-blk. Өзгөртүү vhost-колдонуучу модулунун негизинде блоктук түзмөктөрдү Cloud Hypervisor менен туташтырууга мүмкүндүк берет, мисалы, SPDK, paravirtualized сактоо үчүн backends катары;
  • Акыркы чыгарылышта киргизилген тармактык операцияларды серверлерге жылдыруу үчүн колдоо vhost-user-net, виртуалдык тармак драйверине негизделген жаңы сервер менен кеңейтилген TAP. Backend Rust тилинде жазылган жана азыр негизги пара-виртуалдуу тармак архитектурасы катары Cloud Hypervisorдо колдонулат;
  • Хост чөйрөсү менен конок системасынын ортосундагы байланыштын эффективдүүлүгүн жана коопсуздугун жогорулатуу үчүн virtio аркылуу иштеген AF_VSOCK дареги (виртуалдык тармак розеткалары) менен розеткаларды гибриддик ишке ашыруу сунушталат. Ишке ашыруу долбоордун иштеп чыгууларына негизделген Петарда, Amazon тарабынан иштелип чыккан. VSOCK конок жана хост тарабында тиркемелердин ортосундагы өз ара аракеттенүү үчүн стандарттуу POSIX Sockets API колдонууга мүмкүндүк берет, бул жөнөкөй тармактык программаларды мындай өз ара аракеттенүүгө ылайыкташтырууну жана бир сервердик тиркеме менен бир нече кардар программасынын өз ара аракеттенүүсүн ишке ашырууну жеңилдетет;
  • HTTP протоколун колдонуу менен башкаруу API үчүн баштапкы колдоо көрсөтүлдү. Келечекте бул API конок тутумдарында асинхрондук операцияларды баштоого мүмкүндүк берет, мисалы, ысык кошулган ресурстар жана миграциялык чөйрөлөр;
  • PCI шинасын эмуляциялоону талап кылбаган минималисттик конок системаларын түзүү үчүн колдонула турган virtio MMIO (Memory mapped virtio) негизинде транспортту ишке ашыруу менен катмар кошулду;
  • Иштеп жаткан конок тутумдарын колдоону кеңейтүү демилгесинин алкагында, Cloud Hypervisor virtio аркылуу паравиртуалдаштырылган IOMMU түзмөктөрүн багыттоо мүмкүнчүлүгүн кошту, бул түзмөктөрдүн уяланган жана түз багытталышынын коопсуздугун жакшыртат.
  • Ubuntu 19.10 үчүн колдоо көрсөтүлгөн;
  • 64 ГБ ашык RAM менен конок тутумдарын иштетүү мүмкүнчүлүгү кошулду.

Мындан тышкары, белгилей кетүү керек жаңы чыгарылыш жанаша иштелип чыккан виртуалдык машина монитор Петарда, ошондой эле Rust тилинде жазылган, Rust-VMM негизинде жана KVM үстүндө иштейт. Петарда - бул долбоордун айрыгы CrosVM, Google тарабынан колдонмолорду ишке киргизүү үчүн колдонулат Linux и Android ChromeOS ичинде. Firecracker AWS Lambda жана AWS Fargate платформаларынын иштешин жана натыйжалуулугун жогорулатуу үчүн Amazon Web Services тарабынан иштелип чыгууда.

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

Firecrackerдин жаңы чыгарылышы API иштеткичти («—no-api») ишке киргизбестен иштөө режимин кошот, чөйрөнү конфигурация файлында катуу коддолгон жөндөөлөр менен гана чектейт. Статикалык конфигурация "--config-file" опциясы аркылуу көрсөтүлөт жана JSON форматында аныкталат. Буйрук сабынын варианттарынан “—” бөлгүчтү колдоо да кошулду, андан кийин көрсөтүлгөн желектер иштетилбестен чынжыр боюнча өткөрүлөт.

Firecrackerди иштеп чыккан Amazon дагы жарыялады Rust программалоо тилин иштеп чыгуучуларга демөөрчүлүк көрсөтүү боюнча. Белгилей кетсек, Rust компаниянын долбоорлорунда көбүрөөк колдонулуп, ал боюнча иштеп чыгуулар Lambda, EC2 жана S3 сыяктуу кызматтарда ишке ашырылган. Amazon Rust долбоорун S3де релиздерди жана курууларды сактоо, EC2де регрессиялык тесттерди жүргүзүү жана crates.io репозиторийиндеги бардык пакеттердин документтери менен docs.rs сайтын жүргүзүү үчүн инфраструктура менен камсыз кылды.

Amazon да берилген программа AWS жарнамалык кредити, бул жерде ачык булак долбоорлору ресурстарды сактоо, куруу, үзгүлтүксүз интеграциялоо жана тестирлөө үчүн колдонула турган AWS кызматтарына акысыз кире алат. Программага катышуу үчүн буга чейин бекитилген долбоорлордун арасында Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy жана Juliaдан тышкары белгиленди. Тапшыруулар OSI тарабынан бекитилген лицензиялар боюнча жеткирилген бардык ачык булак долбоорлорунан кабыл алынат.

Source: opennet.ru

Комментарий кошуу