Oracle VM

Questa e' una guida, la piu' semplice possibile, per installare Oracle VM: l'ambiente di virtualizzazione basato su Xen fornito dalla Oracle Corporation.
Si tratta di una pagina volutamente incompleta ma che vuole riportare i principali passi per l'installazione e gli elementi essenziali della configurazione e dell'utilizzo di OVM in modo semplice, chiaro e, non da ultimo, in italiano!
Per maggiori dettagli fate riferimento alla documentazione ufficiale.

Questo documento e' organizzato nei seguenti capitoli: Introduzione, Prerequisiti, Installazione, Configurazione, Utilizzo, Licensing, Varie ed eventuali, ...

Introduzione

Architettura Oracle VM Prima di procedere all'installazione e' necessario comprendere i principali componenti dell'architettura di OVM.
Una configurazione tipica di OVM comprende un Oracle VM Manager e diversi Oracle VM Server:

Gli OVM Server sono organizzati in Server Pool e fanno uso di risorse comuni come lo storage repository ed il networking tutte gestiti graficamente dalla console. Sempre da console vengono definite e gestite le VM. Significativa e' la gestione dell'HA (High Availability) che effettua il riavvio delle VM in caso di un fault con una speciale gestione delle istanze Oracle RAC.

Nel mercato ampio ed in continua evoluzione degli ambienti di virtualizzazione Oracle VM si distingue per il livello di supporto, per grande disponibilita' di template relativi ai prodotti Oracle e per il favorevole riconoscimento del partizionamento fisico con notevoli vantaggi nei costi di licenza di alcuni prodotti Oracle.

Prerequisiti

Per una configurazione minima serve un sistema fisico con processore singolo x86_64 e 2GB RAM su cui installare OVM Server, un sistema linux a 64 bit >1.8 Ghz con 10GB di disco (anche su VM) su cui installare OVM Manager ed uno storage SAN o NFS (NFS, OCFS2 su SAN, OCFS2 su iSCSI).
Tali requisiti sono minimali, per ospitare un numero significativo di sistemi guest e' opportuno disporre di processori con piu' core e di grandi quantita' di memoria (eg 2x esacore, 64GB RAM). Per migliori prestazioni e' opportuno utilizzare processori recenti che supportano la virtualizzazione HW (Intel VT o AMD-V). Anche la presenza di piu' schede di rete porta a vantaggi prestazionali e consente di di separare la rete di gestione da quella di esercizio: e' quindi fortemente consigliata per un'installazione di produzione.

In questa pagina faremo riferimento all'installazione della versione 3.x di OVM [NdE 3.1.1 e 3.0.3: le piu' recenti al 2Q 2012] utilizzando 3 server fisici con processori x86_64 ed una SAN. I due server utilizzati come Server hanno una dotazione maggiore di CPU e RAM (2x esacore, 64GB RAM) e vengono installati da zero (sono senza sistema operativo), il server utilizzato come Manager e' un normale sistema Linux (Oracle Linux) con 1 CPU quad core e 4GB RAM.
Come nomi di macchina ed indirizzi utilizzeremo valori fittizi ma, speriamo, abbastanza chiari: ovm-manager.xenialab.it ovm-server1.xenialab.it ovm-server2.xenialab.it vm-win1.xenialab.it vm-ol1.xenialab.it ...

Quanto riportato vale comunque, mutatis mutandis, per altre le versioni e configurazioni di OVM.

Installazione

Download OVM software L'installazione di una Farm OVM richiede l'installazione degli OVM Server e dell'OVM Manager.

Il software e' disponibile sul sito Oracle Software Delivery Cloud. La figura a destra riporta le i pacchetti da scaricare [NdE la figura e' riferita alla versione 3.2.1], naturalmente e' opportuno utilizzare le versioni piu' recenti.

Terminate le installazioni dei Server OVM e del Manager OVM e' necessaria la fase di configurazione come descritto nei successivi capitoli.

Installazione OVM Server

Per installare gli Oracle VM Server e' sufficiente effettuare il boot con il CD scaricato e quindi seguire le indicazioni riportate a video. Le domande della procedura di installazione sono necessarie per la configurazione di base di un sistema Unix: nome del server, IP address, password di root, ... L'installazione termina visualizzando la console di stato del sistema. E' possibile passare dalla console di stato a quella linux con i tasti [Alt-F2] ed [Alt-F1].
Al termine dell'installazione avremo un server linux (Oracle Unbreakable Linux) con Xen e l'agent Oracle. Nella configurazione standard il partizionamento e':

Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 3050092 574932 2317724 20% / /dev/sda1 101086 37336 58531 39% /boot tmpfs 344740 6644 338096 2% /dev/shm none 337664 40 337624 1% /var/lib/xenstored
La stessa procedura va ripetuta per tutti gli OVM Server e richiede circa 15 minuti.

Installazione OVM Manager

L'installazione di Oracle VM Manager richiede un sistema con Linux installato (eg. Oracle Linux, Red Hat) e, per le installazioni di produzione, un'istanza Oracle. Infatti OVM mantiene il repository su un'istanza Oracle (default schema OVS). Per un'installazione di prova si puo' utilizzare la modalita' Demo, che installa Oracle XE, tuttavia per un'installazione di produzione e' necessario disporre di un'istanza Oracle supportata quindi una Standard Edition o una Enterprise Edition [NdE dalla versione 3.2 l'installazione di base viene chiamata Simple ed utilizza una base dati MySQL].

Prima installiamo un "normale" sistema operativo (Oracle Unbreakable Linux 6). Il partizionamento standard e':

Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg_ovmmanager3-lv_root 14070560 2001820 11353988 15% / tmpfs 2026588 0 2026588 0% /dev/shm /dev/sda1 495844 50323 419921 11% /boot

Come utente root, montato il disco con il SW OVM Manager sotto /mnt, ci spostiamo sotto /mnt e lanciamo lo script ./createOracle.sh che crea utente/gruppo/directory/configura iptables/... necessari per l'installazione (eg. file system o directory /u1 con 5GB disponibili) [NdE se non si vuole masterizzare un CD o non si ha un lettore a disposizione e' possibile scaricare il file contentente l'ISO di OVM Manager direttamente sul sistema con il comando mount -o loop V44601-01.iso /mnt]. L'installazione di Oracle VM Manager si lancia con il solito ./runInstaller.sh. Viene presentata la scelta tra:

Please select an installation type: 1: Simple (includes database if necessary) 2: Custom (using existing Oracle database) 3: Uninstall 4: Help

Le altre domande della procedura di installazione sono semplici: principalmente le password da assegnare ai diversi utenti per l'accesso agli ambienti creati!
Vengono installati il DB, l'Application Server (Oracle Weblogic) su cui e' ospitata la console grafica e l'OVM Manager. Al termine vengono riportati i dettagli per l'accesso ai vari ambienti. Ovviamente l'installazione va svolta una sola volta e richiede circa 60 minuti.
Per ragioni di sicurezza la documentazione ufficiale consiglia di cancellare i log di installazione... da non dimenticare su un ambiente di produzione!

Configurazione

Ora che l'installazione e' terminata inizia il divertimento! In effetti al termine dell'installazione i vari componenti non fanno nulla ed e' necessario configurarli.

Il primo passo e' quello di collegarsi alla console Manager, agganciare i server e quindi configurare le varie risorse come descritto nel seguito. Il link e' https://ovm-manager.xenialab.it/ovm/console
I passi successivi sono relativi alla configurazione delle varie risorse. Eccoli nell'ordine "normale" (infatti i passi possono essere ripetuti quando varia la configurazione):

L'installazione e la configurazione sono terminate!
Buon divertimento! Have a lot of Fun! Que te diviertas! Diverte-te!

Utilizzo

L'utilizzo di OVM e' quello di fornire un ambiente affidabile e cost-effective su cui configurare i sistemi operativi ospite. Spesso questi sistemi manterranno istanze dell'RDBMS Oracle o altri prodotti Oracle ma possono essere ospitati sistemi con funzioni di qualsiasi tipo.
OVM ha un'ampia matrice di certificazione dei sistemi operativi ospitabili come guest. Sono supportati sia OS virtualizzati HW, che sistemi operativi paravirtualizzati ed infine sistemi operativi virtualizzati HW con device driver paravirtualizzati.

Per creare una nuova macchina virtuale esistono diverse possibilita':

I template possono essere scaricati dal Oracle Software Delivery Cloud sul link https://edelivery.oracle.com/linux. Sono presenti una cinquantina di template che vanno dai piu' semplici (eg. Oracle RAC 11g R2 composto da 2 immagini ISO) ai piu' complessi ambienti Oracle (eg. Oracle E-Business Suite composto da 11 file per un totale di quasi 40GB).
La modalita' di installazione e' importante perche' vi sono diverse eccezioni... ad esempio non e' tipicamente possibile effettuare un boot da ISO per un guest para-virtualizzato.

Ecco in dettaglio i passi per configurare una VM (esempio da file ISO):

Al termine di questi passo la VM viene creata ma e' in stato "STOPPED". Avviarla e iniziare l'installazione del S.O. tramite il file iso montato sul CD. Ovviamente questi passi vanno ripetuti per ogni VM che si desidera installare.

Ora che abbiamo creato alcune macchine virtuali vediamo come gestirle! La maggioranza delle operazioni viene svolta utilizzando la console grafica. E' tuttavia possibile utilizzare anche comandi Xen sui Server e comandi di utilita' OVM sul Manager.

La gestione delle VM avviene tipicamente sfruttando la console.

OVM - Console gestione

L'utilizzo della console e' particolarmente semplice. Basta selezionare la VM desiderata e quindi premere il tasto corrispondente all'azione desiderata (eg. Stop, Avvio, Sleep, Modifica, ...).
Le caratteristiche della VM possono essere modificate premendo il bottone di Edit [NdA la matita] e impostando quanto desiderato. Ad esempio possono essere aggiunte piu' CPU, aumentata la memoria, aggiunti dischi, ...

Oltre all'uso della console risultano utili anche i normali comandi Xen che sono comunque sempre disponibili sui diversi OVM Server. Ecco il risultato dell'esecuzione di alcuni comandi Xen sulla partizione dom0 di un server:

root@ovm-server1# xm list Name ID Mem VCPUs State Time(s) 0004fb0000060000305d0d8af09bd58e 4 3048 2 -b---- 436.7 Domain-0 0 638 4 r----- 19472.8 root@ovm-server1# xm top xentop - 16:37:18 Xen 4.1.2-OVM 2 domains: 1 running, 1 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown Mem: 8379452k total, 3901540k used, 4477912k free CPUs: 4 @ 2675MHz NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR VBD_RSECT VBD_WSECT SSID 0004fb0000 --b--- 444 0.6 3125196 37.3 3125248 37.3 2 1 5952 34 1 0 56010 174417 2446396 4197928 0 Domain-0 -----r 19546 4.1 653956 7.8 654336 7.8 4 0 0 0 0 0 0 0 0 0 0 Delay Networks vBds Tmem VCPUs Repeat header Sort order Quit

Da ultimo e' importante ricordare che Oracle fornisce alcune utility (OVM utility) che consentono la gestione di OVM da linea di comando [NdE dalla versione 3.2 e' disponibile anche una CLI (Command Line Interface) molto piu' completa]. Ecco un esempio di richiamo di alcuni dei comandi piu' utili:

ovm_servercontrol -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -c list
ovm_servercontrol -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -s $OVMU_SERV -c info
ovm_servercontrol -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -s $OVMU_SERV -c status
ovm_vmcontrol  -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -c list
ovm_poolcontrol  -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -c list
ovm_repocontrol  -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -c list
ovm_managercontrol  -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -c listcpugroups

I risultati ottenuti sono:
Command : list Server : 'ovm-server2' IP : '192.168.2.26' MAC : '00:15:58:a3:74:88' ID : '00:15:58:a3:74:88:20:07:03:08:17:29:10:00:00:00' pool : 'ovmServerPool1' status : 'Running' Server : 'ovm-server1' IP : '192.168.2.25' MAC : '90:e6:ba:19:ab:d5' ID : 'a0:e8:2b:69:70:96:de:11:82:43:90:e6:ba:19:ab:d5' pool : 'ovmServerPool1' status : 'Running' Command : info Server : ovm-server1 Status : Running Management IP : 192.168.2.25 Management MAC: 90:e6:ba:19:ab:d5 Hostname : ovm-server1 ID : a0:e8:2b:69:70:96:de:11:82:43:90:e6:ba:19:ab:d5 Pool : ovmServerPool1 CPU threads : 4 CPU Usage : 1.6051028 Total Memory : 8183 Usable Memory : 4352 Maintenance : false Master Server : false Up to date : true Virtual Machines on this server : Name : 'ovmOLinux6-1' Status : 'Stopped' Name : 'ovmCentOS-1' Status : 'Running' Command : list VM name : 'ovmOLinux6-1' uuid : '0004fb0000060000dac9642868903d89' server : 'ovm-server1' pool : 'ovmServerPool1' status : 'Stopped' VM name : 'ovmCentOS-1' uuid : '0004fb0000060000305d0d8af09bd58e' server : 'ovm-server1' pool : 'ovmServerPool1' status : 'Running' VM name : 'ovmWinXpPro-1' uuid : '0004fb0000060000aa98a727ec139fc8' server : 'ovm-server2' pool : 'ovmServerPool1' status : 'Running' Command : listcpugroups Group : Default_Intel_F6_M15 Server : ovm-server2 Group : Default_Intel_F6_M30 Server : ovm-server1

Un esempio di utilizzo e' uno specifico Plug-in del tool ux2html che utilizza i comandi di OVM per raccogliere la configurazione.

Licensing, certification and support

OVM non ha un costo di licenza ma solo di supporto (cfr. listino ufficiale). OVM e' distribuito come Open Source, gli RPM sono disponibili su questo sito. Per OVM non sono previsti costi ulteriori per funzionalita' specifiche (eg. DRS). Il supporto non e' obbligatorio. Ma l'aspetto piu' importante e' il licensing dei prodotti Oracle installati sui Guest.
Il sistema operativo OEL (Oracle Enterprise Linux) segue la stessa politica di licensing di OVM. E' una distribuzione molto simile a quella Red Hat ma, a differenza di questa, le patch e gli aggiornamenti sono disponibili anche senza aver attivato il supporto (chi attiva il supporto ha pero' una linea preferenziale ed aggiornamenti piu' tempestivi).

Dal punto di vista di Licensing Oracle Corp. adotta una licenza basata sul numero di processori per i prodotti della linea Database. Sulle piattaforme di tipo Enterprise e' comune la possibilita' di effettuare un partizionamento fisico o logico. Oracle consente di ridurre il numero dei processori su cui effettuare i conteggi solo se si utilizza il partizionamento fisico (Hard Partitioning). L'assegnazione di specifiche CPU alle VM realizzabile da OVM (pinning) e' considerato da Oracle un partizionamento fisico valido per ridurre il numero di processori utilizzati nei conteggi delle licenze. Risulta quindi molto vantaggioso per quei prodotti le cui licenze sono state acquistate in base al numero di processori.

Per assegnare CPU specifiche alle VM e' necessario agire sul file vm.cfg (/OVS/Repositories/Repository_ID/VirtualMachine/VM_ID) impostando il parametro cpus (eg. cpus='0-3' oppure cpus='0,1'). La verifica dell'assegnazione delle CPU fisiche alle VCPU assegnate alla VM (affinity) si effettua con il comando xm vcpu-list VMname. Con le versioni piu' recenti sono anche utilizzabili le OVM utility per effettuare il pinning:
# ovm_vmcontrol -u $OVMU_USER -p $OVMU_PASS -h $OVMU_HOST -v VMname -c vcpuset -s 0,1

La funzionalita' di live migration non e' consentita dalle politiche di licensing: non vanno quindi abilitate le funzionalita' di DRS (Distributed Resource Scheduling) e DPM (Distributed Power Management). Maggiori informazioni si trovano sulla documentazione ufficiale.

Oracle certifica il proprio RDBMS solo su sistemi fisici o su OVM. Nessun altro ambiente di virtualizzazione e' certificato da Oracle.

Oracle supporta (e naturalmente il supporto richiede il pagamento di una fee) il proprio RDBMS su tutti gli ambienti virtualizzati. Se l'ambiente di virtualizzazione e' OVM il supporto e' completo. Se l'ambiente di virtualizzazione non e' OVM e' onere del cliente replicare il problema su HW fisico nel caso in cui si presenti un nuovo bug.


Documentazione ed altre informazioni

Il documento Architettura Oracle VM 3.2 [NdE scritto dallo stesso autore] contiene un maggior dettaglio sugli aspetti architetturali e tecnici di OVM.

E' disponibile un'ampia documentazione ufficiale sul sito Oracle tra cui la guida per l'installazione che descrive sia l'installazione dei componenti che la loro configurazione di base. Altri documenti che risultano utili nella gestione sono:

Quanto riportato su questo documento e' un'estratto dei passi di installazione e concetti principali di OVM. Non sono stati volutamente trattati importanti argomenti quali: la configurazione dell'NTP sul manager, la configrazione del VNC Viewer, la configurazione delle iptables e di eventuali firewall, la migrazione del'OVM Manager su VM [NdE opzione --uuid di runInstaller.sh], la gestione dei certificati CA per l'HTTPS, le procedure di backup/restore, i dettagli sulle tipologie di sistemi guest utilizzabili e l'eventuale paravirtualizzazione, la gestione dell'HA (clustering del manager, configurazione del RAC ed affinity), ...

L'aggiornamento della release di OVM e' importante. Conviene utilizzare l'ultima versione di OVM: le funzionalita' sono in continua evoluzione!

Possono essere ospitati diversi sistemi con differenti modalita' di virtualizzazione. Conviene utilizzare sistemi operativi Linux 64bit in modalita' paravirtualizzata. Questo permette il massimo delle prestazioni e dell'affidabilita'... ma non e' sempre possibile: vi sono ambienti Oracle non certificati su tali sistemi (eg. certe componenti di eBS sono certificate solo su 32 bit), e non e' sempre cosi' facile installare i sistemi operativi paravirtualizzati!


Titolo: Oracle VM
Livello: Avanzato (3/5)
Data: 15 Agosto 2011
Versione: 1.0.6 - 14 Febbraio 2014
Autori: mail [AT] meo.bogliolo.name,