Macchina virtuale basata su kernel KVM
La virtualizzazione è parte integrante del mondo dei server professionali.
Più sistemi guest virtuali possono essere gestiti su un singolo computer fisico.
Ciò presenta alcuni importanti vantaggi:
I sistemi possono essere nettamente separati per attività senza richiedere hardware aggiuntivo (ad esempio server di posta, file server e server applicazioni).
È possibile eseguire il backup di un sistema ospite (detto anche “congelato”) e ripristinarlo con la semplice pressione di un pulsante .
È possibile migrare al nuovo hardware molto rapidamente.
I sistemi ospiti possono essere scalati in base alle necessità , consentendo reazioni flessibili ai picchi di carico.
Per tutti i sistemi guest viene fornita un'unica piattaforma hardware . I conflitti tra conducenti vengono eliminati fin dall'inizio.
Mentre il sistema operativo open source Linux può sembrare piuttosto esotico per i computer desktop e gli utenti privati, per i server è da tempo considerato mainstream.
Pertanto, svolge un ruolo importante come piattaforma per la virtualizzazione.
Cos'è il KVM?
La Kernel-based Virtual Machine (KVM), lanciata nel 2006 dalla ditta Qumranet, è stata ufficialmente adottata all'inizio del 2007 nel kernel Linux 2.6.20.
L'anno successivo Qumranet è stata acquistata dal distributore Linux RedHat.
Per sviluppare ulteriormente la tecnologia, RedHat ha fondato con IBM la Open Virtualization Alliance (OVA).
Questa alleanza comprendeva aziende come SUSE, Intel e HP.
KVM è strettamente collegato al software di emulazione QEMU.
QEMU fornisce principalmente funzioni per la virtualizzazione dell'hardware, mentre Linux KVM gestisce l'allocazione delle risorse dal sistema host.
Questo è il motivo per cui viene spesso utilizzato il termine KVM/QEMU.
Poiché KVM è parte integrante di Linux , questa soluzione di virtualizzazione non può essere utilizzata su computer Windows.
Tuttavia, Windows è supportato come sistema guest insieme alla maggior parte dei sistemi operativi simili a Unix, come Linux, Solaris e BSD.
Sebbene KVM sia standard nella maggior parte delle distribuzioni Linux, deve comunque essere abilitato.
Le funzioni di KVM Linux in dettaglio
Per comprendere le funzioni della macchina virtuale basata sul kernel, è necessario prima comprendere le basi della virtualizzazione .
Virtualizzazione significa che uno o più sistemi operativi completi (sistemi guest) possono essere eseguiti su un singolo computer host .
L'hardware fornito per i sistemi ospiti viene emulato dal software o controllato da un hypervisor e assegnato a risorse hardware reali.
L' hypervisor è un livello di gestione o di traduzione tra l'hardware reale e quello virtuale. A seconda del tipo di virtualizzazione può essere necessario tradurre tutti i requisiti dell'hardware reale o solo l'allocazione delle azioni richieste (ad es. un calcolo nel processore).
Ecco i diversi tipi di virtualizzazione:
Virtualizzazione completa : l'hardware è completamente emulato dal lato software.
Pertanto non è necessaria alcuna interazione con l'hardware reale, il che rende superflui anche i driver corrispondenti.
Questo tipo è relativamente lento.Paravirtualizzazione : il sistema ospite interagisce direttamente con l'hypervisor e richiede driver appositamente progettati.
Paravirtualizzazione assistita da hardware : il supporto hardware è già integrato nel processore. Ciò aumenta l'efficienza e riduce la quantità di personalizzazione richiesta per i sistemi guest.
I moderni processori realizzati da Intel (Intel-VT-x) e AMD (AMD-V) hanno questa funzionalità. In determinate circostanze potrebbe essere necessario attivarlo nel BIOS/UEFI.
Inoltre, esistono due diversi tipi di hypervisor:
Tipo 1 (bare metal) : questo hypervisor viene eseguito direttamente sull'hardware utilizzato senza essere incorporato in un sistema operativo.
Tipo 2 (ospitato) : questo hypervisor è incorporato nel sistema operativo host e viene abilitato da lì.
Linux KVM è un hypervisor di tipo 2 e utilizza la paravirtualizzazione assistita da hardware. Tuttavia, è unico in quanto è direttamente integrato nel kernel.
A causa della sua integrazione nel kernel si è discusso se il sistema possa avere elementi di un hypervisor di tipo 1.
Quali sono i componenti della macchina virtuale basata sul kernel?
Il pacchetto KVM completo è costituito da più componenti:
Estensione del kernel : contiene l'effettiva estensione kernel.ko.
Questo è il livello di traduzione tra l'hardware reale e quello virtuale.
Comprende anche i moduli kvm-amd e kvm-intel adattati ai processori.Libvirt : l'interfaccia di programmazione dell'applicazione (API) per l'interfacciamento con le macchine virtuali.
Viene utilizzato per controllarli e gestirli.
Libvirt include anche strumenti come il comando “virsh” e l'interfaccia grafica Virtual Machine Manager.QEMU : Si tratta fondamentalmente di un programma indipendente per emulare computer e gestire macchine virtuali.
Linux KVM utilizza questa funzionalità per emulare l'hardware e migliora la sua velocità attraverso la paravirtualizzazione.
In molte distribuzioni, entrambi i componenti sono offerti in un unico pacchetto di installazione.KVMTool : un'alternativa più snella a QEMU che QEMU non è ancora stata in grado di sostituire.
Driver VirtIO : driver speciali per sistemi guest progettati per l'hypervisor e che consentono la paravirtualizzazione.
Applicazioni del KVM
La macchina virtuale basata sul kernel viene spesso utilizzata soprattutto per l'esecuzione di sistemi server professionali .
Il KVM Linux assume ancora più importanza grazie alla sua integrazione come hypervisor nella popolare soluzione software cloud OpenStack .
Vantaggi e svantaggi di KVM
Per concludere, diamo un'occhiata ad alcuni dei vantaggi e degli svantaggi di questa soluzione di virtualizzazione:
Vantaggi :
Sistema maturo e consolidato
Già incluso nella maggior parte delle distribuzioni Linux
Gratuito e open source
L'unica vera macchina virtuale basata su kernel che garantisce prestazioni e stabilità
Sviluppato da aziende rispettabili
Amministrazione automatizzata possibile tramite libvirt
Svantaggi :
Disponibile solo per sistemi Linux
Hardware potente richiesto per il computer host
Richiede un periodo di apprendimento per poterlo utilizzare
La centralizzazione dell'hardware aumenta il rischio in caso di guasto del sistema (ovvero un singolo punto di guasto, ma questo rischio può essere ridotto con una strategia di backup intelligente)
Alternative al KVM Linux
Quando si tratta di software disponibile gratuitamente con funzionalità simili, un’alternativa è XEN , una soluzione di virtualizzazione strettamente legata a Linux ma non integrata nel kernel.
L'affermato fornitore commerciale VMware offre alternative alla paravirtualizzazione con i suoi server ESXi e alla virtualizzazione completa con la sua workstation.
Il lettore VMware è disponibile gratuitamente per uso privato.
VirtualBox è un'altra alternativa gratuita alla virtualizzazione completa disponibile come base per tutti i comuni sistemi operativi.
Hyper-V è la soluzione di virtualizzazione di Microsoft Windows per la paravirtualizzazione, che ha funzionalità simili a Linux KVM.
Dispone di un server Windows Hyper-V dedicato e funzionalità integrate nei sistemi operativi server. Hyper-V è incluso sia in Windows 10 Professional che Enterprise.
Conclusione
Flessibilità e scalabilità sono due argomenti quasi imbattibili a favore dell'utilizzo della virtualizzazione.
I sistemi operativi guest possono essere mantenuti snelli e utilizzati per scopi applicativi specifici. Se viene regolarmente eseguito il backup dei sistemi su supporti di memorizzazione in posizioni separate, il rischio associato al guasto del sistema è trascurabile.
Se usi Linux per il tuo server, dovresti almeno considerare l'utilizzo di KVM. Il fatto che sia integrato nel kernel e sia stato sviluppato da editori rinomati è un buon argomento a favore.