Elaborato Esposito Alfonso N46000501

Transcript

Elaborato Esposito Alfonso N46000501
Sommario
Lista degli acronimi ............................................................................................................................. 3
1.
Introduzione .................................................................................................................................. 4
1.1 Tecniche di migrazione: pre-copia, sospendi e copia, post-copia.............................................. 5
1.2 Perché si sfrutta la migrazione? ................................................................................................. 6
1.3 Gestione della migrazione .......................................................................................................... 8
2. Differenza tra migrazione su rete LAN e WAN ............................................................................ 12
3. Tecniche di migrazione utilizzando XEN ...................................................................................... 13
3.1 Migrazione della memoria ....................................................................................................... 14
3.2 Migrazione delle risorse ........................................................................................................... 16
3.3 Panoramica di progettazione .................................................................................................... 16
3.4 Ottimizzazione della para virtualizzazione .............................................................................. 18
4. Migrazione attraverso rete WAN ................................................................................................... 19
4.1 Casi d’uso della migrazione WAN .......................................................................................... 19
1
4.2 Step per la migrazione su WAN .............................................................................................. 22
4.3 Migrazione del disco e della memoria ..................................................................................... 23
4.4 Ottimizzazione della memoria ................................................................................................. 24
5. Gestione dinamica delle pagine di memoria .................................................................................. 26
5.1 Potenziali problemi con la migrazione in tempo reale ............................................................. 27
5.2 Algoritmo per maggiori prestazioni alla migrazione in tempo reale ....................................... 28
5.3 Miglioramento dell’algoritmo .................................................................................................. 28
6 Esempio di migrazione e calcolo delle prestazioni ......................................................................... 31
7 Conclusioni ..................................................................................................................................... 37
Bibliografia ........................................................................................................................................ 38
2
Lista degli acronimi

NIST: National Institute of Standard Technology

NIC: Network Interface Controller

VM: Virtual Machine

CPU: Central Processing Unit

RAM: Random Access Memory

NFS: Network File System

NAS: Network Attached Storage

SAN: Storage Area Network

TCP: Transmission Control Protocol

IP: Internet Protocol

GPL: General Public License

VCP: Virtual Cloud Pools

LAN: Local Area Network

WAN: Wide Area Network

VPN: Virtual Private Network

CBR: Content Based Redundancy

KVM: Kernel based Virtual Machine

WWS: Writable Working Set
3
1. Introduzione
Il Cloud Computing, secondo il National Institute of Standards and Technology (NIST): è
un modello per rendere possibile un accesso via rete, su richiesta e in maniera conveniente, a
un insieme condiviso di risorse configurabili (ad esempio reti, server, storage, applicazioni e
servizi) che possono essere rapidamente fornite e rilasciate con costi di gestione o
interazioni con il fornitore minimali1. L’ambito è quello di calcolo distribuito e lo scenario è,
quindi, quello di un utente che con un qualsiasi device (PC, tablet, smartphone) ed una
connessione ad Internet può accedere al cloud che gli fornisce tutti i servizi e i dati richiesti2.
Il termine cloud computing, quindi, indica un paradigma di erogazione di risorse
informatiche, come l'archiviazione, l'elaborazione o la trasmissione di dati, caratterizzato
dalla disponibilità on-demand attraverso Internet da un insieme di risorse preesistenti e
configurabili. Alla base del cloud computing c’è la virtualizzazione, termine con il quale si
riferisce alla possibilità di astrarre i componenti hardware, cioè fisiche, degli elaboratori al
fine di renderle disponibili al software in forma di risorsa virtuale. Tramite questo processo è
quindi possibile installare sistemi operativi su hardware virtuale; l'insieme dei componenti
hardware virtuali (Hard Disk, RAM, CPU, NIC) prende il nome di macchina virtuale e su di
esse può essere installato il software come, appunto, i sistemi operativi e relative
applicazioni. Tale tecnica è applicabile sia su sistemi desktop che su sistemi server. La
virtualizzazione è l’espressione di un trend in evoluzione negli ultimi anni in ambito
informatico che, comunque, affonda le sue radici nel passato, come qualsiasi avvenimento
legato alla tecnologia. Si tratta di un sistema di tipo time-sharing che consente a più utenti di
accedere allo stesso computer e i suoi inizi si datano intorno agli anni 60’, quando in
aziende, come IBM per esempio, nasceva l’esigenza di consolidare i numerosi server, sparsi
fisicamente, in un’unica macchina fisica, lasciando inalterate le caratteristiche principali
(indirizzo IP, servizi, ecc.) ma riducendo fortemente il consumo elettrico. I sistemi di
virtualizzazione non sono stati semplici da implementare. Inizialmente, infatti, la maggior
1
National Institute of Standards and Technology (NIST). http://www.nist.gov/
2
7th FLOOR. Cloud Computing: l’ultimo trend di Internet. http://www.7thfloor.it/2007/10/04/cloudcomputing-lultimo-trend-di-internet
4
parte degli ingegneri aveva pensato di rendere i sistemi operativi tradizionali maggiormente
interattivi al fine di permettere a più utenti di entrare nello stesso sistema, ma in questo
modo il sistema operativo stesso diventava estremamente complesso. Un gruppo d’ingegneri
IBM di Cambridge, Mass., adottò poi un nuovo approccio che permetteva a ciascun utente di
accedere allo stesso sistema attraverso una propria macchina virtuale (VM). In tal modo non
si ravvisava difficoltà nell’implementazione del sistema operativo perché doveva supportare
un singolo utente. Tecnicamente, con il termine virtualizzazione s’intende la possibilità di
astrarre le componenti hardware degli elaboratori al fine di renderle disponibili al software
in forma di risorsa virtuale.
1.1 Tecniche di migrazione: pre-copia, sospendi e copia, post-copia
La virtualizzazione è la caratteristica principale del Cloud Computing, così come i thread
sono stati introdotti per fornire l'illusione, come se all'interno di un computer fosse in
esecuzione simultaneamente più attività, e ciascuna di esse utilizzasse tutte le risorse
disponibili. All'interno di un cloud è necessario eseguire applicazioni per utenti multipli
contemporaneamente, in cui in ciascuna di essa si possono utilizzare tutte le risorse
disponibili. La virtualizzazione consente che ogni applicazione sia incapsulata, in modo tale
da poterla configurare, distribuire, lanciare, migrare, sospendere, stoppare, ecc... Tutto
questo fornisce una migliore sicurezza, gestione e isolamento, quindi la migrazione “live”
dello stato delle macchine virtuali da una macchina fisica a un’altra, può ridurre le
condizioni di sovraccarico e consentire attività di manutenzione senza interruzioni.
Esistono diverse tecniche per la migrazione live:
Pre-Copy: questa strategia consiste nel traferire, verso il nodo destinatario, le pagine di
memoria non in uso prima che il processo sia congelato per la migrazione. In questo modo il
tempo in cui il processo resta bloccato è ridotto ulteriormente e, una volta trasferito, trova
subito a disposizione la maggior parte delle pagine di memoria. L’operazione di migrazione
è pertanto rimandata fino al momento in cui non è raggiunta una certa soglia di pagine di
5
memoria copiate nel nodo destinatario. Le pagine restanti sono trasferite insieme al processo
con un’operazione di Sospendi e Copia. Tutto il processo avviene in tempo reale.
Sospendi e Copia: In questo processo la macchina virtuale da migrare è sospesa sul server
di origine. Viene, quindi, spostata sul server di destinazione, dove riprenderà il suo
funzionamento. A differenza dalla prima tecnica, quest’ultima non avviene in tempo reale,
in altre parole tutti i servizi sono fermati prima della migrazione e riattivati quando tutto il
processo è terminato.
Post-Copia: in questo processo, lo stato della macchina virtuale da trasferire è copiato dal
server di origine a quello di destinazione dove sarà avviato. Le pagine di memoria, invece,
saranno trasferite su richiesta, man mano che la macchina virtuale ne richiederà l’utilizzo.
Anche questo tipo di tecnica avviene in tempo reale ma è sconsigliato su reti di grosse
dimensioni, in cui c’è un grande afflusso di dati sulla rete che potrebbe provocare
rallentamenti ai trasferimenti delle pagine di memoria.
Dobbiamo tener presente che lo scopo delle tecniche di migrazione in tempo reale è quello
di ridurre al minimo i tempi d’inattività dei sistemi. Per comprovare questo bisogno, si
preferisce utilizzare il processo di Pre-Copia in modo tale che le macchine virtuali hanno
tempi d’inattività minimi e rimangono in esecuzione durante il processo di migrazione.
1.2 Perché si sfrutta la migrazione?
La migrazione dei processi acquista una particolare utilità in cluster di computer e, più in
generale, nei Sistemi Distribuiti e in tutte quelle situazioni in cui si richiede che più
elaboratori uniscano le proprie potenze di calcolo per operare in parallelo. Affinché questo
parallelismo di calcolo sia effettivo, ci si aspetta che i sistemi siano capaci di coordinarsi ed
eventualmente bilanciare il carico di lavoro tra le macchine disponibili3.
3
M. Rasit Eskicioglu. Design Issues of Process Migration Facilities in Distributed Systems. In Scheduling and
Load Balancing in Parallel and Distributed Systems, 1995.
6
Il primo passo da compiere nella migrazione di una macchina virtuale, è quello di
determinare le risorse necessarie da impegnare sulla macchina di destinazioni. Una volta che
queste risorse sono state determinate, un passo di approvvigionamento sceglie il “luogo”
dove la macchina virtuale sarà istanziata. Fatto ciò, una risorsa di monitoraggio e degli
indicatori di performance relativi alle applicazioni seguono l'utilizzo delle risorse. Sotto
condizioni di carico dinamico, le macchine virtuali possono sperimentare "hot spot" (risorse
insufficienti a soddisfare le richieste di prestazioni) e "cold spot" (sovradimensionamento
delle risorse con basso utilizzo). Lo spostamento delle macchine virtuali al fine di assegnare
più risorse (per alleviare gli “hot spot”) o consolidare le macchine virtuali su un numero
minore di macchine è attivata tramite la migrazione. Da una prospettiva del provider di
servizi cloud, alleviare gli hot spot è essenziale per riuscire a soddisfare gli impegni con i
clienti e di affrontare i “cold spots” utilizzando le risorse (compresi consumi) in modo
efficiente4. Le motivazioni per cui la migrazione è adottata possono essere classificate nel
modo seguente:

Consolidamento dei server: l’obiettivo è di evitare la proliferazione dei server
“raggruppando” le macchine virtuali su un numero inferiore di macchine, in modo da
sfruttare al meglio le risorse, e avere macchine libere in caso di necessità.

Bilanciamento del carico: l’obiettivo è di bilanciare il carico su tutte le macchine
ottenendo delle pari capacità di risorse per utilizzarle in caso di successive richieste.

Migrazione degli “hot spot”: un “hot spot” è la condizione di sovraccarico della
macchina fisica. È intesa anche quando le prestazioni di una macchina scendono al di
sotto di una soglia minima accettabile e le risorse disponibili non sono in grado di
“alleviare” gli hot spot; si può optare nella migrazione su altre macchine che hanno
risorse sufficienti per attenuare questo fenomeno.
4
Vatsal Shah, Viral Kapadia. Load Balancing by Process Migration in Distributed Operating System.
International Journal of Soft Computing and Engineering, Marzo 2012.
7
1.3 Gestione della migrazione
Per ciascuno dei tre obiettivi – consolidamento, bilanciamento del carico e migrazione degli
“hot spot” – le macchine virtuali euristiche basate sulla migrazione devono affrontare tre
importanti questioni:

Quando migrare

Quali macchine virtuali devono migrare

L’insieme delle macchine di destinazione
La migrazione euristica riguarda diversi vincoli: l’impatto sulle applicazioni durante la
migrazione, il raggiungimento degli obiettivi prefissati, l’aumento dell’uso delle risorse e
così via.
Quando migrare
Ci sono molte situazioni in cui la migrazione delle macchine virtuali diventa necessaria per
mantenere la complessiva efficienza del data center.
Periodicità: le migrazioni possono essere fatte periodicamente, per esempio alcuni data
center, in alcune parti del mondo, possono essere utilizzati durante il giorno ed alleggeriti
durante la notte. Quest’utilizzo “giornaliero” fa in modo che le risorse siano spostate, in
modo da essere più vicine agli utenti così da ridurre i ritardi di comunicazione.
Causati da “hot spot”: la rivelazione di un “hot spot” può essere fatta in modo sia,
preventiva che reattiva. Le tecniche di rilevazione preventiva si basano sull’analisi
8
dell’utilizzo delle risorse o, nel caso di tecniche preventive più sofisticate, della quantità di
richieste in arrivo. Se queste richieste aumentano, c’è la probabilità che si possa verificare
un “hot spot” poiché aumenterà la richiesta di risorse. Le tecniche di rilevazione reattiva,
invece, prevedono tecniche più mirate come l’uso della CPU, della memoria e così via. Un
“hot spot” può essere alleviato assegnando altre risorse alla macchina virtuale. Se questo
non è possibile, allora si esegue la migrazione presso un’altra macchina.
Eccesso delle risorse: i data center che hanno questo eccesso di risorse, hanno un utilizzo
poco efficiente delle stesse. Queste vengono monitorare da un supervisore che controlla il
loro effettivo utilizzo. Quando l’uso delle risorse scende sotto una certa soglia, sono attivate
le migrazioni, in modo da accorpare le macchine virtuali, liberando del tutto le macchine
sottoutilizzate e risparmiando energia.
Squilibrio di carico: le macchine virtuali modificano dinamicamente il loro carico; questo è
monitorato costantemente in modo da intervenire, in maniera efficiente, il prima possibile.
Se c’è una grande differenza nell’utilizzo dei diversi livelli, in bilanciamento del carico è
attivato, spostando macchine virtuali da sistemi molto carichi a quelli meno carichi. Infatti,
un sovraccarico delle macchine comporta un ritardo nei servizi, mentre un sistema poco
carico comporta uno spreco di risorse.
Quali macchine virtuali devono migrare
Selezionare quale macchina virtuale deve migrare è un’operazione cruciale nella gestione
euristica delle risorse. Il processo di migrazione comporta la non disponibilità di questa
macchina virtuale, oltre al consumo di rete e di CPU della macchina di origine e di
destinazione. Le prestazioni delle macchine virtuali sulle macchine fisiche di origine e di
destinazione sono interessate da un diverso fabbisogno di risorse durante la migrazione. Un
9
primo approccio è di considerare le macchine virtuali con un numero limitato di risorse, altri
utilizzano un approccio più olistico in cui sono valutate le macchine virtuali presenti sulla
macchina fisica prima della migrazione.
Risorse limitate per la macchina virtuale: è il caso più semplice per individuare la
macchina virtuale candidata per la migrazione. Se la risorsa locale non soddisfa i requisiti
della macchina virtuale, allora si esegue la migrazione. Questa scelta non è semplice quando
c’è più di una macchina virtuale.
Approccio olistico: durante un “hot spot” non è semplice scegliere la macchina virtuale per
eseguire la migrazione. Si consideri il caso in cui una macchina virtuale consuma un grande
quantitativo di memoria, il tempo di migrazione sarebbe troppo elevato. Se invece la scelta
ricade su una macchina che sfrutta una quantità di memoria inferiore, anche il tempo per la
migrazione sarà inferiore. Oltre a questo, la memoria liberata potrà essere assegnata a
un’altra macchina virtuale. Questo procedimento prevede una visione olistica di tutte le
macchine virtuali presenti sul sistema e i relativi fabbisogni di risorse. Le macchine virtuali
potrebbero essere ordinate in base alla loro disponibilità di risorse, in modo da poter essere
selezionate più efficacemente in caso di migrazione. Possiamo vedere che tale approccio
olistico prevede la conoscenza delle esigenze di risorse sia delle macchine fisiche, che di
quelle virtuali in modo da poterle confrontare tra di loro. In altre parole, essi distinguono le
macchine virtuali sulla base della dimensione delle risorse impiegate. Quando vi sono più
tipi di risorse (memoria, CPU, I/O) il confronto diventa più difficile. Uno dei modi per
confrontare queste risorse è mediante il calcolo del volume:
volume=
con 0≤cpu≤1, 0≤mem≤1 e 0≤net≤1
10
dove cpu, mem e net sono rispettivamente la velocità del processore, la memoria e la banda
disponibile. Questi valori sono ottenuti dividendo ogni singolo valore per il loro valore
massimo (
).
Dove migrare
Durante la migrazione, la macchina di destinazione dovrebbe avere risorse necessarie per
sostenere la macchina in arrivo.
Disponibilità delle risorse: non è sufficiente considerare solo la disponibilità delle risorse
di destinazione; devono essere presi in considerazione anche altri fattori come per esempio
se la destinazione è la migliore per la macchina virtuale oppure considerare le sue
prestazioni. La selezione della macchina di destinazione per ridurre al minimo lo spreco di
risorse è oggetto di ricerche. Gli schemi euristici sfruttano il calcolo vettoriale, che è
effettuato come il prodotto scalare sui vettori per trovare la destinazione migliore. Le
macchine virtuali e fisiche sono ordinate in base ai loro requisiti, poi è applicato questo
schema per selezionare il candidato più idoneo.
Affinità delle macchine virtuale: la destinazione è scelta basandosi esclusivamente sulla
base della disponibilità delle risorse. Queste decisioni sono prese in base alla memoria, che è
considerata come l’impronta digitale di ogni macchina virtuale. La migrazione di alcune
macchine virtuali può migliorare la condivisione della memoria ma può comportare un
sovraccarico della migrazione. La logica alla base di questo procedimento è che le macchine
virtuali che sfruttano la condivisione della memoria, comportano un minor utilizzo della
stessa. Allo stesso modo, se una macchina virtuale comunica con un’altra macchina virtuale
presente su un’altra postazione, una di queste macchine deve trasferirsi, dove risiede l’altra,
così da minimizzare l’uso della rete per le comunicazioni.
11
2. Differenza tra migrazione su rete LAN e WAN
Fino ad ora si è considerata solo la migrazione di macchine virtuali risiedenti in una stessa
rete locale. In realtà, i data center possono essere sparsi in tutto il mondo. In questo caso, la
migrazione mostra alcuni aspetti interessanti, mostrati qui di seguito.
Migrazione dell’archivio: le macchine virtuali all’interno di una rete locale condividono lo
stesso archivio sfruttando i vari meccanismi NFS, NAS o SAN. In caso di migrazione
bisogna spostare solo la memoria centrale. Nel caso, invece, di migrazione su rete WAN,
oltre alla memoria centrale bisognerà spostare anche questi archivi. Nel caso in cui manca
una rete ad alta velocità, questa procedura può portare a un’interruzione del servizio
piuttosto prolungata.
Riconfigurazione della rete: diversamente dalla rete locale, l’accesso a una rete più ampia
comporta una riconfigurazione dei parametri di accesso. Entrando in una nuova sottorete si
forza la macchina a ottenere un nuovo indirizzo IP, modificando le connessioni esistenti. Il
problema fondamentale è che la riconfigurazione degli indirizzi IP non sempre è supportata
dai protocolli di rete. Una soluzione alternativa alla riconfigurazione della rete è quella di
fornire dei meccanismi per risolvere il problema del protocollo di rete, fornendo
un’astrazione della rete stessa come una rete locale LAN in cui le macchine virtuali
mantengono il loro indirizzo IP.
12
3. Tecniche di migrazione utilizzando XEN
Migrare l’istanza del sistema operativo è un'operazione alquanto interessante poiché
permette una completa separazione tra lo stato software e quello hardware. Questo facilita le
operazioni di gestione degli errori e bilanciamento del carico. Nella maggior parte delle
migrazioni, i sistemi rimangono attivi per tutta la durata dell'operazione, garantendo, quindi,
un servizio continuato agli utenti. Vediamo, in questa sezione com’è attuata la migrazione in
tempo reale su sistemi basati su Xen, i loro vincoli e le loro prestazioni.
Xen è un ipervisore di macchine virtuali Open Source rilasciato sotto licenza GPL per
piattaforma x86 e compatibili (al momento è in corso il supporto alle famiglie dei processori
x86-64 e per IA-64) sviluppato presso il Computer Laboratory dell'Università di Cambridge.
Consente una completa emulazione hardware senza andare a ridurre in modo drastico le
risorse del sistema, emulando sistemi operativi diversi tra loro.
Nel complesso, la migrazione delle macchine virtuali è uno strumento molto potente perché
pone una netta separazione tra l'hardware e il software. Nel caso di manutenzione di un
server, le istanze del sistema operativo possono essere migrate su un'altra macchina, cosi
come possono essere spostate su altri server nel caso di sovraccarico. In questo caso, la
combinazione tra virtualizzazione e migrazione, migliora notevolmente la gestione delle
risorse.
La progettazione per Xen fa conto dei compromessi delle problematiche che si possono
riscontrare in rete. In primo luogo, si prendono in considerazione le migrazioni in tempo
reale; è di fondamentale importanza ridurre i tempi d’inattività in cui i servizi non sono
disponibili. In secondo luogo, è considerato il tempo totale di migrazione. Inoltre dobbiamo
fare in modo che la migrazione non interrompa i servizi con le relative risorse (ad esempio
CPU, memoria o la rete).
13
Raggiungiamo quest’obiettivo tramite un approccio chiamato pre-copy, in cui vengono
iterativamente copiate dalla macchina sorgente alla macchina di destinazione senza fermare
l’esecuzione dei servizi. Un livello hardware e un algoritmo sono utilizzati per garantire
l’integrità delle pagine e limitare l’impatto dell’utilizzo della rete. La fase finale comprende
la copia delle rimanenti pagine e l’avvio della macchina virtuale sulla macchina di
destinazione.
Ad alto livello, possiamo considerare una macchina virtuale come un modo per incapsulare
l’accesso alle risorse fisiche. La migrazione in tempo reale porta a concentrarsi sulle risorse
utilizzate maggiormente dai processi: la memoria, il disco e la rete.
3.1 Migrazione della memoria
La migrazione della memoria può essere eseguita in vari modi. L’operazione deve avvenire
in modo che bilanci i requisiti minimi di tempo d’inattività e tempo di migrazione. Il primo,
è il tempo in cui i servizi sono inattivi, ed è direttamente visibile all’utente. Il secondo, è il
tempo necessario alla migrazione e termina quando la macchina virtuale è avviata sull’host
di destinazione, mentre quello sull’host di origine è spento.
È possibile generalizzare il trasferimento della memoria in tre fasi:
Push phase: la macchina virtuale continua a funzionare mentre le pagine vengono spinte
sulla rete, verso l’host di destinazione. Per mantenere la coerenza della memoria, le pagine
modificate durante questo processo, devono essere ri-inviate.
14
Stop and copy phase: la macchina virtuale è fermata sulla macchina di origine, sono
copiate le pagine rimanenti, infine la macchina virtuale è avviata sulla macchina di
destinazione.
Pull phase: sulla nuova macchina virtuale, se si vuole accedere a una pagina non ancora
copiata, è eseguita una richiesta della pagina, attraverso la rete, alla macchina di origine.
Le soluzioni più pratiche sono quelle in cui si adotta una o due delle tre fasi sopraelencate.
Ad esempio, l’approccio “stop and copy” comporta l’arresto della macchina virtuale e la
migrazione della stessa sulla macchina di destinazione. Questo ha il vantaggio di ridurre il
tempo di migrazione, ma di contro ha che sono arrestati anche i servizi offerti agli utenti.
Quest’approccio è evitato quando si offrono dei servizi in tempo reale.
Un’altra possibilità è quella della pura migrazione, in cui c’è solo una fase molto ristretta
dell'approccio “stop and copy” in cui sono trasferite solo le pagine necessarie all’esecuzione
della macchina virtuale sull’host di destinazione. Le altre pagine saranno poi trasferite al
primo utilizzo. Questa scelta riduce notevolmente il tempo d’inattività dei servizi ma
aumenta il tempo totale della migrazione.
L’approccio affrontato in questa sezione è quella pre-copy, in cui c’è una sorta d’iterazione
molto breve della fase “stop and copy”. Con il termine d’iterazione s’intende che la precopia avviene su turni, in cui le pagine virtuali trasferite nel turno n sono quelle modificate
nel turno n-1. Un altro problema può essere quello d’intasamento della rete quando si vuole
trasmettere un’immagine del sistema operativo molto grande. Questo problema è stato
risolto controllando attentamente le risorse inviate facendo, cosi, in modo che non
interferiscano eccessivamente con il traffico di rete.
15
3.2 Migrazione delle risorse
Una sfida per la gestione della migrazione di istanze del sistema operativo è cosa fare per le
risorse che gli sono associate. Mentre la memoria può essere facilmente copiata, le altre
risorse, come i dischi e la rete, richiedono qualche considerazione in più.
Per quanto riguarda la migrazione delle risorse di rete, si vuole che la migrazione avvenga
senza interrompere i servizi offerti agli utenti. La migrazione della macchina virtuale
includerà tutto il protocollo (ad esempio TCP), e il suo indirizzo IP. La soluzione a questo
problema è la generazione di messaggi per comunicare che la macchina virtuale si è spostata
su un altro host, facendo si che le informazioni verranno inviate alla nuova macchina.
Alcuni router, però, potrebbero non implementare questo meccanismo (per evitare spoofing
IP). In alternativa, su una rete commutata, il sistema operativo può mantenere il suo
indirizzo MAC originale e sfruttare gli switch di rete per reindirizzare i pacchetti al nuovo
host.
3.3 Panoramica di progettazione
Un aspetto fondamentale nella migrazione è il fallimento dello spostamento in se. Sebbene
le conseguenze sull’hardware possano essere gravi, l’aspetto più monitorato è quello di
evitare fallimenti nei sistemi operativi in esecuzione su ogni host. Per raggiungere
quest’obiettivo, si considera il processo di migrazione come un’iterazione transazionale tra
due host coinvolti:
Fase 0: pre-migration. Per velocizzare le operazioni di migrazioni future si considerano le
risorse su un host fisico che potrebbero essere prescelte per la migrazione.
16
Fase 1: reservation La richiesta parte quando c’è la necessità di spostare una macchina
virtuale da un host A a un host B. in questo caso, sull’host B è conservata una quantità di
risorse per ricevere la macchina virtuale. In mancanza delle risorse la macchina virtuale
rimane inalterata sull’host A.
Fase 2: iterative pre-copy. Durante la prima iterazione sono trasferite tutte le pagine
dall’host A all’host B. Le iterazioni successive servono per spostare le pagine modificate
durante la prima iterazione.
Fase 3: stop and copy. Si sospende l’esecuzione dell’istanza del sistema operativo in
esecuzione sull’host A, si trasferiscono le pagine rimanenti, e viene riattivato il servizio
dall’host B. La macchina virtuale su A è, però ancora disponibile in caso di guasto.
Fase 4: commitment. L’host B indica a A che la migrazione è effettuata con successo.
Quindi la macchina virtuale sull’host A è eliminata mentre quella sull’host B diventa quella
primaria.
Fase 5: activation. La macchina virtuale è ora attiva. Si passa ora a ricollegare il dispositivo
alla rete e “pubblicizzare” il nuovo indirizzo IP.
Quest’approccio alla gestione dei guasti garantisce sempre una macchina virtuale corretta
che fornisce i servizi agli utenti, facendo in modo che, dopo la migrazione, la macchina
virtuale originale sia deallocata solo se la migrazione è andata a buon fine.
17
3.4 Ottimizzazione della para virtualizzazione
Uno dei vantaggi chiave della para virtualizzazione è che i sistemi operativi possono essere
a conoscenza di alcune importanti differenze tra gli ambienti reali e virtuali. In termini di
migrazioni, questo permette un certo numero di ottimizzazioni informando il sistema
operativo che è in procinto di essere spostato – in questo caso ci sarà un gestore interno al
sistema operativo che potrebbe aiutare a migliorare le prestazioni nei seguenti modi:
Arresto dei processi non autorizzati. L’operazione di pre-copy, in alcuni casi, potrebbe
essere poco efficiente perché ci potrebbero essere dei processi che vanno a modificare ogni
singola pagina facendo prolungare il tempo di migrazione. Per ovviare a questo, si potrebbe
pensare a un’operazione di monitoraggio all’interno del kernel del sistema operativo. Dato
che si trova all’interno del sistema operativo, si può monitorare i singoli processi e, se
necessario, intervenire.
Liberare le pagine dalla cache. Quando un sistema operativo è informato di una migrazione,
può liberare le pagine contenute nella cache in maniera da ottimizzare, a volte anche
drasticamente, le procedure di migrazione.
18
4. Migrazione attraverso rete WAN
La tecnologia delle macchine virtuali e la facilità con cui è possibile migrare queste
all’interno di una rete LAN, ha cambiato il modo di gestire le risorse allocate su un singolo
server e come manipolare queste risorse all’interno di un data center. La migrazione su rete
WAN, invece, è vista come la possibilità di trasferire applicazioni su data center sparsi per il
mondo. In quest’articolo parliamo di CloudNet, ovvero di un’infrastruttura di rete basata su
VPN che fornisce una soluzione di connettività sicura e continua tra i siti aziendali basati su
cloud. Questo meccanismo permette di condividere in modo efficiente le risorse dei data
center sparsi per il mondo, ottimizzando la migrazione su rete WAN.
4.1 Casi d’uso della migrazione WAN
Oggi le aziende gestiscono le loro applicazioni tramite i server dei data center, pagando in
base alle risorse che utilizzano. L’ideale sarebbe che questi data center, sia pubblici che
privati, disponessero di un insieme di risorse perfettamente collegati per superare le barriere
delle grandi distanze geografiche. Questo comporterebbe una capacità di mappare diverse
applicazioni su siti differenti, così come la capacità di spostare le applicazioni in modo
efficiente tra un sito e un altro. L’agilità con cui tali decisioni sono prese determina la
sensibilità con cui un’azienda è in grado di soddisfare le mutevoli esigenze di business.
La virtualizzazione è la tecnologia che ha permesso tale agilità all’interno di un data center.
Inoltre, le piattaforme delle macchine virtuali sostengono il ridimensionamento delle stesse
per accogliere delle modifiche sul carico di lavoro, così come la possibilità di spostare
applicazioni senza bisogno di sospenderle. Lo stesso tipo di flessibilità è desiderato tra data
center geograficamente distribuiti, così come la migrazione efficiente della memoria e dei
dischi, superando i vincoli imposti dalla rete WAN. Consideriamo i seguenti casi d’uso:
19
Cloud bursting: è una tecnica in cui le aziende sfruttano i server locali durante i periodi di
stress. Lo stress sul server locale può anche migrare presso un altro server oppure istanziare
nuove repliche delle applicazioni che assorbono parte del lavoro. Il cloud pieno elimina la
necessità di avere una predisposizione a un picco di lavoro in quanto le risorse vengono
allocate dinamicamente in caso di bisogno, risparmiando sul costo delle risorse e pagando
solo quello che si utilizzano.
Enterprise IT consolidation: molte imprese hanno tentato di raggruppare dei siti più
piccoli in data center più grandi. Tale raggruppamento implica che i dati siano spostati da un
luogo a un altro tramite rete WAN; un sottoinsieme di queste applicazioni possono anche
essere spostate su piattaforme cloud, se questo è più conveniente rispetto a tenerle su una
macchina locale. Tipicamente questi progetti sono sostenuti da applicazioni che lavorano nei
tempi morti, e spesso si sviluppano su più giorni. La capacità di implementare questi
meccanismi con la minima, o nessuna, interruzione del servizio è un fattore fondamentale
per l’azienda.
Follow the sun: è una strategia per progetti che si estendono su più continenti. Lo scenario è
quello in cui esistono più gruppi di ricerca che lavorano su di uno stesso progetto. Invece di
replicare su ogni data center una copia di questo progetto, si predilige il trasferimento del
solo incremento dello stato della memoria rispetto al giorno precedente. Queste operazioni
vengono, di norma, eseguite la sera. Questo scenario implica, quindi, che ogni data center
può essere visto come un insieme di risorse a se stante che comunica con gli altri data center
tramite la rete WAN. Ed è proprio questo collegamento distribuito su una vasta area
geografica a rendere queste operazioni più difficili. Le sfide più grandi sono:
Minimize downtime: la migrazione dell’applicazione su rete WAN implica il trasferimento
di grandi quantità di dati. Per ridurre al minimo i tempi d’inattività delle applicazioni
bisogna fare in modo che la migrazione avviene mentre l’applicazione continua a girare e di
20
eseguire un rapido passaggio alla nuova applicazione sulla nuova macchina virtuale. Questo
è possibile farlo senza problemi su una rete LAN mentre su una rete WAN bisogna
affrontare nuove sfide, come quella di trasferire, oltre alla memoria, anche i dischi.
Minimize network reconfiguration: mentre la migrazione su rete LAN non pone vincoli
sugli indirizzi IP (rimangono gli stessi), la migrazione WAN impone una riconfigurazione
della rete. Fortunatamente alcuni siti cloud supportano questa riconfigurazione assegnando
IP diversi durante la migrazione.
Handle WAN links: la migrazione su rete LAN è relativamente semplice in quando sfrutta
l’alta velocità della rete locale. Nella migrazione WAN, invece, bisogna fare i conti con la
larghezza di banda. Minore è la larghezza di banda, maggiore sarà il tempo necessario a
trasferire la macchina virtuale. Quindi le migrazioni su rete WAN devono essere progettate
per far fronte a questo tipo di problema. Un meccanismo molto utilizzato è il CloudNet, in
altre parole una piattaforma che permette di ottimizzare la migrazione fornendo il
collegamento più idoneo tra i vari siti.
Network virtualization and Virtual Cloud Pools (VCP): la piattaforma CloudNet
permette di collegare, in maniera semplice, server geograficamente separati dando
l’illusione di un unico insieme di risorse collegate tramite LAN. Questo, quindi, riduce al
minimo la necessità di riconfigurare la rete WAN. CloudNet usa i VPN (Virtual Private
Network) esistenti in grado di fornire l’infrastruttura necessaria, ma possiede un nuovo
protocollo di riconfigurazione della rete, che le attuali macchine richiedono ore o giorni per
essere eseguite, impiegando poche decine di secondi.
WAN optimizations: il Cloudnet implementa delle ottimizzazioni per la migrazione in
tempo reale su rete WAN. Nello specifico, queste ottimizzazioni riguardano un algoritmo
21
che adatta il trasferimento della memoria in funzione dell’applicazione. In più ottimizza il
trasferimento su collegamenti a bassa banda, in altre parole riduce il tempo di migrazione.
4.2 Step per la migrazione su WAN
Supponiamo di voler spostare un'applicazione da una macchina ad un'altra. Per queste
operazioni il CloudNet utilizza le seguenti fasi:
Fase 1: stabilire una connessione VCP tra due macchine
Fase 2: se la memoria non è condivisa, trasferire tutto il disco
Fase 3: trasferire lo stato della memoria. Durante quest’operazione l'applicazione continua a
eseguire.
Fase 4: una volta che lo stato della memorie e i dischi sono stati trasferiti, si pone
l'applicazione in pausa per la definitiva migrazione della macchina virtuale. Cosa importante
è che questo procedimento non deve interrompere nessun collegamento di rete tra l'utente e
l'applicazione.
Durante queste operazioni potrebbero esserci delle problematiche ma CloudNet utilizza
delle ottimizzazioni tali da rendere la migrazione delle macchine virtuali come se fosse su
una stessa rete LAN.
22
4.3 Migrazione del disco e della memoria
Mentre la migrazione su rete LAN non comporta il trasferimento del disco, poiché si assume
un disco condiviso, nella migrazione WAN il disco viene trasferito insieme alla memoria. Il
CloudNet, al fine di ridurre l'impatto sulle prestazioni, utilizza una fase di replicazione
asincrona nel frattempo che il disco non si porti in uno stato coerente. Dopodiché CloudNet
passa a una replicazione sincrona e la macchina virtuale e la memoria iniziano a spostarsi.
Durante questa migrazione, il disco è copiato sulla macchina di destinazione cercando di
creare, volta per volta, una corrispondenza coerente sulla nuova macchina. Quando il
trasferimento è completato, si utilizza solo il disco finale e si spegne quello della macchina
di origine. Fortunatamente a replicazione del disco può essere attivata anche prima di
un'operazione pianificata. In caso di sovraffollamento della rete, la replicazione del disco
può essere eseguita su richiesta e questo minimizza l'impatto sulle prestazioni.
La migrazione della macchina virtuale su rete WAN può utilizzare l'approccio pre-copia, in
altre parole copiare la memoria di una macchina virtù e in tempo reale e di trasferire solo le
pagine che sono state modificate. Questo procedimento comporta dei problemi se la
larghezza di banda è limitata, in altre parole un calo nelle prestazioni. CloudNet utilizza il
protocollo Xen per applicare una serie di ottimizzazioni tali da migliorare le prestazioni. Il
tempo necessario per migrare una macchina virtuale dipende da diversi fattori, come la
quantità di memoria RAM, la dimensione dell’applicazione ecc. Con la migrazione WAN è
importante ridurre al minimo questi tempi, in modo da ridurre anche il tempo d’inattività
delle macchine virtuali. Un problema può capitare se avviene un’interruzione del servizio di
rete durante la migrazione. Questo, però, non è un problema nel caso in cui si effettua la
post-copia, in cui la macchina virtuale originaria continua a funzionare finché non si effettua
tutto il trasferimento.
23
4.4 Ottimizzazione della memoria
Mostriamo ora una serie di ottimizzazioni per migliorare le prestazioni su rete WAN. Queste
modifiche sono apportate nel supervisore di virtualizzazione:
Smart start and copy: l'algoritmo della migrazione, di solito, è iterato quando vi è un
numero piccolo di pagine da inviare, è, poi, fermato quando sono state raggiunte un limite di
trenta iterazioni. A questo punto, la macchina virtuale è sospesa mentre le pagine sono
inviate. Questo procedimento tende, però, a eseguire molte ripetizioni inutili aumentando il
tempo totale della migrazione e a quantità di dati trasferiti.
CloudNet utilizza un procedimento ottimizzato di arresto e copia che riduce le inutili
ripetizioni e sceglie un punto di arresto che riduce i tempi di pausa. Questi due obiettivi sono
tra di loro contrastanti. L’arresto dopo poche iterazioni riduce il tempo di inattività, ma
l’arresto dopo un numero notevole di iterazioni ha un impatto negativo sulle prestazioni.
L’algoritmo è, quindi, progettato per fornire un certo equilibrio tra queste scelte, fornendo
un arresto intelligente.
Content Based Redundancy (CBR): l'eliminazione della ridondanza basata sul contenuto
(CBR) sono tecniche utilizzate per risparmiare larghezza di banda tra i router della rete. Un
approccio simile è utilizzato per ridurre la ridondanza dei dati durante il trasferimento della
memoria e dei dischi di una macchina virtuale. Ci sono molte tecniche utilizzate per
l’eliminazione della ridondanza. L’approccio CBR del CloudNet si basa sui gruppi di pagina
in memoria oppure sui blocchi del disco fisso e genera degli hash in base al loro contenuto
utilizzando un algoritmo molto veloce. Se un hash corrisponde a una voce di dimensione
fissa, una cache mantiene questo valore e lo blocca se si ripresenta per essere inviato.
24
Quest’approccio è utilizzato per eliminare la ridondanza da una singola macchina virtuale.
Per eliminare la ridondanza da più macchine virtuali collegate in rete, si utilizza un
apparecchio di rete che svolge queste funzioni, mentre si scambiano i dati.
Using pages deltas: dopo la prima iterazione, la maggior parte delle pagine trasferite sono
quelle inviate in precedenza, poiché sono state modificate. Poiché un’applicazione può
modificare solo parti di una pagina, un altro approccio sarebbe quello di mantenere una
cache di pagine trasmesse in precedenza ed inviare solo la differenza tra la pagina della
cache e quella corrente. Questa tecnica velocizza la migrazione e riduce la larghezza di
banda necessaria alla migrazione. Una combinazione tra la comunicazione della differenza
delle pagine, detta pagina “delta”, e l’ottimizzazione CBR consente di superare i limiti
imposti dalla rete WAN. Se la pagina è stata inviata in precedenza, sarà inviata solo la
differenza tra l versione corrente e la nuova versione. Questo calcolo è eseguito da
dispositivi XOR. Questo comporta un minor utilizzo di banda e un aumento dell’efficienza
poiché saranno inviate solo delle piccole modifiche rispetto all’enorme quantità di pagine.
Tutto questo procedimento non richiede nessuna ulteriore infrastruttura, solo una piccola
cache per eliminare la ridondanza. Inoltre, le migrazioni tipicamente sono criptate, e questo
evita che gli altri utenti possano acquisire il contenuto della memoria di una macchina
virtuale.
25
5. Gestione dinamica delle pagine di memoria
Le attuali tecniche di migrazioni in tempo reale comportano due problemi fondamentali
quando si parla di migrazioni su reti lente. In primo luogo, l’enorme quantità di dati trasferiti
dovuta a pagine che si aggiornano molto di frequente. In secondo luogo se le pagine sono
aggiornate con una velocità maggiore di quanto esse possano essere trasferite si ha un
blocco del servizio.
Per evitare questi problemi si utilizza una combinazione di tecniche che adatta
dinamicamente l’ordine di trasferimento delle pagine in memoria. In questa tecnica, la
frequenza di aggiornamento della pagina è campionata e quest’informazione è utilizzata per
calcolare il peso della pagina, utilizzato poi per assegnare le varie priorità alle pagine da
trasferire. Questa tecnica, però, non affronta direttamente il secondo problema il quale può
essere affrontato, introducendo l’invio dei soli aggiornamenti e non delle pagine intere.
La migrazione in tempo reale consente una maggiore flessibilità sull’approvvigionamento
delle risorse e gli attuali supervisori delle macchine virtuali supportano questa migrazione
con tempi di inattività a partire da decine di secondi su reti LAN. La migrazione su reti
WAN coinvolge, generalmente, tempi di migrazione e tempi d’inattività più elevati. La
migrazione comporta lo spostamento di una macchina da un host a un altro, purché il file
system non risieda su un server remoto. Questa tecnica, però, difficilmente è attuabile su reti
WAN, per cui tutta la macchina virtuale deve essere trasferita.
L’algoritmo tipico della migrazione in tempo reale di una macchina virtuale è quello in cui
sono trasferite le pagine della memoria in più iterazioni. La macchina virtuale non è
interrotta durante questo procedimento, quindi è possibile che alcune pagine possano essere
modificate. Per evitare di ritrasmettere queste pagine, sono raggruppate e trasferite solo alla
26
fine, con un’operazione di “ferma e sposta” in modo da conservar l’integrità dei dati. Tutte
queste operazioni sono effettuate in totale trasparenza agli utenti che utilizzano i servizi.
5.1 Potenziali problemi con la migrazione in tempo reale
Ci sono due sfide fondamentali per le migrazioni in tempo reale, soprattutto su reti WAN.
Innanzitutto il tempo di inattività che rendono inaccessibili i servizi agli utenti e il tempo di
migrazione che consuma risorse preziose. Vediamo in questa sezione alcuni accorgimenti
per evitare questi problemi.
Extended total migration time: durante la migrazione della memoria di una macchina
virtuale abbastanza grande su di una rete lenta, il tempo totale può crescere notevolmente.
Per ridurre questi tempi, sono state introdotte alcune tecniche che permettono l’invio di
poche pagine per volta, riducendo così la quantità di dati inviati e lo speco della banda.
Durante la migrazione, le pagine modificate più frequentemente, sono spostate alla fine.
Quest’approccio determina una riduzione notevole del tempo totale della migrazione, che
altrimenti comportava un inutile spreco delle risorse.
Extended migration downtime: durante la migrazione in tempo reale, le pagine modificate
più di frequente possono crescere in numero maggiore alla quantità con cui si riesce a
inviarle. Per questo motivo, e per evitare altri problemi, la macchina virtuale è sospesa per
permettere la migrazione di queste informazioni. Questi tempi d’inattività sono molto
“pericolosi” poiché, oltre a rendere inattivi i servizi, provocano ritardi nei timer dei server.
Questi ritardi possono provocare malfunzionamenti interni alla macchina virtuale dovuti a
software che eseguono operazioni temporizzate a orari prestabiliti.
27
5.2 Algoritmo per maggiori prestazioni alla migrazione in tempo reale
Per affrontare il problema di rispedire pagine modificate più di recente proponiamo un
approccio per ordinarle dinamicamente, in modo che le pagine modificate meno
frequentemente ha la precedenza a essere inviate. Questo riduce, non solo il tempo totale di
migrazione, ma la quantità di dati inviati. Utilizziamo in quest’approccio, l’utilizzo di pagine
“delta”, in altre parole pagine contenenti solo gli ultimi aggiornamenti. Per facilitare questo
procedimento, le pagine meno aggiornate sono inviate durante le iterazioni, mentre quelle
più aggiornate sono inviate alla fine, in forma compressa.
Quest’algoritmo, chiamato KVM (Kernel based Virtual Machine), analizza il contenuto
della memoria dall’indirizzo più basso a quello più alto. Per ogni pagina, controlla se la
pagina è stata modificata e ha bisogno di essere trasferita. Nel caso di pagina vuota, è inviato
un singolo segnale invece che la pagina intera. Se il numero delle pagine è inferiore a una
certa soglia, sono inviate nella prossima iterazione. Quest’algoritmo soffre quindi il
problema del ri invio di pagine modificate e spesso, crea problemi su connessioni lente.
5.3 Miglioramento dell’algoritmo
Per migliorare quest’algoritmo s’inserisce una tecnica in cui si va a calcolare la priorità di
ogni pagina in base alla quantità di modifiche apportate. Si crea quindi una tabella in cui si
vanno a inserire le pagine in base alla priorità. Si sfrutta un algoritmo per popolare questa
tabella inserendo nelle prime righe le pagine con la più alta priorità di trasferimento, in altre
parole quelle modificate meno di frequente.
Quest’algoritmo è utilizzato solo per migrazioni in tempo reale, poiché per le altre tipologie
di migrazione sarebbe inefficiente.
28
L’algoritmo di aggiornamento dinamico delle pagine sfrutta diverse informazioni come
l’ultima versione di aggiornamento, il numero di ri invii, l’attuale peso della pagina, ecc. Per
rendere più efficiente quest’algoritmo è stato implementato una variante, dove il peso della
pagina è randomizzato, rendendo il trasferimento dei blocchi delle pagine in un ordine
pseudo casuale. Questo fa si che l’algoritmo confronti un blocco di pagine, invece che una
singola pagina. Dato che, statisticamente, è provato che se una pagina è modificata, la
probabilità che sia modificata una pagina nelle immediate vicinanze è molto alta, l’algoritmo
è più efficiente. Ovviamente le cose si complicano quando il blocco di pagine è molto
grande.
Compressione delta: l'idea della compressione è di inviare solo gli aggiornamenti invece che
la pagina vera è propria. Viene, quindi, fatta un’operazione di XOR tra le due versioni delle
pagine. Questo minimizza i dati inviati sulla rete.
Algoritmo combinato: man mano che le pagine sono inviate, si aggiorna la tabella delle
priorità delle pagine in modo che, nelle iterazioni successive, diminuiscono le pagine ri
inviate. Oltre a questo, l’algoritmo implementa anche la gestione di una memoria cache.
Quando una pagina è modificata, ed è contenuta nella cache, è eseguita un’operazione di
XOR, e quindi inviata solo l’aggiornamento riducendo cosi volume di dati inviati e
larghezza di banda sprecati.
L’algoritmo della gestione della migrazione, che gestisce anche la tabella delle pagine,
risiede nel kernel del sistema operativo. Quest’algoritmo entra in funzione solo quando deve
essere eseguita la migrazione, evitando spreco di risorse e l prestazioni della macchina
virtuale.
29
Un inconveniente a questo è che quando si deve eseguire l’operazione di migrazione, tutte le
pagine partono dallo stesso livello, e quindi questo comporta del tempo sprecato affinché la
tabella delle pagine non sia correttamente aggiornata. La soluzione è di far partire
l’algoritmo, prima della vera e propria migrazione, in modo da avere una tabella già
aggiornata delle pagine da inviare.
30
6 Esempio di migrazione e calcolo delle prestazioni
Concentriamoci, ora, nello studio della migrazione di macchine virtuali all’interno di data
center. Si vuole valutare quale macchina virtuale può essere migrata a costo minimo. A tale
proposito, si presta particolare attenzione al tempo totale di migrazione e al downtime di una
macchina virtuale, in quanto sono proprio questi gli indici che permettono di misurare
l’impatto che la migrazione ha sul consumo delle risorse di rete, e sulla disponibilità dei
servizi che interessano gli utilizzatori.
Assumiamo, in prima approssimazione, la quantità di pagine modificate proporzionale al
tempo di esecuzione stesso. Assumiamo, inoltre, che tutte le macchine virtuali considerate
abbiano le stesse dimensioni della memoria. Infine, decidiamo di considerare costante il rate
di trasmissione della memoria.
Tutte queste assunzioni permettono di semplificare le equazioni matematiche e di
concentrarsi sulle prestazioni a livello macroscopico della migrazione di macchine virtuali
all’interno di un data center, che è poi l’obiettivo principale di questa trattazione.
La modellizzazione delle prestazioni di una migrazione coinvolge, come accennato, diversi
fattori: la dimensione della memoria della macchina virtuale, le caratteristiche del carico di
lavoro, il rate di trasmissione della rete e l’algoritmo di migrazione. Consideriamo, in questo
caso, l’approccio pre-copy che avviene in n iterazioni.
Sia Vi(0≤i≤n) il volume dei dati trasmessi ad ogni iterazione, e Ti(0≤i≤n) il tempo trascorso
per ogni turno. Sia Vmem equivalente alla dimensione della memoria della macchina virtuale,
e T0 rappresenta il tempo impiegato per trasferire l’immagine della pagina. In Tabella 6.1
sono definiti altri importanti parametri:
31
Vmig
Tmig
Tdown
R
D
Vth
W
Traffico di rete totale durante la migrazione
Tempo totale di migrazione
Tempo durante il quale si ha interruzione del servizio.
Rate di trasmissione della memoria
Rate con cui si modificano le pagine di memoria.
Valore soglia per le pagine modificate: appena il
volume dei dati trasmessi scende al di sotto di tale
valore inizia la fase di stop-and-copy
Writable Working Set
Tabella 6 1
I dati trasmessi all’i-esimo turno possono essere calcolati come:
{
(6.1)
Il tempo trascorso al turno iniziale risulta:
(6.2)
e il tempo trascorso all’i-esimo turno può essere calcolato come:
(6.3)
Consideriamo il carico di lavoro sempre minore del rate di trasmissione delle pagine di
memoria (in caso contrario, non avrebbe senso impiegare l’approccio pre-copy). Indichiamo
con λ il rapporto tra D e R:
(6.4)
Combinando (6.1), (6.3), (6.4), abbiamo il traffico di rete durante l’iterazione i-esima:
32
(6.5)
Quindi, il traffico totale durante la migrazione può essere scritto come:
∑
(6.6)
Combinando (6.2), (6.3) si ottiene il tempo totale della migrazione:
∑
(6.7)
Siccome Tmig è la durata della migrazione ed ha effetti negativi sulle prestazioni delle
applicazioni, è un parametro chiave per stabilire se è conveniente migrare la VM.
Analizziamo ora il downtime. composto da due parti: il tempo impiegato per trasferire le
rimanenti pagine modificate durante la fase di stop-and-copy, Tn, e il tempo necessario per
riavviare la macchina virtuale sul nuovo host, chiamato Tresume. Quest’ultimo è poco
variabile e può essere rappresentato come una costante. Si può scrivere il downtime come:
(6.8)
Per una data macchina virtuale, la dimensione della memoria, Vmem, e il valore di soglia delle
pagine che possono essere trasferite durante la fase di stop-and-copy, Vth, sono fissate. Di
conseguenza, la pre-copy iterativa convergerà tanto più velocemente quanto più λ sarà
piccola.
33
Ormai sappiamo che ogni sistema operativo esibisce un insieme di pagine hot che vengono
aggiornate molto frequentemente, chiamato Writable Working Set (WWS), che tali pagine si
modificano con la stessa velocità con cui il processo incaricato della migrazione riesce a
trasferirle, e che quindi devono essere scartate durante le iterazioni di pre-copy. Per la
maggior parte dei sistemi operativi si osserva che le dimensioni dei WWS sono
approssimativamente proporzionali alle pagine modificate in ogni turno di pre-copy:
(6.9)
dove γ dipende dal carico di lavoro e dalla durata di ogni iterazione:
(6.10)
L’espressione (6.10) è ricavata empiricamente da un benchmark (insieme di prove) che
consiste in un’ampia varietà di applicazioni Java.
Dato che in una macchina virtuale, la dimensione della memoria è fissa, le iterazioni della
fase iterativa della pre-copy sarebbero più veloci se λ fosse più piccolo. Quindi una
macchina virtuale con un formato dell’immagine della memoria più piccolo e con λ più
piccolo genererebbe minor traffico sulla rete e quindi un tempo totale di migrazione più
contenuto. Di conseguenza, tale macchina virtuale, può essere la candidata ideale per la
migrazione live.
Vediamo, ora, un approccio analitico dei parametri d’interesse. Per fare ciò utilizziamo il
simulatore Matlab che fa riferimento ai parametri in Tabella 6.2, i cui grafici sono riportati
in Figura 6.1 e Figura 6.2:
34
V
Tmig
Tdw
R
D
Vth
Traffico trasmesso durante la migrazione
Tempo totale di migrazione
Tempo durante il quale si ha interruzione del servizio
Rate di trasmissione della memoria
Rate con cui si modificano le pagine di memoria
Valore di soglia delle pagine modificate: appena il volume
dei dati trasmessi scende al di sotto di tale valore inizia la
fase di stop-and-copy.
Tabella 6 2
Come esempio studia l’andamento del tempo medio di migrazione, Tmig, e del downtime,
Tdw, in funzione della soglia Vth. Inseriamo nel simulatore i seguenti valori:

R=1

D=0,5

V=10
Gli andamenti sono riportati in Figura 6.1 e in Figura 6.2:
Figura 6.1 Tempo medio di migrazione in funzione di Vth
35
Figura 6.2 Downtime medio in funzione di Vth
Come mostra la Figura 6.1, all’aumentare dei KB di dati che possono essere trasmessi
durante la fase di stop-and-copy, diminuisce il tempo medio di migrazione. Questo
andamenti rispecchia le aspettative: infatti, la durata della migrazione di una macchina
virtuale sarà contenuta se durante la fase di stop-and-copy possiamo trasmettere parte
consistente della memoria.
Il downtime invece, all’aumentare di Vth, aumenta. Anche quest’andamento rispecchia le
aspettative: essendo il downtime definito come il tempo impiegato per trasferire i rimanenti
KB della stop-and-copy, più questa fase è duratura per i numerosi dati da trasmettere, più è
grande il downtime.
36
7 Conclusioni
Il lavoro svolto in questa tesi s'inquadra nell'ambito delle problematiche di rete relative alle
applicazioni di Cloud Computing.
Alla base del modello cloud ci sono la virtualizzazione e la migrazione in tempo reale,
tecnologie sulle quali si _e, quindi, deciso di concentrare l'attenzione.
La virtualizzazione è un ingrediente chiave perché permette l'utilizzo delle risorse hardware
in maniera controllata e senza sprechi, consente la condivisione di queste mantenendo
l'isolamento dei software che eseguono, conduce all'indipendenza dall'hardware, e permette,
quindi, la migrazione delle macchine virtuali.
La migrazione live è il trasferimento di una o più macchine, comprensive di memoria, rete e
disco, da un host _fisico a un altro, mentre continua l'esecuzione dei servizi che offrono. Il
trasferimento dell'elemento che maggiormente comporta il consumo di tempo e risorse _e
quello della memoria, ma è assolutamente necessario prestare attenzione anche alla
connettività di rete e al disco.
Per quel che riguarda proprio il trasferimento della memoria, si sono presentati due
approcci: quello pre-copy e quello post-copy. Per approfondire lo studio della migrazione si
è però deciso di concentrarsi sul quello pre-copy in quanto è lo standard de facto della
migrazione di macchine virtuali: è l'approccio utilizzato dagli hypervisor più diffusi.
Con riferimento al trasferimento di una macchina, abbiamo verificato analiticamente come il
tempo medio di migrazione, tempo durante il quale si tengono occupate le risorse, e il
downtime, tempo durante il quale avviene l'interruzione del servizio, dipendano dalla
dimensione della memoria, dalla soglia di dati che si vuole trasferire durante la stop-andcopy e, soprattutto, dal rate di trasmissione e dalla quantità di pagine modificate: in
particolare, abbiamo osservato come il valore del tempo medio di migrazione diminuisce
all’aumentare dei KB di dati che possono essere trasmessi durante la fase di stop-and-copy
mentre il downtime aumenta all’aumentare della soglia.
37
Bibliografia
1. Dinamic resource management using virtual machine migration, Mayank
Mishra, Anwesha Das, Purushottam Kulkarni, and Anirudha Sahoo – Indian Institute
of Technology Bombay
2. CloudNet: dynamic pooling of cloud resourses by live WAN migration of virtual
machines, Timothy Wood, Prashant Shenoy – University of Massachusetts
Ambherst- and K. K. Ramakrishan, Jacobus Van der Merwe – AT&T Labs Research
3. Live migration of virtual machines, Christopher Clark, Keir Fraser. Steve Hand –
University of Cambridge Computer Laboratory - and Jacob Gorm Hansen, Eric Jul,
Christian Limpach, Ian Pratt, Andrew Warfield – Departement of Computer Science
University of Copenhagen
4. Performance and energy modeling for live migration of virtual machines,
Haikun Liu, Cheng-Zhong Xu – Departement of Elettrical and Computer
Engineering Wayne State University Detroit – and Hai Jin, Jiayu Gong, Xiafei Liao
– School of Computer Science and Technology Huazhong University of Science and
Technology Wuhan, China
5. High performance live migration through dynamic page transfer reordering
and compression, Petter Svärd, Johan Tordsson, Erik Elmoroth – Departement of
Computer Science Umeå University, Sweden – Benoit Hudzia – SAP Research CEC
Belfast
6. National Institute of Standards and Technology (NIST) - http://www.nist.gov/
7. 7th
FLOOR.
Cloud
Computing:
l’ultimo
trend
di
Internet
-
http://www.7thfloor.it/2007/10/04/cloud-computing-lultimo-trend-di-internet
8. Design Issues of Process Migration Facilities in Distributed Systems. In
Scheduling and Load Balancing in Parallel and Distributed Systems, M. Rasit
Eskicioglu 1995.
38
9. Load Balancing by Process Migration in Distributed Operating System.
International Journal of Soft Computing and Engineering, Vatsal Shah, Viral
Kapadia, Marzo 2012
10. Xen, http://it.wikipedia.org/wiki/Xen
39