Archivio

Posts Tagged ‘Linux Virtualization’

Linux KVM – Virtual Machine Manager

15 maggio 2012 Lascia un commento

Virtual Machine ManagerNell’articolo precedente abbiamo fatto una breve introduzione sulle funzionalità di KVM, e lo abbiamo installato insieme a tutte le sue dipendenze ; ora è giunto il momento di prendere il controllo della virtualizzazione e creare delle macchine virtuali utilizzando il tool grafico “Virtual Machine Manager” ; se non l’avete fatto vi consiglio di leggere l’articolo “Linux KVM – Introduzione alla virtualizzazione con QEMU-KVM” .

Se avete già installato KVM e libvirt ma non avete installato Virtual Machine Manager, su Fedora potete installarlo con il comando :

#yum install virt-manager

Questo software è una console per gestire QEMU-KVM , ma può essere utilizzato anche per XEN e LXC ; non è necessario che sia installato sulla stessa macchina in cui gira KVM.

Se volessimo fare le cose ben fatte potremmo installare KVM su un server senza interfaccia grafica , e sul nostro desktop con Fedora installare Virtual Machine Manager; in questo modo la piattaforma di virtualizzazione risulta essere più pulita senza servizi inutili .

Il cuore di Virtual Machine Manager è scritto in Python mentre l’interfaccia grafica è stata fatta con Glade e GTK+ . L’applicazione utilizza libvirt per comunicare con l’hypervisor in questo modo è indipendente dalle diverse tecnologie di virtualizzazione .

Possiamo trovare l’applicazione in Applicazioni->;;Strumenti di Sistema ; per poter utilizzare l’applicazione è necessario sapere la password dell’utente root .

Avvio Virtual Machine Manager

A prima vista potremmo trovarci un po spaesati in quanto l’applicazione nella schermata principale non offre molte informazioni , se non il nome del host QEMU/KVM a cui siamo collegati (in questo caso localhost) .

Virtual Machine Manager

Facendo doppio clic sul host name , si aprirà una nuova finestra composta da 4 tab chiamata dettagli connessione , il primo tab denominato “Panoramica” mostra informazioni generali come il nome host, il tipo di Hypervisor utilizzato, la memoria ram disponibile, il numero di CPU logiche, l’architettura (es. i686) e due grafici sul utilizzo della CPU e della RAM . Proseguendo troviamo “Reti Virtuali” , in cui è presente una rete denominata “default”; vista la complessità che potrebbe avere l’argomento virtual network verrà trattato in un articolo separato; per il momento vi basti sapere che durante l’installazione di una VM la rete “default” viene utilizzata per collegare il server virtuale al mondo esterno ; al vostro server verrà assegnato dinamicamente un indirizzo IP che non fa parte della vostra rete, e attraverso il NAT potete raggiungere il mondo esterno .

Il tab “Storage” consente di gestire i “volumi/dischi” in cui vanno a finire le macchine virtuali ; di default i dischi virtuali vengono salvati in /var/lib/libvirt/images . Da qui possiamo vedere lo spazio a disposizione i dischi virtuali presenti a da quale VM sono utilizzati , è inoltre possibile aggiungere altre tipologie di storage (iSCSI, NFS ecc.) . Infine nell’ultimo tab denominato “Interfacce” possiamo creare interfacce bridge, bond ….

Dettagli Host

Passiamo ora alla creazione della nostra prima macchina virtuale , la procedura è veramente molto semplice l’unica cosa di cui abbiamo bisogno è un’immagine ISO di una qualunque distribuzione linux .
(Al seguente link potete trovare una piccolo manuale in PDF con la procedura per la creazione di una macchina virtuale con gli screenshot delle operazioni da eseguire .)

Clicchiamo sul pulsante a forma di monitor con un segno di play all’interno ; comparirà il wizard per la creazione di una nuova macchina virtuale .

L’operazione si conclude in pochi passi , in cui dobbiamo inserire :

  1. il nome della macchina ed il tipo di installazione
  2. la sorgente di installazione (dove si trova l’immagine ISO o il cd fisico da cui installare ) , e il sistema operativo
  3. Ram e CPU da assegnare alla machina
  4. Dimensione del disco virtuale

Alla fine di questi passaggi apparirà una schermata di riepilogo con le scelte da noi fatte ed in cui possiamo scegliere la rete a cui collegare la nostra macchina virtuale ed anche il tipo di hypervisor da utilizzare .

Al termine della procedura verrà creata e attivata la macchina virtuale , la quale farà boot dall’immagine ISO che gli abbiamo assegnato , che molto probabilmente sarà un CD d’installazione ; procediamo quindi con l’installazione del sistema operativo .

Finita l’installazione avremmo a disposizione la nostra prima macchina virtuale ; con la configurazione che abbiamo fatto il nostro server potrà accedere a internet ed alla nostra rete locale ma non può essere raggiunto dall’esterno in quanto la rete a cui è collegata la VM utilizza il NAT .
Quindi possiamo tranquillamente aggiornare il server ma i computer nella nostra rete non potranno comunicare con essa.

Nel prossimo articolo analizzeremo il funzionamento delle reti virtuali e vedremmo come far raggiungere la nostra macchina virtuale dal mondo esterno alla virtualizzazione.

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.