Archivio

Posts Tagged ‘Virtualizzazione Linux’

Linux KVM – Introuduzione alla virtualizzazione con QEMU-KVM

29 marzo 2012 3 commenti

KVM è un’acronimo di Kernel-based Virtual Machine , ed è una soluzione di virtualizzazione per sistemi x86/x86_64 (in realta è stato eseguito il porting anche su processori S/390,PowerPc ed altri) i cui processori contengano le estensioni per la virtualizzazione (Intel VT o AMD-V).

KVM è incluso nel kernel linux a partire dalla versione 2.6.20 rilasciata nel Febbraio 2007 ; è composto ad un modulo caricabile dinamicamente kvm.ko , che fornisce il nucleo dell’infrastruttura di virtualizzazione e da due moduli specifici per il tipo di processore kvm-intel.ko e kvm-amd.ko .

KVM di per se non esegue nessuna emulazione , ma mette a disposizione un interfeccia (/dev/kvm), a cui si interfacciano tools come Qemu per generare macchine virtuali ; KVM fa quindi da “tramite” tra le richieste fatte da Qemu ed il kernel ; questo però non per tutto, la gestione della memoria RAM della Vm e la schedulazione dei processi è fatta direttamente dal Kernel .

Per le macchine virtuali Qemu/KVM viene utilizzato il bios SeaBIOS.

Per un utente non vi è nessuna differenza tra una VM Qemu con KVM disabilitato ed una KVM abilitato , se non per la velocità di esecuzione .

Nel tempo KVM è stato molto migliorato e sono state aggiunte diverse funzionalità molto interessanti, questo perche deve confrontarsi con giganti presenti nel campo della virtualizzazione come VMware.
Vista questa necessità troviamo funzionalità come :

  • Live Migration delle VM
  • Paravirtualized network (migliori perfomance nel networking)
  • Paravirtualized block Device (migliori perfomance nel accesso al disco)
  • PCI-Express passthrough
  • Kernel Sharedpage Merging (KSM) (esegue il merge delle pagine di memoria uguali)

Queste sono solo alcune delle potenzialità di QEMU/KVM ; se poi si vogliono provare le novità più recenti vi consiglio di utilizzare Fedora , in cui normalmente vengono inserite le ultime tecnologie riguardanti la virtualizzazione .

Proviamolo sul Campo

Ora che seppiamo che cosa è KVM passiamo alla pratica ; per avere le ultime funzionalità messe a disposizione da KVM utilizzeremo Fedora 16 ma puo andar bene anche la versione precedente.
Inizieremo ad utilizzare i tool grafici per la gestione delle macchine virtuali , e man mano che andremo avanti impareremo ad usare anche la linea di comando per creare/gestire le VM ed anche per gestire qemu-kvm.

Prima di tutto dobbiamo capire se il nostro computer ha le estensioni per la virtualizzazione , possiamo fare queso dando il seguente comando come utente root :

#grep -E 'svm|vmx' /proc/cpuinfo

Analizzando l’output del comando dobbiamo verificare che nei flag sia predente VMX per i processori Intel o SVM per i processori AMD .

Per completezza vi rimando ad un link di wikipedia in cui potete trovare i processori con questo tipo di estensioni Intel e AMD , la pagina è in inglese perché quella italiana non è aggiornata .

http://en.wikipedia.org/wiki/X86_virtualization

Vi ricordo inoltre che alcuni produttori disabilitano queste estensioni da BIOS , quindi bisogna accedere nel BIOS e attivarle.

Nel caso in cui non abbiate le estensioni per la virtualizzazione potete comunque continuare con questo percorso , in quanto come detto in precedenza il fatto di utilizzare o meno KVM è trasparente , la differenza sarà che la VM che creeremo sarà emulata da qemu e di conseguenza andrà più lenta.

Assicuriamoci che il nostro sistema sia completamente aggiornato dando il comando :

#sudo yum check-update

Se il comando restituisce dei pacchetti da aggiornare diamo il comando :

#sudo yum -y update

Adesso siamo pronti per installare i pacchetti necessari per la virtualizzazione , quindi da linea di comando :

#sudo yum install qemu-kvm libvirt virt-manager virt-viewer python-virtinst

In questo modo installeremo tutto il necessario per iniziare a famigliarizzare la virtualizzazione .

Per oggi è tutto , nel prossimo articolo inizieremo a prendere famigliarità con “Virtual Machine Manager” un tool grafico per la gestione di qemu-kvm e delle macchine virtuali.

Annunci