Aggiornamento agli hypervisor Intel Cloud Hypervisor 0.3 e Amazon Firecracker 0.19 scritti in Rust

Intel pubblicato nuova versione dell'hypervisor Hypervisor cloud 0.3. L'hypervisor è costruito su componenti
progetto comune Ruggine-VMM, alla quale partecipano, oltre a Intel, anche Alibaba, Amazon, Google e Red Hat. Rust-VMM è scritto nel linguaggio Rust e consente di creare hypervisor specifici per attività. Cloud Hypervisor è uno di questi hypervisor che fornisce un monitor di macchina virtuale (VMM) di alto livello in esecuzione su KVM e ottimizzato per attività native del cloud. Codice del progetto è disponibile concesso in licenza con Apache 2.0.

Cloud Hypervisor si concentra sull'esecuzione di moderne distribuzioni Linux utilizzando dispositivi paravirtualizzati basati su virtio. Tra gli obiettivi chiave citati ci sono: alta reattività, basso consumo di memoria, alte prestazioni, configurazione semplificata e riduzione dei possibili vettori di attacco.

Il supporto dell'emulazione è ridotto al minimo e l'attenzione è rivolta alla paravirtualizzazione. Attualmente sono supportati solo i sistemi x86_64, ma è previsto il supporto AArch64. Per i sistemi guest, attualmente sono supportate solo le build Linux a 64 bit. La CPU, la memoria, il PCI e gli NVDIMM vengono configurati in fase di assemblaggio. È possibile migrare macchine virtuali tra server.

Nella nuova versione:

  • È continuato il lavoro per spostare l'I/O paravirtualizzato in processi separati. È stata aggiunta la possibilità di utilizzare i backend per interagire con i dispositivi a blocchi vhost-utente-blk. La modifica consente di connettere dispositivi a blocchi basati sul modulo vhost-user a Cloud Hypervisor, come ad esempio SPDK, come backend per lo storage paravirtualizzato;
  • Supporto per lo spostamento delle operazioni di rete sui backend, introdotto nell'ultima versione vhost-utente-rete, ampliato con un nuovo backend basato su un driver di rete virtuale TAP. Il backend è scritto in Rust ed è ora utilizzato in Cloud Hypervisor come principale architettura di rete paravirtualizzata;
  • Per aumentare l'efficienza e la sicurezza delle comunicazioni tra l'ambiente host e il sistema ospite, viene proposta un'implementazione ibrida di socket con indirizzamento AF_VSOCK (socket di rete virtuale), funzionante tramite virtio. L’implementazione si basa sugli sviluppi del progetto Petardo, sviluppato da Amazon. VSOCK consente di utilizzare l'API POSIX Sockets standard per l'interazione tra le applicazioni sui lati guest e host, il che semplifica l'adattamento dei normali programmi di rete per tale interazione e l'implementazione dell'interazione di diversi programmi client con un'applicazione server;
  • Fornito supporto iniziale per l'API di gestione utilizzando il protocollo HTTP. In futuro, questa API consentirà di avviare operazioni asincrone sui sistemi guest, come risorse hot-plug e ambienti di migrazione;
  • Aggiunto un livello con un'implementazione di trasporto basata su virtio MMIO (Memory mapped virtio), che può essere utilizzato per creare sistemi guest minimalisti che non richiedono l'emulazione del bus PCI;
  • Nell'ambito dell'iniziativa volta ad espandere il supporto per l'esecuzione di sistemi guest nidificati, Cloud Hypervisor ha aggiunto la possibilità di inoltrare dispositivi IOMMU paravirtualizzati tramite virtio, che migliora la sicurezza dell'inoltro nidificato e diretto dei dispositivi.
  • Fornito supporto per Ubuntu 19.10;
  • Aggiunta la possibilità di eseguire sistemi guest con più di 64 GB di RAM.

Inoltre si può notare nuovo problema adiacente sviluppato monitor della macchina virtuale Petardo, anch'esso scritto in Rust, basato su Rust-VMM e in esecuzione su KVM. Firecracker è un fork del progetto CrosVM, utilizzato da Google per avviare le applicazioni Linux и Android in Chrome OS. Firecracker è stato sviluppato da Amazon Web Services per migliorare le prestazioni e l'efficienza delle piattaforme AWS Lambda e AWS Fargate.

La piattaforma è progettata per eseguire macchine virtuali con un sovraccarico minimo e fornisce strumenti per la creazione e la gestione di ambienti e servizi isolati realizzati utilizzando un modello di sviluppo serverless (funzione come servizio). Firecracker offre macchine virtuali leggere, chiamate microVM, che utilizzano tecnologie di virtualizzazione hardware per fornire un isolamento completo offrendo al contempo le prestazioni e la flessibilità dei contenitori tradizionali. Ad esempio, quando si utilizza Firecracker, il tempo dal momento in cui viene avviata la microVM all'inizio dell'esecuzione dell'applicazione non supera i 125 ms, il che consente di avviare nuove macchine virtuali con un'intensità fino a 150 ambienti al secondo.

La nuova versione di Firecracker aggiunge una modalità operativa senza avviare il gestore API (“—no-api”), limitando l'ambiente solo alle impostazioni codificate nel file di configurazione. La configurazione statica viene specificata tramite l'opzione "--config-file" ed è definita in formato JSON. Dalle opzioni della riga di comando è stato aggiunto anche il supporto per il separatore “—”, i flag specificati dopo il quale vengono passati lungo la catena senza elaborazione.

Anche Amazon, che sviluppa Firecracker ha annunciato il sulla fornitura di sponsorizzazione agli sviluppatori del linguaggio di programmazione Rust. Va notato che Rust è sempre più utilizzato nei progetti dell’azienda e i suoi sviluppi sono già stati implementati in servizi come Lambda, EC2 e S3. Amazon ha fornito al progetto Rust l'infrastruttura per archiviare versioni e build in S3, eseguire test di regressione in EC2 e mantenere un sito docs.rs con la documentazione per tutti i pacchetti dal repository crates.io.

Anche Amazon presentata программу Credito promozionale AWS, dove i progetti open source possono ottenere accesso gratuito ai servizi AWS che possono essere utilizzati per l'archiviazione delle risorse, la creazione, l'integrazione continua e i test. Tra i progetti già approvati per la partecipazione al programma, oltre a Rust, si segnalano AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy e Julia. Si accettano contributi provenienti da qualsiasi progetto open source fornito con licenze approvate da OSI.

Fonte: opennet.ru

Aggiungi un commento