KVM

Cos'è KVM?kernel

Cos'è KVM?kernel

La virtualizzazione si riferisce alla creazione di una risorsa informatica simulata che imita il comportamento della corrispondente risorsa reale o fisica. È possibile virtualizzare molti tipi di risorse, dal software ai singoli dispositivi hardware fino a piattaforme hardware complete. Questo post si concentra su macchine virtuali che comprendono dispositivi come CPU, memoria, scheda di rete, disco, scheda grafica e sistema operativo. Il software che crea ed esegue macchine virtuali è chiamato hypervisor. Di seguito, discuteremo le funzionalità di un hypervisor chiamato KVM.

Vantaggi della virtualizzazione

In passato, essere omogenei era il modus operandi nei data center, nelle case di sviluppo e a casa. In pratica, tutte le macchine eseguirebbero la stessa versione di un singolo sistema operativo, che si tratti di Linux, Windows o FreeBSD. I tempi sono cambiati.

Oggi ci aspetteremmo sistemi operativi diversi come Linux e Windows e persino versioni diverse di un sistema operativo (e.g., Windows XP e 10) da collocare nello stesso ambiente informatico. Senza macchine virtuali, è necessario distribuire e mantenere più macchine fisiche per eseguire applicazioni su più piattaforme operative. La virtualizzazione potenzia l'esecuzione di più macchine virtuali, ciascuna potenzialmente con un sistema operativo diverso, su una singola macchina fisica.

I vantaggi delle macchine virtuali rispetto alle macchine fisiche includono:

  1. Uso più efficiente delle risorse del computer.
    Il prezzo dell'hardware continua a diminuire mentre la potenza di elaborazione continua a salire. Sotto questa realtà, molte grandi macchine potenti oggi tendono ad essere sottoutilizzate, come misurato da cicli di CPU inattiva, memoria inutilizzata, ecc. Il consolidamento delle macchine virtuali su un numero inferiore di macchine fisiche comporta meno risorse fisiche e quindi una migliore efficienza.
  1. I migliorata.T. reattività e produttività.
    Il provisioning di nuovo hardware fisico comporta un lungo periodo di attesa per l'acquisizione seguito da un lungo periodo di installazione e distribuzione dopo il suo arrivo. Al contrario, il provisioning delle macchine virtuali può essere automatizzato e reso disponibile in pochi minuti anziché in giorni o addirittura settimane che a volte richiede l'acquisizione di macchine tradizionali.
  1. Riduzione dei costi.
    I big data center risparmieranno denaro grazie ai minori costi operativi. Il risparmio si presenta sotto forma di bollette energetiche ridotte a causa di minori requisiti di raffreddamento e alimentazione.

Presentazione di KVM

La macchina virtuale basata sul kernel, o KVM in breve, è una soluzione hypervisor gratuita e open source. Compete in un settore maturo con alternative open source come Xen, VirtualBox, nonché prodotti proprietari come VMware vSphere, Citrix XenServer, Microsoft Hyper-V.

Prima del 2005, le soluzioni hypervisor dell'epoca, come Xen e VirtualBox, erano tutte basate su software. L'architettura x86 semplicemente non prevedeva il supporto della virtualizzazione.  Nel 2005, l'introduzione delle estensioni del set di istruzioni Intel VT e AMD-V ha cambiato in modo permanente il panorama della virtualizzazione. KVM ha rilasciato la sua prima versione nel 2006 ed è stato uno dei primi hypervisor a sfruttare la nuova fornitura di hardware per ottimizzare le prestazioni di virtualizzazione.

È possibile installare KVM su qualsiasi computer x86 a 32 o 64 bit, la "macchina host" nel gergo dell'hypervisory, che supporta l'estensione Intel VT o AMD-V. Oggi, i moderni hypervisor supportano in genere la virtualizzazione ibrida: assistita da hardware quando possibile e un failover solo software per chipset meno recenti.

KVM è classificato come hypervisor di tipo 2, il che significa che viene eseguito all'interno di un sistema operativo host. Come suggerisce il nome, KVM è basato sul kernel e, per essere più precisi, è il kernel Linux. Quindi, non sorprende che KVM supporti solo Linux come sistema operativo host. (KVM è stato successivamente portato su FreeBSD.) Se desideri un hypervisor di tipo 2 multipiattaforma open source, VirtualBox è un buon candidato. VirtualBox può essere eseguito in modo nativo su Windows, Linux, Mac OS X e Solaris.

Xen, al contrario, è un hypervisor di tipo 1, noto anche come hypervisor bare metal, che viene eseguito direttamente come firmware sulla macchina host. Il vantaggio del tipo 1 rispetto al tipo 2 è l'efficienza acquisita grazie all'esecuzione dell'hypervisor direttamente sull'hardware sottostante. Lo svantaggio è che un hypervisor di tipo 1 potrebbe non supportare un'ampia gamma di dispositivi host come il sistema operativo host di un hypervisor di tipo 2.

Sebbene gli hypervisor possano differire nel fatto che richiedano un sistema operativo host e quali, sono molto simili rispetto ai sistemi operativi guest che supportano, ovvero il sistema operativo che può essere eseguito da una macchina virtuale. KVM supporta la virtualizzazione dei seguenti SO guest:

KVM è in grado di eseguire immagini del sistema operativo guest non modificate. Questa funzionalità è nota come virtualizzazione completa, al contrario della paravirtualizzazione in cui il sistema operativo guest viene modificato per una gestione speciale delle operazioni che sono sostanzialmente più difficili da eseguire sulla macchina virtuale rispetto alla macchina host.


Come funziona KVM

KVM è costituito da 2 componenti tecnologici: kernel e spazio utente. Il componente del kernel è costituito da 2 moduli del kernel caricabili: kvm.ko, e sia kvm-intel.ko o kvm-amd.ko. il kvm.ko fornisce un'elaborazione di virtualizzazione di base indipendente dall'architettura. Il kvm-intel.ko e kvm-amd.i moduli ko corrispondono ai moduli specifici del processore Intel e AMD. Questi moduli sono stati fusi nel kernel Linux a partire dalla versione del kernel 2.6.20.

La stretta integrazione di KVM con il kernel Linux ha i suoi vantaggi. KVM è in grado di delegare a Linux il lavoro di sistema, mentre si concentra sulla gestione delle nuove istruzioni di virtualizzazione esposte dall'hardware. KVM trae vantaggio anche dall'ereditare da qualsiasi miglioramento continuo del sistema dall'upstream nella più ampia comunità Linux.

È importante che i moduli del kernel lo siano, non emulano l'hardware della macchina virtuale su cui viene eseguito il sistema operativo guest. Quel lavoro appartiene allo spazio utente. KVM utilizza QEMU, che viene eseguito nello spazio utente, per costruire le macchine virtuali che interagiscono con i sistemi operativi guest.  Ogni macchina virtuale è semplicemente un normale processo Linux. Un grande vantaggio è che puoi utilizzare comandi Linux familiari come top e kill per monitorare e gestire le macchine virtuali.


Riepilogo e conclusione

KVM è un'eccellente soluzione open source per la virtualizzazione completa sulla piattaforma host Linux. Dopo oltre 10 anni di sviluppo attivo, KVM è diventato di fatto lo strumento di virtualizzazione standard a livello di macchina in molte distribuzioni Linux.

Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...
Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...