Hoʻohou i ka Intel Cloud Hypervisor 0.3 a me Amazon Firecracker 0.19 hypervisors i kākau ʻia ma Rust

Intel paʻi ʻia mana hou o hypervisor Cloud Hypervisor 0.3. Kūkulu ʻia ka hypervisor ma nā ʻāpana
papahana hui Rust-VMM, kahi i komo pū me Intel, Alibaba, Amazon, Google a me Red Hat. Ua kākau ʻia ʻo Rust-VMM ma ka ʻōlelo Rust a hiki iā ʻoe ke hana i nā hypervisors kikoʻī hana. ʻO Cloud Hypervisor kekahi o ia hypervisor e hāʻawi ana i kahi mākaʻikaʻi mīkini kiʻekiʻe kiʻekiʻe (VMM) e holo ana ma luna o KVM a i hoʻopaʻa ʻia no nā hana kapuaʻi. Code papahana loaʻa laikini ma lalo o Apache 2.0.

Hoʻokumu ʻia ʻo Cloud Hypervisor i ka holo ʻana i nā māhele Linux hou me ka hoʻohana ʻana i nā polokalamu paravirtualized virtio. Ma waena o nā pahuhopu nui i ʻōlelo ʻia: ka pane kiʻekiʻe, ka hoʻohana haʻahaʻa haʻahaʻa, ka hana kiʻekiʻe, ka hoʻonohonoho maʻalahi a me ka hōʻemi ʻana i nā vectors hoʻouka.

Mālama ʻia ke kākoʻo emulation i ka liʻiliʻi a ʻo ka manaʻo e pili ana i ka paravirtualization. I kēia manawa ua kākoʻo ʻia nā ʻōnaehana x86_64, akā ua hoʻolālā ʻia ke kākoʻo AArch64. No nā ʻōnaehana hoʻokipa, kākoʻo wale ʻia nā kūkulu 64-bit o Linux i kēia manawa. Hoʻonohonoho ʻia ka CPU, hoʻomanaʻo, PCI a me NVDIMM i ka pae hui. Hiki ke neʻe i nā mīkini virtual ma waena o nā kikowaena.

Ma ka mana hou:

  • Hoʻomau ka hana i ka neʻe ʻana i ka I/O paravirtualized e hoʻokaʻawale i nā kaʻina hana. Ua hoʻohui ʻia ka hiki ke hoʻohana i nā backends e launa pū me nā mea poloka vhost-mea hoʻohana-blk. ʻAe ka hoʻololi iā ʻoe e hoʻopili i nā mea poloka e pili ana i ka module vhost-user i Cloud Hypervisor, e like me SPDK, ma ke ʻano he backends no ka mālama ʻana i ka paravirtualized;
  • Kākoʻo no ka hoʻoneʻe ʻana i nā hana pūnaewele i hope, i hoʻokomo ʻia i ka hoʻokuʻu hope vhost-mea hoʻohana-net, hoʻonui ʻia me kahi backend hou e pili ana i kahi mea hoʻokele pūnaewele virtual piula wai. Ua kākau ʻia ka backend ma Rust a ua hoʻohana ʻia i kēia manawa ma Cloud Hypervisor ma ke ʻano he papa hana pūnaewele para-virtualized;
  • No ka hoʻonui ʻana i ka maikaʻi a me ka palekana o nā kamaʻilio ma waena o ke kaiapuni hoʻokipa a me ka ʻōnaehana malihini, ua noi ʻia kahi hoʻokō hybrid o nā kumu me ka AF_VSOCK addressing (virtual network sockets), e hana ana ma o virtio. Hoʻokumu ʻia ka hoʻokō ʻana i ka hoʻomohala ʻana o ka papahana Kahipipi, hoʻomohala ʻia e Amazon. ʻAe ʻo VSOCK iā ʻoe e hoʻohana i ka API POSIX Sockets maʻamau no ka launa pū ʻana ma waena o nā noi ma nā ʻaoʻao malihini a me nā mea hoʻokipa, kahi e maʻalahi ai ka hoʻololi ʻana i nā polokalamu pūnaewele maʻamau no ia pilina a hoʻokō i ka pilina o nā papahana mea kūʻai aku me hoʻokahi noi kikowaena;
  • Hāʻawi i ke kākoʻo mua no ka API hoʻokele me ka hoʻohana ʻana i ka protocol HTTP. I ka wā e hiki mai ana, hiki i kēia API ke hoʻomaka i nā hana asynchronous ma nā ʻōnaehana malihini, e like me nā kumuwaiwai wela a me nā kaiapuni neʻe;
  • Hoʻohui ʻia kahi papa me kahi hoʻokō transport e pili ana i ka virtio MMIO (Memory mapped virtio), hiki ke hoʻohana ʻia e hana i nā ʻōnaehana malihini minimalistic i koi ʻole i ka hoʻohālikelike ʻana i ka bus PCI;
  • Ma ke ʻano o ka hoʻolālā e hoʻonui i ke kākoʻo no ka holo ʻana i nā ʻōnaehana malihini nested, ua hoʻohui ʻo Cloud Hypervisor i ka hiki ke hoʻouna i nā polokalamu IOMMU paravirtualized ma o virtio, kahi e hoʻomaikaʻi ai i ka palekana o ka nested a me ka hoʻouna pololei ʻana o nā mea hana.
  • Hāʻawi i ke kākoʻo no Ubuntu 19.10;
  • Hoʻohui i ka hiki ke holo i nā ʻōnaehana malihini me ka ʻoi aku o 64 GB o RAM.

Eia hou, hiki ke ʻike ʻia mea hou pili kūkulu ʻia mākaʻikaʻi mīkini virtual Kahipipi, kākau pū ʻia ma Rust, ma muli o Rust-VMM a holo ma luna o KVM. ʻO ke ahi kahi lāʻau o ka papahana CrosVM, hoʻohana ʻia e Google e hoʻomaka i nā noi Linux и Android ma ChromeOS. Hoʻomohala ʻia ʻo Firecracker e Amazon Web Services e hoʻomaikaʻi i ka hana a me ka pono o nā kahua AWS Lambda a me AWS Fargate.

Hoʻolālā ʻia ka paepae e holo i nā mīkini virtual me ka liʻiliʻi o luna a hāʻawi i nā mea hana no ka hana ʻana a me ka mālama ʻana i nā kaiapuni kaʻawale a me nā lawelawe i kūkulu ʻia me ka hoʻohana ʻana i kahi kumu hoʻomohala serverless (hana ma ke ʻano he lawelawe). Hāʻawi ʻo Firecracker i nā mīkini virtual māmā, i kapa ʻia nā microVM, e hoʻohana ana i nā ʻenehana virtualization hardware e hoʻolako i kahi kaʻawale piha ʻoiai e hāʻawi ana i ka hana a me ka maʻalahi o nā ipu kuʻuna. No ka laʻana, i ka hoʻohana ʻana iā Firecracker, ʻo ka manawa mai ka manawa i hoʻomaka ʻia ai ka microVM a hiki i ka hoʻomaka ʻana o ka hoʻokō noi ʻana ʻaʻole i ʻoi aku ma mua o 125ms, kahi e hiki ai iā ʻoe ke hoʻomaka i nā mīkini virtual hou me ka ikaika a hiki i 150 mau wahi i kēlā me kēia kekona.

Hoʻohui ka hoʻokuʻu hou ʻana o Firecracker i kahi ʻano hana me ka ʻole o ka hoʻokuʻu ʻana i ka mea hoʻokele API ("—no-api"), e kaupalena ana i ke kaiapuni i nā hoʻonohonoho paʻakikī i ka faila hoʻonohonoho. Hoʻonohonoho ʻia ka hoʻonohonoho static ma o ke koho "--config-file" a ua wehewehe ʻia ma ka format JSON. Mai nā koho laina kauoha, ua hoʻohui pū ʻia ke kākoʻo no ka mea hoʻokaʻawale "-", ʻo nā hae i kuhikuhi ʻia ma hope o ka hele ʻana ma ke kaulahao me ka ʻole o ka hana ʻana.

ʻO Amazon, nāna i hoʻomohala i ka Firecracker haʻiʻia ka ma ka hāʻawi ʻana i ke kākoʻo i nā mea hoʻomohala o ka ʻōlelo papahana Rust. Hoʻomaopopo ʻia ua hoʻohana nui ʻia ʻo Rust i nā papahana o ka ʻoihana a ua hoʻokō ʻia nā hoʻomohala ma luna o nā lawelawe e like me Lambda, EC2 a me S3. Ua hoʻolako ʻo Amazon i ka papahana Rust me ka ʻoihana e mālama i nā hoʻokuʻu a kūkulu ʻia ma S3, holo i nā hoʻokolohua regression ma EC2, a mālama i kahi pūnaewele docs.rs me nā palapala no nā pūʻolo āpau mai ka waihona crates.io.

ʻO Amazon kekahi hoopuka ka papahana AWS Promotional aie, kahi e hiki ai i nā papahana open source ke komo manuahi i nā lawelawe AWS i hiki ke hoʻohana no ka mālama waiwai, kūkulu, hoʻohui mau, a me ka hoʻāʻo. Ma waena o nā papahana i ʻae ʻia no ke komo ʻana i ka papahana, ma kahi o Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy a me Julia i ʻike ʻia. ʻAe ʻia nā hoʻouna ʻana mai kekahi papahana open source i hāʻawi ʻia ma lalo o nā laikini i ʻae ʻia e OSI.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka