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