SlideShare a Scribd company logo
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
Alla mia famiglia
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Figura 7 Architettura di virtualizzazione in Windows Server 2008




                                                                   26
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
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
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
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
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
Figura 12 Proprietà network esterna – DHCP




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

More Related Content

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

Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
Pietro Corona
 
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Luca Bressan
 
Digitalizzazione di un processo industriale
Digitalizzazione di un processo industrialeDigitalizzazione di un processo industriale
Digitalizzazione di un processo industriale
GiulioDeBiasio2
 
I processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsI processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOps
Giulio Destri
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Davide Ciambelli
 
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...Marco Virgo
 
Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...
Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...
Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...gwalter85
 
Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...
Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...
Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...Alex Ronci
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...artemedea
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Raffaele Bernardi
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
GiuliaMilan4
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Ce.Se.N.A. Security
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...daniel_zotti
 
Manuale sicurnet duvri
Manuale sicurnet duvriManuale sicurnet duvri
Manuale sicurnet duvri
portale consulenti
 
Cloud Computing e Modelli di Business
Cloud Computing e Modelli di Business Cloud Computing e Modelli di Business
Cloud Computing e Modelli di Business Andrea Cavicchini
 
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Domenico Schillaci
 
Tesi Todone
Tesi TodoneTesi Todone
Tesi Todone
guestb31690c
 

Similar to UTILIZZO DELLE TECNOLOGIE VIRTUAL SERVER PER LA MIGRAZIONE DI SERVER DI PRODUZIONE IN AMBIENTE VIRTUALE (20)

Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
 
Tesi Tamiazzo09
Tesi Tamiazzo09Tesi Tamiazzo09
Tesi Tamiazzo09
 
Digitalizzazione di un processo industriale
Digitalizzazione di un processo industrialeDigitalizzazione di un processo industriale
Digitalizzazione di un processo industriale
 
I processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsI processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOps
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
 
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
 
Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...
Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...
Sviluppo di un hub di comunicazione in un applicazione per porti con Biztalk ...
 
Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...
Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...
Progettazione e sviluppo di un'applicazione web basata su tecnologia Share Po...
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
 
TesiEtta
TesiEttaTesiEtta
TesiEtta
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
 
Sat howto
Sat howtoSat howto
Sat howto
 
Manuale sicurnet duvri
Manuale sicurnet duvriManuale sicurnet duvri
Manuale sicurnet duvri
 
Cloud Computing e Modelli di Business
Cloud Computing e Modelli di Business Cloud Computing e Modelli di Business
Cloud Computing e Modelli di Business
 
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
 
Tesi Todone
Tesi TodoneTesi Todone
Tesi Todone
 

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

  • 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Figura 7 Architettura di virtualizzazione in Windows Server 2008 26
  • 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. 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. 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. 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. 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. Figura 12 Proprietà network esterna – DHCP 32
  • 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. 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. 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. 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. 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. 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. 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