Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati Oracle DB e macchine virtuali Anno Accademico 2013/2014 Candidato: Roberta Cascella matr. N46/000598 A Francesco, per avermi sempre sostenuta e motivata, infinitamente grazie. A mia mamma, per la fiducia riposta e per essermi stata sempre accanto. Indice Indice .................................................................................................................................................. III Introduzione ......................................................................................................................................... 4 Capitolo 1 : Virtualizzazione ............................................................................................................... 5 1.1 Introduzione alla virtualizzazione .............................................................................................. 5 1.2 Virtualizzazione e macchine virtuali.......................................................................................... 6 1.3 Tipologie di virtualizzazione ..................................................................................................... 7 1.4 Vantaggi e svantaggi della virtualizzazione............................................................................... 8 Capitolo 2 : Oracle e virtualizzazione ................................................................................................ 11 2.1 Strategie di virtualizzazione Oracle ......................................................................................... 11 2.2 VirtualBox ................................................................................................................................ 11 2.3 Oracle VM................................................................................................................................ 14 2.3.1 Oracle VM Manager ............................................................................................................. 16 2.3.2 Oracle VM Server ................................................................................................................. 18 Capitolo 3: Virtualizzazione di basi di dati ........................................................................................ 20 3.1 Introduzione ............................................................................................................................. 20 3.2 Virtualizzazione dei database................................................................................................... 21 3.3 Architettura di Oracle Database ............................................................................................... 21 3.4 Soluzione di Oracle alla virtualizzazione delle basi di dati ..................................................... 24 3.4.1 Oracle VM Template e Oracle Virtual Assembly Builder .................................................... 24 3.4.2 Oracle Live Migration e Oracle Virtual Networking ............................................................ 26 3.4.3 Oracle RAC ........................................................................................................................... 27 3.4.4 Valutazioni delle prestazioni e della scalabilità .................................................................... 29 3.4.5 Partizionamento delle risorse ................................................................................................ 32 Conclusioni ........................................................................................................................................ 33 Bibliografia ........................................................................................................................................ 34 Introduzione “La virtualizzazione è destinata a trasformare il modo in cui l’IT viene gestita, acquistata e implementata, nonché le modalità attraverso le quali le aziende amministrano il budget IT […]” Gartner, Inc. – aprile 2008 La virtualizzazione rappresenta la tecnologia chiave per trasformare e consolidare le infrastrutture IT, in modo da gestire in maniera più semplice ed efficiente i sistemi hardware e software in azienda. La virtualizzazione, dunque, viene adoperata per ottimizzare le risorse IT, riducendo i costi operativi, semplificando la gestione, migliorando le prestazioni, ottenendo maggiore flessibilità ed affidabilità all’interno dei data center. Nel primo capitolo si analizzeranno i concetti base legati alla virtualizzazione: la sua definizione, le macchine virtuali, le motivazioni e i principali vantaggi che stimolano i data center ad adottare una soluzione informatica virtualizzata. Il secondo capitolo sarà focalizzato sulle strategie di virtualizzazione adottate da Oracle; in particolare, si farà riferimento ad una soluzione di virtualizzazione di server, offerta da Oracle VM, ed una soluzione di virtualizzazione di desktop, fornita da Oracle VirtualBox. Il terzo capitolo concerne l’architettura e la virtualizzazione del database di casa Oracle, analizzando le soluzioni offerte da Oracle e mettendo in evidenza i benefici che si ottengono dall’utilizzo di queste strategie. 4 Capitolo 1 : Virtualizzazione 1.1 Introduzione alla virtualizzazione La virtualizzazione sta cambiando il modo di progettare e gestire le tecnologie hardware e software in azienda. Per soddisfare le esigenze che riguardano l’incremento del livello complessivo di prestazioni e la riduzione dei costi IT occorre effettuare una razionalizzazione delle risorse IT all’interno dei datacenter. Quando si parla di virtualizzazione si fa riferimento ad una tecnologia ormai consolidata, sviluppata negli anni ‘60 ed adoperata per la prima volta da IBM per contrastare l’utilizzo poco efficiente delle risorse hardware nei mainframe, in quanto consentivano l’uso di un’unica applicazione per volta. IBM studiò un metodo per partizionare in modo logico le risorse hardware dei mainframe, ovvero suddividendo un sistema fisico in più unità in grado di comportarsi come dispositivi autonomi, consentendo di utilizzare più applicazioni contemporaneamente sulla stessa macchina. Negli anni ‘80 con l’avvento dei PC e nei successivi anni ‘90 con la diffusione dell’elaborazione distribuita, venne a mancare la necessità di partizionare in unità logiche virtuali le risorse delle grandi macchine di elaborazione: il basso costo delle macchine e dei server evitava l’acquisto dei mainframe e dei super-computer. La richiesta di potenza di calcolo e lo sviluppo crescente di internet hanno portato ad una crescita esponenziale dell’hardware dei centri informatici. Si ripresenta, dunque, il problema di impiegare le risorse hardware con maggiore efficienza. Alla fine degli anni ‘90, per affrontare il sottoutilizzo dei server, la società americana VMware ha sviluppato la virtualizzazione dei sistemi x86 di Intel, con impatto importante sui costi e sui consumi. 5 1.2 Virtualizzazione e macchine virtuali Il termine macchina virtuale indica un software che, attraverso un processo di virtualizzazione, crea un ambiente virtuale, il quale emula tipicamente il comportamento di una macchina fisica grazie all'assegnazione di risorse hardware (CPU, porzioni di memoria RAM, porzioni di disco rigido, etc.) e nel quale le applicazioni possono essere eseguite come se interagissero con tale macchina. La virtualizzazione ha come nucleo centrale uno strato software chiamato hypervisor che opera come supervisore tra i sistemi virtualizzati e l’hardware sottostante, allocando le risorse alle diverse macchine virtuali, operando in maniera trasparente senza pesare con la propria attività sul funzionamento e sulle prestazioni dei sistemi operativi. L’hypervisor svolge attività di controllo al di sopra di ogni sistema virtualizzato, operando sia come monitor, ovvero allocando le risorse in maniera dinamica ed interrompendo attività che non funzionano in maniera corretta, che come debugger, individuando eventuali malfunzionamenti legati alle attività dei sistemi operativi e delle applicazioni in esecuzione sulle virtual machine; per questo motivo viene chiamato Virtual Machine Monitor. Esistono due tipologie di hypervisor: Bare-Metal (o di Tipo 1): un hypervisor di tipo 1 viene eseguito direttamente utilizzando le risorse hardware della macchina host e non richiede un sistema operativo host. Questa soluzione è stata adottata da Xen e da VMware vSphere. OS-hosted (o di Tipo 2): un hypervisor di tipo 2 richiede, invece, un sistema operativo host e viene eseguito come un’applicazione in modalità utente nel corrispettivo sistema operativo host. Questa tipologia di hypervisor è adottata da: VirtualBox, Microsoft Virtual PC e VMware Workstation. Figura 1.Confronto tra hypervisor “host” (a sinistra) e hypervisor “bare-metal” (a destra) 6 In riferimento alla Figura 2 si evince che, in assenza di virtualizzazione, l’unico sistema operativo installato sulla macchina fisica si interpone tra l’hardware e le applicazioni software. Con la virtualizzazione, invece, è possibile installare ed usare più sistemi operativi in maniera concorrente compatibilmente con la potenza e con le risorse hardware della macchina che li ospita e farli lavorare senza rischio che interferiscano l’uno con l’altro, con grossi vantaggi per l’affidabilità e la sicurezza. Figura 2. Confronto tra sistema virtualizzato (a destra) e non virtualizzato (sinistra) E’ semplice intuire che le potenzialità della tecnologia della virtualizzazione e in particolare quelle dell’hypervisor sono enormi. 1.3 Tipologie di virtualizzazione La virtualizzazione può essere realizzata in due modi: con emulazione e con paravirtualizzazione. La Full Virtualization o virtualizzazione completa prevede che il VMM esponga, ad ogni macchina virtuale, interfacce hardware simulate, funzionalmente identiche alle corrispondenti interfacce fisiche: in questo modo è possibile installare nelle macchine virtuali sistemi operativi standard, senza che abbiano subìto alcuna modifica specifica per eseguire in ambiente virtuale. Il vantaggio principale di una virtualizzazione completa, quindi, risiede nella flessibilità ma l’utilizzo di questa tecnica introduce un notevole overhead. L’esempio più diffuso è rappresentato da VMware. La Paravirtualizzazione non prevede l’emulazione del processore ed ogni macchina virtuale accede ad interfacce hardware funzionalmente simili, ma non identiche, alle corrispondenti interfacce fisiche: gli ambienti con paravirtualizzazione espongono una libreria di chiamate (Virtual Hardware API) che implementa una semplice astrazione delle periferiche. E’ 7 necessario modificare il kernel ed i driver dei sistemi operativi guest per renderli compatibili con la virtual hardware API del VMM utilizzato. Non essendoci alcuna emulazione dell’hardware, l’utilizzo di questa tecnica comporta un overhead molto basso e quindi una notevole velocità di elaborazione; tuttavia un sistema di paravirtualizzazione non garantisce l’affidabilità, infatti il crash del sistema porterebbe in crash anche tutte le macchine virtuali. Inoltre i sistemi operativi “guest” devono essere modificati per poter funzionare all’interno delle macchine virtuali. L’ambiente più diffuso è basato sulla tecnologia Xen. Figura 3. Confronto tra virtualizzazione completa (a sinistra) e paravirtualizzazione (a destra) 1.4 Vantaggi e svantaggi della virtualizzazione Di seguito vengono riportati i principali benefici apportati dalla virtualizzazione: Ottimizzazione nell’utilizzo delle risorse: con la diffusione e l’affermazione dell’informatica distribuita, il numero di server dedicati ad una singola applicazione è aumentato in modo esponenziale. Spesso, all’interno delle aziende, in fase di progettazione si cerca di sovradimensionare l’infrastruttura delle macchine fisiche, riservando ad ognuna un numero elevato di risorse, in modo tale da supportare eventuali picchi di lavoro e con il risultato di avere sistemi non utilizzati completamente e quindi non efficienti. Nella maggior parte dei casi, infatti, i server utilizzano solo parzialmente la CPU, non sfruttando tutte le sue potenzialità. La virtualizzazione consente, invece, di ottimizzare l’utilizzo delle risorse IT, migliorando l’efficienza complessiva dell’infrastruttura e sfruttando appieno tutte le risorse di cui dispone una macchina virtuale. Migliore condivisione delle risorse IT: in un ambiente virtuale le risorse hardware 8 di una macchina fisica vengono condivise tra più macchine virtuali che, tuttavia, risultano essere indipendenti le une dalle altre; le virtual machine in esecuzione sullo stesso hardware, infatti, interagiscono tra di loro solamente attraverso gli strumenti di rete. I vantaggi della virtualizzazione sono evidenti in quanto il malfunzionamento di un’applicazione su una determinata macchina virtuale non influisce in alcun modo sulle altre applicazioni o sulle altre macchine virtuali in esecuzione sulla stessa macchina fisica. Se una macchina virtuale viene spenta, le risorse liberate vengono messe a disposizione delle altre macchine virtuali in esecuzione sulla medesima macchina fisica. Maggiore flessibilità, high availability ed adattabilità: con la virtualizzazione si ottiene una maggiore flessibilità nella gestione delle infrastrutture IT. La configurazione di un nuovo server, in un ambiente virtuale, richiede pochi minuti, mentre occorrono diverse ore per il set-up di un server fisico; inoltre la manutenzione di una macchina fisica avviene senza alcuna interruzione di servizio: liberando il sistema fisico, su cui giace il guasto, dalle macchine virtuali e spostandole su un altro server, si effettuano gli interventi di manutenzione richiesti e lo si rende nuovamente disponibile, riattivando anche tutte le macchine virtuali, il tutto nella piena continuità del servizio. Ciò minimizza i periodi di disservizio e tutto questo si traduce in una notevole flessibilità dell’infrastruttura, garantendo high availability, e di conseguenza, in una maggiore adattabilità dell’IT all’evoluzione dell’azienda e al suo business. Semplicità di disaster recovery, backup di sistema: L’intero sistema operativo guest può essere facilmente salvato e ripristinato, riducendo notevolmente i tempi di indisponibilità in caso di guasto. È possibile eseguire il backup di un'intera macchina virtuale o solamente dei dati che essa contiene. Riduzione dei costi IT: La virtualizzazione comporta una significativa riduzione dei costi IT. Un minor numero di macchine fisiche implica, infatti, la diminuzione dei costi d’acquisto (CapEx), in quanto sono necessari meno server e meno dispositivi hardware ( porte di rete, switch , storage, ecc.), e dei costi di gestione 9 (OpEx), vista l’enorme riduzione dei consumi di energia per l’alimentazione e il raffreddamento delle macchine, dello spazio occupato nei datacenter, delle parti di ricambio, degli intervalli di manutenzione, del tempo e delle risorse da dedicare alla gestione dell’ intera infrastruttura IT. La virtualizzazione, quindi, consente alle aziende di ottenere importanti benefici in termini di razionalizzazione delle risorse e di riduzione dei costi; inoltre permette di disporre di un’infrastruttura altamente affidabile e nello stesso tempo performante. Tuttavia, accanto ai punti di forza si affiancano alcuni aspetti critici: Overhead: le soluzioni di virtualizzazione possono causare una diminuzione delle performance globali: ad esempio aumentano i tempi relativi all’accesso ai dischi, alla memoria e così via. Le applicazioni critiche, in particolare, risentono dell’overhead introdotto dall’ambiente di virtualizzazione; quindi all’interno di un’azienda, prima di convertire tutti i sistemi fisici esistenti in sistemi virtuali oppure di utilizzare un parco di server virtualizzati adibiti esclusivamente all’esecuzione di un determinato carico di lavoro, è opportuno accertarsi di comprendere le limitazioni e le caratteristiche della virtualizzazione in termini di utilizzo della CPU, memoria e capacità dei dischi; è necessario conoscere quanti sistemi operativi guest possono essere presenti in uno specifico host nonché quante CPU, quanta memoria RAM e quanto spazio su disco ognuno di essi necessita. Per la configurazione dei sistemi virtuali, quindi, è necessario adottare il medesimo approccio progettuale che si utilizza per la distribuzione di sistemi fisici e bisogna evitare di sovraccaricare un sistema host con un numero eccessivo di sistemi guest ed anche di impostare carichi di lavoro che possano generare conflitto. Cancellazione del sistema virtuale: la virtualizzazione non prevede un’associazione diretta tra il sistema operativo guest in esecuzione sulla macchina virtuale e l’hardware, ma solo un riferimento di tipo logico; ciò implica che la macchina virtuale si riduce alla sua immagine su disco, e così come risulta semplice da trasferire diventa altrettanto facile da cancellare. 10 Capitolo 2 : Oracle e virtualizzazione 2.1 Strategie di virtualizzazione Oracle In questo capitolo verranno analizzati tre prodotti di virtualizzazione offerti da Oracle: Oracle VM Server Oracle VM Manager Oracle VM Virtual Box Oracle VM Server x86 è un prodotto dedicato alla virtualizzazione server, progettato per supportare una distribuzione rapida delle applicazioni e per semplificare la gestione dei data center, dalle applicazioni ai dischi. Oracle VirtualBox è sicuramente uno dei software di virtualizzazione più diffusi e utilizzati, sia in ambito privato che aziendale, e fonda il suo successo sulla semplicità di utilizzo e sulla creazione di macchine virtuali che garantiscono elevate prestazioni e che supportano l’esecuzione di un numero cospicuo di sistemi operativi guest. 2.2 VirtualBox VirtualBox è un prodotto di virtualizzazione inizialmente sviluppato dalla società tedesca Innotek, che Sun Microsystem acquisisce nel gennaio 2008; a sua volta Sun, nel gennaio del 2010, viene acquistata da Oracle Corporation, ed è proprio da quest’ultima società che VirtualBox viene distribuito. VirtualBox supporta l’installazione di un grande numero di sistemi operativi guest mediante 11 l’utilizzo di template specifici relativi ad ogni distribuzione e versione, che rendono le macchine virtuali pienamente adatte a funzionare con ciascun sistema. Il software di casa Oracle, può essere installato su diversi sistemi operativi host, quali Windows, Linux, MAC OS X, Solaris e supporta tantissimi sistemi operativi guest, come le diverse versioni e distribuzioni di Windows, Linux, Solaris, MAC OS X, IBM OS/2, BSD. La creazione di una macchina virtuale segue una semplice procedura che raccoglie dati relativi alla quantità di memoria RAM da allocare e il numero di CPU da dedicare alla macchina, allo spazio su disco per la generazione del disco virtuale (si può scegliere se creare un nuovo disco fisso d’avvio VDI (VirtualBox Disk Image) o usarne uno preinstallato) che insieme ai parametri contenuti nel template prescelto permettono la generazione di una macchina virtuale ottimizzata. L’installazione del sistema operativo può seguire immediatamente la creazione della virtual machine. Figura 4.Oracle VM Virtual Box Manager Le principali caratteristiche offerte da VirtualBox si traducono in: Portabilità: come già accennato in precedenza VirtualBox può essere installato su un numero cospicuo di sistemi operativi host a 32-bit e a 64-bit.VirtualBox si avvale di un hypervisor di tipo OS-hosted noto anche come hypervisor di tipo 2, che viene eseguito come un’applicazione in modalità utente nel corrispettivo sistema operativo. VirtualBox è funzionalmente identico su tutte le piattaforme host. Ciò 12 consente di eseguire una macchina virtuale su un host diverso, quindi con un sistema operativo host differente, da quello su cui è stata precedentemente creata (ad esempio è possibile creare una macchina virtuale su Windows ed eseguirla in ambiente Linux). Le macchine virtuali, quindi, possono essere facilmente importate ed esportate utilizzando il formato OVF, uno standard industriale creato per questo scopo. Guest Additions: la macchina virtuale funziona in perfetta simbiosi con il sistema operativo installato ma sono necessari dei driver generici che ne permettono il funzionamento. I VirtualBox Guest Additions sono dei package software che vengono installati all’interno dei sistemi guest per migliorare le loro prestazioni e per fornire la comunicazione supplementare con il sistema host. L’installazione dei Guest Additions prevede il caricamento dei driver e dei programmi dedicati che ottimizzano le prestazioni della macchina in termini di interfaccia, di regolazione automatica della risoluzione video, di gestione delle finestre video, di grafica accelerata 3D e di LAN, migliorando le prestazioni complessive della stessa macchina virtuale; inoltre consente di condividere cartelle direttamente fra il sistema host e la macchina guest. Multigeneration branched snapshots: VirtualBox utilizza un’altra funzionalità molto importante denominata “istantanea”. Si può salvare un particolare stato della virtual machine e ritornare in quello stato, se necessario. Se si verifica un problema si può facilmente tornare ad uno snapshot precedente, evitando la necessità di effettuare backup e ripristini frequenti. È possibile creare un numero qualsiasi di istantanee, che consente di viaggiare avanti e indietro nel tempo per recuperare particolari stati della macchina virtuale. È possibile eliminare le istantanee, mentre una macchina è in esecuzione per recuperare spazio su disco. Supporto Hardware: VM Virtual Box si avvale di un ottimo supporto hardware, difatti prevede: o Un guest multiprocessing (SMP): può presentare fino a 32 CPU virtuali per ogni macchina virtuale. 13 o Un supporto per le periferiche USB: implementa un controller USB virtuale e consente di collegare dispositivi USB arbitrari alla macchina virtuale senza dover installare driver specifici del dispositivo sull' host. o Un’elevata compatibilità hardware: virtualizza una vasta gamma di dispositivi, che sono in genere forniti da altre piattaforme di virtualizzazione, come IDE, SCSI e SATA controller, schede di rete e schede audio, seriale virtuale, porte parallele e un Input / Output Advanced Programmable Interrupt Controller (I / O APIC), che si trova in molti sistemi moderni. 2.3 Oracle VM Oracle VM è una soluzione di virtualizzazione e di gestione dei server, fornita dalla Oracle Corporation, che rende le applicazioni aziendali più facili da implementare, gestire e supportare. Le componenti principali di Oracle VM, illustrate nella figura 5, sono: Oracle VM Manager: fornisce un framework basato su transazioni, che consente di gestire gli Oracle VM Server, le macchine virtuali e le risorse. La sua struttura prevede un database integrato, un'interfaccia di gestione web-based ed un’interfaccia CLI, che consente di gestire l'infrastruttura direttamente da riga di comando, tramite script esterni o eseguendo sequenze di comandi manuali. Ognuna di queste interfacce viene eseguita come un'applicazione indipendente dal nucleo di Oracle VM Manager e si interfaccia con quest’ultimo ricorrendo all’utilizzo di API fornite dai Web Services. Il nucleo di Oracle VM Manager è un'applicazione Oracle WebLogic Server in esecuzione su Oracle Linux. Oracle VM Manager Database: utilizzato dal nucleo di Oracle VM Manager per memorizzare e tenere traccia di configurazioni, cambiamenti di stato ed eventi. Oracle VM Manager utilizza un database MySQL Enterprise che viene fornito durante l’installazione e che viene installato sullo stesso host su cui è installato Oracle VM Manager. Il database è configurato per l'uso esclusivo di Oracle VM Manager e non deve essere utilizzato da altre applicazioni. In riferimento al database 14 MySQL, vengono eseguite periodicamente operazioni di backup, ma vengono messe a disposizione strutture che consentono possibili operazioni di backup manuale. Figura 5. Architettura di Oracle VM Oracle VM Server: è un server fisico su cui viene installato l'Hypervisor Xen. La sua struttura prevede un dom0, ovvero il dominio iniziale avviato dall’ hypervisor durante la fase di boot, che rappresenta il dominio di gestione e di controllo, con accesso privilegiato all’hardware e ai driver dei dispositivi, e tanti domini domU quante sono le virtual machine ospitate sul server. I domini utente, domU, non hanno privilegi e non possono accedere in maniera diretta all’hardware e ai driver delle periferiche e, inoltre, vengono avviati e gestiti dal dom0. OVM Server prevede un kernel Linux, che supporta una vasta gamma di dispositivi, file system e la gestione dei volumi RAID software. Il kernel di Linux viene eseguito come dom0 per gestire una o più macchine virtuali, che presentano un domU, ognuno dei quali potrebbe essere Linux, Oracle Solaris, o Microsoft Windows; inoltre sul dominio dom0 è 15 attivo l'Oracle VM Agent, un processo che comunica con Oracle VM Manager ed esegue le operazioni necessarie per configurare in maniera opportuna OVM Server. Ogni Oracle VM Server mantiene un proprio database, utilizzato per memorizzare configurazioni locali e informazioni di runtime; in questo modo Oracle VM Server può continuare a funzionare normalmente, nonostante Oracle VM Manager non sia disponibile per un determinato periodo. Gli OVM Server possono essere raggruppati per creare pool di server. Le macchine virtuali, eseguite all'interno di un pool di server, possono essere facilmente spostate da un server all’altro per consentire, ad esempio, operazioni di manutenzione, preservando durante questa operazione l’high availability. 2.3.1 Oracle VM Manager Come visto in precendenza, Oracle VM Manager si configura come il componente principale per le operazioni di configurazione all’ interno dell’infrastruttura Oracle VM. Poiché l’ambiente Oracle VM funziona normalmente anche durante i periodi di inattività di VM Manager, l’high availability e la ridondanza dei dati nono sono richiesti per questa funzionalità. Oracle VM Manager, quindi, è un'applicazione multi-utente che offre una varietà di interfacce differenti, consentendo di gestire le componenti di Oracle VM; presenta un’architettura repository e per la gestione, offre un’interfaccia grafica. Può verificarsi che, più amministratori tentano contemporaneamente di modificare la configurazione di uno stesso componente. In questa situazione, Oracle VM Manager elabora la prima richiesta di modifica presente nella coda, “bloccando” il componente per eventuali cambiamenti successivi. La seconda modifica che deve essere apportata non avviene perché le informazioni di cui dispone non rispecchiano il nuovo stato del componente. Viene, dunque, inviato un errore all’utente, informandolo dell’avvenuta variazione, in modo tale da poter aggiornare lo stato relativo al componente ed inviare un’ulteriore richiesta di modifica. I componenti fondamentali di Oracle VM Manager sono Oracle VM Server Manager e Oracle VM Manager Database. Oracle VM Manager Server è un'applicazione Oracle WebLogic Java-based, in esecuzione 16 su un server dedicato e in corrispondenza delle piattaforme x86, viene eseguito su Oracle Linux. Oracle VM Manager Server si configura come il nucleo (core) di Oracle VM Manager ed è utilizzato per configurare, monitorare e gestire l'ambiente Oracle VM; riesce a monitorare l’ambiente ricevendo notifiche, statistiche e informazioni sugli eventi da parte di Oracle VM Agent. Questa applicazione, inoltre, è in grado di memorizzare tutte le informazioni riguardanti le operazioni di configurazione e i dati degli eventi all'interno del database MySQL, fornito insieme al programma di installazione e configurato per l'uso esclusivo di questa applicazione. Oracle VM Manager Server mette a disposizione delle altre componenti di Oracle VM Manager delle API, implementate come API Web Services, consentendo di interagire con esso. Le API consentano lo scambio di messaggi, tra i vari componenti, mediante i protocolli SOAP e REST. Oracle VM Manager Interface Web è un'applicazione web-based installata sullo stesso sistema su cui viene eseguito Oracle VM Manager Server, interagendo con quest’ultimo tramite le API dei Web Services; nonostante condivida lo stesso server di Oracle WebLogic Server, che rappresenta l’applicazione principale di Oracle VM Manager, si configura come un'applicazione distinta. Considerando l’impostazione predefinita, si accede all'interfaccia grafica tramite HTTPS sulla porta TCP 7002. Oracle VM Manager Command Line Interface è un’interfaccia CLI, scritta in Java che viene eseguita sul sistema in cui è installato Oracle VM Manager, e anch’essa si interfaccia con il Oracle VM Manager Server tramite Web Services API. L'accesso alla CLI viene eseguito tramite una connessione SSH disponibile su una porta TCP, che può essere personalizzata. Oracle VM Manager Command Line Interface consente agli amministratori di gestire, di controllare, di facilitare le configurazioni programmate dell’intero ambiente Oracle VM, utilizzando una shell. 17 2.3.2 Oracle VM Server Relativamente all’esecuzione su server x86, Oracle VM utilizza la tecnologia Xen. L'hypervisor Xen è di tipo “bare- metal”, viene dunque eseguito direttamente utilizzando le risorse hardware della macchina host. La gestione dello scheduling dei processori e della memoria è svolta dall' hypervisor, mentre il dominio dom0 si occupa della gestione dell’hardware e dei driver delle periferiche. Figura 5.Architettura di Oracle VM Server Sui server x86, dom0 è un kernel Linux, che fornisce all’hypervisor una vista dell’hardware disponibile nel sistema. Dom0 interagisce direttamente con l'hypervisor in modo tale da controllare l'accesso alle risorse, nonché l'esecuzione di varie attività quali la creazione, la distruzione e il controllo dei sistemi operativi guest installati sulle macchine virtuali. Oracle VM Agent è un processo demone che viene eseguito nel dom0 di ciascuna istanza di Oracle VM Server. Il suo ruolo principale è quello di semplificare la comunicazione tra Oracle VM Server e Oracle VM Manager. Tale processo, per le connessioni con Oracle VM Manager, è in ascolto sulla porta TCP 8899 ed implementa una struttura di messaggistica per regolare il funzionamento di tutta l'infrastruttura Oracle VM. Per motivi di sicurezza, è necessario che OVM Agent autentichi ogni sistema che vuole comunicare con esso. Quando un OVM Server non è configurato per un particolare Oracle VM Manager, si dice che è in uno stato “senza proprietario”; in questo caso, è necessario che OVM Manager possieda la “proprietà” del server prima di poter comunicare con OVM Agent; affinché ciò avvenga, OVM Manager esegue l'autenticazione con una password configurata per l'Oracle VM Agent; questa password viene scambiata tramite una 18 connessione sicura che prevede l’utilizzo di un certificato SSL. Una volta che l’autenticazione è avvenuta con successo, viene generata una coppia di chiavi, che consente di autenticare e crittografare tutte le future comunicazioni tra l'istanza Oracle VM Manager e Oracle VM Agent; in questo contesto nessuna altra istanza di Oracle VM Manager può gestire il controllo del relativo Oracle VM Server tramite Oracle VM Agent; ciò è possibile solo quando la prima istanza rilascia la “proprietà” del server. Oracle VM Agent mantiene i propri file di log sul server Oracle VM che possono essere utilizzati per risolvere problemi di debug su una particolare istanza del server o per fini di controllo. Quando gli OVM Server vengono organizzati in pool di server, fanno uso di risorse comuni come lo storage repository ed il networking. In tale contesto viene eletto un Master Server che è responsabile della comunicazione centralizzata con Oracle VM Manager. Nel caso in cui il Master Server diventa inutilizzabile per qualsiasi motivo, il pool di server rimane accessibile al suo indirizzo IP virtuale, comune a tutti i server del cluster. Dal momento in cui i server appartenenti al pool condividono lo stesso storage, è possibile effettuare la migration live delle macchine virtuali per ottenere load balancing e per effettuare operazioni di manutenzione programmate; infatti, una macchina virtuale può essere spostata da un Oracle VM Server ad un altro, senza interruzione di servizio e ciò garantisce high availability. Figura 6.Struttura di OVM Server 19 Capitolo 3: Virtualizzazione di basi di dati 3.1 Introduzione Nonostante gli esiti positivi della virtualizzazione, le aziende esitano ad estendere tale tecnologia alle applicazioni business critical. Le applicazioni business critical hanno un ruolo fondamentale all’interno di un’azienda: devono essere sempre disponibili per consentire ai dipendenti di un’azienda di svolgere il proprio lavoro e ai clienti di acquistare prodotti e servizi; se rimane offline per pochi minuti comporta per l’azienda perdita di denaro, di immagine e di fiducia da parte sia dei clienti che dei partner. Le preoccupazioni maggiori sono rivolte alle prestazioni che un’applicazione business critical possiede in un ambiente virtualizzato. Le aziende auspicano ad un modello hardware condiviso che non causi colli di bottiglia e che sia in grado di sostenere il throughput necessario all’espletamento dei servizi. Le prime soluzioni di virtualizzazione software e hardware immesse sul mercato non rispondevano adeguatamente a tali esigenze. Negli ultimi anni, la tecnologia più sofisticata e potente dei processori, degli hypervisor e del software di gestione della virtualizzazione ha reso possibile la virtualizzazione delle applicazioni business critical. Per quanto riguarda la virtualizzazione delle basi di dati, gli amministratori cercano di consolidarle in modo da ridurre i costi complessivi di gestione e l’intervento amministrativo. 20 3.2 Virtualizzazione dei database Tipicamente, i database eseguono come singola istanza su un singolo server fisico, integrando funzioni di elaborazione, caching e storage al fine di ottimizzare le prestazioni; si tratta di un’architettura “shared-nothing”, che prevede unità di database isolate, strettamente legate ai server fisici. La virtualizzazione dei database consente di disaccoppiare le funzionalità logiche di un DBMS dall’hardware fisico, garantendo ancora prestazioni elevate. Ci sono diversi modi per virtualizzare una basi di dati, ciascuno con le proprie prestazioni: dalla semplice esecuzione di un’istanza del database su una macchina virtuale, allo shareddata clustered databases, che consente di separare le operazioni di elaborazione dallo storage, consentendo ad entrambe le funzionalità di essere virtualizzate in maniera indipendente; questa architettura prevede che i dati siano condivisi tra i server che costituiscono il cluster. I database “shared-storage” sono sicuramente più indicati per la tecnologia di virtualizzazione. 3.3 Architettura di Oracle Database ORACLE è uno dei più famosi database management system (DBMS), ovvero un sistema di gestione di basi di dati, prodotto e distribuito da Oracle Corporation. In particolare, ORACLE si configura come un RDBMS, ovvero come un DBMS basato sul modello relazionale, che nell’ultimo decennio si è affermato come modello standard per i database. La prima versione di Oracle risale al 1977, da allora sono state introdotte numerose modifiche e miglioramenti per seguire gli sviluppi tecnologici, fino ad arrivare alla versione 12c. L’architettura del DBMS ORACLE si basa sul classico paradigma di comunicazione clientserver. Il servizio offerto consente di accedere alle informazioni presenti nelle basi di dati e di gestirle in maniera opportuna; i client, invece, formulano le richieste di servizio mediante il linguaggio SQL. Se il lato client consente la formulazione di richieste via SQL, l’immissione dei dati, la 21 visualizzazione dei risultati e rende disponibili anche le funzionalità di controllo, dal lato server, è presente l’intera logica di gestione del database, la gestione degli utenti e delle risorse, la gestione dello spazio su disco e prevede l’esecuzione delle istruzioni SQL. Dal lato server il DBMS ORACLE presenta tre componenti fondamentali: Una o più istanze ORACLE; Uno o più processi listener; Uno o più Oracle database, ognuno legato ad una data istanza Oracle. Un’istanza Oracle è costituita da un insieme di processi e di strutture dati allocate in memoria, che forniscono un meccanismo di accesso alle informazioni presenti nella base di dati e ne permettono la gestione. Per poter accedere ai dati contenuti nel database, l’istanza deve essere attiva e risiedere in una specifica area di memoria denominata SGA (System Global Area). Le strutture dati fondamentali di un’istanza Oracle sono: Shared Pool: in questa area vengono memorizzati gli statement SQL recentemente utilizzati. Database buffer: è una struttura dati utilizzata per gestire e memorizzare i dati che devono essere elaborati. Redo Log buffer: questa area mantiene traccia delle informazioni relative ai dati modificati in seguito ad un’operazione sulla base di dati. Data and Library caches: è un area che contiene i dati in transito da e verso la base di dati e le istruzioni SQL attualmente in esecuzione. Figura 7.Struttura della SGA 22 Un processo listener è un processo asincrono che si occupa di gestire la comunicazione trai processi client e un’istanza Oracle. E’ caratterizzato da un nome, dal database Oracle e da una porta di ascolto. Un database è una collezione di dati che è trattata come una singola unità e si compone di una struttura logica ed una fisica. La struttura fisica contiene effettivamente tutti i dati del database; le strutture fisiche, quindi, sono determinate dai file fisici del sistema operativo che costituiscono la base dei dati (data file, control file, redo log file). Figura 8.Relazione tra le strutture logiche e fisiche di un database Al contrario, le strutture logiche descrivono aree logiche di memorizzazione dove gli oggetti possono essere memorizzati. Le strutture logiche di un database Oracle sono: Database: costituito da una o più partizioni logiche, chiamate tablespace; Tablespace: gli oggetti della base di dati vengono logicamente memorizzati in uno o più tablespace; Segmenti: alla creazione di un oggetto segue l’allocazione di una porzione di tablespace; quindi, un segmento associato ad un oggetto è relativo ad un solo tablespace; Extent: è la più piccola unità logica di memorizzazione allocata per un oggetto e consiste in una sequenza contigua di blocchi di dati; la capacità di ogni blocco, espresso in byte, viene scelta dal DBA durante la fase di creazione della base di dati. 23 3.4 Soluzione di Oracle alla virtualizzazione delle basi di dati La rimozione della relazione fisica uno ad uno tra le istanze del database Oracle e l’hardware di un server consente di migliorare l’efficienza dei DBMS e dello storage negli ambienti Oracle. Oracle VM estende i benefici della virtualizzazione tradizionale in quanto consente di distribuire, gestire e supportare completamente le applicazioni in esecuzione in ambienti virtuali. In questa sezione si analizzeranno le funzionalità e le soluzioni messe a disposizione da Oracle VM per la virtualizzazione dei database di Oracle, nonché le prestazioni ottenute dall’utilizzo di tale tecnologia all’interno dei data center. 3.4.1 Oracle VM Template e Oracle Virtual Assembly Builder Oracle VM offre alle aziende la flessibilità necessaria per effettuare il rapido provisioning di nuovi server in ambienti di produzione e di sviluppo. L’ottimizzazione delle prestazioni e della scalabilità in un ambiente non virtualizzato comporta l’over-provisioning dell’hardware, causando lunghi tempi di inattività per la configurazione di nuovi server e storage. In un ambiente virtualizzato, la configurazione delle istanze dei database può avvenire in pochi minuti anziché impiegare intere ore o addirittura intere giornate. Per garantire un rapido provisioning di macchine virtuali e databases, Oracle mette a disposizione degli amministratori due soluzioni: Oracle VM Template e Oracle Virtual Assembly Builder; entrambe pre-collaudate offrono la possibilità di implementare con rapidità interi stack applicativi che includono Oracle Linux, Oracle Solaris, database, middleware e applicazioni business. Oracle VM Template per Oracle Database fornisce un framework che consente di automatizzare completamente la creazione e la configurazione di una singola istanza Oracle o di Oracle Real Application Clusters (RAC) in un ambiente Oracle VM. L’utilizzo di modelli pre-configurati, e pre-ottimizzati riduce in modo sostanziale il verificarsi di errori umani nella fase di creazione e configurazione delle applicazioni in ambiente virtuale, incrementando così l’affidabilità e riducendo la barriera di competenze 24 che un amministratore deve avere affinché sia in grado di effettuare configurazioni complesse, offrendo dunque un supporto completo a tali operazioni. Come affermato precedentemente, con Oracle VM Template si raggiunge una maggiore flessibilità, infatti, è possibile installare una singola istanza del database Oracle in pochi minuti e un Oracle RAC in poche ore, operazioni che in un ambiente non virtualizzato richiedono tempi molto più lunghi; questa soluzione riduce sostanzialmente il tempo di distribuzione delle applicazioni business-critical ed, inoltre, un singolo modello può essere utilizzato per la creazione di un numero illimitato di macchine virtuali guest. Figura 9.Funzionalità di “Oracle VM Template” Virtual Assembly Builder fornisce un framework che consente agli amministratori di creare facilmente e rapidamente complesse topologie di applicazioni multi-tier, che successivamente vengono distribuite e configurate sulle varie macchine virtuali. Utilizzando l'interfaccia di Oracle Virtual Assembly Builder, gli amministratori sono in grado di catturare un insieme di componenti software (prodotti Oracle e non) già esistenti e di assemblarle in maniera opportuna, coerentemente con le specifiche esigenze; in questo modo vengono creati degli “Assemby” con i relativi metadati, consentendo di descrivere i vari componenti che compongono la struttura appena assemblata. Figura 10. Funzionamento di Oracle Virtual Assembly Builder 25 Oracle Virtual Assemby Builder studio è lo strumento grafico che permette di realizzare questa funzionalità: catturando la configurazione di un ambiente applicativo di riferimento, già esistente, consente di assemblare tutti i suoi componenti in un insieme di software appliances (assemblies) personalizzati, oppure a partire da un insieme di software appliances general-purpose, creati in precedenza, e combinati in modo tale da creare una topologia di applicazioni multi-tier. Questa funzionalità riduce lo sforzo manuale richiesto per installare e configurare tutto il software su più macchine virtuali, attraverso la consultazione di metadati associati a ciascun assembly, riducendo Figura 11.Interfaccia di Oracle Virtual Assembly Builder Studio notevolmente i tempi. Poiché ogni software appliance presenta un insieme di proprietà configurabili, gli assemblies possono essere personalizzati in modo univoco, fornendo in tal modo una certa flessibilità agli amministratori nell’implementare più istanze delle applicazioni che utilizzano lo stesso modello di base (blueprint) contenuto nell’ assembly. 3.4.2 Oracle Live Migration e Oracle Virtual Networking Ridurre al minimo i tempi di inattività, che sia pianificata o meno, è la chiave per garantire una continua disponibilità dei servizi. La funzionalità Live Migration di Oracle VM elimina i tempi di inattività pianificati, che sono invece necessari quando gli amministratori dei database eseguono patch software e aggiornamenti in sistemi non virtualizzati. Oracle VM Live Migration ha il compito di spostare una macchina virtuale attiva e il suo carico di lavoro da un server all’ altro, in modo da consentire operazioni di manutenzione su una macchina fisica; tale funzionalità può essere utilizzata anche per “semplificare” gli aggiornamenti hardware, per ottenere load balancing e consente alle macchine virtuali, in 26 conformità ai cambiamenti che avvengono nei data center, di essere spostate in un pool di server con più memoria fisica, con un numero maggiore di CPU, e con un sistema di I / O più efficiente. Oracle Virtual Networking rivoluziona l'economia dei data center mediante la creazione di un'infrastruttura altamente efficiente costruita in base alle scelte hardware e software di un’organizzazione IT. Tale architettura consente di collegare in modo dinamico server, reti e storage. Per le applicazioni di backup del database, molte aziende hanno verificato, nell’effettuare tale operazione, una notevole riduzione dei tempi semplicemente mediante una connessione Fibre Channel con il server virtuale; in definitiva, quando Oracle Virtual Networking viene utilizzato in un ambiente Oracle VM, consente di velocizzare notevolmente le operazioni di I / O. 3.4.3 Oracle RAC Come asserito precedentemente, la continuità operativa è fondamentale per il successo di un’azienda. Affidarsi ad un singolo database Oracle implementato su un unico server espone l’azienda ad elevati costi e a notevoli rischi come guasti hardware e periodi di inattività programmati. Ciò induce a sostenere costi relativi alla gestione per il completamento delle transazioni fallite, costi per il recupero dei dati, minori profitti e riduzione della produttività. La funzionalità di clustering elimina il singolo punto di guasto rappresentato da un DBMS implementato su un unico server. L’implementazione del database Oracle su un cluster di server garantisce disponibilità durante i periodi di interruzioni programmate e i guasti hardware; ad esempio se si verifica un guasto durante una transazione, questa viene trasferita e completata su un altro server e ciò consente agli utenti dell’applicazione di continuare la loro attività. Il clustering, dunque, è in grado di fornire la scalabilità richiesta dalle organizzazioni IT, semplicemente aggiungendo ulteriori server nel cluster all’aumentare del numero di utenti e quindi del numero di transazioni. Il clustering getta le basi per lo sviluppo di un’architettura grid, che consente il provisioning dinamico dei server. Oracle RAC supporta l’implementazione di un singolo database Oracle su un cluster di server, garantendo una disponibilità continua delle applicazioni aziendali. 27 Mentre una singola istanza del database Oracle prevede una relazione uno ad uno tra l’istanza e il database, Oracle RAC mostra una relazione una a molti tra il database e le istanze; i nodi RAC e il database sono interconnessi tramite una rete LAN. Gli Oracle RAC differiscono da un punto di vista dell’architettura da una singola istanza del database per: 1. Almeno un thread aggiuntivo di redo per ogni istanza; 2. Un undo tablespace specifico per l’istanza. Il database previsto da Orcale RAC si presenta come uno shared-everything, condiviso tra tutti i nodi del sistema. In un ambiente Oracle RAC, i data file, control file, e redo log file risiedono su cluster-aware shared disks in modo tale che tutte le istanze del DBMS Oracle possano accedere a questi file. RAC prevede la presenza di due o più istanze su server distinti che accedono allo stesso storage ed un DBMS RAC possiede tutti i processi, tutte le strutture dati e di memoria presenti in un database Oracle a singola istanza. Tutte le istanze sono contemporaneamente attive, ed in caso di guasto di un nodo le istanze ospitate sugli altri nodi proseguono senza disservizi per gli utenti; ogni istanza ha una cache buffer nella sua System Global Area (SGA). L’utilizzo di una Cache Fusion, consente, in un ambiente Oracle RAC, di combinare logicamente le cache relative ad ogni istanza per consentire ai nodi di elaborare i dati come se risiedessero in un’unica cache. Mediante questa tecnica è possibile aumentare la velocità di acquisizione dei dati, che risiedono sul database, da parte di più istanze: se un’istanza acquisisce il risultato fornito da una query o da una transazione eseguita sul database, è possibile trasferire il blocco acquisito anche alle altre istanze che risiedono sui nodi dei cluster, evitando che queste ultime acquisiscano il dato interrogando il database. I nodi in un ambiente Oracle RAC devono connettersi a una rete locale (LAN) per consentire agli utenti e alle applicazioni di accedere al database. Oracle RAC utilizza un indirizzo IP virtuale per connettere le applicazioni al database; invece, Oracle Net Services è un software che consente il load balancing delle connessioni (aperte con applicazioni client) tra le varie istanze del database Oracle RAC. Una delle funzionalità più importanti di Oracle RAC è l’Oracle Clusterware, un software 28 che fornisce una gestione completa dei server raggruppati in cluster, con funzioni automatiche di identificazione e risoluzione dei guasti. Il tipo di storage utilizzato dipenderà dalla scelta dell’hardware e le potenziali opzioni includono un computer NAS (Networked Attached Storage), una SAN (Storage Area Network) remota configurata come capacità di storage locale nella rete. Automatic Storage Management è una funzionalità che distribuisce il carico di lavoro tra le risorse del cluster per ottimizzare le prestazioni senza necessità di interventi manuali. Figura 12. Architettura di Oracle RAC Dall’analisi della struttura e delle funzionalità di Oracle RAC, è possibile dedurre che questa piattaforma di clustering offre high availability ed elevate prestazioni, consentendo agli utenti di usufruire di un accesso continuo a dati, applicazioni e servizi; grazie a questa tecnologia, le aziende percepiscono una significativa riduzione dei rischi associati ai tempi di inattività forzati del database e delle applicazioni e ad una riduzione dei costi nella gestione dell’infrastruttura. 3.4.4 Valutazioni delle prestazioni e della scalabilità All’interno del settore IT, un DBMS Oracle deve garantire transazioni veloci e capacità scalabile in quanto il numero di utenti è in continua crescita e vengono aggiunte nuove applicazioni per soddisfare in maniera efficiente le esigenze dei clienti. Come riportato precedentemente, le organizzazioni IT esitano a virtualizzare l’ambiente di 29 esecuzione dei database Oracle in quanto, l’utilizzo di questa tecnologia potrebbe non fornire le prestazioni necessarie per eseguire le operazioni critiche dei DBMS. Tuttavia è stato dimostrato che la virtualizzazione del carico di lavoro dei database Oracle su Oracle VM è in grado di fornire prestazioni simili (e talvolta superiori) ad un carico di lavoro eseguito su un server bare-metal, offrendo vantaggi in termini di flessibilità e di agilità. L’Open Universities Australia (OUA) ha dimostrato, attraverso un test di performance valutato sia su server virtuali sia su bare-metal, che si prestazioni possono raggiungere equivalenti o addirittura migliori utilizzando Oracle RAC su OVM, offrendo al Figura 13. Test di performance svolto da OUA contempo un’ottimizzazione nell’ utilizzo delle risorse. Revera Limited, un fornitore leader di servizi per infrastrutture IT in Nuova Zelanda, ha eseguito un benchmark il cui obiettivo è quello di verificare le performance di una singola istanza del database Oracle in un ambiente OVM, confrontando i risultati con quelli ottenuti dall’esecuzione del database su un server bare-metal e su un ambiente virtualizzato nonOVM. Con il termine benchmark ci si riferisce ad un insieme di test software atti a misurare le prestazioni di un sistema in relazione ad un’applicazione standard operante su un ambiente ben definito. I server che vengono utilizzati in questo benchmark hanno le medesime caratteristiche e configurazioni, condividendo storage e network, e sono collocati sullo stesso blade chassis. I server prevedono le seguenti impostazioni: Server A: presenta una macchina OVM 3.2 con un unico sistema operativo guest che usa 4 vCPU, 6 GB di RAM e 100 GB di disco; Server B: presenta una macchina non OVM con un unico sistema operativo guest che usa 4 vCPU, 6 GB di RAM e 100 GB di disco; Server C: un bare-metal server che usa OEL 5.7 con 12 CPUs, 96 GB di RAM e 100 GB di disco. 30 I risultati raccolti dal test riguardano: I tempi di risposta (in millisecondi); Transazioni per minuto; Utilizzo della CPU; Dall’analisi dei risultati, relativi al confronto tra il server bare-metal e l’ ambiente OVM, si deduce che OVM utilizza in maniera più efficiente le risorse di cui dispone, mentre il server bare-metal, durante l’esecuzione dell’istanza Oracle, non sfrutta appieno le potenzialità delle risorse disponibili, che risultano in grande parte sottoutilizzate; tuttavia, avendo a disposizione più risorse, il bare-metal presenta maggiore stabilità al crescere del numero di utenti e ciò non comporta un degradamento delle prestazioni, che invece può verificarsi negli ambienti virtuali. Figura 14. AVG delle transazioni al minuto per OVM e Bare-Metal Per evitare ciò, OVM offre la possibilità di incrementare on-demand il numero di risorse, in termini di CPU e RAM, in modo da garantire stabilità all’aumentare dei carichi applicativi, configurandosi come un’architettura altamente scalabile. Figura 15. AVG delle transazioni al minuto per OVM e Bare-Metal 31 3.4.5 Partizionamento delle risorse Un amministratore di Oracle VM può definire quali e quante risorse devono essere allocate per ogni macchina guest, designando così, ad esempio, le risorse specifiche per ogni nodo Oracle RAC. Oracle VM, quindi, facilita enormemente l’hard partitioning della CPU (o “CPU Pinning”), allocando per una determinata macchina guest un numero limitato di CPU virtuali, necessarie per garantire il funzionamento di tutte le applicazioni che vengono eseguite sulla virtual machine. L’applicazione che consente di effettuare in maniera efficiente il partitioning delle risorse è Oracle VM Manager, che offre una gestione completa dell’intero ambiente virtualizzato; infatti, le funzionalità che offre consentono essenzialmente il monitoraggio in tempo reale dell’utilizzo di Oracle VM Server, con la possibilità di assegnare dinamicamente le risorse alle varie macchine virtuali, che risiedono sul server, di bilanciare i carichi di lavoro richiesti dal database di Oracle all’interno del pool di server, di migrare le macchine virtuali per eseguire operazioni di manutenzione o per eseguire il DBMS su un server che possiede più risorse, a seconda delle necessità. Figura 16.Interfaccia di Oracle VM Manager 32 Conclusioni Dall’analisi delle strategie di virtualizzazione offerte da Oracle risulta evidente che la virtualizzazione consente alle infrastrutture IT di ottenere enormi vantaggi sia da un punto di vista gestionale che da quello operativo. In riferimento ad una prospettiva gestionale, i benefici risiedono essenzialmente nella riduzione dei rischi associati ai tempi di inattività dei database e delle applicazioni e ciò è possibile, come descritto in questo elaborato, mediante la funzionalità “Live Migration”. Come mostrato, Oracle VM Manager offre un ulteriore vantaggio gestionale altrettanto importante: il load balancing, ovvero il bilanciamento automatico dei carichi di lavoro di Oracle database e delle applicazioni aziendali tra le varie macchine virtuali. Per ciò che concerne l’aspetto operativo, la continuità dei sistemi si configura come la preoccupazione maggiore degli ambienti di produzione, per questo OVM Manager e Oracle RAC, ove previsto, garantiscono le funzionalità di high avalaibility. Altri vantaggi significativi, riportati negli argomenti trattati, si riferiscono ad un’elevata scalabilità, raggiunta mediante un rapido provisioning di nuovi server che può essere effettuato tramite l’utilizzo di “Oracle VM Template” e “Oracle Virtual Assembly Builder”, e alla flessibilità, attuata grazie all’allocazione dinamica delle risorse, funzione assolta da Oracle VM Manager. In conclusione, è possibile asserire che l’insieme dei vantaggi descritti, ottenuti mediante la virtualizzazione dei server e delle basi di dati, si concretizza in una notevole riduzione, all’interno delle aziende, dei costi di gestione (OpEx) e dei costi di acquisto (CapEx), ottenendo nello stesso tempo performance elevate, grazie ad un uso efficiente delle risorse disponibili. 33 Bibliografia [1] Hewlett-Packard Development Company, “Dal Client all’infrastruttura IT”,2009. [2] Maurelio Boari, Simone Balboni, “Tecniche di virtualizzazione”,2007. http://archivio-mondodigitale.aicanet.net/Rivista/07_numero_1/Boari_p._38-49.pdf [3] A. Chianese, V. Moscato, A. Picariello, L. Sansone, “Basi di dati per la gestione dell’informazione, 2 ed.”, McGraw-Hill, 2009. [4] Oracle VM VirtualBox, https://www.virtualbox.org/manual/UserManual.html. [5] Documentation Oracle VM, https://docs.oracle.com/cd/E50245_01/E50249/html/vmcon-ovm-arch.html. [6] Data Sheet “Oracle Virtual Assembly Builder”, http://www.oracle.com/us/products/middleware/application-server/ovab-ds067891.pdf. [7] White Paper “Why Oracle VM is the Best Platform for Deploying Oracle Virtualization”, http://www.oracle.com/us/technologies/virtualization/oracle-vmfor-oracle-database-2155841.pdf?ssSourceSiteId=ocomit, Febbraio 2014. [8] White Paper “Why use OVM for Oracle Database”, http://oraclenz.org/wp- content/uploads/2013/07/Why-use-OVM-Revera.pdf [9] Oracle RAC, http://www.oracle.com/it/solutions/midsize/rac-product-brief-wce-it-457331-ita.pdf [10] Real Application Clusters Administration and Deployment Guide, https://docs.oracle.com/cd/B28359_01/rac.111/b28254/admcon.htm#i1058057. [11] TechNet Magazine, “Virtualizzazione: le 10 principali procedure consigliate di virtualizzazione”, http://technet.microsoft.com/it-it/magazine/gg131921.aspx,2010. 34