Actualització per a Intel Cloud Hypervisor 0.3 i Amazon Firecracker 0.19 escrita en Rust

Intel publicat nova versió de l'hipervisor Cloud Hypervisor 0.3. L'hipervisor es basa en components
projecte conjunt Rust-VMM, en què, a més d'Intel, també participen Alibaba, Amazon, Google i Red Hat. Rust-VMM està escrit en el llenguatge Rust i us permet crear hipervisors específics per a tasques. Cloud Hypervisor és un d'aquests hipervisors que proporciona un monitor de màquina virtual (VMM) d'alt nivell que s'executa sobre KVM i optimitzat per a tasques natives del núvol. Codi del projecte disponible amb llicència d'Apache 2.0.

Cloud Hypervisor se centra a executar distribucions de Linux modernes mitjançant dispositius paravirtualitzats basats en virtio. Entre els objectius clau esmentats es troben: alta capacitat de resposta, baix consum de memòria, alt rendiment, configuració simplificada i reducció de possibles vectors d'atac.

El suport d'emulació es redueix al mínim i el focus es centra en la paravirtualització. Actualment només s'admeten els sistemes x86_64, però està previst el suport AArch64. Per als sistemes convidats, actualment només s'admeten les compilacions de 64 bits de Linux. La CPU, la memòria, el PCI i el NVDIMM es configuren en l'etapa de muntatge. És possible migrar màquines virtuals entre servidors.

En la nova versió:

  • Es va continuar treballant per traslladar l'E/S paravirtualitzada a processos separats. S'ha afegit la possibilitat d'utilitzar backends per interactuar amb dispositius de bloc vhost-user-blk. El canvi us permet connectar dispositius de bloc basats en el mòdul vhost-user a Cloud Hypervisor, com ara SPDK, com a backend per a l'emmagatzematge paravirtualitzat;
  • Suport per moure les operacions de xarxa als backends, introduït a la darrera versió vhost-user-net, ampliat amb un nou backend basat en un controlador de xarxa virtual TAP. El backend està escrit en Rust i ara s'utilitza a Cloud Hypervisor com a principal arquitectura de xarxa para-virtualitzada;
  • Per augmentar l'eficiència i la seguretat de les comunicacions entre l'entorn amfitrió i el sistema convidat, es proposa una implementació híbrida de sòcols amb adreçament AF_VSOCK (sockets de xarxa virtual), que funcionin a través de virtio. La implementació es basa en l'evolució del projecte Petard, desenvolupat per Amazon. VSOCK us permet utilitzar l'API estàndard de POSIX Sockets per a la interacció entre aplicacions del costat del convidat i de l'amfitrió, cosa que facilita l'adaptació de programes de xarxa normals per a aquesta interacció i implementar la interacció de diversos programes client amb una aplicació de servidor;
  • S'ha proporcionat suport inicial per a l'API de gestió mitjançant el protocol HTTP. En el futur, aquesta API permetrà iniciar operacions asíncrones en sistemes convidats, com ara recursos de connexió en calent i entorns de migració;
  • S'ha afegit una capa amb una implementació de transport basada en virtio MMIO (Memory mapped virtio), que es pot utilitzar per crear sistemes convidats minimalistes que no requereixen emulació de bus PCI;
  • Com a part de la iniciativa per ampliar el suport per a l'execució de sistemes convidats imbricats, Cloud Hypervisor ha afegit la capacitat de reenviar dispositius IOMMU paravirtualitzats a través de virtio, la qual cosa millora la seguretat del reenviament directe i imbricat dels dispositius.
  • Suport proporcionat per a Ubuntu 19.10;
  • S'ha afegit la possibilitat d'executar sistemes convidats amb més de 64 GB de RAM.

A més, es pot assenyalar nou tema adjacents desenvolupat monitor de màquina virtual Petard, també escrit en Rust, basat en Rust-VMM i que s'executa sobre KVM. Firecracker és una bifurcació del projecte CrosVM, utilitzat per Google per llançar aplicacions Linux и Android a ChromeOS. Firecracker està sent desenvolupat per Amazon Web Services per millorar el rendiment i l'eficiència de les plataformes AWS Lambda i AWS Fargate.

La plataforma està dissenyada per executar màquines virtuals amb una sobrecàrrega mínima i proporciona eines per crear i gestionar entorns i serveis aïllats creats mitjançant un model de desenvolupament sense servidor (funció com a servei). Firecracker ofereix màquines virtuals lleugeres, anomenades microVM, que utilitzen tecnologies de virtualització de maquinari per proporcionar un aïllament complet alhora que ofereixen el rendiment i la flexibilitat dels contenidors tradicionals. Per exemple, quan s'utilitza Firecracker, el temps des del moment en què s'engega la microVM fins a l'inici de l'execució de l'aplicació no supera els 125 ms, la qual cosa permet llançar noves màquines virtuals amb una intensitat de fins a 150 entorns per segon.

La nova versió de Firecracker afegeix un mode de funcionament sense llançar el controlador de l'API ("-no-api"), limitant l'entorn només a la configuració codificada en dur al fitxer de configuració. La configuració estàtica s'especifica mitjançant l'opció "--config-file" i es defineix en format JSON. Des de les opcions de la línia d'ordres, també s'ha afegit suport per al separador “—”, els indicadors especificats després dels quals es passen al llarg de la cadena sense processar-los.

Amazon, que desenvolupa Firecracker, també va anunciar en proporcionar patrocini als desenvolupadors del llenguatge de programació Rust. Cal destacar que Rust s'utilitza cada cop més en els projectes de l'empresa i ja s'han implementat desenvolupaments sobre el mateix en serveis com Lambda, EC2 i S3. Amazon ha proporcionat al projecte Rust la infraestructura per emmagatzemar versions i compilacions a S3, executar proves de regressió a EC2 i mantenir un lloc docs.rs amb documentació per a tots els paquets del dipòsit crates.io.

Amazon també introduït el programa Crèdit promocional AWS, on els projectes de codi obert poden obtenir accés gratuït als serveis d'AWS que es poden utilitzar per a l'emmagatzematge de recursos, la creació, la integració contínua i les proves. Entre els projectes ja aprovats per participar en el programa, a més de Rust, es van destacar AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy i Julia. S'accepten enviaments de qualsevol projecte de codi obert lliurat sota llicències aprovades per OSI.

Font: opennet.ru

Afegeix comentari