UTILIZZO DELLE TECNOLOGIE VIRTUAL SERVER PER LA MIGRAZIONE DI SERVER DI PRODUZIONE IN AMBIENTE VIRTUALE

1,665 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,665
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
58
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

UTILIZZO DELLE TECNOLOGIE VIRTUAL SERVER PER LA MIGRAZIONE DI SERVER DI PRODUZIONE IN AMBIENTE VIRTUALE

  1. 1. UNIVERSITA’ DEGLI STUDI DI TRIESTE _________________________________________________ FACOLTA’ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA UTILIZZO DELLE TECNOLOGIE VIRTUAL SERVER PER LA MIGRAZIONE DI SERVER DI PRODUZIONE IN AMBIENTE VIRTUALE Laureando: Relatore: Massimo Dalla Nora Chiar. mo Prof. Maurizio Fermeglia Correlatore: Dott. Ing. Jordan Piš!anc _________________________________________________ Anno accademico 2007-2008
  2. 2. Alla mia famiglia
  3. 3. INDICE INTRODUZIONE .........................................................................................................................4 1 ANALISI DEL PROBLEMA....................................................................................................6 1.1 ANALISI GENERALE ................................................................................................................6 1.2 LA SITUAZIONE DEL SBA .......................................................................................................7 1.3 UNA POSSIBILE SOLUZIONE.....................................................................................................7 2 VIRTUALIZZAZIONE.............................................................................................................8 2.1 COS’È LA VIRTUALIZZAZIONE .................................................................................................8 2.2 LA MACCHINA VIRTUALE ........................................................................................................9 2.3 VIRTUAL MACHINE MONITOR (VMM).................................................................................11 2.4 PARAVIRTUALIZZAZIONE......................................................................................................11 2.5 SOLUZIONI DISPONIBILI: STATO DELL’ARTE ..........................................................................14 2.5.1 Macchine virtuali complete..........................................................................................14 2.5.2 Macchine paravirtuali..................................................................................................17 2.6 STORAGE AREA NETWORK E VIRTUAL STORAGE AREA NETWORK .........................................17 2.7 SCELTA DEL SOFTWARE ........................................................................................................19 3 SOLUZIONE DI VIRTUALIZZAZIONE NEI PRODOTTI MICROSOFT ....................21 3.1 MICROSOFT VIRTUAL SERVER 2005 R2 ...............................................................................21 3.1.1 L’architettura della Macchine Virtuali ........................................................................21 3.1.2 L’architettura delle reti virtuali ...................................................................................22 3.1.3 Sistemi operativi supportati .........................................................................................22 3.1.4 Requisiti del sistema.....................................................................................................23 3.2 MICROSOFT VIRTUAL SERVER MIGRATION TOOLKIT ...........................................................23 3.2.1 Sistemi operativi supportati .........................................................................................24 3.2.2 Componenti aggiuntivi .................................................................................................24 3.3 MICROSOFT ADS 1.0............................................................................................................24 3.3.1 Note sul prodotto..........................................................................................................25 3.4 MICROSOFT WINDOWS SERVER 2008 E HYPER-V ................................................................25 4 REALIZZAZIONE DEL PROTOTIPO................................................................................27 4.1 INSTALLAZIONE DEI PRODOTTI .............................................................................................27 4.2 MIGRAZIONE DEL SERVER ....................................................................................................28 4.3 TEST DEL PROTOTIPO E MESSA IN PRODUZIONE.....................................................................33 5 SVILUPPI FUTURI.................................................................................................................34 6 CONCLUSIONI .......................................................................................................................36 APPENDICE E CD .....................................................................................................................37 RIFERIMENTI BIBLIOGRAFICI...........................................................................................38
  4. 4. INDICE DELLE FIGURE Figura 1 Proiezione delle vendite dei server x86 ............................................................................6 Figura 2 Macchina viruale...............................................................................................................9 Figura 3 I ring nell'architettura x86...............................................................................................12 Figura 4 Paravirtualizzazione........................................................................................................13 Figura 5 Schema logico di un segmento di VSAN .......................................................................19 Figura 6 Architettura delle Macchine virtuali in Virtual Server 2005 ..........................................22 Figura 7 Architettura di virtualizzazione in Windows Server 2008..............................................26 Figura 8 Migrazione da VSweb a Virtual .....................................................................................27 Figura 9 Processo di migrazione ...................................................................................................28 Figura 10 Cattura dell’immagine disco.........................................................................................30 Figura 11 Proprietà network esterna e della scheda di rete...........................................................31 Figura 12 Proprietà network esterna – DHCP...............................................................................32 Figura 13 Stato di VSweb visto da Virtual Server ........................................................................33 Figura 14 Sviluppo futuro del sever Virtual..................................................................................34 Figura 15 Schema teorico di funzionamento dell’OVF ................................................................35
  5. 5. INTRODUZIONE L’aumento del numero di unità nelle sale server delle aziende e il sott’utilizzo di tali sta diventando un problema da prendere in considerazione. L’elevata capacità di calcolo ed i moderni sistemi dei calcolatori hanno portato gli amministratori e gli utenti a trovare nuove soluzioni per poter ottenere migliori prestazioni e per razionalizzare le piattaforme in uso. Si ha quindi la necessità di trovare un sistema per migliorare le risorse utilizzate e sfruttare al meglio quelle inutilizzate. Le tecnologie di virtualizzazione sono una possibile soluzione a questo problema. Per virtualizzazione s’intende la creazione in una versione virtuale di una risorsa normalmente fornita fisicamente. Qualunque risorsa hardware o software può essere virtualizzata: sistemi operativi, applicativi, memoria, spazio disco. La virtualizzazione consente di eseguire simultaneamente applicazioni diverse e persino sistemi operativi differenti, sulla stessa macchina partizionando le risorse del sistema in più macchine virtuali. Ogni VM1 agisce come un singolo server standalone, ma in realtà è gestita da un unico server fisico. I sistemi di virtualizzazione danno la possibilità di astrarre alcuni servizi IT2 dalle rispettive dipendenze fisiche quali reti, sistemi di storage e hardware in genere, rendendo possibile l'esecuzione di più sistemi operativi su una singola macchina fisica che restano però, dal punto di vista logico, distintamente separati. Il sistema ospitante (host) crea una sorta di hardware sul quale è possibile eseguire più sistemi ospitati (guest). L'esecuzione di più applicazioni e sistemi operativi su un’unica macchina aumenta l'efficienza del sistema e riduce il numero di server da gestire e mantenere. Quando i carichi di lavoro aumentano, è possibile creare rapidamente altre VM per rispondere in modo flessibile alle mutate esigenze senza aggiungere fisicamente altri server. L’interesse a questi sistemi, per i motivi appena citati, in questi anni sta effettivamente crescendo anche perché si tratta di tecnologie nuove che hanno un rapido sviluppo e una grande utilità per gli amministratori di server e non solo. Lo scopo di questo elaborato è creare un prototipo di macchina virtuale partendo da un server in produzione, sfruttando le tecnologie che il mercato mette a disposizione. La creazione di tale prototipo sarà divisa in due fasi: una di migrazione del server in produzione in un nuovo ambiente, l’altra di virtualizzazione della macchina importata. 1 Macchina virtuale o virtual machine 2 Information Technology 4
  6. 6. Il Primo capitolo tratta il problema della proliferazione dei server nelle aziende dell’information technology, illustrata una breve analisi dell’SBA e propone una possibile soluzione a tale problema. Il secondo capitolo spiega cosa sono le macchine virtuali, effettua un confronto tra virtualizzazione e paravirtualizzazione facendo capire le differenze che ci sono alla base delle due, infine analizza i sistemi più importanti oggigiorno che consentono la virtualizzazione e la paravirtualizzazione. Sempre questo capitolo prenderà in considerazione i principali vendor e ne sceglierà uno che si adatti al meglio alle esigenze espresse. Il capitolo successivo illustra nel particolare le applicazioni scelte per la realizzazione del prototipo, come si relazionano tra di loro e vengono evidenziati degli aspetti da tenere in considerazione al momento dell’installazione e dell’utilizzo di tali applicativi. Nel quarto vengono spiegate le procedure che sono state effettuate per la realizzazione del prototipo e successivamente descritta la fase di test e messa in produzione. Il quinto capitolo affronterà gli sviluppi futuri del prototipo realizzato tenendo in considerazione i nuovi standard che oggigiorno sono proposti nel mercato. Si cercherà, infine, di trarre alcune conclusioni sul raggiungimento degli obiettivi. 5
  7. 7. 1 ANALISI DEL PROBLEMA 1.1 Analisi generale Nelle aziende informatiche dell’internet technology, e non solo, da qualche anno a questa parte c’è stato un elevato aumento del numero di server. Questo deriva in parte dalla filosofia che per ogni servizio fornito vi sia un server dedicato, in parte perché ogni servizio esistente è ottimizzato sulla tecnologia software del calcolatore su cui è installato. Questa situazione contrariamente a quel che si può pensare è presente in molte aziende. Il problema deve essere preso in considerazione seriamente in quanto si rischia di sott’utilizzare il vero potenziale di calcolo, aumentare il numero fisico delle macchine e di avere una gestione inefficiente del datacenter. Le conseguenze a questi problemi sono: un incremento dei costi di manutenzione, un decremento della gestione e dei tempi di risposta ed un aumento dei consumi energetici. Osservando le attuali stime di vendita si può notare che ogni anno vengono acquistati sempre più server rispetto all’anno precedente, da ciò possiamo intuire una proliferazione costante di unità all’interno delle sale server. A questo c’è da aggiungere l’innovazione tecnologica che migliora costantemente le potenzialità computazionali; l’aumento delle frequenze di clock, Hyperthreading e sistemi Dual-core hanno contribuito a diminuire l’utilizzo della CPU3 provocando un sott’utilizzo dei server. Figura 1 Proiezione delle vendite dei server x86 3 Central Processing Unit 6
  8. 8. 1.2 La situazione del SBA Analizzando la situazione del servizio bibliotecario d’ateneo (SBA) dell’Università di Trieste si è potuto verificare l’attendibilità delle ipotesi sopra citate. Il numero elevato delle unità nella sala server e il loro basso utilizzo fa notare che c’è il bisogno di adottare una nuova politica di gestione a fine di razionalizzare e sfruttare al meglio l’hardware esistente. Lo scopo di questa tesi è analizzare, studiare e realizzare una procedura per la razionalizzazione della sala server del SBA dell’Università di Trieste partendo da un prototipo sperimentale. 1.3 Una possibile soluzione Una risposta efficace alle problematiche poste è la virtualizzazione dei sistemi operativi e degli applicativi da loro utilizzati. Le tecnologie di virtualizzazione consentono di ottimizzare lo sfruttamento delle risorse, facendo risparmiare sull’acquisto di macchine utilizzando al meglio quelle che già esistono. Permettono inoltre di realizzare il tanto auspicato consolidamento: più server separati, dedicati ad altrettanti compiti, risiedono nella stessa macchina fisica. Inoltre con i moderni software in produzione è possibile trasferire sistemi in uso su vecchie postazioni in nuove postazioni hardware lasciando inalterato il software effettuando una vera e propria migrazione. 7
  9. 9. 2 VIRTUALIZZAZIONE 2.1 Cos’è la virtualizzazione Secondo VEM4 virtualizzare significa dividere le risorse di elaborazione. Dal punto di vista tecnologico, viene interposto un livello software che disaccoppia il sistema operativo principale dall’hardware, consentendo di realizzare macchine virtuali ospitanti altrettanti ambienti che condividono le medesime risorse. Questo risultato può essere ottenuto applicando uno o più metodi: partizione hardware e software, time sharing e simulazione parziale o integrale di una macchina. La ricerca in questo settore è iniziata negli anni sessanta e si è concentrata sulle architetture basate su macchine virtuali progettate come “copie” identiche dell'hardware della macchina principale. La virtualizzazione può assumere oggi la forma di un singolo prodotto indipendente, ottimizzato e impiegato con carichi di lavoro su piccola o vasta scala. Può essere applicata ad ogni livello dell'infrastruttura IT5: server, reti e storage. Questo livello virtuale di risorse hardware e software dell'infrastruttura IT porta ad un’efficienza maggiore attraverso un migliore utilizzo della capacità storage e server fisicamente disponibile. Un miglior utilizzo si trasforma a sua volta in una riduzione dei costi amministrativi e dei consumi elettrici. Reso possibile da una nuova generazione di processori, il software di virtualizzazione offre un'immagine hardware standardizzata sulla quale possono girare sistemi operativi e applicazioni della medesima versione e con lo stesso livello d’installazione usati con il tradizionale hardware stand-alone, ma con una notevole riduzione della complessità dell’infrastruttura. È altrettanto importante notare come la virtualizzazione introduca flessibilità nell'infrastruttura IT permettendole di crescere e contrarsi a seconda della necessità, e rendendo i sistemi maggiormente reattivi ai cambiamenti delle priorità o ai problemi hardware. I motivi per cui si cerca di virtualizzare e migrare da un server ad un altro sono vari. Fondamentalmente sono quelli di ridurre i costi e di consolidare l’infrastruttura. Gli obbiettivi della virtualizzazione e della migrazione sono principalmente quattro: i) Semplificare l'infrastruttura: semplificando l'architettura IT e integrando tutti i componenti in un’unica soluzione, è possibile risparmiare risorse e migliorare il controllo delle attività. ii) Ridurre la complessità e i requisiti di gestione: per gestire i server, è necessaria una soluzione semplice da utilizzare. Infatti, uno dei modi più rapidi per ridurre la 4 http://www.vem.com/ 5 Information Technology – tecnologie dell’informazione 8
  10. 10. complessità è migrare. Grazie al consolidamento dei server è possibile ridurre i costi hardware e sfruttare i vantaggi delle funzioni di virtualizzazione aumentando l'efficienza complessiva. iii) Utilizzare al meglio l'infrastruttura dei server: grazie alla virtualizzazione è possibile creare più server virtuali su un'unica macchina e stabilire le priorità delle risorse di sistema, allocandole in tempo reale. Così facendo si crea più flessibilità. iv) Aumentare le prestazioni delle applicazioni: la virtualizzazione consente di aumentare la scalabilità delle applicazioni per rispondere ai picchi di workload, riducendo i costi software e di gestione, con la possibilità di utilizzare contemporaneamente server di sviluppo, collaudo e produzione sullo stesso sistema. 2.2 La macchina virtuale Macchina virtuale è un termine che indica la creazione di molteplici ambienti d’esecuzione analoghi ad un computer reale. Tramite i processi di virtualizzazione si possono simulare più macchine all’interno di una sola. Come si nota in figura il software che permette la creazione e la gestione dell’ambiente simulato si chiama Virtual Machine Monitor (VMM) o anche chiamato Hypervisor. Il significato più comune oggi è quello di un programma che emula un calcolatore. Figura 2 Macchina viruale 9
  11. 11. I programmi applicativi sono scritti in un linguaggio che viene compilato per questo calcolatore immaginario e, una volta compilati, vengono eseguiti sulla macchina virtuale software che può agire o come interprete, o come compilatore in tempo reale6. È possibile emulare anche un sistema operativo, creando una sorte di finto computer dove si può eseguire un ambiente operativo differente da quello che è in esecuzione sull’elaboratore. Attraverso le macchine virtuali che emulano l’hardware sottostante è possibile permettere agli utenti di far girare differenti Sistemi Operativi (talvolta indicati come sistemi ospite) nei loro computer virtuali. I moderni sistemi operativi virtualizzati utilizzati al giorno d’oggi nei PC, restituiscono un trap7 ossia un codice d’errore normalmente gestito dal Sistema Operativo. In questa particolare situazione il trap viene gestito dal VMM per ogni accesso all’hardware e simulando tutto ciò che è contenuto normalmente all’interno di una scheda madre di un PC8. Come possiamo immaginare, non tutte le istruzioni di una macchina con architettura x86 permettono l’utilizzo di “trap” e non rendono quindi possibile la virtualizzazione per ogni singola istruzione. Per questo motivo, i sistemi più comuni di virtualizzazione per x86 devono ricompilare dinamicamente il codice privilegiato. Questa tecnica produce maggiore overhead rispetto ad una VM che gira in un’architettura virtualizzabile in modo nativo. Un altro esempio di macchina virtuale è l’emulazione. L’emulazione è la pratica di conversione da parte di un programma, cosiddetto emulatore, di tutte le istruzioni software scritte per una data architettura, in un linguaggio comprensibile ed eseguibile dall’architettura d’esecuzione (emulazione software ed hardware). In questo modo si permette l’esecuzione di applicazioni scritte per un ambiente hardware o software diverso da quello sul quale viene eseguito. Questa pratica è onerosa e per questo talvolta risulta lenta. Sul mercato vi sono svariati emulatori software facili da usare come per esempio: Qemu, VMware, e Virtual PC. Esistono anche emulatori di tipo hardware, sicuramente più complicati, che devono rendere possibile la simulazione dei circuiti e del comportamento fisico del sistema per cui è stata scritta originariamente un’ applicazione. Un’altra Macchina Virtuale piuttosto comune oggigiorno è quella che si basa sul cosiddetto consolidamento. Se nel suo significato originario il concetto di virtual machine indicava la suddivisione di un singolo computer tra più utenti, la potenza attuale di calcolo ha fatto sorgere l’esigenza inversa: far percepire come unica entità un sistema composto da molti 6 Compilatore al volo o compilatore just in time 7 I trap sono delle eccezioni generate al termine di un’istruzione 8 Da qui in avanti si userà PC per indicare Personal Computer sia al singolare sia al plurale 10
  12. 12. computer distinti anche eterogenei tra loro. Nelle grandi organizzazioni che forniscono molti servizi si è notato un proliferare di server, questo perché ogni server forniva un specifico servizio. Grazie alla virtualizzazione è possibile eseguire più istanze del sistema operativo, una per ogni servizio che viene fornito. Così facendo si riesce a limitare il numero di server sfruttando le potenze di calcolo effettive. 2.3 Virtual Machine Monitor (VMM) Il Virtual Machine Monitor (VMM) anche detto Hypervisor è il software vero e proprio che permette l’esecuzione multipla di Sistemi Operativi, sullo stesso computer nello stesso momento. Il VMM è il componente primario della virtualizzazione che abilita la suddivisione delle risorse base di un PC, come ad esempio il partizionamento della CPU, della memoria e dell’I/O. Con l’evolversi delle tecnologie di virtualizzazione ed il miglioramento dell’hardware, le funzionalità base del VMM possono risiedere in uno strato software a sé stante, che può trovarsi direttamente nell’hardware della macchina oppure essere implementato in una parte del Sistema Operativo. Uno dei pionieri dei monitor per macchine virtuali è il commerciale VMware, introdotto nella metà degli anni ’90. L’architettura utilizzata in molti PC è particolarmente difficile da virtualizzare, in quanto tutto ciò che non è supportato direttamente dall’hardware come ad esempio l’accesso che normalmente avviene in modo esclusivo a varie risorse del sistema, deve essere modificato e reso compatibile, in modo da far convivere più Sistemi Operativi contemporaneamente, attraverso il software. La piena virtualizzazione, ossia la simulazione di un insieme completo di hardware di tipo standard, nell’architettura x86 ha quindi costi significativi nella complessità e nelle performance dell’hypervisor (o VMM). Un approccio alternativo richiede che il Sistema Operativo ospite sia modificato. Questo sistema è utilizzato dal recente progetto open source Xen, ed è chiamato paravirtualizzazione e permette alte performance ed una semplicità maggiore dell’hypervisor, il seguente processo sarà trattato qui di seguito. 2.4 Paravirtualizzazione Con il termine paravirtualizzazione si indica un particolare tipo di virtualizzazione: si tratta di VM complete che non traducono nessun’interfaccia ISA9 o istruzione. Il monitor delle macchine virtuali si limita, infatti, a creare uno strato minimale per assicurare la gestione delle singole VM e un buon isolamento così facendo, permette di ottenere un’applicazione snella e 9 Instruction Set Architecture 11
  13. 13. veloce, garantendo alle macchine virtuali di girare alla piena velocità del processore e rendendo il controllo delle risorse di I/O e della memoria molto preciso e diretto. Le varie istanze delle VM si interfacciano a basso livello con il monitor, che presenta loro un hardware virtualizzato molto simile, ma non identico, a quello reale. Per questo motivo, un requisito dei sistemi di paravirtualizzazione è solitamente quello di modificare e ricompilare almeno il kernel del sistema operativo che dovrà supportare l’architettura virtuale mostrata dal monitor e non quella reale dell’hardware. Il monitor si trova al livello software più basso possibile: tuttavia, l’interesse per questo meccanismo di virtualizzazione è tale da avere spinto i maggiori produttori di CPU ad integrare nei processori di prossima generazione set d’istruzioni specifiche per il supporto alla paravirtualizzazione. Cercheremo ora di spiegare il funzionamento dei paravirtualizzatori nell’architettura dell’x86 che è suddivisa in quattro anelli gerarchici chiamati per l’appunto Ring. I Ring sfruttano il principio del privilegio minimo, ossia la passibilità di suddividere l’architettura in settori astratti, che permettono o meno privilegi alle applicazioni che girano nel sistema, in modo dipendente all’anello in cui si trovano durante l’esecuzione. Figura 3 I ring nell'architettura x86 L’anello più interno (Ring 0) è il più privilegiato. Nel Ring 0 solitamente gira il Sistema Operativo, nell’ultimo, il Ring 3, girano le applicazioni, e gli altri due intermedi, nelle architetture x86 sono normalmente inutilizzati. L’idea alla base della paravirtualizzazione è di non far girare i Sistema Operativi nel primo anello, ma in uno più esterno e quindi meno privilegiato. In questo caso è quindi l’hypervisor Xen a girare nel Ring 0, mentre i Sistemi Operativi ospite domU e dom0 risiedono nel Ring 1. Le applicazioni continuano a girare come nella normale architettura x86, nel Ring 3. In figura si può vedere la schematizzazione di quanto detto per l’architettura x86 a 32 bit. Per quanto riguarda x86 a 64 bit, le cose sono differenti ed entrambi i Sistemi Operativi dom0 e domU risiedono assieme alle applicazioni nel Ring 3. 12
  14. 14. Nella figura che segue possiamo vedere illustrato lo schema di un paravirtualizzatore che in questo caso specifico è Xen. Possiamo notare che il dom0 è un dominio privilegiato in quanto viene caricato per primo e a sua volta fa partire il demone Xend che serve a gestire i domini. La scelta di utilizzare un dominio “privilegiato” è dettata dall’obiettivo di separare il più possibile le politiche dai meccanismi. In particolare l’uso del dom0 serve a:  Creare e distruggere i domini.  Specificare alcuni parametri d’esecuzione per i domini. Ad esempio, la dimensione totale della memoria allocata.  Creare interfacce virtuali di rete.  Configurare alcuni aspetti di Xen: modalità di condivisione della CPU, regole di filtraggio dei pacchetti sulle interfacce virtuali di rete, etc. I successivi domU (domain1, domain2,…) vengono fatti girare tramite Xend e partiranno come un normale sistema operativo residente in una macchina fisica indipendente. Le chiamate all’I/O vengono gestite dall’hypervisor come appena descritto. Le applicazioni girano nei vari domini e non si accorgono del meccanismo attuato dai sistemi operativi e svolgeranno normalmente le loro funzioni. Figura 4 Paravirtualizzazione 13
  15. 15. 2.5 Soluzioni disponibili: stato dell’arte Viene ora presentata una lista dei principali sistemi di emulazione presenti oggi nel mercato. I software saranno brevemente descritti nelle loro principali caratteristiche. 2.5.1 Macchine virtuali complete Con questa denominazione s’intendono VM che permettono la virtualizzazione di un completo calcolatore di una determinata architettura. Questa tipologia di macchina è usata per eseguire un sistema operativo completo e un certo numero di applicazioni. Esistono varie implementazioni di VM di questo tipo; ne vengono qui citate alcune, senza pretesa di completezza. 2.5.1.1 VMware10 VMware è un progetto proprietario che racchiude una struttura complessa. Esso permette la virtualizzazione di macchine complete su architetture x86; mantiene quindi la stessa interfaccia fra i sistemi host e guest, che possono eseguire sistemi operativi Microsoft, Linux o addirittura Macintosh. Vedremo ora brevemente una panoramica sui prodotti del vendor in questione che si differenziano a seconda dell’utilizzo e dei costi. I principali software gratuiti sono VMware Player e VMware Server. Il player è facile da installare e permette di lavorare subito in sistemi operativi differenti da quello in uso. I sistemi operativi e le applicazioni si possono trovare in rete pronti per l’uso. La versione player permette l’accesso diretto alle risorse hardware che riconosce nella macchina reale, cercando di ottenere un compromesso tra la virtualizzazione vera e propria e una sorte di paravirtualizzazione per alcuni dispositivi, il che rende nel complesso la macchina virtuale piuttosto efficiente. Insieme al Player è disponibile VMmanager il quale permette di virtualizzare sistemi operativi partendo dal disco d'installazione abbattendo quindi il vincolo della pacchettizzazione e distribuzione on-line. Tale software da la possibilità di creare dei VHD11 e di gestire la quantità di RAM12 da destinare a ciascuna VM. La versione Server è più complessa e completa rispetto al semplice player in quanto si possono eseguire contemporaneamente più sistemi operativi, passando da uno all’altro in maniera rapidissima. C’è in più la possibilità di creare dei VHD dove saranno installati i sistemi 10 http://www.vmware.com 11 Virtual Hard Disk 12 Random Acces Memory 14
  16. 16. operativi e gli applicativi, tali dischi sono visti dall’esterno come un unico file, l’utente può impostare la dimensione del disco che il virtualizzatore gestirà. Altri punti d’interesse in questo progetto sono la possibilità di personalizzare l’hardware della VM, decidendo il tipo di periferiche ed il numero dei processori, inoltre è presente un virtual infrastructure layer, che permette di unire più macchine reali facendole apparire come una sola alla VM, consentendo tra l’altro lo spostamento a caldo del guest tra host diversi senza interromperlo. Ora analizzeremo i due maggiori applicativi non gratuiti: VMware Workstation e VMware ESX Server. VMware Workstation è un software per la creazione di macchine virtuali progettato per gli sviluppatori e i collaudatori di sistema, nonché per i professionisti IT che intendono semplificare i processi di sviluppo, di test e di installazione. Tale software consente l’esecuzione contemporanea su un unico PC di più sistemi operativi basati su processore x86, tra cui Windows, Linux e NetWare, e delle relative applicazioni; il tutto all’interno di macchine virtuali collegate in rete e senza alcuna necessità di partizionamento specifico del disco. VMware ESX Server è invece il prodotto di punta con tutte le funzionalità incluse pensate da IBM. E’ indicato per i server “bare-metal”, perciò non è necessario caricare un sistema operativo che si occupi di gestire VMWare ESX Server. Il prodotto possiede un suo sistema operativo basato su un kernel, chiamato VMKernel, adattato da Red Hat Enterprise Linux. Uno dei punti di forza di ESX sono le prestazioni: permette di ottenere performance doppie rispetto a VMWare Server. 2.5.1.2 Microsoft Virtual PC e Virtual Server 200513 Virtual PC consente di creare in un unico computer più macchine virtuali indipendenti in grado di emulare l'hardware di un computer fisico, nelle quali è possibile eseguire sistemi operativi come MS-DOS, Windows e OS/2. Virtual PC permette, infatti, di eseguire più sistemi operativi contemporaneamente su un unico computer e di passare dall'uno all'altro come avviene per le applicazioni. Virtual PC non è un player come VMware è in realtà un ibrido, nel senso che è possibile creare i VHD ed installare in essi il sistema operativo che serve. A differenza di VMware i Virtual PC ha una gestione dell’hardware un po’ più limitata ed inoltre non sono supportate alcune funzionalità, come ad esempio il supporto per le periferiche USB14 che invece VMware supporta pienamente. 13 http://www.microsoft.com 14 Universal Serial Bus 15
  17. 17. Microsoft Virtual Server 2005 invece è concepito diversamente, come del resto VMware server. Infatti può gestire contemporaneamente più sistemi operativi, ed è possibile passare da un sistema all’altro facilmente. Virtual Server ha delle maggiori funzionalità rispetto al virtual PC in quanto ha una migliore gestione dell’hardware: si può decidere la quantità di memoria da dedicare, gestisce i dischi virtuali, supporta dischi e schede SCSI15 ed in più monitorizza costantemente le percentuali utilizzate di CPU e di memoria RAM. Con Virtual Server è possibile costituire delle network virtuali (VN) per lo scambio di dati tra un sistema e l’altro e per la distribuzione delle applicazioni. 2.5.1.4 QEMU16 QEMU è stato sviluppato per Linux ma sono state realizzate port per Mac OS X e Windows; le CPU host supportate correttamente sono, al momento: x86, AMD64, PowerPC, MIPS e ARM.. La sua classificazione è multipla, in quanto QEMU ha differenti modalità di esecuzione, che implicano caratteristiche implementative e d’uso diverse. QEMU effettua una traduzione dinamica dell’ISA del processore emulato, generando una nuova istruzione per ogni comando della CPU guest e riutilizzandola all’occorrenza. Per superare la lentezza intrinseca dei traduttori dinamici, QEMU utilizza alcuni trucchi di programmazione. QEMU può, tra l’altro, emulare più di una CPU (fino a 255 su x86).Esso supporta due modalità di esecuzione:  User Emulation: riguarda l’esecuzione di processi Linux su OS Linux. In questo caso viene effettuata (per velocizzare il sistema) l’intercettazione delle system call, convertendo i parametri secondo le esigenze delle CPU (reale e virtuale) utilizzate. Si tratta quindi di un’emulazione del solo processore.  System Emulation: è l’emulazione completa di CPU e periferiche per l’esecuzione di un OS guest. Si tratta quindi di una vera virtualizzazione del processore e completa, una VM di sistema con accesso diretto alle risorse della macchina reale. 15 Small Computer System Interface 16 http://www.qemu.org 16
  18. 18. 2.5.2 Macchine paravirtuali Per macchine paravirtuali, come descritto precedentemente, intendiamo applicazioni che si limitano a creare uno strato minimale per assicurare la gestione delle singole VM, permettendo di ottenere un’applicazione agile e rapida. 2.5.2.1 Xen17 Si tratta di un progetto patrocinato da IBM, che detiene probabilmente il primato di efficienza per le VM tra quelle realmente utilizzabili. Xen si basa su una struttura simile a un microkernel: contiene solo il minimo indispensabile per poter gestire le macchine virtuali guest. In particolare Xen non supporta direttamente tutto l’hardware della macchina, ma si appoggia ai driver dell’OS della prima macchina virtuale ad essere eseguita: l’OS in questione viene definito Domain. Xen genera sempre maggior interesse in quanto supporta (come VMware e Microsoft Virtual Server) la migrazione a caldo degli ambienti virtuali: una macchina virtuale può migrare da una macchina reale ad un’altra che abbia Xen senza che il sistema virtualizzato si renda conto del passaggio. Xen si pone come macchina completa che mantiene le interfacce del sistema host. 2.6 Storage area network e virtual storage area network Storage Area Network (SAN) è una rete ad alta velocità di dispositivi di memorizzazione di massa condivisi; un dispositivo di memorizzazione di massa, storage, è una macchina che può essere composta da uno o più dischi per contenere dati. Secondo il dizionario tecnico pubblicato dalla Storage Networking Industry Association (SNIA)18 si definisce una rete SAN come: «Una rete il cui scopo principale è il trasferimento di dati tra sistemi di computer ed elementi di storage e tra elementi di storage. Una rete SAN consiste in un’infrastruttura di comunicazione, che fornisce connessioni fisiche e in un livello di gestione, che organizza connessioni, elementi di storage e sistemi di computer in modo da garantire un trasferimento di dati sicuro e robusto.» Un’ architettura SAN lavora in modo che tutti i dispositivi di memorizzazione siano disponibili a qualsiasi server della rete LAN19 o MAN20 di cui la SAN in questione fa parte; una 17 http://www.xensource.com 18 http://www.snia.org/home 19 Local Area Network 20 Metropolitan Area Network 17
  19. 19. SAN può essere anche condivisa fra più reti interconnesse, anche di natura diversa: in tal caso uno dei server locali fa da ponte fra i dati memorizzati e gli utenti finali. Il vantaggio di un’architettura di questo tipo è che tutta la potenza di calcolo dei server è utilizzata per le applicazioni, in quanto i dati non risiedono direttamente in alcuno di questi. L’applicabilità delle tecniche di virtualizzazione alle SAN ha dato vita alle Virtual Storage Area Network (VSAN): sezione specifica di una SAN appositamente divisa ed organizzata in partizioni o sezioni logiche. Questo sistema permette di consolidare l'infrastruttura fisica della rete di storage, con particolare riferimento a un utilizzo più efficiente delle porte fisiche, mantenendo al tempo stesso delle partizioni logiche indipendenti, le VSAN per appunto. L'uso delle VSAN consente l’isolamento del traffico all'interno di specifiche porzioni della rete inoltre rende il sistema più facile da configurare e più scalabile. Le VSAN possono essere configurate separatamente e indipendentemente; è proprio la loro indipendenza e la possibilità di avere una ridondanza dei dati a renderle sicure e meno vulnerabili. Con un approccio analogo a quello delle VLAN21, in ambito di networking-dati puro, le VSAN consentono anche di realizzare architetture che impiegano un numero inferiore di switch, che rimangono quindi in un numero ridotto da gestire. Tutto questo a beneficio di sicurezza, scalabilità, disponibilità, miglior utilizzo delle risorse di rete e con un conseguente contenimento dei costi valutati nel loro complesso. Ricordiamo inoltre che la virtuallizzazione dello storage è l’unica opzione efficace per stabilire una vera infrastruttura multi piattaforma. 21 Virtual LAN 18
  20. 20. Figura 5 Schema logico di un segmento di VSAN 2.7 Scelta del software La scelta del prodotto è stata decisa analizzando i sistemi attualmente in uso nei server del SBA di Trieste, i costi di acquisto, quelli d’installazione, la possibilità di virtualizzare sistemi operativi differenti, la compatibilità tra essi e la possibilità di migrare a “caldo” il sistema da un server all’altro. Dopo un attento studio della situazione e dei prodotti disponibili nel mercato si è deciso di adottare il pacchetto Microsoft con il Virtual Server 2005 R2 principalmente per tre motivi. Il primo riguarda i sistemi operativi già installati nei server, essi sono Microsoft, per la precisione, i server che dovranno essere virtualizzati hanno come sistema operativo Windows 2000 Server. Il secondo motivo riguarda il supporto alla migrazione: grazie al Virtual Server Migration Toolkit è possibile migrare il software da una macchina all’altra senza dover re-installare tutto. Questo è un punto fondamentale perché prima di virtualizzare un server bisogna valutare la procedura migliore da attuare, infatti vi sono due modi: i) La migrazione del software: consiste nel “trasporto” del software da una macchina all’altra. Si crea un’immagine completa del disco rigido della macchina da migrare, 19
  21. 21. il disco pacchettizzato viene virtualizzato od implementato sul nuovo server. Questa tecnica comporta dei vantaggi notevoli in quanto è indipendente dalle applicazioni che girano sui server, una volta carpite le tecniche è possibile migrare sistemi operativi e applicazioni che stanno su server obsoleti in nuove macchine. La migrazione si pone come uno standard unico ed indipendente utilizzabile per qualsiasi architettura. ii) Installare nuovamente il software: si installa sul nuovo server il nuovo sistema operativo, si virtualizza il sistema operativo dell’alto server ed infine si installa nuovamente le applicazioni. Questa metodologia è rigida e dispendiosa in quanto ogni volta che c’è da virtualizzare un server bisogna installare ed impostare nuovamente tutti i programmi ottimizzati per quella macchina. È un operazione rischiosa perché molte volte non si riesce a configurare nel nuovo server le medesime impostazioni dei programmi, questo è dovuto a documenti d’installazione poco precisi o perché questi ultimi sono andati persi o magari la persona che aveva effettuato le installazioni non lavora più nell’azienda. Le cause possono essere molte e si verificano di frequente. La metodologia scelta è la migrazione in quanto consiste in uno standard che potrà essere utilizzato per la virtualizzazione di vari server e per aggirare il problema della re-installazione dei programmi. L’assenza di costi è il terzo motivo che ci ha convinto a scegliere Microsoft. Questo non è da sottovalutare in quanto tutti gli applicativi che ci serviranno per effettuare la migrazione e la virtualizzazione dei server sono gratuiti. 20
  22. 22. 3 SOLUZIONE DI VIRTUALIZZAZIONE NEI PRODOTTI MICROSOFT 3.1 Microsoft Virtual Server 2005 R2 Virtual Server 2005 R2 rende disponibili le tecnologie di virtualizzazione sulla piattaforma Windows Server 2003. In tal senso, risponde all'esigenza di una soluzione per la migrazione delle applicazioni basata sulla virtualizzazione e supportata da Microsoft. 3.1.1 L’architettura della Macchine Virtuali Virtual Server 2005 R2 è un'applicazione che utilizza il multithreading eseguito come servizio di sistema. Ogni macchina virtuale viene eseguita nel proprio thread di elaborazione e l'I/O ha luogo nei thread secondari. Virtual Server 2005 R2 sfrutta due funzioni di base del sistema operativo host: i) Il kernel del sistema operativo host, che provvede alla pianificazione delle risorse CPU. ii) I driver di periferica del sistema operativo host, che consentono l'accesso alle periferiche di sistema. Virtual Machine Monitor (VMM) di Virtual Server 2005 R2 mette a disposizione l'infrastruttura software per la creazione delle macchine virtuali, la gestione delle istanze e l'interazione con i sistemi operativi guest. Nella figura sottostante è illustrata l'architettura della tecnologia Microsoft per le macchine virtuali. Partendo dalla parte inferiore della struttura logica troviamo il sistema operativo host, Windows Server 2003, che gestisce il sistema host. Virtual Server 2005 R2 fornisce il livello di virtualizzazione VMM (Virtual Machine Monitor) per la gestione delle macchine virtuali, creando l'infrastruttura software necessaria per l'emulazione hardware. Ogni macchina virtuale è composta da un insieme di periferiche virtualizzate. Infine, il sistema operativo guest e le relative applicazioni vengono eseguiti nella macchina virtuale e non rilevano, ad esempio, che la scheda di rete con cui interagiscono tramite Virtual Server 2005 R2 è solo un'emulazione software di un dispositivo Ethernet fisico. Quando viene eseguito un sistema operativo guest, l'apposito kernel del Virtual Machine Monitor assume il controllo della CPU e dell'hardware durante il funzionamento della macchina virtuale, dando luogo a un ambiente isolato in cui il sistema operativo guest e le applicazioni vengono eseguite in prossimità dell'hardware, con le migliori prestazioni possibili. 21
  23. 23. Figura 6 Architettura delle Macchine virtuali in Virtual Server 2005 3.1.2 L’architettura delle reti virtuali Il driver del servizio di rete virtuale viene installato nel sistema operativo host a basso livello, appena al di sopra del driver di rete hardware. Il driver del servizio di rete virtuale si occupa dell'indirizzamento dei pacchetti di rete, che vengono inviati al sistema operativo host o a un sistema operativo guest. Il sistema operativo host è in grado di leggere, monitorare o acquisire il traffico di rete delle macchine virtuali guest in esecuzione su di esso. Inoltre, le macchine virtuali configurate solo per la rete esterna non sono in grado di leggere, monitorare o acquisire il traffico di rete di altre macchine virtuali. 3.1.3 Sistemi operativi supportati 3.1.3.1 Sistemi Guest Sistemi operativi guest di macchina virtuale supportati da Microsoft Virtual Server: Sistemi operativi Microsoft Windows  Microsoft Windows Server 2003 Standard, Enterprise e Datacenter Edition  Microsoft Windows 2000 Server ed Advanced Server  Microsoft Windows 2000 Advanced Server  Windows NT con Service Pack 6a  Microsoft Windows XP Professional Service Pack 2 22
  24. 24. Distribuzioni Standard Linux  Linux Red Hat dalla 7.3  Linux SUSE dalla 9.2  Linux Ubuntu dalla 6.06 3.1.3.2 Sistemi Host Sistemi operativi host che supportano Microsoft Virtual Server:  Windows Server 2003 Standard, Enterprise e Datacenter Edition  Microsoft Windows Small Business Server 2003 Standard Edition  Microsoft Windows Small Business Server 2003 Premium Edition 22  Microsoft Windows XP Professional Service Pack 2  Microsoft Windows XP Professional 64 Edition 3.1.4 Requisiti del sistema Requisiti di Microsoft Virtual Server 2005 R2 Velocità minima CPU 550 MHz Numero di processori Enterprise Edition: fino a 32 processori fisici Velocità CPU consigliata 1,0 GHz o superiore Processore Intel Pentium III, Pentium 4, Celeron o Xeon AMD Athlon, Athlon 64, Athlon X2, Opteron, Sempron o Duron RAM minima 256 MB (è necessaria memoria aggiuntiva per ogni sistema operativo guest) Spazio disponibile sul 2 GB (è necessario spazio su disco aggiuntivo per i sistemi operativi disco rigido guest) Periferiche  Monitor Super VGA (800x600) o con risoluzione superiore  Tastiera e mouse 3.2 Microsoft Virtual Server Migration Toolkit Il Virtual Server Migration Toolkit (VSMT) è un software per la conversione da computer fisici a macchine virtuali o da macchine virtuali ad altre macchine virtuali (P2V). Tale strumento a riga di comando, utilizzato in combinazione con l’Automated Deployment Services che sarà trattato di seguito, semplifica il processo di migrazione ad un 22 Senza ISA Server 2000 o ISA Server 2004 23
  25. 25. ambiente virtuale. VSMT gestisce il processo di generazione della macchina virtuale partendo dall’immagine disco del server da virtualizzare generata con ADS, che sarà poi eseguita da Virtual Server 2005. Grazie a VSMT è possibile: i) Generare il file XML23 della configurazione hardware del server da virtualizzare. ii) Validare tale file, cioè verificare se sussiste la compatibilità tra i due server. iii) Creare una serie di script necessari per rendere migliore la cattura e la creazione della virtual machine. iv) Creare l’immagine disco del server da virtualizzare con l’ausilio di ADS. v) Creare la virtual machine partendo dall’immagine catturata. vi) Implementare tale macchina virtuale 3.2.1 Sistemi operativi supportati I sistemi operativi che si possono migrare attraverso il Migration Toolkit sono:  Windows NT 4.0 Server SP 6a, Standard and Enterprise Editions  Windows 2000 Server SP 4 o successive  Windows 2000 Advanced Server SP 4 o successive  Windows Server 2003, Standard Edition and Enterprise Edition 3.2.2 Componenti aggiuntivi Virtual Server Migration Toolkit, per funzionare correttamente, ha bisogno dei componenti aggiuntivi di Windows 2003 Server, come il protocollo di configurazione dinamica degli indirizzi di rete (DHCP) , Pre-Boot eXecution Environment (PXE) e come già detto Automated Deployment Services. 3.3 Microsoft ADS 1.0 Microsoft Automated Deployment Services (ADS) è un servizio di Windows Server 2003 che distribuisce ed amministra installazioni automatiche di Windows 2000 e 2003 Server. Il sistema si basa sulla tecnologia PXE. ADS include un set di imaging tools, un framework per l'esecuzione di script, interfacce amministrative MMC e un editor XML per la creazione e la modifica di sequenze di task. Come già detto è uno strumento che interagisce con il Migration Toolkit perché si prende carico di creare l’immagine del disco rigido del server in produzione che servirà poi per la creazione della macchina virtuale. 23 eXtensible markup language 24
  26. 26. Precedentemente è già stata descritta l’importanza dell’acquisizione dell’immagine per garantire flessibilità del sistema e per fornire uno standard strutturale. Microsoft ADS è il software che permette tale procedura facendo risparmiare tempo e costi di re-installazione del software. 3.3.1 Note sul prodotto Microsoft ADS è supportato da Windows Server 2003 Enterprise e Datacenter Editinon, può amministrare le installazioni di tutte le versioni di Windows 2000 Server (ma non Windows 2000 Professional) e le versioni a 32 bit di Windows 2003 Server; non supporta le versioni di Windows Server 2003 Enterprise Edition a 64 bit. Un altro componente che deve necessariamente essere presente nel sever è un data base, in questo caso sarà utilizzato Microsoft SQL Server, in quanto fornito assieme all’Automated Deployment Services. Ovviamente anche per quest’ultimo deve essere configurato adeguatamente il servizio di DHCP. 3.4 Microsoft Windows Server 2008 e Hyper-V L'ultima versione del sistema operativo per server di Microsoft, Windows Server 2008, facilita al reparto IT l'implementazione della virtualizzazione. Questo grazie alla presenza di un “hypervisor”, chiamato Hyper-V che va a sostituire e allo stesso tempo unificare i prodotti precedentemente descritti. Tale strumento, incluso all’interno del core del sistema operativo, permette la gestione di infrastrutture virtuali su server fisici incrementando le prestazioni e riducendo i consumi energetici. Hyper-V è un hypervisor integrato a livello di Micro-Kernel, con supporto Host e Guest x64 e la gestione di quattro core virtuali. Può essere installato su Server Core e supporta il backup live e lo snapshot delle virtual machine. A livello di gestione hardware il numero massimo di CPU Guest è quattro, in modalità Host si possono raggiungere i 24 core, la RAM allocabile è compresa tra 64 GByte e 2 TByte, mentre 192 è il numero massimo di macchine virtuali eseguibili in contemporanea su una singola macchina fisica. Hyper-V permette la condivisione di risorse hardware e la capacità di bilanciare il carico di rete, grazie alle nuove funzionalità di virtual switch. In questo modo le macchine virtuali possono essere facilmente configurate per l'esecuzione del servizio Windows Network Load Balancing (NLB), per ridistribuire il carico tra le macchine della rete. 25
  27. 27. Figura 7 Architettura di virtualizzazione in Windows Server 2008 26
  28. 28. 4 REALIZZAZIONE DEL PROTOTIPO Analizzeremo ora la realizzazione del prototipo, cercando di visualizzare come gli applicativi interagiscono tra loro. Per semplificare la spiegazione delle procedure chiameremo VSweb il server di produzione che è ora in uso: esso fornisce un servizio di consultazione delle banche dati del SBA tramite un applicativo ASP su piattaforma Windows 2000 Server. Virtual, sarà invece, il nuovo server su cui verrà migrato e successivamente virtualizzato VSweb. Figura 8 Migrazione da VSweb a Virtual 4.1 Installazione dei prodotti Per prima cosa bisogna installare nel server Virtual, Windows 2003 Server. Si passerà poi all’installazione e alla configurazione del DHCP, dopodichè si eseguirà l’installazione dei tre software fondamentali: Virtual Server Migration Toolkit per la verifica dell’hardware e la creazione della VM; ADS 1.0 per catturare l’immagine e Virtual Server 2005 R2 per gestione della macchina virtuale. Il DHCP di Virtual deve essere configurato in modo tale da riservare un indirizzo IP a VSweb, per essere sicuri di ciò è meglio attivare una “Reservations” specificando l’indirizzo MAC24 del server che dovremmo migrare, in questo caso il MAC address di VSweb con supporto al Both. Questa configurazione servirà per eseguire la cattura dell’immagine disco in automatico da parte di ADS. Configurato il DHCP si passerà all’installazione di Microsoft Virtual Server 2005 R2; la procedura guidata installerà l’applicativo in pochi minuti. Successivamente si procede con l’installazione di ADS, installando prima Microsoft SQL Server Desktop Engine in quanto fondamentale per il funzionamento di ADS. Di seguito si 24 Media Access Control, Indirizzo fisico della macchina è un codice a 6 byte univoco per ogni scheda di rete 27
  29. 29. effettuerà l’installazione di ADS (Automated Deployment Sevcice) e ADS Administration Agent. Non servono configurazioni particolari per il funzionamento di tale software e l’installazione è gestita completamente dalla procedura guidata. Infine Virtual Server Migration Toolkit, questo software deve essere installato per ultimo in quanto rileverà in automatico le impostazioni dei software precedentemente installati. Prima di passare alla procedura di migrazione bisognerà creare la network virtuale (VM0) che sarà usata durante tale processo. Per creare la network ci sono due modi: il primo è la creazione mediante il pannello di controllo del Virtual Server dando come nome VM0 e associando come network adapter la scheda di rete del PC. Il secondo modo per creare la network è quello di eseguire lo script tramite riga di comando che creerà automaticamente la VM0. C:Program FilesMicrosoft VSMTSamplescscript CreateVirtualNetwork.vbs 4.2 Migrazione del server Vedremo ora come i tre software interagiscono tra loro per effettuare la migrazione. La figura sottostante spiega in breve la successione di operazioni che verranno eseguite e trattate con maggior dettaglio di seguito. Figura 9 Processo di migrazione 28
  30. 30. Per prima cosa bisogna generare un file XML contenente tutte le caratteristiche tecniche del server che si deve migrare, nel nostro caso tale file sarà generato su VSweb. Per creare questo documento è necessario trasferire lo script gatherhw.exe che si trova nella directory del VSMT del server Virtual nel server VSweb, una volta eseguito verrà generato il file contenente tutte le impostazioni di sistema. Questo file deve essere spostato nel server Virtual per essere validato. La procedura per la validazione del file deve essere fatta, come detto, su Virtual e serve per verificare se ci sono incompatibilità tra i server e impossibilità di migrazione, la validazione viene eseguita attraverso lo script vmscript /hwvalidate /hwinfofile a cui verrà passato come parametro a hwinfofile il file XML precedentemente generato. Se non vengono rilevate incompatibilità di sistema allora è possibile procedere con la configurazione delle directory e gli script di trasferimento. Lo script vmscript si trova nella directory del VSMT. Questo che segue è forse il passo più delicato da eseguire in quanto bisogna specificare correttamente tutti i parametri per la migrazione del server: VmScript /hwgenerateP2V /hwinfofile:quot;file.xmlquot; /name:nome server /vmconfigpath:quot;path di configurazionequot; /virtualDiskPath:quot;path del disco vitualequot; /hwdestvs:virtual /adminMAC:0020ED35560D /virtualDiskDynamic  hwGenerateP2V: comando del VmScript per la generazione automatica degli script per la migrazione.  hwInfofile: è il file XML precedentemente generato e validato.  name: è il nome che verrà dato al server virtuale e che poi verrà visualizzato ed utilizzato del Virtual Server 2005. Nel nostro caso useremo lo stesso nome del server fisico in uso cioè VSweb.  vmconfigpath: directory dove verranno messi i file di configurazione della macchina virtuale che il Virtual Server utilizzerà  virtualdiskpath: directory dove sarà creato il Virtual Hard Disc (VHD) nel nosto caso VSweb.vhd  hwdestvs: nome del server su cui la macchina sarà migrata.  adminmac: indirizzo MAC del server da migrare. Vi sono altre impostazioni configurabili, come ram da utilizzare o quantità di disco da occupare ma sono dettagli minori che si possono specificare successivamente nella console del Virtual Server una volta creata la virtual machine. 29
  31. 31. Una volta terminata la configurazione degli script per la migrazione si passa alla cattura dell’immagine disco del server VSweb. Questa operazione sarà svolta dall’ADS che si prenderà cura di fare uno o più file immagine (.img) a seconda delle partizioni e del numero dischi. Il comando da eseguire ora sarà NomeServer_capture.cmd che si trova in p2vnomeserver nella directory d’installazione del VSMT. Giunti a questo punto, automaticamente, ADS creerà un job per la cattura dell’immagine disco del server VSweb. Questo job si divide in quattro parti: i) Boot to deployment agent: avvia il processo di cattura e attende, ora bisogna riavviare il server in modalità lan. ii) Get geometry: calcola lo spazio del disco e le partizioni in cui è diviso, questi dati sono presi anche dal file XML generato all’inizio iii) Capture image: cattura l’immagine in un file .img, farà tante immagini quante sono le partizioni del disco. iv) Shutdown machine: spegne il server Figura 10 Cattura dell’immagine disco 30
  32. 32. Il processo di acquisizione può durare molte ore, è tutto in relazione della grandezza del disco fisso del server in uso. Una volta completata la cattura dell’immagine si passa alla creazione della virtual machine. Anche questo processo viene completamente automatizzato basta eseguire dal prompt dei comandi NomeServer_CreateVM.cmd. Questo script si trova sempre nella directory del comando precedente. La virtual machine è creata in automatico ed è possibile visualizzarla dalla console del Virtual Server. Creata ora la Virtual Machine non resta altro che fare il deploy della nostra macchina virtuale. Useremo questa volta il comando NomeServer_DeployVM.cmd. Giunti a questo punto bisogna eseguire il shoutdown del device nei job templates del ADS Controller. Il server, VSweb, è stato consolidato mediante un processo di migrazione su Virtual e di successiva virtualizzazione, rimane solamente da configurare la Virtual Machine attraverso il pannello di controllo del Virtual Server. Figura 11 Proprietà network esterna e della scheda di rete 31
  33. 33. Figura 12 Proprietà network esterna – DHCP 32
  34. 34. Figura 13 Stato di VSweb visto da Virtual Server 4.3 Test del prototipo e messa in produzione Consolidato ora il server VSweb in Virtual, si è passati alla fase di test in laboratorio. I test realizzati sul prototipo hanno fornito un riscontro positivo: il server virtualizzato era identico all’originale, si potevano eseguire le medesime operazioni del precedente server ed erano erogati gli stessi servizi. Si è potuta verificare l’indipendenza della macchina virtuale dall’hardware sottostante, grazie alle funzioni di Microsoft Virtual Server sono state fatte varie simulazioni con configurazioni hardware diverse “giocando” sulle percentuali di processore e la quantità di ram da dedicare al prototipo. Possiamo quindi concludere che la tecnica di migrazione e successiva virtualizzazione del server in produzione ha funzionato come sperato, infatti, dopo tutte le fasi di test il server è stato messo in produzione. 33
  35. 35. 5 SVILUPPI FUTURI Consolidate ora le procedure di migrazione e virtualizzazione passeremo ora ad analizzare gli sviluppi futuri realizzabili. In primis è possibile continuare con il consolidamento dell’altro server: ServerCD, che fornisce servizi in parallelo con VSweb. Mentre in VSweb risiedono gli applicativi ASP con la banca dati su SQL Server, in ServerCD vi sono gli applicativi installati su terminal server. Il passo successivo da compiere è quello di sfruttare le procedure impiegate per la realizzazione del prototipo ed utilizzarle per effettuare una migrazione con successiva virtualizzazione di ServerCd su Virtual. Così facendo si saranno consolidati in Virtual i due server, ora macchine virtuali, che saranno gestiti attraverso Microsoft Virtual Server 2005 R2, la struttura diventerà quindi solida e scalabile. Figura 14 Sviluppo futuro del sever Virtual Un successivo sviluppo può essere quello di sfruttare le nuove tecnologie che Windows Server 2008 mette a disposizione. Utilizzando tale sistema operativo e le potenzialità dell’Hypervisor integrato si può pensare di virtualizzare i restanti server del SBA, anche quelli che operano su piattaforme Linux. Infine un interessante sviluppo della struttura può essere studiato in vista della futura compatibilità degli Hypervisor. L'idea alla base è quella di riuscire a garantire la portabilità delle macchine virtuali. Le virtual machine create in questo nuovo formato, OVF (Open Virtual Machine Format) potranno essere installate su qualsiasi piattaforma di astrazione che lo supporta, migliorando 34
  36. 36. l'interoperabilità delle infrastrutture di astrazione. OVF sfrutta i tool, attualmente in commercio, per riuscire a far lavorare insieme due o più macchine virtuali, utilizzando un involucro software basato su XML. Questo nuovo standard, secondo VMware, permette di attribuire alla piattaforma di astrazione un pacchetto, contenente tutti i parametri di configurazione e installazione, sufficiente ad assicurare che qualsiasi tecnologia conforme alla specifica sia implementata correttamente. Oltre a garantire la portabilità, l'integrità e la facile configurazione ai formati degli hard disk virtuali attuali, OVF è sufficientemente flessibile da riuscire a supportare lo sviluppo, in futuro, di nuovi formati. Grazie a tale standard e possibile creare macchine virtuali indipendenti dall'hypervisor, che possono essere importate e funzionare in ambienti diversi. Lo standard Open Virtual Machine Format (OVF) è definito dall'organizzazione Distributed Management Task Force (DMTF)25 e viene rilasciato come software open source con licenza GNU26 LGPL (Lesser General Public License) per favorire l'adozione di uno standard di settore comune per la creazione di applicazioni e macchine virtuali portabili, così come la gestione delle infrastrutture virtuali. Figura 15 Schema teorico di funzionamento dell’OVF 25 http://www.dmtf.org 26 http://www.gnu.org 35
  37. 37. 6 CONCLUSIONI Lo scopo iniziale era quello di riuscire a migrare e successivamente virtualizzare un server di produzione. Gli obiettivi generali, ottenibili mediante questa tecnica, erano: razionalizzazione dei server, rendere le configurazioni informatiche più flessibili, ridurre l’hardware all’interno delle sale server, fornire un esempio base per avere una struttura più solida e scalabile allo stesso tempo, ridurre i costi energetici. Gli obiettivi sopra citati sono stati raggiunti, virtualizzando solamente un server di produzione si è giunti immediatamente ad una riduzione di unità all’interno della server farm e si è resa più solida e scalabile la struttura. Gli obbiettivi tattici che comprendevano lo studio delle tecnologie, la raccolta dei requisiti ed infine la realizzazione di un prototipo con relativo porting in produzione sono stati pienamente raggiunti. Si è trattato, principalmente, di un lavoro di assemblaggio: gli applicativi erano già disponibili sul mercato, si trattava di scegliere i più adatti e farli cooperare insieme in modo da ridurre al minimo le operazioni, e quindi le competenze, richieste all’utente. La cooperazione degli applicativi è stato il punto più ostico da risolvere, in quanto si è dovuto ripetere più volte svariate operazioni per cercare di far interagire al meglio i vari software per poi riuscire a creare il prototipo in automatico. Si trattava anche di scegliere gli strumenti più adatti da utilizzare, essendo spesso disponibili più soluzioni. La scelta, in realtà, è stata abbastanza semplice, in quanto sono stati seguiti i criteri ampliamente trattati nel capitolo 2.7 che erano principalmente tre: i sistemi operativi già installati nei server, il supporto alla migrazione degli applicativi e l’assenza di costi. Gli sviluppi futuri, come visto nel capitolo precedente, sono ampi. La virtualizzazione oggi è argomento di discussione e continua ricerca per un’innovazione sempre più efficace ed efficiente delle strutture informatiche. 36
  38. 38. APPENDICE E CD In questa sezione è descritto il contenuto del CD allegato alla tesi. Contenuto del CD:  Documento in formato Word della tesi.  Documento in formato PDF della tesi.  Presentazione in PowerPoint della tesi.  Pagina web con i riferimenti bibliografici.  Software utilizzato. 37
  39. 39. RIFERIMENTI BIBLIOGRAFICI Wikipedia l’enciclopedia libera, Wikipedia Eng/It http://en.wikipedia.org (novembre 2008) http://it.wikipedia.org (novembre 2008) VMware, VMware Virtualization http://www.vmware.com/virtualization/ (ottobre 2008) VMware, VMware Standards http://www.vmware.com/standards/ (ottobre 2008) Intel, Intel Virtualization http://www.intel.com (gennaio 2007) Xen Sources, Xen http://www.xensource.com/ (gennaio 2007) Guido Trotter, Virtualizzazione di macchine Linux tramite Xen http://erlug.linux.it/linuxday/2005/contrib/trotter.pdf (gennaio 2007) Xen Sources, Xen Frequently Asked Questions http://wiki.xensource.com/xenwiki/XenFaq (gennaio 2007) Rami Rosen, Virtualization in Xen http://www.linuxjournal.com/article/8909 (gennaio 2007) Enrico Simonetti, Un ambiente di simulazione basato su server virtuali per il sistema di accesso sicuro alla rete wireless di Facoltà, 2005 Mattia Gentilizi, Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web, 2006 Istallazione e configurazione ADS, Ads 1.0 http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/ADS/en- us/ads_overview.mspx?mfr=true (gennaio 2007) Istallazione e configurazione Migration Toolkit, Microsoft Virtual Server 2005 Migration Toolkit http://whitepapers.techrepublic.com.com/whitepaper.aspx?docid=137862 (gennaio 2007) Istallazione e configurazione Virtual Server 2005, Microsoft Virtual Server 2005 R2 http://www.microsoft.com/technet/prodtechnol/virtualserver/2005/proddocs/vs_tr_a_virtualhd.m spx?mfr=true (gennaio 2007) Server consolidation, la filosofia progettuale per una gestione http://www.vem.com/template.asp?lvl=2&idlvl=4 (febbraio 2007) Virtualizzare Server e Applicazioni: vantaggi, svantaggi e best-practice, perché virtualizzare? http://www.bitonline.it (febbraio 2007) IDC Italia, IDC Analyze the future 38
  40. 40. http://www.idc.com/italy/ (marzo 2007) Hyper-V e la virtualizzazione http://www.hwupgrade.it/articoli/software/1889/microsoft-windows-server-2008-primo- contatto_3.html (novembre 2008) Hyper-V e la virtualizzazione di Windows Server 2008 http://www.bitcity.it/articoli/90/pagina/3/hyper-v-e-la-virtualizzazione-di-windows-server- 2008.html (novembre 2008) Cisco, Storage Networking http://www.cisco.com (novembre 2008) Distributed Management Task Force, Inc. http://www.dmtf.org (novembre 2008) 39

×