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