Microsoft ha aperto il codice del hypervisor OpenVMM e della piattaforma di paravirtualizzazione OpenHCL

La compagnia Microsoft ha annunciato l'apertura del codice sorgente dello strato per la paravirtualizzazione OpenHCL e del monitor delle macchine virtuali OpenVMM, sviluppato specificamente per l'organizzazione del lavoro di OpenHCL. Il codice di OpenVMM e OpenHCL è scritto in Rust e distribuito sotto licenza MIT. OpenVMM è un hypervisor di secondo livello che opera in un unico anello di protezione con il kernel del sistema operativo, analogamente a prodotti come VirtualBox e VMware Workstation. Supporta l'operatività su sistemi host basati su Linux (x86_64), Windows (x86_64, Aarch64) e macOS (x86_64, Aarch64), utilizzando le API di virtualizzazione KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) e Hypervisor.framework fornite dai sistemi operativi.

Tra le funzionalità supportate in OpenVMM:

  • Avvio in modalità UEFI e BIOS, avvio diretto del kernel Linux;
  • Supporto per paravirtualizzazione basato su driver Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem);
  • Supporto per paravirtualizzazione basato su VMBus (storvsp, netvsp, vpci, framebuffer);
  • Emulazione di vTPM, NVMe, UART, chipset i440BX + PIIX4, IDE HDD, PCI e VGA;
  • Backend per il forwarding di grafica, dispositivi di input, console, archiviazione e accesso di rete;
  • Gestione tramite interfaccia a riga di comando, console interattiva, gRPC e ttrpc.

OpenHCL è posizionato come un ambiente con componenti di paravirtualizzazione (paravirt), che opera sopra l'hypervisor OpenVMM. Una caratteristica chiave dei sistemi di virtualizzazione basati su OpenVMM e OpenHCL è che i componenti di paravirtualizzazione vengono eseguiti non sul lato del sistema host, ma in una singola macchina virtuale insieme al sistema guest. L'isolamento dello strato di paravirtualizzazione dal sistema operativo guest è garantito dalle capacità dell'hypervisor di secondo livello OpenVMM. In questo contesto, OpenHCL può essere considerato come un firmware virtuale, eseguito a un livello di privilegio superiore rispetto al sistema operativo eseguito nell'ambiente guest.

La separazione tra il sistema guest e i componenti di OpenHCL avviene utilizzando il concetto di livelli di fiducia virtuali (VTL, Virtual Trust Level), per la realizzazione dei quali possono essere utilizzati sia meccanismi software che tecnologie hardware, come Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) e ARM CCA (Confidential Compute Architecture). Per l'esecuzione dei componenti di OpenHCL viene utilizzata una versione ridotta del kernel Linux, comprendente solo i componenti minimi necessari per il funzionamento di OpenVMM.

Microsoft ha aperto il codice del hypervisor OpenVMM e della piattaforma di paravirtualizzazione OpenHCL

OpenHCL può funzionare su piattaforme x86-64 e ARM64, e supporta le estensioni Intel TDX, AMD SEV-SNP e ARM CCA per un'ulteriore isolamento. OpenHCL include un insieme di servizi, driver ed emulatori, utilizzati per organizzare l'accesso all'hardware, garantire il funzionamento dei dispositivi virtuali sul lato del sistema ospite e emulare dispositivi hardware (ad esempio, può emulare un chip per la memorizzazione delle chiavi crittografiche - vTPM).

Per la traduzione dell'accesso all'hardware sul lato del sistema ospite, vengono utilizzati driver esistenti con supporto per la paravirtualizzazione o può essere effettuato il collegamento diretto dei dispositivi alla macchina virtuale, il che consente di trasferire nel contesto basato su OpenHCL sistemi operativi esistenti senza apportare modifiche. Inoltre, OpenHCL include componenti per la diagnostica e il debug macchine virtuali, eseguiti utilizzando estensioni per garantire calcoli riservati.

A differenza del progetto open source già esistente COCONUT-SVSM (Secure VM Service Module), che fornisce servizi e dispositivi emulati per sistemi ospiti, eseguiti in modalità riservata macchine virtuali (CVM, Macchina Virtuale Riservata), OpenHCL consente di utilizzare interfacce standard nei sistemi ospiti, mentre COCONUT-SVSM richiede l'organizzazione di un'interazione speciale con SVSM, apportando modifiche al sistema ospite e utilizzando driver separati.

Tra le applicazioni del paravirtualizzatore OpenHCL si citano scenari come la migrazione di sistemi esistenti all'uso di acceleratori hardware Azure Boost senza la necessità di apportare modifiche all'immagine disco del sistema ospite; l'esecuzione di sistemi ospiti esistenti in macchine virtuali che offrono calcoli riservati (ad esempio basati su Intel TDX e AMD SEV-SNP); organizzazione del boot verificato delle macchine virtuali, utilizzando la modalità UEFI Secure Boot e vTPM.

Si segnala che il progetto OpenVMM è focalizzato sull'uso di OpenHCL e non è ancora pronto per essere utilizzato autonomamente su sistemi host per implementazioni operative da parte degli utenti finali. Tra i problemi di OpenVMM che ostacolano il suo utilizzo in ambienti host nel contesto tradizionale, al di fuori dell'integrazione con OpenHCL, si menzionano: documentazione insufficiente dell'interfaccia di gestione; mancanza di ottimizzazione delle prestazioni dei backend per archiviazione, rete e grafica; assenza di supporto per alcuni driver (ad esempio, dischi IDE e mouse PS/2); nessuna garanzia di stabilità dell'API e funzionalità. Tuttavia, l'integrazione di OpenVMM e OpenHCL ha già raggiunto un livello di implementazione industriale ed è impiegata da Microsoft nella piattaforma Azure (SKU Azure Boost) per gestire oltre 1,5 milioni di macchine virtuali.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster