Update sa Intel Cloud Hypervisor 0.3 at Amazon Firecracker 0.19 hypervisors na nakasulat sa Rust

Intel ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° bagong bersyon ng hypervisor Cloud Hypervisor 0.3. Ang hypervisor ay binuo sa mga bahagi
pinagsamang proyekto kalawang-VMM, kung saan, bilang karagdagan sa Intel, Alibaba, Amazon, Google at Red Hat ay lumahok din. Ang Rust-VMM ay nakasulat sa wikang Rust at nagbibigay-daan sa iyong lumikha ng mga hypervisors na partikular sa gawain. Ang Cloud Hypervisor ay isa sa gayong hypervisor na nagbibigay ng high-level virtual machine monitor (VMM) na tumatakbo sa itaas ng KVM at na-optimize para sa mga cloud-native na gawain. Code ng proyekto magagamit lisensyado sa ilalim ng Apache 2.0.

Nakatuon ang Cloud Hypervisor sa pagpapatakbo ng mga modernong pamamahagi ng Linux gamit ang mga virtio-based na paravirtualized na device. Kabilang sa mga pangunahing layunin na binanggit ay: mataas na pagtugon, mababang pagkonsumo ng memorya, mataas na pagganap, pinasimple na pagsasaayos at pagbabawas ng mga posibleng attack vectors.

Ang suporta sa emulation ay pinananatiling minimum at ang focus ay sa paravirtualization. Kasalukuyang x86_64 system lang ang sinusuportahan, ngunit pinlano ang suporta ng AArch64. Para sa mga guest system, mga 64-bit na build lang ng Linux ang kasalukuyang sinusuportahan. Ang CPU, memorya, PCI at NVDIMM ay na-configure sa yugto ng pagpupulong. Posibleng mag-migrate ng mga virtual machine sa pagitan ng mga server.

Sa bagong bersyon:

  • Nagpatuloy ang trabaho sa paglipat ng paravirtualized na I/O sa mga hiwalay na proseso. Ang kakayahang gumamit ng mga backend ay idinagdag upang makipag-ugnayan sa mga block device vhost-user-blk. Nagbibigay-daan sa iyo ang pagbabago na ikonekta ang mga block device batay sa vhost-user module sa Cloud Hypervisor, gaya ng SPDK, bilang mga backend para sa paravirtualized na imbakan;
  • Suporta para sa paglipat ng mga operasyon ng network sa mga backend, na ipinakilala sa huling release vhost-user-net, pinalawak gamit ang isang bagong backend batay sa isang virtual network driver Tapikin. Ang backend ay nakasulat sa Rust at ginagamit na ngayon sa Cloud Hypervisor bilang pangunahing para-virtualized na arkitektura ng network;
  • Upang mapataas ang kahusayan at seguridad ng mga komunikasyon sa pagitan ng host environment at ng guest system, ang isang hybrid na pagpapatupad ng mga socket na may AF_VSOCK addressing (virtual network sockets), na gumagana sa pamamagitan ng virtio, ay iminungkahi. Ang pagpapatupad ay batay sa mga pag-unlad ng proyekto Paputok, na binuo ng Amazon. Binibigyang-daan ka ng VSOCK na gamitin ang karaniwang POSIX Sockets API para sa pakikipag-ugnayan sa pagitan ng mga application sa panig ng bisita at host, na ginagawang madali ang pag-adapt ng mga ordinaryong programa sa network para sa naturang pakikipag-ugnayan at ipatupad ang pakikipag-ugnayan ng ilang programa ng kliyente sa isang application ng server;
  • Nagbigay ng paunang suporta para sa management API gamit ang HTTP protocol. Sa hinaharap, gagawing posible ng API na ito na simulan ang mga asynchronous na operasyon sa mga guest system, tulad ng mga mapagkukunan ng hot-plugging at migrating na kapaligiran;
  • Nagdagdag ng layer na may pagpapatupad ng transportasyon batay sa virtio MMIO (Memory mapped virtio), na maaaring magamit upang lumikha ng mga minimalistic na guest system na hindi nangangailangan ng PCI bus emulation;
  • Bilang bahagi ng inisyatiba upang palawakin ang suporta para sa pagpapatakbo ng mga nested guest system, idinagdag ng Cloud Hypervisor ang kakayahang mag-forward ng mga paravirtualized na IOMMU device sa pamamagitan ng virtio, na nagpapahusay sa seguridad ng nested at direktang pagpapasa ng device.
  • Nagbigay ng suporta para sa Ubuntu 19.10;
  • Nagdagdag ng kakayahang magpatakbo ng mga guest system na may higit sa 64 GB ng RAM.

Bilang karagdagan, maaari mong tandaan bagong labas katabi umunlad monitor ng virtual machine Paputok, nakasulat din sa Rust, batay sa Rust-VMM at tumatakbo sa ibabaw ng KVM. Ang paputok ay isang tinidor ng proyekto CrossVM, na ginagamit ng Google upang maglunsad ng mga application Linux ΠΈ Android sa ChromeOS. Ang Firecracker ay binuo ng Amazon Web Services upang mapabuti ang pagganap at kahusayan ng mga platform ng AWS Lambda at AWS Fargate.

Ang platform ay idinisenyo upang magpatakbo ng mga virtual machine na may kaunting overhead at nagbibigay ng mga tool para sa paglikha at pamamahala ng mga nakahiwalay na kapaligiran at mga serbisyong binuo gamit ang isang serverless na modelo ng pag-unlad (function bilang isang serbisyo). Nag-aalok ang Firecracker ng magaan na virtual machine na tinatawag na microVM na gumagamit ng mga teknolohiya ng virtualization ng hardware upang magbigay ng kumpletong paghihiwalay habang inihahatid ang pagganap at flexibility ng mga tradisyonal na lalagyan. Halimbawa, kapag gumagamit ng Firecracker, ang oras mula sa sandaling inilunsad ang microVM hanggang sa simula ng pagpapatupad ng application ay hindi lalampas sa 125ms, na nagbibigay-daan sa iyong maglunsad ng mga bagong virtual machine na may intensity na hanggang 150 environment kada segundo.

Ang bagong release ng Firecracker ay nagdaragdag ng mode ng pagpapatakbo nang hindi inilulunsad ang API handler (β€œβ€”no-api”), na nililimitahan ang kapaligiran sa mga setting na hard-coded sa configuration file. Ang static na configuration ay tinukoy sa pamamagitan ng opsyong "--config-file" at tinukoy sa JSON na format. Mula sa mga opsyon sa command line, idinagdag din ang suporta para sa separator na "β€”", ang mga flag na tinukoy pagkatapos ay ipinapasa sa kahabaan ng chain nang hindi pinoproseso.

Amazon, na bumuo ng Firecracker, din inihayag ang sa pagbibigay ng sponsorship sa mga developer ng Rust programming language. Napansin na ang Rust ay lalong ginagamit sa mga proyekto ng kumpanya at ang mga pagpapaunlad dito ay ipinatupad na sa mga serbisyo tulad ng Lambda, EC2 at S3. Binigyan ng Amazon ang Rust project ng imprastraktura upang mag-imbak ng mga release at build sa S3, magpatakbo ng mga pagsubok sa regression sa EC2, at magpanatili ng isang docs.rs site na may dokumentasyon para sa lahat ng mga pakete mula sa crates.io repository.

Amazon din ipinakilala ang programa AWS Promotional Credit, kung saan ang mga open source na proyekto ay makakakuha ng libreng access sa mga serbisyo ng AWS na magagamit para sa resource storage, build, tuluy-tuloy na pagsasama, at pagsubok. Kabilang sa mga proyektong naaprubahan na para sa pakikilahok sa programa, bilang karagdagan sa Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy at Julia ay nabanggit. Ang mga pagsusumite ay tinatanggap mula sa anumang open source na proyekto na inihatid sa ilalim ng mga lisensyang inaprubahan ng OSI.

Pinagmulan: opennet.ru

Magdagdag ng komento