Una panoramica sulle tecnologie di virtualizzazione disponibili in ambiente Linux e la loro utilizzabilità nell'ambito del consolidamento di più server virtualizzati su un'unica macchina fisica.
Presentazione effettuata al terzo seminario del ciclo "Linux in azienda"
Relatore: Simone Piccardi
Evento: Linux in azienda: Tecnologie di virtualizzazione per il consolidamento dei server - 02 Dicembre 2010
Organizzatore: Truelite
Luogo: Auditorium Confesercenti Firenze P.za Pier Vettori, 8/10 - Firenze
Lo sviluppo del Software Libero per le PMI e la PA"
Tecnologie di virtualizzazione per il consolidamento dei server
1. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Linux in azienda: terzo seminario
Tecnologie di virtualizzazione per il consolidamento dei server
Simone Piccardi
2 Dicembre 2010
Simone Piccardi Linux in azienda: terzo seminario
2. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Di cosa parler`
o
1 Introduzione
2 Panoramica tecnologie
3 Approfondimenti
4 Conclusioni
Simone Piccardi Linux in azienda: terzo seminario
3. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Perch´ la virtualizzazione
e
I server attuali sono spesso sotto-utilizzati:
multiprocessori con carichi poco significativi
grandi quantit` di memoria, usata come cache
a
dischi di dimensioni sempre maggiori
` possibile tenere su una macchina fisica quello che prima stava su
e
molte
Simone Piccardi Linux in azienda: terzo seminario
4. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Vantaggi della virtualizzazione
La virtualizzazione consente di creare pi` macchine virtuali su una
u
sola macchina reale:
si possono consolidare su una sola macchina diversi server
si possono utilizzare diversi sistemi operativi su una sola
macchina
si possono fornire risorse in maniera dinamica secondo le
esigenze
si risparmia energia elettrica usando meglio le risorse hardware
Simone Piccardi Linux in azienda: terzo seminario
5. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Vantaggi della virtualizzazione
La virtualizzazione consente di separare la manutenzione di
hardware e software:
si possono separare macchine virtuali con diversi livelli di
sicurezza, dividendo i rischi
si possono mantenere per compatibilit` su hardware recente
a
vecchie versioni di sistema operativo
si pu` gestire l’aggiornamento delle macchine fisiche
o
separatamente da quello delle macchine virtuali
Simone Piccardi Linux in azienda: terzo seminario
6. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Svantaggi della virtualizzazione
Gli svantaggi in realt` sono molto pochi:
a
perdita di prestazioni, ma poco significativa nella maggior
parte dei casi, e sempre minore grazie al supporto hardware
minore sicurezza, in caso di compromissione del sistema di
virtualizzazione si pu` prendere il controllo di molte macchine
o
lo svantaggio pi` significativo ` quello relativo alla sicurezza
u e
Simone Piccardi Linux in azienda: terzo seminario
7. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Tipi di virtualizzazione
Le tecnologie di virtualizzazione si possono dividere
sommariamente in tre categorie:
container si usa il kernel per creare un contenitore in cui far
girare un sistema operativo ospite all’interno di un ambiente
virtuale.
software virtualization si emula in software un intero
computer fornendo un hardware virtuale su cui fare una
installazione del tutto identica a quella di una macchina fisica
hardware virtualization si sfrutta il supporto hardware dei
moderni processori per emulare in maniera efficiente intero
computer
Simone Piccardi Linux in azienda: terzo seminario
8. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Container: Vantaggi e svantaggi
Vantaggi:
prestazioni, lo stesso kernel esegue tutti i programmi di tutte
le macchine virtuali
ottimizzazione delle risorse, la memoria ed il disco sono
sfruttati integralmente senza rigide allocazioni
Svantaggi:
non si possono virtualizzare sistemi operativi diversi
Simone Piccardi Linux in azienda: terzo seminario
9. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Software virtualization: Vantaggi e svantaggi
Vantaggi:
si possono utilizzare anche altri sistemi operativi
non necessita di processori recenti con supporto hardware
in certi casi si pu` utilizzare anche su architetture hardware
o
diverse
Svantaggi:
prestazioni ridotte di esecuzione, si esegue un emulatore su cui
gira un sistema operativo che esegue altri programmi
prestazioni ridotte di I/O, si devono emulare le periferiche
Simone Piccardi Linux in azienda: terzo seminario
10. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Hardware virtualization: Vantaggi e svantaggi
Vantaggi:
si possono utilizzare anche altri sistemi operativi
alta velocit` per l’esecuzione nativa del sistema ospite
a
Svantaggi:
necessita di processori recenti con il supporto hardware
Simone Piccardi Linux in azienda: terzo seminario
11. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Tecnologie disponibili: container
Le tecnologie di virtualizzazione basate sulla realizzazione di
container sono:
LXC
linux-vserver
OpenVZ
Simone Piccardi Linux in azienda: terzo seminario
12. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
linux-vserver
Una delle soluzioni presenti da maggior tempo:
usa kernel modificato per la separazione dei server virtuali
non richiede supporto dal processore
accesso diretto all’hardware tramite il kernel in esecuzione
qualche problema per la separazione della rete
non supportato nel kernel ufficiale (e sviluppo quasi fermo)
molto veloce, molto efficiente, funzionalit` ridotte.
a
Simone Piccardi Linux in azienda: terzo seminario
13. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
LXC
L’ultimo arrivato (iniziato con il kernel 2.6.19, usabile dal 2.6.26):
usa le funzionalit` gi` presenti nel kernel
a a
separa i server virtuali con l’uso di namespace
non richiede supporto dal processore
accesso diretto all’hardware tramite il kernel in esecuzione
procede di pari passo con lo sviluppo del kernel ufficiale
molto veloce ed efficiente, funzionalit` ridotte, ma promette bene.
a
Simone Piccardi Linux in azienda: terzo seminario
14. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
OpenVZ
Nasce come applicazione proprietaria, recentemente rilasciata come
GPL:
usa kernel modificato per la separazione dei server virtuali
sfrutta dove possibile le funzionalit` gi` presenti nel kernel
a a
non richiede supporto dal processore
supporta diversi modelli di rete e live migration
ambiente complesso, molto veloce ed efficiente, molte funzionalit`,
a
sviluppo costante.
Simone Piccardi Linux in azienda: terzo seminario
15. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Tecnologie disponibili: software virtualization
Le tecnologie di virtualizzazione basate sulla virtualizzazione
software sono:
qemu
kqemu
Virtualbox
Simone Piccardi Linux in azienda: terzo seminario
16. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
qemu
E’ stata una delle prime macchine virtuali create su Linux:
emula completamente un PC, comprese alcune periferiche, vi
si pu` installare qualunque sistema operativo
o
eseguito come programma dal sistema ospite, non richiede
modifiche al kernel, n´ supporto da parte del processore
e
usa come sistema ospite Linux, FreeBSD, Solaris, MacOS e
Windows
gira su diverse piattaforme ospite (x86, PPC) e emula diverse
piattaforme hardware (x86, PPC, ARM, SPARC, MIPS)
relativamente semplice da usare, molto lento, utilizza molta
memoria, efficiente nell’uso dello spazio disco.
Simone Piccardi Linux in azienda: terzo seminario
17. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
kqemu
La versione originale di qemu ` molto lenta, kqemu:
e
usa modulo del kernel per accelerare l’esecuzione dei sistema
ospitato
il sistema operativo e le applicazioni ospiti sono eseguiti
direttamente dal processore
funziona solo per emulazioni di piattaforma x86 su x86
disponibile solo sotto Linux, non pu` essere usato per
o
installare Windows
non supportato dal kernel ufficiale, sviluppo fermo
relativamente semplice da usare, meno lento, utilizza molta
memoria, efficiente nell’uso dello spazio disco.
Simone Piccardi Linux in azienda: terzo seminario
18. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
VirtualBox
Era una applicazione proprietaria, recentemente rilasciata sotto
GPL:
approccio analogo a kqemu, accelerazione tramite moduli del
kernel
multi-piattaforma, pu` essere eseguita su Linux, Windows,
o
Solaris, MacOSX
pu` eseguire come sistema ospite qualunque sistema operativo
o
non supportato nel kernel ufficiale ma molto sviluppato
estremamente semplice, ottima interfaccia di gestione, pi` veloce
u
di kqemu, richiede parecchie risorse (memoria e spazio disco).
Simone Piccardi Linux in azienda: terzo seminario
19. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Tecnologie disponibili: hardware virtualization
Le tecnologie di virtualizzazione basate sulla virtualizzazione
assistita dall’hardware sono:
Xen paravirtualization
Xen full virtualization
KVM
Simone Piccardi Linux in azienda: terzo seminario
20. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Xen paravirtualization
La prima versione, basata sul concetto di hypervisor, consente di
eseguire pi` sistemi operativi:
u
uno strato di controllo, l’hypervisor, esegue un kernel
principale (dom0) che esegue le restanti istanze virtuali (domU).
senza supporto hardware occorrono delle modifiche al sistema
operativo eseguito (disponibili per Linux e BSD)
funzionalit` avanzate come live-migration, interfacce virtuali,
a
accesso a disco veloce con LVM.
richiede modifiche non supportate dal kernel ufficiale
complesso da usare, molto veloce, ottime funzionalit`, necessita di
a
parecchie risorse (in memoria e spazio disco).
Simone Piccardi Linux in azienda: terzo seminario
21. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Xen full virtualization
Versione che usa il supporto hardware:
viene usato ancora l’hypervisor ma pu` emulare una macchina
o
fisica senza modifiche al sistema operativo eseguito
l’accesso alle periferiche reali ` pi` lento in quanto simulato
e u
appoggiandosi a qemu
mantiene le funzionalit` avanzate di live-migration, interfacce
a
virtuali, dischi su LVM.
quasi completamente supportato con le ultime versioni del
kernel ufficiale
complesso da usare, molto veloce, ottime funzionalit`, necessita di
a
parecchie risorse (memoria e spazio disco).
Simone Piccardi Linux in azienda: terzo seminario
22. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
KVM
E’ la tecnologia di virtualizzazione nativa su Linux:
infrastruttura generica per la creazione di macchine virtuali
parte del kernel ufficiale a partire dalla versione 2.6.20
usa una versione modificata di qemu per fornire il supporto
delle periferiche
funzionalit` avanzate di live-migration, interfacce virtuali,
a
dischi su LVM
complesso da usare, molto veloce, necessita di parecchie risorse.
Simone Piccardi Linux in azienda: terzo seminario
23. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Cosa usare
Ci concentreremo su KVM e OpenVZ per i seguenti motivi:
supporto ufficiale a lungo termine da parte di Debian
prodotti di punta nel rispettivo settore
disponibilit` di una buona interfaccia di gestione via web
a
Per per Xen e vserver ` prevista la dismissione dopo squeeze.
e
Simone Piccardi Linux in azienda: terzo seminario
24. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
OpenVZ
ogni istanza (virtual environment o VE) ` completamente
e
separata dalle altre (riguardo file, processi, rete e IPC)
ogni VE si comporta come un sistema ordinario, si pu`
o
installare e configurare qualunque servizio
il sistema consente un controllo dettagliatissimo delle risorse
associate a ciascun VE
la rete ` virtualizzata e la si pu` anche far gestire
e o
completamente dall’interno di ciascun VE
sono supportate funzionalit` avanzate come la live-migration
a
Simone Piccardi Linux in azienda: terzo seminario
25. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
OpenVZ
Alcune funzionalit` di notevole interesse:
a
supporto per la realizzazione di “template” che rendono
immediata l’installazione di macchine simili
supporto per il backup completo di una istanza senza dover
fermare la stessa (snapshot con LVM) o con downtime
minimale
spostamento dei dati da un VE all’altro con una semplice
copia di file dalla macchina ospite
` una piattaforma ideale da usare per consolidare server linux,
e
anche con distribuzioni diverse
Simone Piccardi Linux in azienda: terzo seminario
26. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
KVM
il sistema di ogni istanza viene eseguito a velocit` nativa
a
grazie al supporto hardware dei processori moderni
` disponibile su piattaforma x86, con porting in corso per
e
ARM e PPC
pu` utilizzare come disco virtuale sia file che volumi logici
o
emulazione dell’hardware con qemu, ma per disco e rete sono
disponibili dispositivi virtuali per un accesso ad alta velocit`
a
le istanze eseguite ottengono una scheda di rete virtuale vista
in bridge dal sistema ospite
uso pi` efficace della memoria: supporto per il memory
u
ballooning e l’unione di pagine identiche (KSM)
Simone Piccardi Linux in azienda: terzo seminario
27. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
KVM
Le funzionalit` di maggiore interesse di KVM:
a
la virtualizzazione completa consente l’installazione di
qualunque sistema operativo
supporta accesso diretto (con hotplug) di una istanza ai
dispositivi PCI della macchina ospite
supporta l’accesso ai dispositivi USB dalla macchina ospite
live-migration delle istanze in presenza di storage con
supporto dell’accesso condiviso
adatto all’installazione di altri sistemi operativi o macchine virtuali
che necessitano accesso all’hardware della macchina ospite
Simone Piccardi Linux in azienda: terzo seminario
28. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Proxmox
Insieme di pacchetti (o distribuzione Debian-based) che integra
OpenVZ e KVM:
interfaccia di gestione via web, console e grafica accessibile in
remoto via VNC
supporto per configurazioni cluster, storage su iSCSI, LVM,
directory locali e NFS
supporto per la gestione di live migration
supporto per il backup ed il ripristino delle macchine virtuali
supporto per lo spostamento delle macchine virtuali da un
nodo all’altro del cluster.
Simone Piccardi Linux in azienda: terzo seminario
29. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Riferimenti
http://www.truelite.it
http://www.openvz.org
http://www.linux-kvm.org
Domande ?
Simone Piccardi Linux in azienda: terzo seminario
30. Introduzione
Panoramica tecnologie
Approfondimenti
Conclusioni
Soluzioni per la virtualizzazione
e adesso vediamo qualcosa
Simone Piccardi Linux in azienda: terzo seminario