Kusintha kwa Intel Cloud Hypervisor 0.3 ndi Amazon Firecracker 0.19 hypervisors zolembedwa mu Rust

Intel losindikizidwa mtundu watsopano wa hypervisor Cloud Hypervisor 0.3. Hypervisor imamangidwa pazigawo
polojekiti yogwirizana Dzimbiri-VMM, momwe, kuwonjezera pa Intel, Alibaba, Amazon, Google ndi Red Hat amakhalanso nawo. Rust-VMM imalembedwa m'chinenero cha Dzimbiri ndipo imakupatsani mwayi wopanga ma hypervisors okhudzana ndi ntchito. Cloud Hypervisor ndi imodzi mwama hypervisor omwe amapereka makina apamwamba kwambiri (VMM) omwe akuyenda pamwamba pa KVM ndikukonzekera ntchito zamtambo. Project kodi zilipo zololedwa pansi pa Apache 2.0.

Cloud Hypervisor imayang'ana kwambiri kuyendetsa magawo amakono a Linux pogwiritsa ntchito zida za virtio-based paravirtualized. Zina mwa zolinga zazikuluzikulu zomwe zatchulidwa ndi izi: kuyankha kwakukulu, kugwiritsa ntchito kukumbukira pang'ono, kuchita bwino kwambiri, kusintha kosavuta komanso kuchepetsa ma vectors omwe angakhalepo.

Thandizo la kutsanzira limachepetsedwa ndipo cholinga chake ndi paravirtualization. Pakadali pano makina a x86_64 okha ndi omwe amathandizidwa, koma thandizo la AArch64 likukonzekera. Kwa machitidwe a alendo, ma 64-bit okha a Linux omwe amathandizidwa. CPU, memory, PCI ndi NVDIMM zimakonzedwa pagulu la msonkhano. Ndizotheka kusamutsa makina pafupifupi pakati pa ma seva.

Mu mtundu watsopano:

  • Ntchito idapitilira kusamutsa ma I/O a paravirtualized kuti alekanitse njira. Kutha kugwiritsa ntchito ma backends awonjezedwa kuti agwirizane ndi zida za block vhost-user-blk. Kusinthaku kumakupatsani mwayi wolumikiza zida za block kutengera gawo la vhost-user ku Cloud Hypervisor, monga Chithunzi cha SPDK, monga backends kwa paravirtualized yosungirako;
  • Thandizo losuntha ntchito zapaintaneti kupita ku backends, zomwe zidayambitsidwa kumapeto komaliza vhost-user-net, yokulitsidwa ndi backend yatsopano kutengera dalaivala wa netiweki Dinani. Kumbuyo kumalembedwa mu Rust ndipo tsopano kugwiritsidwa ntchito mu Cloud Hypervisor monga main para-virtualized network architecture;
  • Kuti muwonjezere mphamvu ndi chitetezo cha kulumikizana pakati pa malo ochitira alendo ndi dongosolo la alendo, kukhazikitsa kosakanizidwa kwa sockets ndi AF_VSOCK addressing (virtual network sockets), kugwira ntchito kudzera mu virtio, ikuperekedwa. Kukhazikitsa kumatengera zomwe polojekiti ikuchita Firecracker, yopangidwa ndi Amazon. VSOCK imakupatsani mwayi wogwiritsa ntchito API yokhazikika ya POSIX Sockets API polumikizana pakati pa mapulogalamu omwe ali pa alendo ndi olandila, zomwe zimapangitsa kuti zikhale zosavuta kusintha mapulogalamu wamba amtundu wamtunduwu ndikukhazikitsa kuyanjana kwa mapulogalamu angapo a kasitomala ndi pulogalamu imodzi ya seva;
  • Anapereka chithandizo choyambirira cha kasamalidwe ka API pogwiritsa ntchito HTTP protocol. M'tsogolomu, API iyi idzapangitsa kuti zitheke kuyambitsa machitidwe asynchronous pa machitidwe a alendo, monga zipangizo zotentha ndi malo osamukira;
  • Anawonjezera wosanjikiza ndi kukhazikitsa zoyendera zochokera virtio MMIO (Memory mapu virtio), amene angagwiritsidwe ntchito kulenga minimalistic kachitidwe alendo amene safuna PCI basi kutsanzira;
  • Monga gawo la njira yowonjezerera zothandizira kuyendetsa kachitidwe ka alendo, Cloud Hypervisor yawonjezera mphamvu yotumizira zida za IOMMU za paravirtualized kudzera mu virtio, zomwe zimapangitsa chitetezo chazida zomwe zili ndi zisa komanso kutumiza mwachindunji kwa zida.
  • Anapereka chithandizo kwa Ubuntu 19.10;
  • Anawonjezera luso loyendetsa machitidwe a alendo ndi oposa 64 GB a RAM.

Kuphatikiza apo, zitha kuzindikirika nkhani yatsopano moyandikana otukuka makina owona makina Firecracker, yolembedwanso mu Rust, yochokera pa Rust-VMM ndikuyenda pamwamba pa KVM. Firecracker ndi foloko ya polojekitiyi Zithunzi za CrosVM, yogwiritsidwa ntchito ndi Google kukhazikitsa mapulogalamu Linux ΠΈ Android mu ChromeOS. Firecracker ikupangidwa ndi Amazon Web Services kuti ipititse patsogolo magwiridwe antchito ndi magwiridwe antchito a nsanja za AWS Lambda ndi AWS Fargate.

Pulatifomuyi idapangidwa kuti igwiritse ntchito makina owoneka bwino omwe ali ndi mutu wocheperako ndipo imapereka zida zopangira ndi kuyang'anira malo akutali ndi mautumiki omwe amamangidwa pogwiritsa ntchito mtundu wachitukuko wopanda seva (ntchito ngati ntchito). Firecracker imapereka makina opepuka opepuka, otchedwa ma microVM, omwe amagwiritsa ntchito matekinoloje a hardware kuti apereke kudzipatula kwinaku akupereka magwiridwe antchito komanso kusinthasintha kwa zida zachikhalidwe. Mwachitsanzo, mukamagwiritsa ntchito Firecracker, nthawi kuyambira pomwe microVM imayambitsidwa mpaka kuyambika kwa ntchito sikudutsa 125ms, zomwe zimakupatsani mwayi woyambitsa makina atsopano okhala ndi mphamvu zofikira 150 pamphindikati.

Kutulutsidwa kwatsopano kwa Firecracker kumawonjezera njira yogwiritsira ntchito popanda kuyambitsa chogwiritsira ntchito API ("-no-api"), kuchepetsa chilengedwe kokha ku zoikidwiratu zokhazikika mu fayilo yokonzekera. Kukonzekera kwa static kumatchulidwa kudzera pa "--config-file" njira ndipo imatanthauzidwa mu mtundu wa JSON. Kuchokera pazosankha za mzere wamalamulo, chithandizo cha olekanitsa "-" chawonjezedwanso, mbendera zomwe zafotokozedwa pambuyo pake zimadutsa unyolo popanda kukonzedwa.

Amazon, yomwe imapanga Firecracker, nayonso adalengeza popereka chithandizo kwa omwe akupanga chilankhulo cha Rust programming. Zikudziwika kuti dzimbiri likugwiritsidwa ntchito kwambiri m'mapulojekiti a kampaniyo ndipo zomwe zikuchitika pa izo zakhala zikugwiritsidwa ntchito muzinthu monga Lambda, EC2 ndi S3. Amazon yapereka pulojekiti ya Rust ndi zomangamanga zosungirako zotulutsidwa ndikumanga mu S3, kuyesa kuyesa kuyambiranso ku EC2, ndikusunga malo a docs.rs okhala ndi zolemba zamaphukusi onse kuchokera ku crates.io repository.

Amazon komanso anayambitsa pulogalamu Ngongole Yotsatsa ya AWS, komwe mapulojekiti otseguka amatha kupeza mwayi wopeza ntchito za AWS zomwe zingagwiritsidwe ntchito posungira zinthu, kumanga, kuphatikiza mosalekeza, ndi kuyesa. Mwa ma projekiti omwe adavomerezedwa kale kuti achite nawo pulogalamuyi, kuphatikiza Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy ndi Julia adadziwika. Zopereka zimalandiridwa kuchokera ku projekiti iliyonse yotseguka yoperekedwa pansi pa zilolezo zovomerezedwa ndi OSI.

Source: opennet.ru

Kuwonjezera ndemanga