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

40
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

description

 

Transcript of UTILIZZO DELLE TECNOLOGIE VIRTUAL SERVER PER LA MIGRAZIONE DI SERVER DI PRODUZIONE IN AMBIENTE...

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

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

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

Alla mia famiglia

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

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

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

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

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

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 machine2 Information Technology

4

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

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

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

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

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

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

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

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)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)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

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

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)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)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

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

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 time7 I trap sono delle eccezioni generate al termine di un’istruzione8 Da qui in avanti si userà PC per indicare Personal Computer sia al singolare sia al plurale

10

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

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

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

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

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

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

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

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.com11 Virtual Hard Disk12 Random Acces Memory

14

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

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.com14 Universal Serial Bus

15

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

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 Interface16 http://www.qemu.org

16

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

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.com18 http://www.snia.org/home19 Local Area Network20 Metropolitan Area Network

17

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

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

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

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)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

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

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)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

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

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)i) Il kernel del sistema operativo host, che provvede alla pianificazione delle risorse

CPU.

ii)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

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

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

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

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 XeonAMD Athlon, Athlon 64, Athlon X2, Opteron, Sempron o Duron

RAM minima 256 MB (è necessaria memoria aggiuntiva per ogni sistema operativo guest)

Spazio disponibile sul disco rigido

2 GB (è necessario spazio su disco aggiuntivo per i sistemi operativi 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

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

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)i) Generare il file XML23 della configurazione hardware del server da virtualizzare.

ii)ii) Validare tale file, cioè verificare se sussiste la compatibilità tra i due server.

iii)iii) Creare una serie di script necessari per rendere migliore la cattura e la creazione

della virtual machine.

iv)iv) Creare l’immagine disco del server da virtualizzare con l’ausilio di ADS.

v)v) Creare la virtual machine partendo dall’immagine catturata.

vi)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

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

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

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

Figura 7 Architettura di virtualizzazione in Windows Server 2008

26

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

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

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

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 Files\Microsoft VSMT\Samples\cscript 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

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

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:"file.xml" /name:nome

server /vmconfigpath:"path di configurazione"

/virtualDiskPath:"path del disco vituale" /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

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

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

p2v\nomeserver 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)i) Boot to deployment agent: avvia il processo di cattura e attende, ora bisogna

riavviare il server in modalità lan.

ii)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)iii) Capture image: cattura l’immagine in un file .img, farà tante immagini quante sono

le partizioni del disco.

iv)iv) Shutdown machine: spegne il server

Figura 10 Cattura dell’immagine disco

30

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

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

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

Figura 12 Proprietà network esterna – DHCP

32

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

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

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

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

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

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.org26 http://www.gnu.org

35

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

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

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

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

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

RIFERIMENTI BIBLIOGRAFICI

Wikipedia l’enciclopedia libera, Wikipedia Eng/Ithttp://en.wikipedia.org (novembre 2008)http://it.wikipedia.org (novembre 2008)

VMware, VMware Virtualizationhttp://www.vmware.com/virtualization/ (ottobre 2008)

VMware, VMware Standardshttp://www.vmware.com/standards/ (ottobre 2008)

Intel, Intel Virtualizationhttp://www.intel.com (gennaio 2007)

Xen Sources, Xenhttp://www.xensource.com/ (gennaio 2007)

Guido Trotter, Virtualizzazione di macchine Linux tramite Xenhttp://erlug.linux.it/linuxday/2005/contrib/trotter.pdf (gennaio 2007)

Xen Sources, Xen Frequently Asked Questionshttp://wiki.xensource.com/xenwiki/XenFaq (gennaio 2007)

Rami Rosen, Virtualization in Xenhttp://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.0http://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 Toolkithttp://whitepapers.techrepublic.com.com/whitepaper.aspx?docid=137862 (gennaio 2007)

Istallazione e configurazione Virtual Server 2005, Microsoft Virtual Server 2005 R2http://www.microsoft.com/technet/prodtechnol/virtualserver/2005/proddocs/vs_tr_a_virtualhd.mspx?mfr=true (gennaio 2007)

Server consolidation, la filosofia progettuale per una gestionehttp://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

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

http://www.idc.com/italy/ (marzo 2007)

Hyper-V e la virtualizzazionehttp://www.hwupgrade.it/articoli/software/1889/microsoft-windows-server-2008-primo-contatto_3.html (novembre 2008)

Hyper-V e la virtualizzazione di Windows Server 2008http://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