Archivio

Archive for the ‘Fedora Virtualizazzione’ Category

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.

Fedora 17 – Virtualization

Fedora 17 verrà rilasciata ufficialmente l’8 maggio ; in questo post andremo ad analizzare alcune nuove funzionalità riguardanti la virtualizzazione in particolare :

  • KVM Live Block Migration
  • Miglioramenti per i dischi Thin Provisioned in KVM
  • Virtualizaion Sandbox

KVM Live Block Migration

Questa funzionalità consente di copiare l’immagine disco di una VM mentre la stessa è in funzione permettendo di fatto uno Storage VM Motion.
i principali casi d’uso potrebberro essere :

  • Si vuole muovere una VM da una LUN a basse performance su una LUN più prestante
  • Si vuole cambiare il tipo di disco della VM passando da qcow a raw per aumentare le performance
  • Si vuole spostare una VM dallo storage locale ad uno condiviso (SAN, NFS, ecc.)

Ad oggi ( 27/03/12 ) questà funzionalità risulta implementata per il 70% in Fedora 17 , dovremmo quindi aspettare la versione Beta , peer vederla completamente funzionante. Per maggiori informazioni è possibile consultare la pagina ufficiale di QEMU (http://wiki.qemu.org/Features/LiveBlockMigration) , in cui viene spiegato più nel dettaglio questa funzione . Appena sarà completamente implementata faremo un’articolo di approfondimento per questa funzionalità molto interessante .

Link alla pagina di Fedora 17 – KVM Live Block Migration :

https://fedoraproject.org/wiki/Features/KVM_Live_Block_Migration

Thin provisioning improvements in KVM

È stato migliorato il supporto per i dischi thin-provisioned . Ora le macchine virtuali con dischi thin-provisioned possono passare a thick-porivisioned per aumentare le performance in background e mentre la VM sta funzionando.

Attualmente la pagina che ospita questa funzionalità non è molto chiara e mancano alcuni informazioni riguardanti la documentazione .

Link alla pagina di Fedora 17 – Thin Provisioning Improvement :

https://fedoraproject.org/wiki/Features/KVMThinProv

Virtualization Sandbox

In Fedora 16 è stato introdotto un tool da righa di comando “sandbox” ; questo tool permette di far girare delle applicazione in modo confinato ed isolato attraverso delle policy SElinux ; è possibile come opzione fa vedere all’applicazione alcune parti del nostro filesystem .

Grazie alla funzionalità che sarà introdotto con Fedora 17 , il demone libvirt conterà un driver LXC che esporà un container virtualizzato per le nostre applicazioni , ed un driver QEMU per avere a disposizione anche una virtualizzazione KVM .

Attualmente anche questa funzionalità non è completa nella documentazione dovremmo quindi aspettare per poter provare questa funzione.

Link alla pagina di Fedora 17 – Virtualization Sandbox :

https://fedoraproject.org/wiki/Features/VirtSandbox