KVM (Kernel-based Virtual Machine) è una tecnologia di virtualizzazione integrata nel kernel Linux. Mette a disposizione un ambiente ufficialmente supportato e continuamente aggiornato, per eseguire macchine virtuali su un sistema host Linux.
Essendo implementato come modulo del kernel Linux, KVMM può agire come hypervisor, sfruttando le estensioni per la virtualizzazione offerte dalle moderne CPU (Intel VT e AMD-V). Queste estensioni hardware consentono al processore di eseguire istruzioni specifiche per la virtualizzazione in modo molto efficiente.
Virtualizzazione ottimizzata e ancora più performante grazie alla compatibilità tra KVM e VirtualBox
Il team di Cyberus Technology ha compiuto, nel corso degli ultimi mesi, notevoli sforzi per rendere compatibile VirtualBox con KVM. L’idea era quella di combinare le capacità di gestione multi-piattaforma e l’interfaccia utente user-friendly di VirtualBox con la potenza di KVM come hypervisor a livello di kernel Linux.
KVM, con il suo approccio integrato, offre prestazioni superiori: l’integrazione con VirtualBox apre le porte a una soluzione più efficiente, consentendo alle macchine virtuali di sfruttare appieno le capacità di accelerazione hardware.
L’isolamento tra le macchine virtuali e l’host è un aspetto cruciale in termini di sicurezza: KVM, con il suo approccio kernel-based, fornisce un ulteriore strato di sicurezza. VirtualBox, noto per la sua flessibilità, può ora beneficiare di questa robusta struttura, garantendo un ambiente più protetto per le applicazioni virtualizzate.
Grazie all’integrazione con KVM, VirtualBox può offrire un migliore supporto per le macchine virtuali Windows eseguite sui sistemi GNU/Linux. Si tratta di un importante passo in avanti per quegli scenari in cui la sicurezza di Windows in ambienti virtualizzati è una priorità.
L’unione di VirtualBox e KVM consente agli utenti di sfruttare le caratteristiche uniche di entrambi i frontend. Questa flessibilità si traduce in nuovi scenari d’uso, come l’esecuzione di VirtualBox e QEMU in parallelo su host Linux (di recente abbiamo presentato anche il progetto Quickemu). Gli utenti possono ora personalizzare l’ambiente di virtualizzazione in base alle loro esigenze specifiche, ottenendo un equilibrio ottimale tra sicurezza ed esperienza d’uso.
Come usare VirtualBox KVM
L’aspetto di VirtualBox KVM, così come concepito dagli sviluppatori di Cyberus Technology, non differisce da quello abituale. Gli utenti possono avviare le stesse macchine virtuali guest; tuttavia, possiamo riassumere le differenze più importanti mettendo in evidenza i seguenti aspetti principali:
- Esecuzione in parallelo QEMU/KVM. VirtualBox KVM può funzionare in parallelo con QEMU/KVM, offrendo una maggiore flessibilità dell’ambiente di virtualizzazione.
- Non richiede il driver del kernel VirtualBox. Il driver kernel usato da VirtualBox (
vboxdrv
) non è più necessario, semplificando il processo di installazione e gestione della piattaforma. - Utilizzo delle moderne funzionalità di virtualizzazione. Con VirtualBox KVM è possibile sfruttare automaticamente le funzionalità di virtualizzazione moderne supportate da KVM, come ad esempio APICv. APICv, acronimo di Advanced Programmable Interrupt Controller Virtualization, è una tecnologia che estende la virtualizzazione degli interrupt nei sistemi virtualizzati e ne facilita la gestione in modo indipendente.
- KVM è parte integrante del kernel Linux. Poiché KVM è integrato direttamente nel kernel Linux, è sempre disponibile con ogni aggiornamento del kernel del sistema operativo.
Disponibile solo previa compilazione
Al momento, purtroppo, Cyberus Technology non fornisce pacchetti precompilati e VirtualBox KVM deve essere compilato a partire dal codice sorgente. Il processo di compilazione da seguire è lo stesso reperibile sul sito ufficiale di VirtualBox. Sono richiesti soltanto alcuni “aggiustamenti minori” in modo da poter configurare KVM come backend.
I passaggi da seguire, ad esempio su una normale installazione di Ubuntu, sono pubblicati a questo indirizzo.
Va inoltre considerato che per adesso soltanto la piattaforma Intel x86-64 è ufficialmente supportata; l’utilizzo su sistemi basati su chip AMD è considerato sperimentale. Come sistema host, inoltre, è possibile usare sempre e solo Linux. Infine, con i processori Intel di 11esima generazione (Tiger Lake) e successivi, è necessario disabilitare la funzione split lock detection.
È quindi necessario specificare split_lock_detect=off
come parametro addizionale per il kernel, durante l’avvio del sistema operativo Linux. Oppure, in alternativa, si può ricorrere all’uso del comando sysctl
e della variabile split_lock_mitigate
.
Credit immagine in apertura: Microsoft Bing Image Creator.