Virtualizzazione - Università degli Studi di Roma "Tor Vergata"

Università degli Studi di Roma “Tor Vergata”
Facoltà di Ingegneria
•  M. Boari, M. Balboni, “Tecniche di virtualizzazione:
teoria e pratica”, Mondo Digitale, Marzo 2007.
•  J. Daniels, “Server virtualization architecture and
implementation”, Crossroads, September 2009.
•  M. Rosenblum, T. Garfinkel, “Virtual machine
monitors: current technology and future trends”, IEEE
Computer, May 2005.
•  J.E. Smith, R. Nair, “The architecture of virtual
machines”, IEEE Computer, May 2005.
Valeria Cardellini - SD A.A. 2011/12
1
•  Virtualizzazione: un livello alto di astrazione che
nasconde i dettagli dell’implementazione sottostante
•  Virtualizzazione: astrazione di risorse computazionali
–  Si presenta all’utilizzatore una visione diversa da quella reale
•  Le tecnologie di virtualizzazione comprendono una varietà
di meccanismi e tecniche usate per risolvere problemi di:
–  Sicurezza, affidabilità e prestazioni (isolamento della QoS), …
•  Come? Disaccoppiando l’architettura ed il comportamento
delle risorse percepiti dall’utente dalla loro realizzazione
fisica
Valeria Cardellini - SD A.A. 2011/12
2
•  Virtualizzazione delle risorse hw e sw di sistema
–  Macchina virtuale, …
•  Virtualizzazione dello storage
–  Storage Area Network (SAN), …
•  Virtualizzazione della rete
–  Virtual LAN (VLAN), Virtual Private Network (VPN), …
•  Virtualizzazione dell’infrastruttura
Valeria Cardellini - SD A.A. 2011/12
3
•  Una macchina virtuale (VM, Virtual Machine)
permette di rappresentare le risorse hw/sw di una
macchina diversamente dalla loro realtà
–  Ad es. le risorse hw della macchina virtuale (CPU, scheda di
rete, controller SCSI) possono essere completamente
diverse dai componenti fisici della macchina reale
•  Una singola macchina fisica può essere
rappresentata e usata come differenti ambienti di
elaborazione
–  Molteplici VM su una singola macchina fisica
Valeria Cardellini - SD A.A. 2011/12
4
•  Il concetto di VM è un’idea “vecchia”, essendo stato
definito negli anni ’60 in un contesto centralizzato
–  Ideato per consentire al software legacy (esistente) di
essere eseguito su mainframe molto costosi e condividere
in modo trasparente le (scarse) risorse fisiche
–  Ad es. il mainframe IBM System/360-67
•  Negli anni ’80, con il passaggio ai PC il problema
della condivisione trasparente delle risorse di
calcolo viene risolto dai SO multitasking
–  L’interesse per la virtualizzazione svanisce
Valeria Cardellini - SD A.A. 2011/12
5
•  Alla fine degli anni ’90, l’interesse rinasce per rendere
meno onerosa la programmazione hw specialpurpose
–  VMware viene fondata nel 1998
•  Si acuisce il problema dei costi di gestione e di
sottoutilizzo di piattaforme hw e sw eterogenee
–  L’hw cambia più velocemente del sw (middleware e
applicazioni)
–  Aumenta il costo di gestione e diminuisce la portabilità
•  Diventa nuovamente importante la condivisione
dell’hw e delle capacità di calcolo non usate per
ridurre i costi dell’infrastruttura
•  E’ oggigiorno una delle tecnologie abilitanti del Cloud
computing
Valeria Cardellini - SD A.A. 2011/12
6
•  Facilita la compatibilità, la portabilità e la migrazione
di applicazioni ed ambienti
–  Indipendenza dall’hw
–  Create Once, Run Anywhere
–  VM legacy: eseguire vecchi SO su nuove piattaforme
Valeria Cardellini - SD A.A. 2011/12
7
•  Permette il consolidamento dei server in un data
center, con vantaggi economici ed ambientali
–  Uso più efficiente delle risorse dei server nell’ottica di ridurre
il numero totale di server necessari ad una azienda e di
utilizzarli in modo più efficiente
Valeria Cardellini - SD A.A. 2011/12
8
•  Permette di isolare componenti malfunzionanti o
soggetti ad attacchi di sicurezza, incrementando
quindi l’affidabilità e la sicurezza delle applicazioni
–  Macchine virtuali di differenti applicazioni non possono avere
accesso alle rispettive risorse
–  Bug del software, crash, virus in una VM non possono
danneggiare altre VM in esecuzione sulla stessa macchina
fisica
•  Permette di isolare le prestazioni
–  Partizionamento delle risorse di sistema
Valeria Cardellini - SD A.A. 2011/12
9
•  A che livello realizzare la virtualizzazione?
•  Dipende fortemente dalle interfacce offerte dai vari
componenti del sistema
–  Interfaccia tra hw e sw (user ISA: istruzioni macchina non
privilegiate, invocabili da ogni programma) [interfaccia 4]
–  Interfaccia tra hw e sw (system ISA: istruzioni macchina
invocabili solo da programmi privilegiati) [interfaccia 3]
–  Chiamate di sistema [interfaccia 2]
•  ABI (Application Binary Interface):
interfaccia 2 + interfaccia 4
–  Chiamate di libreria (API) [interfaccia 1]
•  Obiettivo della virtualizzazione
–  Imitare il comportamento di queste
interfacce
Valeria Cardellini - SD A.A. 2011/12
Riferimento: “The architecture of virtual machines”
10
•  In base alle interfacce di astrazione distinguiamo:
–  Macchina virtuale di processo: virtualizzazione a livello di
processo
–  Monitor della macchina virtuale (VMM, Virtual Machine
Monitor) o anche hypervisor: virtualizzazione a livello di
sistema
–  Virtualizzazione a livello di sistema operativo
•  Considerando il VMM, distinguiamo:
– 
– 
– 
– 
VMM di sistema
VMM ospitato
Virtualizzazione completa
Paravirtualizzazione
Valeria Cardellini - SD A.A. 2011/12
11
•  Virtualizzazione solo per un singolo processo
–  La VM di processo è una piattaforma virtuale che esegue un
singolo processo
–  Fornisce un ambiente ABI o API virtuale per le applicazioni
utente
•  Il programma è compilato in un codice intermedio
(portabile), che viene successivamente eseguito nel
sistema runtime
•  Esempi: Java VM, Wine, .NET CLR Istanze multiple di combinazioni
<applicazione, sistema runtime>
Valeria Cardellini - SD A.A. 2011/12
12
•  Uno strato sw separato che scherma
completamente l’hw sottostante ed imita l’insieme di
istruzioni dell’architettura
•  Sul VMM possono essere eseguiti
indipendentemente e simultaneamente sistemi
operativi diversi
•  Esempi: VMware, Microsoft Virtual PC, Parallels,
VirtualBox, Xen
Istanze multiple di combinazioni
<applicazioni, sistema operativo>
Valeria Cardellini - SD A.A. 2011/12
13
•  Host: piattaforma di base sulla quale si realizzano
le VM; comprende:
–  Macchina fisica
–  Eventuale sistema operativo nativo
–  VMM
•  Guest: tutto ciò che riguarda ogni VM
–  Sistema operativo ed applicazioni
Valeria Cardellini - SD A.A. 2011/12
14
•  In quale livello dell’architettura di sistema collocare il
VMM?
guest
guest
–  direttamente sull’hardware (VMM di sistema o classico)
–  come applicazione su un SO esistente (VMM ospitato)
host
host
VMM di sistema
Valeria Cardellini - SD A.A. 2011/12
VMM ospitato
15
•  VMM di sistema: eseguito direttamente sull’hw, offre
funzionalità di virtualizzazione integrate in un SO
semplificato
–  E’ necessario corredare il VMM dei driver necessari per
gestire le periferiche
–  Esempi: VMware ESX, Xen
•  VMM ospitato: eseguito sul SO host, accede alle
risorse hw tramite le chiamate di sistema del SO host
–  Installazione più semplice
–  Può usare il SO sottostante per gestire le periferiche e può
utilizzare altri servizi offerti dal SO sottostante (es.
scheduling, gestione delle risorse)
–  Degrado delle prestazioni rispetto a VMM di sistema
–  Esempi: VMware Server, VirtualBox, Virtual PC, Parallels
Desktop
Valeria Cardellini - SD A.A. 2011/12
16
•  Quale modalità di dialogo tra la VM ed il VMM per
l’accesso alle risorse fisiche?
–  Virtualizzazione completa
–  Paravirtualizzazione
•  Virtualizzazione completa
–  Il VMM espone ad ogni VM interfacce hw simulate
funzionalmente identiche a quelle della sottostante macchina
fisica
–  Il VMM intercetta ogni richiesta di accesso privilegiato all’hw
e ne emula il comportamento atteso
–  Il VMM gestisce un contesto di CPU per ogni VM
–  Il VMM condivide le CPU fisiche tra tutte le VM
•  Il VMM comprende uno scheduler di VM
–  Esempi: KVM, VMware ESX
Valeria Cardellini - SD A.A. 2011/12
17
•  Quale modalità di dialogo tra la VM ed il VMM per
l’accesso alle risorse fisiche?
•  Paravirtualizzazione
–  Il VMM espone ad ogni VM interfacce hw simulate
funzionalmente simili (ma non identiche) a quelle della
sottostante macchina fisica
–  Non viene emulato l’hw, ma viene creato uno strato
minimale di sw (Virtual Hardware API) per assicurare la
gestione delle singole istanze di VM ed il loro isolamento
–  Esempi: PikeOS, Oracle VM, Xen
Per un confronto qualitativo delle diverse soluzioni per VM
http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines
Valeria Cardellini - SD A.A. 2011/12
18
•  Principale vantaggio
–  SO guest non modificato (non sa dell’esistenza del VMM)
•  Svantaggi
–  VMM più complesso
–  Collaborazione del processore per implementazione efficace
•  Perché?
•  L’architettura del processore opera secondo almeno 2
livelli (ring) di protezione: supervisore e utente
–  Solo il VMM opera nello stato supervisore, mentre il SO guest
e le applicazioni (quindi la VM) operano nello stato utente
•  Problema del ring deprivileging: il SO guest opera in uno stato
che non gli è proprio ! non può eseguire istruzioni privilegiate
•  Problema del ring compression: poiché applicazioni e SO guest
eseguono allo stesso livello, occorre proteggere lo spazio del SO
Valeria Cardellini - SD A.A. 2011/12
19
•  Come risolvere il ring deprivileging
–  Trap-and-emulate: se il SO guest tenta di eseguire un’istruzione
privilegiata, il processore notifica un’eccezione (trap) al VMM e
gli trasferisce il controllo; il VMM controlla la correttezza
dell’operazione richiesta e ne emula il comportamento
–  Si ha invece un’esecuzione diretta delle istruzioni non
privilegiate eseguite dall’ambiente guest
•  Ma il meccanismo di notifica al VMM per ogni istruzione
privilegiata è offerto solo dai processori con supporto
nativo alla virtualizzazione (Intel VT, AMD-V)
–  IA-32 non lo è! Come realizzare la virtualizzazione completa in
mancanza del supporto hw?
Fast binary translation: il VMM scansiona a runtime il codice prima della
sua esecuzione per sostituire blocchi contenenti istruzioni
problematiche con blocchi equivalenti dal punto di vista funzionale e
contenenti istruzioni per la notifica di eccezioni al VMM ! maggiore
complessità del VMM e minori prestazioni
Valeria Cardellini - SD A.A. 2011/12
20
•  Xen è l’esempio più noto di paravirtualizzazione
http://xen.org (sviluppato all’università di Cambridge)
–  Il VMM offre al SO guest un’interfaccia virtuale (hypercall API)
alla quale il SO guest deve riferirsi per aver accesso alle
risorse fisiche della macchina
–  Occorre rendere compatibile con Xen il kernel ed i driver del
SO guest
•  Soluzione preclusa ai sistemi operativi commerciali, a meno di
non avere un processore che supporti la virtualizzazione nativa
(gestita a partire da Xen 3.0)
–  Le applicazioni rimangono invece invariate
Valeria Cardellini - SD A.A. 2011/12
21
•  Vantaggi
–  Overhead minimo: in grado di fornire prestazioni molto
simili a quelle dell’esecuzione non virtualizzata
–  Supporta la migrazione live di macchine virtuali
•  Usato come VMM da molti provider di Cloud
pubbliche
–  Ad es. Amazon EC2, Rackspace Cloud
Valeria Cardellini - SD A.A. 2011/12
22
•  Finora considerata virtualizzazione a livello di sistema (ISA)
•  La virtualizzazione a livello di SO permette l’esecuzione
all’interno di un singolo SO di molteplici ambienti di
esecuzione tra di loro isolati
–  Detti Virtual Environment (VE), container, partition, …
–  Ciascun VE ha un
proprio insieme di
processi, file system,
utenti, interfacce di rete
con indirizzi IP, tabelle di
routing, …
Valeria Cardellini - SD A.A. 2011/12
23
•  Vantaggi
–  Degrado di prestazioni pressoché nullo
•  Normali chiamate di sistema
–  Elevata densità
•  Centinaia di istanze su una singola macchina fisica
•  Svantaggio: minore flessibilità
–  Non permette di eseguire allo stesso tempo kernel di differenti SO
•  Esempi: FreeBSD Jail, Solaris Zones/Containers, LinuxVServer, OpenVZ (per Linux), Parallels Virtuozzo
Valeria Cardellini - SD A.A. 2011/12
24
•  Validi per virtualizzazione sia a livello hw sia a livello
di SO
•  In ambito personale
•  In ambito didattico
•  In ambito professionale
–  Per ambienti di test e sviluppo di applicazioni
•  In ambito aziendale
–  Per il consolidamento dei server e dei data center
–  Per business continuity: ridurre i costi e la complessità
incapsulando interi sistemi in singoli file (system image)
che possono essere replicati e reinstallati su qualsiasi
server
Valeria Cardellini - SD A.A. 2011/12
25
•  PlanetLab: un sistema distribuito collaborativo
caratterizzato da virtualizzazione distribuita
http://www.planet-lab.org/
–  Ampio insieme di macchine sparse su Internet
•  Più di 1000 nodi in oltre 500 siti
–  Usato come testbed per sperimentare sistemi ed
applicazioni distribuite su scala planetaria in un ambiente
reale
–  Alcuni esempi di sistemi ed applicazioni testati su PlanetLab
• 
• 
• 
• 
• 
Distributed Hash Table (Chord, Tapestry, Pastry, Bamboo, …)
Content Distribution Network (CoDeeN, …)
Virtualizzazione ed isolamento (Denali, …)
Multicast di livello applicativo (Scribe, …)
Misure di rete (Scriptroute, I3, …)
•  M-Lab: nuova piattaforma per lo sviluppo di strumenti
di misura in Internet, è un’evoluzione di PlanetLab
Valeria Cardellini - SD A.A. 2011/12
26
•  Organizzazione di base di un nodo PlanetLab
–  Ogni nodo ospita una o più macchine virtuali
–  VMM, parte di un SO Linux esteso
•  Virtualizzazione a livello di sistema operativo
–  Vserver: ambiente separato in cui può essere eseguito un
gruppo di processi
•  Completa indipendenza, concorrenza ed isolamento tra
processi in vserver diversi
Riferimento: L. Peterson, T. Roscoe, “The design principles of PlanetLab”,
Operating Systems Review, 40(1):11-16, Jan. 2006.
Valeria Cardellini - SD A.A. 2011/12
27
•  Un’applicazione in PlanetLab viene eseguita in una
slice della piattaforma
–  Slice: insieme di vserver (in esecuzione su nodi diversi), su
ciascuno dei quali l’applicazione riceve una frazione delle
risorse del nodo sotto forma di VM; assimilabile ad un cluster
di server virtuali
•  Virtualizzazione distribuita: insieme distribuito di VM
che sono trattate dal sistema come un’entità singola
–  Programmi appartenenti a slice diverse, ma in esecuzione
sullo stesso nodo, non interferiscono gli uni con gli altri
–  Molteplici esperimenti possono essere eseguiti
simultaneamente su PlanetLab
Valeria Cardellini - SD A.A. 2011/12
28
•  Migrazione di codice
–  In sistemi omogenei
–  In sistemi eterogeni
•  Migrazione di macchine virtuali
Valeria Cardellini - SD A.A. 2011/12
29
•  Nei SD la comunicazione può non essere limitata al
passaggio dei dati, ma riguardare anche il passaggio
di programmi, anche durante la loro esecuzione
•  Motivazioni per la migrazione del codice
–  Bilanciare o condividere il carico di lavoro
–  Risparmiare risorse di rete e ridurre il tempo di risposta
processando i dati vicino a dove risiedono
–  Sfruttare il parallelismo
–  Configurare dinamicamente il SD
Valeria Cardellini - SD A.A. 2011/12
30
•  Processo composto da tre segmenti
–  Segmento del codice
•  Le istruzioni del programma in esecuzione
–  Segmento delle risorse
•  I riferimenti alle risorse esterne di cui il processo ha bisogno
–  Segmento dell’esecuzione
•  Lo stato del processo (stack, PC, dati privati)
•  Alcune alternative per la migrazione
–  Mobilità leggera o mobilità forte
•  Leggera: trasferito solo il segmento del codice
•  Forte: trasferito anche il segmento dell’esecuzione
–  Migrazione iniziata dal mittente o avviata dal destinatario
–  Nuovo processo per eseguire il codice migrato o clonazione
•  Esempi: migrazione di processi in MOSIX
•  Argomento approfondito a Sistemi Informatici Mobili
Valeria Cardellini - SD A.A. 2011/12
31
•  In ambienti eterogenei, la macchina di destinazione
può non essere in grado di eseguire il codice
–  La definizione del contesto di processo, thread e processore
è fortemente dipendente dall’hw, dal SO e dal sistema
runtime
•  Quale soluzione per migrare in ambienti eterogenei?
Usare una macchina virtuale
–  Macchina virtuale di processo
–  Monitor di macchina virtuale
Valeria Cardellini - SD A.A. 2011/12
32
•  Migrazione di istanze di macchine virtuali tra macchine
fisiche
–  Live migration: la VM è in funzione durante la migrazione
–  Occorre migrare memoria, storage e connessioni di rete in
modo trasparente alle applicazioni in esecuzione
•  Per migrare lo storage:
–  Il VMM salva tutti i dati della VM sorgente in un file di
immagine, che viene trasferito sulla VM di destinazione
•  Per migrare la memoria:
–  Fase di warm-up: il VMM copia le pagine da VM sorgente a VM
di destinazione mentre la VM sorgente è in esecuzione
–  Fase di stop-and-copy: la VM sorgente viene fermata e
vengono copiate soltanto le pagine dirty
–  Tempo di downtime: da qualche msec a qualche sec, in
funzione della dimensione della memoria, delle applicazioni e
della banda di rete tra le VM
Valeria Cardellini - SD A.A. 2011/12
33
•  Vantaggi rispetto alla migrazione del codice
–  La macchina fisica originale può essere smantellata
–  Trasferimento consistente ed efficiente dello stato inmemory
•  Esempi:
–  Supportata da alcune soluzioni già considerate (KVM,
OpenVZ, Xen, VirtualBox, Virtuozzo)
–  Come prodotto extra: VMware vMotion
Valeria Cardellini - SD A.A. 2011/12
34