Amazon компаниясы виртуалдык машиналарды минималдуу чыгымдар менен иштетүү үчүн иштелип чыккан виртуалдык машина монитору (VMM) Firecracker 1.0.0 версиясынын олуттуу чыгарылышын чыгарды. Firecracker - бул Google тарабынан тиркемелерди иштетүү үчүн колдонулган CrosVM долбоорунун бир бөлүгү. Linux и Android Firecracker Amazon Web Services тарабынан AWS Lambda жана AWS Fargate платформаларынын иштешин жана натыйжалуулугун жакшыртуу үчүн иштелип чыккан. Firecracker Rust тилинде жазылган жана Apache 2.0 лицензиясынын астында лицензияланган.
Firecracker microVM деп аталган жеңил виртуалдык машиналарды сунуш кылат. Толук microVM изоляциясы үчүн KVM гипервизоруна негизделген аппараттык виртуалдаштыруу технологиялары колдонулат, бирок ошол эле учурда кадимки контейнерлердин деңгээлинде аткаруу жана ийкемдүүлүк камсыз кылынат. Система x86_64 жана ARM64 архитектуралары үчүн жеткиликтүү жана Intel Skylake, Intel Cascade Lake, AMD Zen2 жана ARM64 Neoverse N1 үй-бүлөсүнөн алынган процессорлордо сыналган. Куралдар Firecrackerди Kata Containers, Weaveworks Ignite жана контейнер сыяктуу иштөө убагы контейнер тутумдарына интеграциялоо үчүн берилген (иштөө убактысы петарда-контейнер менен камсыз кылынат).

Ичинде аткарылган виртуалдык машиналар Программалык камсыздоо чөйрөсү жөнөкөйлөтүлгөн жана компоненттердин минималдуу топтомун гана камтыйт. Эстутумду үнөмдөө, ишке киргизүү убактысын кыскартуу жана коопсуздукту жакшыртуу үчүн, чөйрөлөрдө жөнөкөйлөтүлгөн ядро иштейт. Linux (4.14 жана 5.10 ядролору колдоого алынат), андан бардык керексиз нерселер, анын ичинде функциялардын азайышы жана түзмөктү колдоонун алынып салынышы алынып салынган.
Өчүрүлгөн ядро менен иштегенде, контейнерге салыштырмалуу эстутумдун кошумча керектөөсү 5 МБдан азыраак болот. microVM ишке киргизилген учурдан тартып тиркемени аткаруунун башталышына чейинки кечигүү 6дан 60 мсге чейин (орточо 12 мс) диапазонунда айтылат, бул хостто секундасына 180 чөйрөгө чейин интенсивдүүлүк менен жаңы виртуалдык машиналарды түзүүгө мүмкүндүк берет 36 CPU өзөгү менен.
Колдонуучу мейкиндигинде виртуалдык чөйрөлөрдү башкаруу үчүн, microVM конфигурациялоо, ишке киргизүү жана токтотуу, CPU шаблондорун тандоо (C3 же T2), виртуалдык процессорлордун (vCPU) санын аныктоо сыяктуу функцияларды ишке ашырган RESTful API менен камсыз кылуучу фон процесси Virtual Machine Manager иштейт. жана эс тутумдун көлөмү, тармак интерфейстерин жана диск бөлүктөрүн кошуу, өткөрүү жөндөмдүүлүгүнө жана операциялардын интенсивдүүлүгүнө чектөөлөрдү коюу, ресурстар жетишсиз болгон учурда кошумча эстутум жана CPU кубаттуулугун камсыз кылуу.
Контейнерлер үчүн тереңирээк изоляциялык катмар катары колдонулгандан тышкары, Firecracker FaaS (Function as a Service) тутумдарын иштетүү үчүн да ылайыктуу, ал серверсиз эсептөө моделин сунуштайт, анда иштеп чыгуу кичинекей индивидуалдык топтомдорду даярдоо баскычында жүргүзүлөт. функциялар, алардын ар бири белгилүү бир окуяны жөнгө салат жана чөйрөгө шилтеме жасабастан обочолонгон иштөө үчүн иштелип чыккан (жарандыгы жок, натыйжа файлдык тутумдун мурунку абалына жана мазмунуна көз каранды эмес). Функциялар зарыл болгондо гана ишке киргизилет жана окуяны иштеп чыккандан кийин дароо өз ишин бүтүрүшөт. FaaS платформасынын өзү даярдалган функцияларды камтыйт, башкарууну уюштурат жана даярдалган функцияларды аткаруу үчүн зарыл болгон чөйрөлөрдүн масштабын камсыздайт.
Кошумчалай кетсек, Intel Cloud Hypervisor 21.0 гипервизорунун жарыясын белгилей кетсек болот, ал биргелешкен Rust-VMM долбоорунун компоненттеринин негизинде курулган, ага Intelден тышкары Alibaba, Amazon, Google жана Red Hat да катышат. Rust-VMM Rust тилинде жазылган жана тапшырмага тиешелүү гипервизорлорду түзүүгө мүмкүндүк берет. Cloud Hypervisor - бул KVMдин үстүндө иштеген жана булуттагы жергиликтүү тапшырмалар үчүн оптималдаштырылган жогорку деңгээлдеги виртуалдык машина монитордун (VMM) камсыз кылган ушундай гипервизорлордун бири. Долбоордун коду Apache 2.0 лицензиясы боюнча жеткиликтүү.
Булут гипервизору заманбап дистрибуцияларды иштетүүгө багытталган Linux Virtio негизиндеги паравиртуалдаштырылган түзмөктөрдү колдонуу. Негизги максаттарга жогорку жооп кайтаруу, эс тутумду аз керектөө, жогорку өндүрүмдүүлүк, жөнөкөйлөштүрүлгөн конфигурация жана чабуул векторлорун азайтуу кирет. Паравиртуалдаштырууга басым жасалып, эмуляцияны колдоо минималдаштырылган. Колдоого алынган архитектуралар x86_64 жана AArch64. Учурда коноктор үчүн 64-биттик курулмалар гана колдоого алынат. LinuxКуруу процессинде CPU, эс тутум, PCI жана NVDIMM конфигурациялары аткарылат. Виртуалдык машиналардын ортосунда миграция серверлер.
Cloud Hypervisorдун жаңы версиясында жергиликтүү түз миграциянын натыйжалуулугу киргизилет, аны чөйрөлөрдү тез арада жаңыртуу үчүн колдонсо болот (Live Upgrade). Жаңы режим баштапкы жана максаттуу чөйрөлөрдүн ортосундагы эс тутумду салыштырууну өчүрөт, тез арада жаңыртуу убактысын 3 секунддан 50 мс чейин кыскартат. Сунушталган ядро Linux 5.15 (5.14 версиясында virtio-net менен көйгөйлөр бар).
Source: opennet.ru
