Introduzione a BeRTOS, sistema operativo embedded open source. Il sistema 竪 gratuito anche per progetti embedded commerciali grazie alla sua speciale licenza.
Master: Amministratore Linux - Livello Avanzato
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso 竪 allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico 竪 disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Sistemi di virtualizzazione in ambiente LinuxTruelite
油
Presentazione delle principali tecnologie di virtualizzazione disponibili in ambiente GNU/Linux: panoramica, caratteristiche e principali strumenti di gestione.
Relatore: Simone Piccardi
Evento: Corso "Sistemi di virtualizzazione software in ambiente Linux" - 13 Maggio 2014
Organizzatore SIAF - Sistema Informatico dell'Ateneo Fiorentino
Luogo: Universit degli studi di Firenze
Panoramica sulle tecnologie di virtualizzazione su Linux
Relatore: Simone Piccardi
Evento: Modelli architetturali per l'accentramento dei servizi con Software Libero in conformit al D.lgs 196/03 - 17 Aprile 2007
Organizzatore: Firenze Tecnologia
Luogo: Firenze
Uno dei molti vantaggi del Sistema Operativo Linux e che il suo interno e aperto a tutti. Il kernel Linux e un corpo grande e complesso di codice. I drivers di periferica, sono distinte scatole nere che fanno si che un particolare pezzo di hardware risponda ad un interfaccia di programmazione ben definita. Le attivita dellutente sono effettuate tramite una serie di chiamate standardizzate indipendenti dal driver specifico. Quindi i driver possono essere costruiti separatamente dal resto del kernel e inseriti a runtime quando necessario.
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...Marco Cavallini
油
Nella presentazione verranno descritti brevemente ed in modo fruibile anche da persone non
tecnicamente preparate i concetti di base che descrivono una scheda Raspberry PI, il sistema
operativo Linux, il concetto di cluster di computer e la libreria MPI per effettuare del calcolo
parallelo.
Sulle schede sar installato Raspbian Linux e verr descritta limplementazione del collegamento
dati (con tecnologia NFS) tra le schede e lutilizzo della libreria MPIch per effettuare del calcolo
parallelo.
Il tutto accompagnato da una dimostrazione pratica del sistema hardware realizzato per la creazione
di un piccolo supercomputer basato su un cluster di quattro schede Raspberry PI 3.
Cosa 竪 Raspberry
Cosa 竪 Linux
Cosa 竪 un cluster
Cosa 竪 MPI
Joomla day 2010 Virtualizzare in locale pro e controAndrea Adami
油
Con le moderne tecnologie di virtualizzazione il nostro pc pu嘆 ospitare interi ambienti joomla (sistema operativo + software) vediamo insieme quali sono i pro e i contro
Hypervisor e VM, clustering e HA, SAN e storage, architetture degli elaboratori - Terza lezione corso CESVIP "Tecnico di rete informatico specializzato in sicurezza delle reti"
Proxmox Ve - Introduzione - MontelLUG Cs2011Mirco Piccin
油
Il MontelLUG ha organizzato una serie di conferenze specialistiche per i primi mesi del 2011; qui il mio talk introduttivo su Proxmox VE, tenuto nel mese della virtualizzazione.
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso 竪 allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico 竪 disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Tecnologie di virtualizzazione per il consolidamento dei serverTruelite
油
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
Sistemi di virtualizzazione in ambiente LinuxTruelite
油
Presentazione delle principali tecnologie di virtualizzazione disponibili in ambiente GNU/Linux: panoramica, caratteristiche e principali strumenti di gestione.
Relatore: Simone Piccardi
Evento: Corso "Sistemi di virtualizzazione software in ambiente Linux" - 13 Maggio 2014
Organizzatore SIAF - Sistema Informatico dell'Ateneo Fiorentino
Luogo: Universit degli studi di Firenze
Panoramica sulle tecnologie di virtualizzazione su Linux
Relatore: Simone Piccardi
Evento: Modelli architetturali per l'accentramento dei servizi con Software Libero in conformit al D.lgs 196/03 - 17 Aprile 2007
Organizzatore: Firenze Tecnologia
Luogo: Firenze
Uno dei molti vantaggi del Sistema Operativo Linux e che il suo interno e aperto a tutti. Il kernel Linux e un corpo grande e complesso di codice. I drivers di periferica, sono distinte scatole nere che fanno si che un particolare pezzo di hardware risponda ad un interfaccia di programmazione ben definita. Le attivita dellutente sono effettuate tramite una serie di chiamate standardizzate indipendenti dal driver specifico. Quindi i driver possono essere costruiti separatamente dal resto del kernel e inseriti a runtime quando necessario.
ArduinoDay17 - Creazione di un piccolo supercomputer con Raspberry PI per cal...Marco Cavallini
油
Nella presentazione verranno descritti brevemente ed in modo fruibile anche da persone non
tecnicamente preparate i concetti di base che descrivono una scheda Raspberry PI, il sistema
operativo Linux, il concetto di cluster di computer e la libreria MPI per effettuare del calcolo
parallelo.
Sulle schede sar installato Raspbian Linux e verr descritta limplementazione del collegamento
dati (con tecnologia NFS) tra le schede e lutilizzo della libreria MPIch per effettuare del calcolo
parallelo.
Il tutto accompagnato da una dimostrazione pratica del sistema hardware realizzato per la creazione
di un piccolo supercomputer basato su un cluster di quattro schede Raspberry PI 3.
Cosa 竪 Raspberry
Cosa 竪 Linux
Cosa 竪 un cluster
Cosa 竪 MPI
Joomla day 2010 Virtualizzare in locale pro e controAndrea Adami
油
Con le moderne tecnologie di virtualizzazione il nostro pc pu嘆 ospitare interi ambienti joomla (sistema operativo + software) vediamo insieme quali sono i pro e i contro
Hypervisor e VM, clustering e HA, SAN e storage, architetture degli elaboratori - Terza lezione corso CESVIP "Tecnico di rete informatico specializzato in sicurezza delle reti"
Proxmox Ve - Introduzione - MontelLUG Cs2011Mirco Piccin
油
Il MontelLUG ha organizzato una serie di conferenze specialistiche per i primi mesi del 2011; qui il mio talk introduttivo su Proxmox VE, tenuto nel mese della virtualizzazione.
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso 竪 allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico 竪 disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Tecnologie di virtualizzazione per il consolidamento dei serverTruelite
油
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
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1Alfonso Martino
油
Questo slide rappresentano un approfondimento su Runtime Fabric - il modello di deployment containerizzato di MuleSoft.
Al loro interno troverete:
- Panoramica su Runtime Fabric
- Setup e configurazione di un cluster su cloud AWS
- Deployment di un'API di test
1. Virtualizzazione
Approcci software ed hardware, considerazioni architetturali
Paolo Campegiani
<paolo@paolocampegiani.it>
Linux Day - 28 Ottobre 2006
2. Men湛
Tecniche di virtualizzazione e paravirtualizzazione
Virtualizzatori: QEMu e VMware
Paravirtualizzatori: Xen e OpenVZ
Alta af鍖dabilit
Sicurezza
Paolo Campegiani () Virtualizzazione Linux Day 2 / 81
3. Obiettivi
Comprendere come opera un virtualizzatore
Utilizzare operativamente i vari software
Valutare le implicazioni di sicurezza e di af鍖dabilit
Paolo Campegiani () Virtualizzazione Linux Day 3 / 81
4. Everybody loves virtualization
E uno dei settori a maggior sviluppo nellinformatica:
Mercato di 18 mld di dollari per il 2007 (IDC)
Tutti i grandi player hanno una loro strategia (IBM, Red Hat, SuSE,
Microsoft, Apple, ...)
AMD e Intel hanno processori virtualization-aware
Fattore chiave di RHEL 5.0/SuSE 10
E solo un hype?
Paolo Campegiani () Virtualizzazione Linux Day 4 / 81
5. From the dawn of time it came
Il primo sistema che offriva la virtualizzazione era lIBM S/360
(1964)
Uno degli articoli fondamentali nel settore (Goldberg e Popek) 竪
del 1974
Nel 1998 nasce VMware, ovvero la virtualizzazione per sistemi
x86
Perch竪 oggi ne parlano tutti?
Paolo Campegiani () Virtualizzazione Linux Day 5 / 81
6. Virtualization everywhere
Esistono molti tipi di virtualizzazione:
La macchina virtuale Java che esegue codice Java
I volumi esportati da una SAN
Le risorse di sistema viste dai programmi applicativi
Le topologie di rete pi湛 complesse
Cosa ha di particolare la virtualizzazione di sistema operativo?
Paolo Campegiani () Virtualizzazione Linux Day 6 / 81
7. The case for virtualization
Gestire dei sistemi legacy
Consolidare pi湛 servizi in ununico server
Avere una piattaforma di test identica a quella di produzione
Migliorare laf鍖dabilit
La virtualizzazione 竪 quello di cui ho bisogno?
Paolo Campegiani () Virtualizzazione Linux Day 7 / 81
8. Whats in a name?
Virtualizzazione - 1
E il raggruppamento e lastrazione di risorse in modo tale da
mascherarne la natura 鍖sica e i limiti agli utenti delle risorse.
Virtualizzazione - 2
E una metodologia per dividere le risorse in ambienti di esecuzione
multipli.
Paolo Campegiani () Virtualizzazione Linux Day 8 / 81
9. Scenari duso
Consolidamento di server: pi湛 servizi di rete offerti da server oggi
distinti vengono migrati su un singolo server
Testing: 竪 possibile duplicare un server di test in uno di
produzione (o viceversa)
Training: 竪 possibile fornire un ambiente completo di studio
Paolo Campegiani () Virtualizzazione Linux Day 9 / 81
10. Family business
Esistono varie tecniche possibili:
Emulazione
Virtualizzazione
Paravirtualizzazione
Paolo Campegiani () Virtualizzazione Linux Day 10 / 81
11. Un po di nomi
Virtual Machine Monitor (VMM): la componente applicativa che
realizza la virtualizzazione
Hypervisor: la componente di sistema che realizza la
virtualizzazione
(Sistema) guest: il sistema virtualizzato
(Sistema) host: il sistema reale
Paolo Campegiani () Virtualizzazione Linux Day 11 / 81
12. Virtualizzazione classica
Secondo Popek e Goldberg le caratteristiche di un sistema perch竪
operi come un virtualizzatore sono:
Fedelt: il software viene eseguito dalla VMM in modo analogo ad
una esecuzione via hardware
Prestazioni: la maggior parte delle istruzioni del guest sono
eseguite dallhardware senza lintervento della VMM
Sicurezza: la VMM gestisce tutte le risorse
Paolo Campegiani () Virtualizzazione Linux Day 12 / 81
13. Lapproccio trap and emulate
Ogni processore multiprogrammabile ha dei livelli di privilegio: i
programmi utente operano ad un livello basso, il sistema operativo
ad un livello alto
Le istruzioni non privilegiate possono essere eseguite
direttamente senza lintervento della VMM
Lesecuzione di una istruzione privilegiata causa una eccezione
che viene catturata (trap) dalla VMM che la emula ricorrendo ai
servizi del sistema operativo host
Paolo Campegiani () Virtualizzazione Linux Day 13 / 81
14. Trap and emulate: de-privileging
Tutte le istruzioni privilegiate sono catturate (trap) perch竪 eseguite
dalla VMM in un contesto non privilegiato
In alcuni casi questo trap 竪 scatenato dal sistema operativo host
(istruzione di I/O), in altri deve essere la VMM a proteggere le
proprie strutture dati (la VMM e il codice del guest sono per lhost
lo stesso segmento dati se non si usa la segmentazione)
Paolo Campegiani () Virtualizzazione Linux Day 14 / 81
15. Trap and emulate: shadow structures
Lo stato reale dellhardware 竪 diverso da quello che il guest vede,
in quanto il guest opera come se fosse privilegiato (es: i registri
del processore)
Compito della VMM 竪 gestire queste differenze
La VMM crea delle shadow structures derivandole dalle primary
structures che il guest vede
E molto semplice da fare per i registri della CPU
Le Page Table Entries (PTE) hanno una gestione ben pi湛
complessa
Paolo Campegiani () Virtualizzazione Linux Day 15 / 81
16. Trap and emulate: memory traces
1 Il guest prova ad accedere ad una area di memoria
2 Il gestore delleccezione di paginazione d il controllo alla VMM
1 True page faults: viene propagata leccezione al guest (ad esempio,
demand-paging)
2 Hidden page faults: non c竪 stata la violazione delle politiche di
accesso alla PTE, quindi occorre modi鍖care la shadow PTE. Il
guest non viene informato
Paolo Campegiani () Virtualizzazione Linux Day 16 / 81
17. Trap and emulate: pro e contro
E stato lapproccio standard al problema della virtualizzazione
Veri鍖ca le condizioni di Popek e Goldberg
E inef鍖ciente: ogni trap and emulate comporta un context switch
Paolo Campegiani () Virtualizzazione Linux Day 17 / 81
18. x86 e trap and emulate
Larchitettura x86 non consente di realizzare una virtualizzazione via
trap and emulate in modo ef鍖ciente.
Il guest pu嘆 determinare il suo livello di privilegio corrente (CPL)
leggendo gli ultimi due bit di %cs
popf eseguita in modo non privilegiato non azzera il 鍖ag IF
(interrupt delivery)
Nessuna di queste due istruzioni pu嘆 scatenare una trap
Paolo Campegiani () Virtualizzazione Linux Day 18 / 81
19. Binary translation (BT)
I sistemi non virtualization friendly richiedono che il guest sia eseguito
da un interprete e non dal processore 鍖sico.
Un binary translator opera come un compilatore pi湛 che come un
interprete.
Paolo Campegiani () Virtualizzazione Linux Day 19 / 81
20. Opzioni per la binary translation
Caso pi湛 fortunato: istruzione non privilegiata e virtualization
friendly:
Caso meno fortunato: istruzione non privilegiata ma critica
(mov %cs, ...)
Caso sfortunato: istruzione privilegiata
Paolo Campegiani () Virtualizzazione Linux Day 20 / 81
21. Binary translation: pro e contro
I pi湛 veloci virtualizzatori ricorrono tutti alla BT
Permette di non modi鍖care il sistema guest
Ha una complessit di funzionamento elevata
Paolo Campegiani () Virtualizzazione Linux Day 21 / 81
22. Paravirtualizzazione
E la modi鍖ca del sistema operativo guest in modo tale che la parte
che comunica con lhardware venga modi鍖cata per interrogare il
sistema host.
Le applicazioni non vengono alterate.
Paolo Campegiani () Virtualizzazione Linux Day 22 / 81
23. Paravirtualizzazione: pregi e difetti
Offre le maggiori prestazioni (perdite di performance di pochi punti
percentuali)
Richiede la modi鍖ca del sistema operativo guest
Paolo Campegiani () Virtualizzazione Linux Day 23 / 81
24. Processori virtualization aware
Sia Intel (VT-X) che AMD (SVM) hanno processori che forniscono un
supporto alla virtualizzazione:
Virtual Machine Control Block (VMCB) contiene una parte dello
stato del guest
vmrun carica lo stato nel VMCB ed esegue il guest
Lesecuzione prosegue 鍖nch竪 non si raggiunge una condizione
(programmabile dalla VMM) di exit, che viene gestita dalla VMM
Paolo Campegiani () Virtualizzazione Linux Day 24 / 81
25. Processori per virtualizzazione: pro e contro
E possibile virtualizzare anche quei sistemi operativi che non
sono paravirtualizzabili
Si tratta di un meccanismo simile al trap and emulate, e soffre
degli stessi problemi (context switch)
Le performance degradano allaumentare del numero degli exit,
che vanno ridotti al minimo
Ad esempio, non si esce ad ogni popf, ma si mette una copia
shadow di %eflags nella VMCB
Paolo Campegiani () Virtualizzazione Linux Day 25 / 81
26. QEmu
Opera sia come virtualizzatore che come cross-virtualizzatore:
Ogni istruzione originale da eseguire viene scomposta in micro
operazioni
Ogni micro operazione viene eseguita da un codice C
La conversione avviene per blocchi (Translated Blocks)
Occorre gestire il codice automodi鍖cante (pi湛 complicato su x86)
Paolo Campegiani () Virtualizzazione Linux Day 26 / 81
27. QEMU in azione: binary translation
addi r1,r1,-16 r1 = r1 - 16
1 movl_T0_r1 T0 = R1
2 addl_T0_im -16 T0 = T0 - 16
3 movl_r1_T0 r1 = T0
Paolo Campegiani () Virtualizzazione Linux Day 27 / 81
28. QEMU in azione: micro operazioni
movl_T0_R1
void op_movl_T0_R1(void) {
T0 = env->regs[1];
}
env->regs 竪 una struttura che contiene i 32 registri del processore
PowerPC emulato
Su x86, T0 竪 mappato sul registro ebx
Paolo Campegiani () Virtualizzazione Linux Day 28 / 81
29. QEMU: caratteristiche
Emula x86, SPARC, ARM, PowerPC
Gira su tutti i sistemi su cui gira Linux (o quasi, vedi x86_64)
E costituito da una parte userland e una con un modulo di kernel,
kqemu
kqemu non 竪 rilasciato sotto GPL
Permette di emulare pi湛 schede di rete
Paolo Campegiani () Virtualizzazione Linux Day 29 / 81
30. QEmu: installazione
1 Download di qemu e kqemu
2 tar xfvz qemu*.tar.gz
3 Spostare kqemu*tar.gz nella directory di qemu
4 tar xfvz kqemu*tar.gz
5 ./con鍖gure; make; make install
6 modprobe kqemu major=0 (major=0 solo per utenti Fedora/RH)
7 chmod 666 /dev/kqemu (anche via regole di udev)
Paolo Campegiani () Virtualizzazione Linux Day 30 / 81
31. QEMU: creazione dei dischi virtuali
Il tool qemu-img permette di creare un 鍖le sparso da utilizzare come
disco per il sistema virtualizzato:
qemu-img create scilla.img 5GB
crea il 鍖le scilla.img sparso di 5GB.
Paolo Campegiani () Virtualizzazione Linux Day 31 / 81
32. QEMU: operation starts!
Una semplice invocazione di qemu pu嘆 essere:
qemu -hda scilla.img -hdb shared.img -cdrom
/dev/cdrom -boot cdrom -usb
In cui come disco /dev/hda viene usato scilla.img, come disco /dev/hdb
viene usato shared.img, come cdrom viene usato /dev/cdrom, il boot 竪
appunto da cdrom e viene emulato anche lusb.
Paolo Campegiani () Virtualizzazione Linux Day 32 / 81
33. Il monitor di QEmu
Allinterno della 鍖nestra del sistema emulato, 竪 possibile invocare il
monitor di QEmu, che consente di compiere alcune operazioni:
Il monitor si invoca con ctrl-alt-2
Si esce dal monitor con ctrl-alt-1
Per espellere il cdrom: eject cdrom
Per sostituire il cdrom: change cdrom filename
C竪 la completion tab e lhistory
Per inviare una sequenza speci鍖ca: sendkey ctrl-alt-canc
Paolo Campegiani () Virtualizzazione Linux Day 33 / 81
34. QEmu: gestione delle immagini
Quello che per il sistema guest 竪 un 鍖le system, per il sistema
host 竪 un 鍖le
Il formato adottato da QEmu per il 鍖le 竪 diretto ed immediato,
quindi la copia di una immagine di sistema si fa usando cp
E possibile avere dei copy on write (COW)
Paolo Campegiani () Virtualizzazione Linux Day 34 / 81
35. QEMU: Con鍖gurazione della rete
QEmu ha due distinte modalit di emulazione della rete:
La user mode network stack, in cui lo stack di rete viene emulato
completamente via software
Utilizzo del tap device (richiede root)
Nella modalit user, lhost opera come 鍖rewall e come server DHCP
allindirizzo 10.0.2.2. I client prendono gli indirizzi a a partire da
10.0.2.15.
Paolo Campegiani () Virtualizzazione Linux Day 35 / 81
36. QEmu: un caso semplice
Vogliamo con鍖gurare un guest che esporti un servizio di rete (HTTP)
qemu -hda cariddi.img -redir tcp:8080:10.0.2.15:80
In questo modo le connessioni sulla porta 8080 dellhost saranno
riportate alla porta 80 del guest di indirizzo 10.0.2.15.
Paolo Campegiani () Virtualizzazione Linux Day 36 / 81
37. QEMU: complichiamo le cose /1
Vogliamo con鍖gurare due guest, che possano comunicare tra di loro
ma non con lhost. I due guest hanno un disco proprio ed uno
condiviso.
qemu -hda scilla.img -hdb shared.img -usb opzioni di
base
-net nic,macaddr=52:54:00:12:34:61 de鍖nisce una
scheda di rete con il MAC Address riportato
-net user,hostname=scilla de鍖nisce lhostname dato dal
DHCP
-net socket,listen=:10000 crea un punto di contatto tra i
guest
Le opzioni -net de鍖niscono quindi una VLAN. Si possono avere pi湛
VLAN.
Paolo Campegiani () Virtualizzazione Linux Day 37 / 81
38. QEMU: complichiamo le cose /2
Analogamente, laltro guest sar cos狸 con鍖gurato:
qemu -hda cariddi.img -hdb shared.img -usb
-net nic,macaddr=52:54:00:12:34:60
-net user,hostname=cariddi
-net socket,connect=127.0.0.1:10000 si aggancia al
punto di contatto creato
Risultato: i due guest avranno indirizzi 10.0.2.15 e 10.0.2.16, gli
hostname dati e sono in comunicazione con loro ma non con lhost.
Paolo Campegiani () Virtualizzazione Linux Day 38 / 81
39. QEMU: host only networking
E possibile collegare ogni guest solo allhost, usando /dev/tap per
avere migliori prestazioni:
1 tunctl -t tap1
2 ifconfig tap1 up
3 brctl addbr br1
4 brctl addif br1 tap1
5 ifconfig br1 172.25.0.1 netmask 255.255.255.0
broadcast 172.25.0.255
6 qemu -hda cariddi.img -net nic,vlan=0 -net
tap,vlan=0, script=qemu-ifup.sh
Questo approccio richiede di lavorare come root.
Paolo Campegiani () Virtualizzazione Linux Day 39 / 81
40. QEmu: qemu-ifup.sh
qemu-ifup.sh
#! /bin/sh
echo Executing qemu-ifup
/sbin/ifconfig $1 0.0.0.0 promisc up
echo Adding $1 to br1
/usr/bin/brctl addiff br1 $1
Non c竪 pi湛 un server DHCP, quindi ogni guest ha una scheda di rete
con鍖gurata in modo statico (ifconfig eth0 172.25.0.X).
Paolo Campegiani () Virtualizzazione Linux Day 40 / 81
41. QEmu: complichiamo molto le cose /1
Vogliamo sempre avere due guest, ognuno dei quali dotato di due
interfacce di rete:
La prima 竪 attivata da un DHCP e viene utilizzata per le
comunicazioni tra i due guest
La seconda viene utilizzata per comunicare con lhost
Paolo Campegiani () Virtualizzazione Linux Day 41 / 81
42. QEmu: complichiamo molto le cose /2
qemu -hda scilla.img -hdb shared.img
Prima VLAN
-net nic,macaddr=52:54:00:12:34:61 -net
user,hostname=scilla
-net socket,vlan=0,listen=:10000
Seconda VLAN
-net nic,vlan=1,macaddr=52:54:00:12:34:71
-net tap,vlan=1,script=qemu-tap.sh
-net socket,vlan=1,listen=:10001
Paolo Campegiani () Virtualizzazione Linux Day 42 / 81
43. QEmu: complichiamo molto le cose /3
qemu -hda cariddi.img -hdb shared.img
-net nic,macaddr=52:54:00:12:34:60 -net
user,hostname=scilla
-net socket,vlan=0,connect=127.0.0.1:10000
-net nic,vlan=1,macaddr=52:54:00:12:34:70
-net tap,vlan=1,script=qemu-tap.sh
-net socket,vlan=1,connect=127.0.0.1:10001
Paolo Campegiani () Virtualizzazione Linux Day 43 / 81
44. QEmu: complichiamo molto le cose /4
qemu-tap.sh
#! /bin/sh
/sbin/ifconfig $1 172.20.0.1
Le schede di rete dei guest si attiveranno staticamente
ifconfig eth1 172.20.0.X.
Paolo Campegiani () Virtualizzazione Linux Day 44 / 81
45. QEmu: pregi e difetti
Complesso da far funzionare (non abbiamo parlato della gestione
del 鍖rewall o di VDE)
Non 竪 particolarmente veloce
Molto compatto, il pacchetto 竪 di meno di 2 MB
Flessibile, emula anche architetture non x86
Paolo Campegiani () Virtualizzazione Linux Day 45 / 81
46. VMware
E una societ (sussidiaria di EMC2) che offre una famiglia di prodotti
dedicati alla virtualizzazione:
VMware player per eseguire macchine virtuali costruite da altri
(gratuito ma non libero)
VMware Server che permette di creare ed eseguire macchine
virtuali (gratuito ma non libero)
VMware GSX Server che 竪 un sistema operativo ed un
virtualizzatore (non gratuito)
VMware Infrastructure che offre gestione centralizzata, af鍖dabilit,
live migration
Paolo Campegiani () Virtualizzazione Linux Day 46 / 81
47. VMware server
Disponibile per Windows e Linux (32/64 bit)
Virtualizzatore per architetture x86
Rilasciato gratuitamente un anno fa circa (risposta a Xen?)
Ha un suo sistema di scripting
Paolo Campegiani () Virtualizzazione Linux Day 47 / 81
48. Installazione di VMware
1 Scaricare il pacchetto (rpm/tar.gz) dal sito di VMware (100 MB
circa)
2 Ottenere il numero di licenza
3 Installare il pacchetto
4 Eseguire /usr/bin/vmware-config.pl come root per
con鍖gurare il sistema (necessario ogni volta che si aggiorna il
kernel)
5 Gestire lavvio (chkconfig - -level 345 vmware off)
Paolo Campegiani () Virtualizzazione Linux Day 48 / 81
49. VMware: Network
Bridged networking: il guest 竪 in bridge con lhost
NAT: lhost opera come NAT per il guest
Host-only networking
Queste modalit non sono equivalenti in termini di velocit!
Paolo Campegiani () Virtualizzazione Linux Day 49 / 81
50. VMware: dischi virtuali
I dischi virtuali di VMware sono dei 鍖le .vmdk (formato non ingenuo).
Per creare un disco:
vmware-vdiskmanager -c per creare il disco
-s <dim> per speci鍖care la dimensione
-a lsilogic per speci鍖care un adattatore di tipo LSILogic
-t 0 per avere un unico 鍖le sparso per il disco
diskname.vmdk per speci鍖care il nome del disco
Paolo Campegiani () Virtualizzazione Linux Day 50 / 81
51. VMware: con鍖gurazione della macchina virtuale
La con鍖gurazione della macchina virtuale 竪 un 鍖le di testo con
estensione .vmx, con molti diversi parametri. E possibile ad esempio
de鍖nire pi湛 dischi collegati in multipath, usare laccelerazione gra鍖ca
3D della scheda video dellhost, con鍖gurare pi湛 schede di rete con
connessioni di tipo diverso.
Paolo Campegiani () Virtualizzazione Linux Day 51 / 81
52. VMware: pregi e difetti
E il virtualizzatore pi湛 diffuso e pi湛 performante
E gratuito ma non libero
E un server che gira in background
Paolo Campegiani () Virtualizzazione Linux Day 52 / 81
53. Xen
E un paravirtualizzatore sviluppato dalluniversit di Cambridge:
Supporta architetture x86
Windows viene virtualizzato con processori VT-x
E incluso in RHEL 5 e SuSE 10
Paolo Campegiani () Virtualizzazione Linux Day 53 / 81
54. I domini di Xen
Ogni macchina virtuale prende il nome di domain
Il dominio 0 竪 il sistema operativo host
Nel dominio 0 gira il demone xend
I domini sono gestiti via xm
Paolo Campegiani () Virtualizzazione Linux Day 54 / 81
55. Xen: uso delle risorse
Ogni dominio 竪 gestito da un 鍖le di con鍖gurazione che permette di
speci鍖care:
Dimensione della memoria
Numero di processori virtuali
Quali device a blocchi sono visti
Quali dispositivi PCI sono assegnati
Inoltre via xm 竪 possibile de鍖nire lo spazio di processore a
disposizione di ogni dominio.
Paolo Campegiani () Virtualizzazione Linux Day 55 / 81
56. Xen: interfacce di rete
Le interfacce di rete che lhost e i guest vedono sono sempre i familiari
ethN, ma ne vengono attivati altri:
Per il dominio Y, la sua interfaccia di rete X-esima 竪 mappata, per
lhost, su vifY.X
eth0 dellhost 竪 quindi vif0.0
eth0 del guest nel dominio 1 竪 vif1.0
eth1 del guest nel dominio 2 竪 vif2.1
Le vif0.X sono ulteriormente collegate a vethX (visibili solo
dallhost)
Uso del bridging per rendere i vari domini visibili ed autonomi
Paolo Campegiani () Virtualizzazione Linux Day 56 / 81
57. Xen: live migration
Xen consente di migrare un sistema guest da un nodo 鍖sico ad un
altro, mantenendo il guest sempre in funzione.
Un server Quake3 migra in modo quasi trasparente agli utenti (50 ms
di 鍖nestra temporale in cui varia il jitter dei pacchetti)
Un server web sotto SpecWeb migra in circa 1 minuto, riducendo il
throughput ma non il numero di client serviti.
Paolo Campegiani () Virtualizzazione Linux Day 57 / 81
58. OpenVZ
E la versione GPL su cui si basa Virtuozzo, il paravirtualizzatore di
SWSoft:
Il kernel del guest e quello dellhost sono modi鍖cati
Funziona solo con kernel Linux
Permette di de鍖nire dei Virtual Environments (VE)
Paolo Campegiani () Virtualizzazione Linux Day 58 / 81
59. OpenVZ: Virtual Environments
Ogni VE 竪 una entit separata dalle altre, con i propri:
File: librerie, applicazioni, dati
Utenti e gruppi, compreso root
Spazio dei processi, compreso init
Rete, compreso indirizzo IP e regole di 鍖rewalling e routing
Dispositivi
Oggetti IPC
Paolo Campegiani () Virtualizzazione Linux Day 59 / 81
60. OpenVZ: gestione delle risorse
Il punto di forza di OpenVZ 竪 la gestione delle risorse. Ogni VE:
Ha una quota di spazio disco
E eseguito da uno scheduler fair-share (a livello di VE)
ha associati dei beancounter, che permettono di controllare altri
tipi di risorse in modo granulare (/proc/user_beancounter)
Paolo Campegiani () Virtualizzazione Linux Day 60 / 81
61. OpenVZ: installazione
1 Installare il kernel OpenVZ ed alcuni programmi di gestione
2 Disabilitare SElinux, modi鍖care alcuni parametri via sysctl.conf e
abilitare il connection tracking sul VE0 (ovvero lhost)
3 Riavviare
4 Attivare il servizio vz
Paolo Campegiani () Virtualizzazione Linux Day 61 / 81
62. OpenVZ: i template
In ogni VE 竪 possibile installare una distribuzione di Linux
I template sono degli archivi che contengono il necessario per
fornire una distribuzione minimale
E possibile creare nuovi template
Ad un template sono associati dei metadati che lo descrivono
Paolo Campegiani () Virtualizzazione Linux Day 62 / 81
63. OpenVZ: installare un template gi fatto
1 Installare i software di gestione dei template (vzyum*)
2 Installare il pacchetto de鍖nente il template scelto (vztmpl-nome)
3 Copiare il sistema minimale (nome-template.tar.gz) in
/vz/template/cache/
Paolo Campegiani () Virtualizzazione Linux Day 63 / 81
64. OpenVZ: creare un VE
Ad ogni VE viene associato un numero. Per creare il VE 100 con
template centos-4-minimal e un dato indirizzo IP:
vzctl create 100 - -ostemplate centos-4-minimal
- -ipadd 192.168.1.100
E possibile speci鍖care limiti sulle risorse, moduli di iptables
accessibili, capabilities disponibili e salvare la con鍖gurazione del VE.
Paolo Campegiani () Virtualizzazione Linux Day 64 / 81
65. OpenVZ: operare con i VE
vzctl start NUM
vzctl exec NUM COMANDO
vzctl enter NUM (per uscire, exit)
vzctl stop NUM
vzctl destroy NUM
Paolo Campegiani () Virtualizzazione Linux Day 65 / 81
66. OpenVZ: live migration
E possibile trasferire un VE in funzione da un host ad un altro:
vzmigrate - -online <host-destinazione> NUM
Il trasferimento dei dati avviene via ssh.
E possibile eseguire questa operazione in pi湛 passi con un
meccanismo di checkpoint.
Paolo Campegiani () Virtualizzazione Linux Day 66 / 81
67. Quadrante
Velocita
OpenVZ
Hardware assisted?
Xen
VMware
QEmu
Eterogeneita
Paolo Campegiani () Virtualizzazione Linux Day 67 / 81
68. Af鍖dabilit
Una delle applicazioni tipiche dei sistemi virtualizzati 竪 lalta af鍖dabilit:
Se i dischi dei guest sono 鍖le che vengono ospitati da una SAN, 竪
possibile associare un guest ad un qualsiasi nodo 鍖sico che veda la
SAN.
In questo modo 竪 possibile intervenire 鍖sicamente sui nodi host senza
pregiudicare il servizio offerto dai guest, riallocandoli dinamicamente.
Paolo Campegiani () Virtualizzazione Linux Day 68 / 81
69. Af鍖dabilit: scenario attivo-passivo
In questo scenario, c竪 un sistema guest ospitato su un sistema host,
ed 竪 disponibile un sistema host di riserva.
Non 竪 un caso migliore di una normale con鍖gurazione attivo-passivo
ad alta af鍖dabilit.
Paolo Campegiani () Virtualizzazione Linux Day 69 / 81
70. Af鍖dabilit: scenario attivo-attivo
In questo scenario ci sono due sistemi guest ospitati su due sistemi
host, ognuno dei quali pu嘆 farsi carico dellesecuzione dellaltro guest.
Il vantaggio rispetto ad un sistema attivo-attivo pu嘆 risiedere nel fatto
che con due nodi 鍖sici vengono erogati due servizi indipendenti luno
dallaltro (ad esempio con sistemi operativi guest diversi).
Paolo Campegiani () Virtualizzazione Linux Day 70 / 81
71. Af鍖dabilit: scenario attivi-passivi
In questo scenario ci sono pi湛 nodi attivi ed un certo numero (anche
uno solo) di nodi passivi, che possono essere anche in standby (senza
guest). I nodi passivi acquisiscono i guest dei nodi attivi in situazione
critica.
In questo modo si ha una alta af鍖dabilit per una pluralit di servizi
distribuendone il costo tra tutti, minimizzando i duplicati.
Paolo Campegiani () Virtualizzazione Linux Day 71 / 81
72. Gestire lalta af鍖dabilit
Le migrazioni delle immagini avvengono se c竪 un direttore dorchestra
che:
monitora sia i sistemi 鍖sici che i guest
determina che tipo di failure c竪 stata e come reagire
mette in pratica la decisione presa (anche ricon鍖gurando
linfrastruttura di rete)
opera in modo distribuito per non essere un singolo punto di
fallimento
Paolo Campegiani () Virtualizzazione Linux Day 72 / 81
73. Sicurezza
La regola doro della sicurezza dice che un sistema 竪 sicuro tanto
quanto la sua componente pi湛 debole.
Quanto 竪 sicuro un sistema virtualizzato?
Paolo Campegiani () Virtualizzazione Linux Day 73 / 81
74. Componenti da analizzare per la sicurezza
In un sistema virtualizzato sono presenti:
il sistema host
il virtualizzatore
il sistema guest
La componente pi湛 insicura delle tre 竪 quella che rende il sistema
insicuro.
Paolo Campegiani () Virtualizzazione Linux Day 74 / 81
75. Quanto 竪 sicuro il vostro BIOS?
In una logica di virtualizzazione, lhost e il virtualizzatore sono simili al
BIOS, in quanto offrono un servizio al sistema operativo (guest).
Il BIOS 竪 una componente raramente aggiornata per la sicurezza,
completamente embedded, che ha il controllo della macchina (almeno
per un po di tempo), certamente con dei bachi.
Paolo Campegiani () Virtualizzazione Linux Day 75 / 81
76. Come rendere sicuro un sistema virtualizzato
Se non ci sono attacchi basati sulle debolezze del BIOS 竪 perch竪 il
BIOS 竪 accessibile solo in locale.
Se lhost e la VMM sono accessibili solo in locale, non si riduce la
sicurezza del guest.
E una condizione forte, ma va considerata in fase di progettazione di
una architettura virtualizzata.
Paolo Campegiani () Virtualizzazione Linux Day 76 / 81
77. Qualit di Servizio
Un possibile scenario di utilizzo:
Pluralit di servizi erogati
Variabilit estrema nei workload
Se i fornitori dei servizi sono virtualizzati, possono essere
spostati/raggruppati in funzione del workload a cui fanno fronte, per
soddisfare un Service Level Agreement.
Paolo Campegiani () Virtualizzazione Linux Day 77 / 81
78. Considerazioni 鍖nali - 1
La virtualizzazione 竪 un asset architetturale
Permette il consolidamento dei sistemi, la loro protezione e
compartimentazione
Consente di superare le limitazioni dovute alluso di un solo
sistema operativo (compatibilit hardware, applicazioni, ...)
Paolo Campegiani () Virtualizzazione Linux Day 78 / 81
79. Considerazioni 鍖nali - 2
La virtualizzazione 竪 una metodologia complessa
Le tecniche possibili sono diverse e hanno tradeoffs diversi
E comunque uno strato hw/sw in pi湛, con quindi aggiuntive
complessit di gestione
Sicurezza ed af鍖dabilit di queste soluzioni sono ancora dei
territori inesplorati
Paolo Campegiani () Virtualizzazione Linux Day 79 / 81
80. Una visione bucolica...
In una fattoria:
1 Il foraggio viene dato alle mucche
2 Le mucche producono il latte
3 Il latte viene venduto ai clienti
4 Il proprietario della fattoria 竪 contento
Paolo Campegiani () Virtualizzazione Linux Day 80 / 81
81. ...ma anche informatica
In un CED:
1 I sistemisti offrono risorse di calcolo agli applicativi
2 Gli applicativi sono usati dai clienti
3 I clienti pagano per luso
4 Il proprietario del CED 竪 contento
Date pi湛 foraggio alle vostre mucche!
Paolo Campegiani () Virtualizzazione Linux Day 81 / 81