GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione a Linux KVM (Kernel Based Virtualization) e ai suoi vantaggi

Che cos'è la virtualizzazione?

In parole povere, la virtualizzazione è una piattaforma o un ambiente simulato sopra un nodo host, il che è piuttosto astratto per un utente.

Questi ambienti virtuali simulati possono essere un sistema operativo o un ambiente di sviluppo, ecc.

Questo ci dà la possibilità di utilizzare in modo efficiente le risorse hardware del nodo host.

Cos'è KVM?

KVM sta per Kernel Based Virtualization.

La virtualizzazione basata sul kernel è stata implementata per ottenere il vantaggio del supporto della virtualizzazione assistita dall'hardware fornito dalla nuova generazione di CPU Intel e AMD.

Durante le fasi iniziali dello sviluppo della tecnologia di virtualizzazione, le CPU sono state completamente emulate dal software che alla fine ha mancato di prestazioni a causa dell'assenza di accesso diretto all'hardware.

Al giorno d'oggi, le CPU sul mercato supportano la virtualizzazione che è il risultato del cambiamento nella loro architettura rispetto alle fasi precedenti.

Questa è anche chiamata virtualizzazione assistita dall'hardware.

Se non conosci la virtualizzazione, questo è un buon punto di partenza, in cui abbiamo spiegato le tre aree della virtualizzazione e due tipi di hypervisor:Introduzione alla tecnologia di virtualizzazione dei server e tipi di hypervisor

Di seguito sono riportati vari approcci seguiti durante la prima fase di sviluppo della tecnologia di virtualizzazione.

  1. Eseguire la macchina virtuale sul processore dei sistemi host invece di emulare un processore utilizzando la tecnica di traduzione binaria. Funziona senza modificare il sistema operativo guest.
  2. Modifica del sistema operativo dei sistemi guest per comunicare con un Hypervisor che ha accesso diretto all'hardware. La piattaforma hypervisor Xen ne è un esempio che implementa la virtualizzazione Para.
  3. Modifica del processore dei sistemi host in modo che sia facile comunicare con l'hypervisor e quindi supportare la virtualizzazione. Elimina la necessità della traduzione e dell'emulazione binaria. Porta alla piena virtualizzazione piuttosto che alla paravirtualizzazione.
  4. Modifica del sistema operativo dei sistemi host in modo che possa supportare la virtualizzazione. Risulta in hypervisor nativi anziché in quelli ospitati.

La virtualizzazione basata sul kernel sfrutta i vantaggi del 3° e 4° approccio sopra menzionati.

Cos'è un Hypervisor?

Un Hypervisor non è altro che uno strato intermedio di programma, tra il sistema operativo guest e l'hardware del sistema host.

Gestisce l'hardware effettivo per tutti i sistemi operativi guest di connessione.

Gli hypervisor possono essere di due tipi:nativi o ospitati. Gli hypervisor sono anche chiamati VMM-[Virtual Machine Manager]. Si prega di fare riferimento alla figura seguente. Rappresenta un hypervisor nativo bare-metal.

Buoni esempi di hypervisor ospitati possono essere VMware o il software virtual box.

Se non conosci VMWare, questo sarà di aiuto:Fondamenti di virtualizzazione di VMware – VMware Server e VMware ESXi

Se non conosci Virtualbox, questo è un buon punto di partenza:come installare Oracle VM VirtualBox e creare una macchina virtuale

Evoluzione KVM

Quindi, come soluzione moderna per una virtualizzazione efficace, la macchina virtuale basata su kernel (KVM) si è evoluta.

Utilizza essenzialmente le estensioni della CPU fornite dalla moderna virtualizzazione hardware che supporta le CPU, da un modulo con il kernel del sistema operativo host.

Utilizzando questo modulo di virtualizzazione basato sul kernel, il kernel dei sistemi operativi host funziona come un hypervisor sfruttando le funzionalità del kernel Linux e l'hardware che supporta la virtualizzazione.

Quindi, per confrontare KVM con XEN e QEMU, possiamo dire che KVM utilizza l'estensione del processore per la virtualizzazione mentre QEMU funziona con l'emulazione completa della CPU, d'altra parte XEN funziona come hypervisor esterno al sistema operativo host invece di utilizzare il kernel per esso .

Usando KVM possiamo eseguire più macchine virtuali con qualsiasi sistema operativo, su una singola macchina o, diciamo, il sistema host. KVM è stato introdotto nel kernel Linux dalla versione stabile 2.6.20. Un buon esempio di KVM è la soluzione di virtualizzazione fornita con le distribuzioni Red Hat e Fedora basate su RPM.

Vantaggi KVM Linux

Se non conosci KVM Linux, questo ti aiuterà a iniziare:come installare KVM Linux e creare VM guest con esempi

Di seguito sono elencate alcune delle caratteristiche e dei vantaggi della virtualizzazione basata sul kernel.

  1. Con l'aiuto del modulo KVM, gestisce le parti critiche per le prestazioni di interrupt e timer tramite l'emulazione I/O basata sul kernel. Offre la possibilità di impostare un limite alla richiesta di I/O tra la macchina virtuale e l'host.
  2. Il modulo KVM consente qui l'emulazione per modalità CPU non supportate dal processore fisico e dalle istruzioni.
  3. Il modulo KVM utilizzato fa parte del kernel Linux upstream in quanto viene aggiunto per migliorare la virtualizzazione.
  4. Il modulo KVM utilizzato qui fornisce un'interfaccia comune per processori Intel e AMD x86 che supporta la virtualizzazione hardware. Per Intel è noto come Intel VMX hardware assist per la virtualizzazione e per AMD è noto come AMD SVM hardware assist per la virtualizzazione.
  5. Crea un hypervisor bare metal dal kernel. Possiamo dire che crea un hypervisor nativo.
  6. Sfrutta la capacità della MMU (unità di gestione della memoria) nell'hardware per virtualizzare la memoria migliorando le prestazioni.
  7. Una macchina virtuale creata da esso è un processo Linux standard, pianificato dal suo scheduler Linux standard nativo.
  8. Supporta le funzionalità Intel EPT (Extended Page Table) e AMD RVI (Rapid virtualization indexing) per la virtualizzazione della memoria da parte dei fornitori di CPU.
  9. Supporta tutto il file system supportato dal kernel Linux mainstream.
  10. Migliore utilizzo delle risorse e accesso ad esse grazie allo storage flessibile. È molto facile aggiungere memoria, vCPU, disco rigido a KVM Linux.
  11. Supporta un'ampia gamma di sistemi operativi guest inclusi Windows, UNIX, Solaris e DOS.
  12. Tutte le funzionalità di Linux, come l'implementazione della sicurezza tramite SELinux, un'ampia gamma di supporto hardware e il supporto dei driver di dispositivo vengono ereditate dalle macchine virtuali basate sul kernel.
  13. Gestione remota sicura tramite l'API fornita dai moduli di virtualizzazione.
  14. La scalabilità migliorata poiché il flusso principale del kernel Linux può essere esteso aggiungendo moduli per sfruttare più funzionalità.

Linux
  1. Che cos'è il kernel Linux e dovresti aggiornare al kernel più recente?

  2. Linux:configurazione, compilazione e installazione di un kernel Linux personalizzato?

  3. Come ibernare un processo in Linux memorizzando la sua memoria su disco e ripristinandola successivamente?

  4. Cosa sono la memoria alta e la memoria bassa su Linux?

  5. Perché Linux è simile a Unix se il suo kernel è monolitico?

Kernel Linux e le sue funzioni

Gestisci e monitora i moduli del kernel Linux con Kmon

Come abilitare la virtualizzazione annidata in KVM in Linux

Installa Linux Kernel 4.14 LTS in sistemi basati su RPM e DEB

Installa Linux Kernel 4.15 in sistemi basati su RPM e DEB

Come installare e configurare KVM su Ubuntu Linux