Rust хэл дээр бичигдсэн Intel Cloud Hypervisor 0.3 болон Amazon Firecracker 0.19 гипервизоруудыг шинэчлэх

Intel Нийтлэгдсэн гипервизорын шинэ хувилбар Cloud Hypervisor 0.3. Гипервизор нь бүрэлдэхүүн хэсгүүд дээр суурилагдсан
хамтарсан төсөл Зэв-VMM, үүнд Intel-ээс гадна Алибаба, Амазон, Google, Red Hat нар оролцдог. Rust-VMM нь Rust хэл дээр бичигдсэн бөгөөд даалгаварт зориулсан гипервизоруудыг үүсгэх боломжийг танд олгоно. Cloud Hypervisor нь KVM дээр ажилладаг өндөр түвшний виртуал машины дэлгэцийг (VMM) хангадаг, үүлд суурилсан ажлуудад оновчтой болгосон ийм гипервизор юм. Төслийн код боломжтой Apache 2.0 дагуу лицензтэй.

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

Эмуляцийн дэмжлэгийг хамгийн бага хэмжээнд байлгаж, паравиртуалчлалд анхаарлаа хандуулдаг. Одоогоор зөвхөн x86_64 системийг дэмждэг боловч AArch64-ийг дэмжихээр төлөвлөж байна. Зочны системүүдийн хувьд одоогоор зөвхөн 64 битийн Линуксыг дэмждэг. CPU, санах ой, PCI болон NVDIMM нь угсралтын шатанд тохируулагдсан. Виртуал машинуудыг сервер хооронд шилжүүлэх боломжтой.

Шинэ хувилбарт:

  • Паравиртуалжуулсан I/O-г салангид процессууд руу шилжүүлэх ажлыг үргэлжлүүлэв. Блок төхөөрөмжтэй харилцахын тулд арын хэсгийг ашиглах чадварыг нэмсэн vhost-user-blk. Энэхүү өөрчлөлт нь vhost-хэрэглэгчийн модуль дээр суурилсан блок төхөөрөмжүүдийг Cloud Hypervisor-д холбох боломжийг олгодог. SPDK, паравиртуалжуулсан хадгалалтын арын хэсэг болгон;
  • Сүлжээний ажиллагааг сүүлийн хувилбарт танилцуулсан backends руу шилжүүлэх дэмжлэг vhost-user-net, виртуал сүлжээний драйвер дээр суурилсан шинэ backend ашиглан өргөтгөсөн TAP. Backend нь Rust дээр бичигдсэн бөгөөд одоо Cloud Hypervisor-д үндсэн пара-виртуалчлагдсан сүлжээний архитектур болгон ашиглаж байна;
  • Хостын орчин ба зочны системийн хоорондын харилцааны үр ашиг, аюулгүй байдлыг нэмэгдүүлэхийн тулд virtio-ээр ажилладаг AF_VSOCK хаяглалт (виртуал сүлжээний залгуур) бүхий залгууруудын эрлийз хувилбарыг санал болгож байна. Хэрэгжилт нь төслийн хөгжилд тулгуурладаг Салют, Amazon компаниас боловсруулсан. VSOCK нь зочин болон хост талын програмуудын хооронд харилцах стандарт POSIX Sockets API-г ашиглах боломжийг олгодог бөгөөд энэ нь ердийн сүлжээний програмуудыг ийм харилцан үйлчлэлд тохируулах, нэг сервер програмтай хэд хэдэн клиент програмын харилцан үйлчлэлийг хэрэгжүүлэхэд хялбар болгодог;
  • HTTP протоколыг ашиглан удирдлагын API-д анхан шатны дэмжлэг үзүүлсэн. Ирээдүйд энэ API нь халуун залгах нөөц, шилжих орчин гэх мэт зочны системүүд дээр асинхрон үйлдлүүдийг эхлүүлэх боломжтой болгоно;
  • virtio MMIO (Memory mapped virtio) дээр суурилсан тээвэрлэлтийн хэрэгжилт бүхий давхаргыг нэмсэн бөгөөд үүнийг PCI автобусны эмуляцийг шаарддаггүй минималист зочны системийг бий болгоход ашиглаж болно;
  • 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 хөгжүүлдэг Амазон бас зарласан Rust програмчлалын хэлийг хөгжүүлэгчдэд ивээн тэтгэх талаар. Rust нь компанийн төслүүдэд улам бүр ашиглагдаж байгаа бөгөөд үүнтэй холбоотой бүтээн байгуулалтууд нь Lambda, EC2, S3 зэрэг үйлчилгээнд аль хэдийн хэрэгжсэн гэж тэмдэглэжээ. Амазон нь Rust төслийг S3-д хувилбарууд болон бүтээцүүдийг хадгалах, EC2-д регрессийн тест хийх, crates.io репозитороос бүх багцын баримт бичиг бүхий docs.rs сайтыг хадгалах дэд бүтцээр хангасан.

Амазон бас танилцуулав хөтөлбөр AWS сурталчилгааны зээл, нээлттэй эхийн төслүүд нөөцийг хадгалах, бүтээх, тасралтгүй нэгтгэх, туршилт хийхэд ашиглаж болох AWS үйлчилгээнд үнэ төлбөргүй хандах боломжтой. Хөтөлбөрт оролцохоор аль хэдийн батлагдсан төслүүдээс гадна Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Invoy, Julia нарыг тэмдэглэв. Нээлттэй эх сурвалжийн аливаа төслийг ННХ-аас зөвшөөрсөн лицензийн дагуу хүлээн авна.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх