Vai al paragrafo

Cos'è una Kernel based Virtual Machine (KVM)?

Copia URL

Kernel based Virtual Machine (KVM) è una tecnologia di virtualizzazione open source integrata in Linux®. Nello specifico, KVM consente di trasformare Linux in un hypervisor che permette a un sistema host di eseguire più ambienti virtuali isolati, denominati guest o macchine virtuali (VM).

KVM fa parte di Linux. Se utilizzi Linux 2.6.20 o versioni successive, disponi anche di KVM. La tecnologia KVM è stata annunciata per la prima volta nel 2006 ed è confluita nella versione principale del kernel di Linux un anno dopo. Poiché fa parte del codice Linux esistente, sfrutta immediatamente i vantaggi di ogni nuovo miglioramento, funzioni e correzione introdotti in Linux, senza richiedere alcuna riprogettazione.

KVM trasforma Linux in un hypervisor di tipo 1 (bare metal). Per eseguire le macchine virtuali, tutti gli hypervisor necessitano di componenti a livello di sistema operativo, ovvero gestori di memoria, utilità di pianificazione dei processi, stack di input/output (I/O), driver di periferiche, gestori della sicurezza, stack di rete e molto altro ancora. Facendo parte del kernel di Linux, KVM dispone già di tutti questi componenti. Ogni macchina virtuale viene implementata come un normale processo Linux, pianificata dall'utilità di pianificazione Linux standard, e dispone di hardware virtuale dedicato, come la scheda di rete, la scheda grafica, la CPU, la memoria e i dischi.

Implementazione di KVM

È necessaria una versione di Linux rilasciata dopo il 2007 e installata su hardware X86 con capacità di virtualizzazione. Se entrambi questi requisiti sono soddisfatti, è sufficiente caricare due moduli esistenti (un modulo kernel host e un modulo specifico per il processore), un emulatore e tutti i driver necessari per eseguire i sistemi aggiuntivi.

Tuttavia, implementando KVM in una distribuzione Linux supportata, come Red Hat Enterprise Linux, è possibile espanderne le funzioni e scambiare risorse fra gli host, condividere librerie comuni, ottimizzare le prestazioni dei sistemi e molto altro ancora.

Coopservice standardizza e accelera lo sviluppo di software

Scopri come il gruppo Coopservice ha unificato la gestione e lo sviluppo applicativo grazie alle soluzioni di Red Hat.

Quando si realizza un'infrastruttura virtuale su una piattaforma a cui si è vincolati per contratto, l'accesso al codice sorgente può risultare limitato. Di conseguenza, gli sviluppi IT aziendali saranno costituiti da semplici procedure alternative, piuttosto che da innovazioni e, al rinnovo del contratto, le nuove condizione potrebbero impedirti di investire nel cloud, nei container e nell'automazione. Scegliendo di eseguire la migrazione a una piattaforma di virtualizzazione basata su KVM, hai l'opportunità di ispezionare, modificare e migliorare il codice sorgente su cui si basano gli hypervisor. Inoltre, non esiste alcun accordo di licenza di livello enterprise perché non c'è nessun codice sorgente da proteggere, e puoi fare tutto quello che vuoi.

KVM fa parte di Linux. Linux è parte integrante della tecnologia KVM. Tutte le funzioni offerte da Linux sono disponibili anche a KVM, ma KVM offre alcune funzioni specifiche che ne fanno l'hypervisor preferito dalle aziende.

La sicurezza in Red Hat Enterprise Linux

KVM usa una combinazione di Security-Enhanced Linux (SELinux) e Secure Virtualization (sVirt) per migliorare i livelli di sicurezza e isolamento della VM. SELinux stabilisce i confini di sicurezza intorno alle macchine virtuali, mentre sVirt estende le capacità di SELinux, consentendo di applicare la sicurezza MAC (Mandatory Access Control) alle VM guest e prevenendo gli errori di etichettatura manuale.

Storage

KVM è in grado di utilizzare qualunque storage supportato da Linux, inclusi alcuni dischi locali e NAS (Network Attached Storage). È possibile utilizzare l'I/O multipath per migliorare lo storage e garantire la ridondanza. KVM supporta anche file system condivisi, permettendo di condividere le immagini delle macchine virtuali con più host. Poiché le immagini del disco supportano il thin provisioning, non è necessario eseguire l'allocazione anticipata di tutto lo storage, ma è possibile procedere on demand.

Hardware supportato

KVM può utilizzare una vasta gamma di piattaforme hardware certificate supportate da Linux. Poiché i fornitori di hardware contribuiscono regolarmente allo sviluppo del kernel, il kernel di Linux adotta tempestivamente tutte le funzioni hardware più recenti.

Gestione della memoria

KVM eredita da Linux le funzioni di gestione della memoria, tra cui l'accesso NUMA (Non Uniform Memory Access) e Kernel Same Page Merging. La memoria di una macchina virtuale può essere scambiata, supportata da grandi volumi per migliorare le prestazioni e condivisa o supportata da un file su disco.

Migrazione in tempo reale

KVM supporta la migrazione in tempo reale, ovvero la capacità di spostare una macchina virtuale in esecuzione da un host fisico all'altro senza interrompere il servizio. Durante lo spostamento la macchina virtuale rimane in funzione, le connessioni di rete rimangono attive e le applicazioni continuano l'esecuzione. KVM salva anche lo stato corrente di una macchina virtuale in modo che possa essere archiviata e ripristinata in un secondo momento.

Prestazioni e scalabilità

KVM eredita le prestazioni di Linux, adattandosi in funzione del carico richiesto quando il numero delle macchine guest e la domanda aumentano. KVM consente di virtualizzare i carichi di lavoro delle applicazioni più esigenti e fornisce la base per numerose configurazioni di virtualizzazione aziendali di livello enterprise, come datacenter e cloud privati (tramite OpenStack®).

Controllo e pianificazione delle risorse

Nel modello KVM, una macchina virtuale è un processo Linux, che viene pianificato e gestito dal kernel. L'utilità di pianificazione di Linux consente un controllo dettagliato delle risorse allocate a un processo Linux e garantisce la qualità del servizio per un processo specifico. In KVM, questo include l'utilità di pianificazione, i gruppi di controllo, gli spazi dei nomi di rete e le estensioni in tempo reale.

Latenza inferiore e definizione più precisa delle priorità

Il kernel Linux presenta estensioni in tempo reale che consentono di eseguire le app basate su VM con una latenza inferiore e una definizione più precisa delle priorità (rispetto ai sistemi bare metal). Inoltre, il kernel suddivide i processi caratterizzati da lunghi tempi di elaborazione in componenti più piccoli, che possono essere pianificati ed elaborati più facilmente.

Gestione macchine virtuali

Alcune macchine virtuali attive su una singola workstation possono essere gestite manualmente anche senza utilizzare uno strumento di gestione. Le grandi imprese utilizzano software di gestione della virtualizzazione, che si interfacciano con gli ambienti di virtualizzazione e l'hardware fisico sottostante per semplificare l'amministrazione delle risorse, migliorare l'analisi dei dati e accelerare i processi. Red Hat ha creato Red Hat Virtualization proprio per questo.

Crediamo così tanto in KVM che è l'unico hypervisor per tutti i nostri prodotti di virtualizzazione e ci dedichiamo a migliorare continuamente il codice del kernel, fornendo il nostro contributo alla community KVM. Ma poiché KVM fa parte di Linux, è già incluso in Red Hat Enterprise Linux.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è una macchina virtuale (VM)?

Una macchina virtuale (VM) è un ambiente di elaborazione isolato creato astraendo le risorse da una macchina fisica.

ARTICOLO

La tecnologia KVM

KVM (Kernel-based Virtual Machine) è una tecnologia di virtualizzazione open source che trasforma Linux in un hypervisor.

  • Il marchio denominativo OpenStack® e il logo OpenStack sono marchi commerciali/di servizio di proprietà della OpenStack Foundation o marchi registrati negli Stati Uniti e in altri Paesi e sono da utilizzarsi previa autorizzazione della OpenStack Foundation. Red Hat non ha rapporti di affiliazione con la OpenStack Foundation o con la community di OpenStack, né riceve da esse sponsorizzazioni o finanziamenti.