Actualizare la hipervizoarele Intel Cloud Hypervisor 0.3 și Amazon Firecracker 0.19 scrise în Rust

Intel а publicat noua versiune de hypervisor Cloud Hypervisor 0.3. Hipervizorul este construit pe componente
Afiliere la un proiect comun Rugina-VMM, la care, pe lângă Intel, participă și Alibaba, Amazon, Google și Red Hat. Rust-VMM este scris în limbajul Rust și vă permite să creați hipervizoare specifice sarcinilor. Cloud Hypervisor este un astfel de hipervizor care oferă un monitor de mașină virtuală (VMM) de nivel înalt care rulează pe KVM și este optimizat pentru sarcini native din cloud. Cod proiect disponibil licențiat sub Apache 2.0.

Cloud Hypervisor se concentrează pe rularea distribuțiilor Linux moderne folosind dispozitive paravirtualizate bazate pe virtio. Printre obiectivele cheie menționate se numără: capacitate de răspuns ridicată, consum redus de memorie, performanță ridicată, configurație simplificată și reducerea posibililor vectori de atac.

Suportul pentru emulare este redus la minimum și accentul este pus pe paravirtualizare. În prezent sunt acceptate doar sistemele x86_64, dar este planificat suportul AArch64. Pentru sistemele oaspeți, sunt acceptate în prezent doar versiunile Linux pe 64 de biți. CPU, memoria, PCI și NVDIMM sunt configurate în etapa de asamblare. Este posibilă migrarea mașinilor virtuale între servere.

În noua versiune:

  • Au continuat lucrările de mutare a I/O paravirtualizate către procese separate. A fost adăugată capacitatea de a utiliza backend-uri pentru a interacționa cu dispozitivele blocate vhost-user-blk. Modificarea vă permite să conectați dispozitive bloc bazate pe modulul vhost-user la Cloud Hypervisor, cum ar fi SPDK, ca backend-uri pentru stocarea paravirtualizată;
  • Suport pentru mutarea operațiunilor de rețea către backend, introdus în ultima ediție vhost-user-net, extins cu un nou backend bazat pe un driver de rețea virtuală TAP. Backend-ul este scris în Rust și este acum utilizat în Cloud Hypervisor ca principală arhitectură de rețea para-virtualizată;
  • Pentru a crește eficiența și securitatea comunicațiilor dintre mediul gazdă și sistemul oaspete, se propune o implementare hibridă de socket-uri cu adresare AF_VSOCK (prize de rețea virtuală), care funcționează prin virtio. Implementarea se bazează pe evoluția proiectului pocnitoare, dezvoltat de Amazon. VSOCK vă permite să utilizați API-ul standard POSIX Sockets pentru interacțiunea dintre aplicațiile de pe partea oaspete și gazdă, ceea ce facilitează adaptarea programelor obișnuite de rețea pentru o astfel de interacțiune și implementarea interacțiunii mai multor programe client cu o aplicație server;
  • A oferit suport inițial pentru API-ul de management folosind protocolul HTTP. În viitor, acest API va face posibilă inițierea de operațiuni asincrone pe sistemele oaspeților, cum ar fi resursele de conectare la cald și mediile de migrare;
  • S-a adăugat un strat cu o implementare de transport bazată pe virtio MMIO (Memory mapped virtio), care poate fi folosit pentru a crea sisteme guest minimaliste care nu necesită emulare magistrală PCI;
  • Ca parte a inițiativei de extindere a suportului pentru rularea sistemelor invitate imbricate, Cloud Hypervisor a adăugat capacitatea de a transmite dispozitive IOMMU paravirtualizate prin virtio, ceea ce îmbunătățește securitatea redirecționării imbricate și directe a dispozitivelor.
  • Furnizat suport pentru Ubuntu 19.10;
  • S-a adăugat posibilitatea de a rula sisteme invitate cu mai mult de 64 GB de RAM.

În plus, se poate observa noua versiune adiacent dezvoltat monitorul mașinii virtuale pocnitoare, scris și în Rust, bazat pe Rust-VMM și rulând pe KVM. Petarda este o furcă a proiectului CrosVM, folosit de Google pentru a lansa aplicații Linux и Android în ChromeOS. Firecracker este dezvoltat de Amazon Web Services pentru a îmbunătăți performanța și eficiența platformelor AWS Lambda și AWS Fargate.

Platforma este concepută pentru a rula mașini virtuale cu o suprasolicitare minimă și oferă instrumente pentru crearea și gestionarea mediilor izolate și a serviciilor construite folosind un model de dezvoltare fără server (funcționare ca serviciu). Firecracker oferă mașini virtuale ușoare, numite microVM-uri, care folosesc tehnologii de virtualizare hardware pentru a oferi izolație completă, oferind în același timp performanța și flexibilitatea containerelor tradiționale. De exemplu, atunci când utilizați Firecracker, timpul de la momentul lansării microVM până la începerea execuției aplicației nu depășește 125 ms, ceea ce vă permite să lansați noi mașini virtuale cu o intensitate de până la 150 de medii pe secundă.

Noua versiune a Firecracker adaugă un mod de operare fără a lansa manerul API ("—no-api"), limitând mediul doar la setările codificate în fișierul de configurare. Configurația statică este specificată prin opțiunea „--config-file” și este definită în format JSON. Din opțiunile liniei de comandă a fost adăugat și suportul pentru separatorul „—”, steagurile specificate după care sunt trecute de-a lungul lanțului fără procesare.

Amazon, care dezvoltă și Firecracker a anunțat privind oferirea de sponsorizare dezvoltatorilor limbajului de programare Rust. Se observă că Rust este din ce în ce mai folosit în proiectele companiei, iar dezvoltările pe acesta au fost deja implementate în servicii precum Lambda, EC2 și S3. Amazon a furnizat proiectului Rust infrastructura pentru a stoca versiuni și versiuni în S3, pentru a rula teste de regresie în EC2 și pentru a menține un site docs.rs cu documentația pentru toate pachetele din depozitul crates.io.

Amazon de asemenea a prezentat programul Credit promoțional AWS, unde proiectele open source pot obține acces gratuit la serviciile AWS care pot fi utilizate pentru stocarea resurselor, construirea, integrarea continuă și testarea. Printre proiectele deja aprobate pentru participare la program s-au remarcat, pe lângă Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy și Julia. Trimiterile sunt acceptate de la orice proiect open source livrat sub licențe aprobate de OSI.

Sursa: opennet.ru

Adauga un comentariu