Oracle Linux Virtualization Manager

Questo documento presenta Oracle Linux Virtualization Manager (OLVM): l'ambiente di virtualizzazione basato su oVirt e KVM fornito da Oracle.

E' importante notare che OLVM e' tecnicamente molto differente rispetto ad Oracle VM (OVM), anche se anch'esso rivolto alla virtualizzazione dei server: OLVM e' basato su KVM ed oVirt mentre OVM e' bastato su Xen.
VirtualBox, sempre sviluppato da Oracle Corp., invece e' tipicamente utilizzato su Personal Computer ed e' un hypervisor di tipo 2.

La versione utilizzata nella descrizione e' la 4.2 [NdE rilasciata 2019-06], ma i concetti generali valgono per tutte le release di OLVM e nelle note sono riportate le differenze introdotte dalle versioni sucessive [NdE documentazione aggiornata alla versione 4.4 rilasciata 2022-05].

Questo documento e' organizzato nei seguenti capitoli: Architettura, OLVM Node, OLVM Engine, Installazione, Evoluzione, Varie ed eventuali, ...

Architettura

L'architettura di OLVM e' quella di oVirt.

Il componente principale e' l'oVirt Engine: e' il motore scritto in Java che gestisce ogni componente. oVirt utilizza un DB relazionale (PostgreSQL), ha un interfaccia grafica su WildFly e fornisce API REST all'SDK Python ed all'interfaccia CLI. Sono presenti due database: engine con le configurazioni ed ovirt_engine_history con i dati storici utilizzati dal DWH. Gli utenti possono autenticarsi con LDAP/IPA o su Active Directory esterni.
Gli oVirt node sono server Linux con KVM su cui gira il demone VDSM (python) che, con interfaccia libvirt, gestiscono le varie VM. Sono supportati come ospiti molteplici sistemi operativi che si interfacciano con il classico KVM-QEMU ed ospitano un Agent. Le VM accedono ai local storage dei nodi ed allo storage condiviso.

OLVM - Architettura

Con OLVM cambiano un poco le configurazioni supportate che richiedono Oracle Linux, la procedura di installazione che prevede l'utilizzo di repository specifici ma non ci sono differenze sostanziali nell'architettura.
Con OLVM 4.2, la prima versione disponibile, gli oVirt Node sono sistemi Oracle Linux 7.6 e la versione di oVirt e' la 4.2.

OLVM Node

I nodi sono i server che ospitano le VM Guest; sono server fisici con Oracle Linux. Le versioni supportate di OL sono 7.6+ ed 8.5+, sugli host deve essere presente l'Unbreakable Enterprise Kernel.
I componenti di base per ospitare la virtualizzazione, ovvero KVM e QEMU, fanno parte integrante del kernel da tempo.

Il demone VDSM (python) gestisce le VM ospitate dal nodo ed utilizza l'interfaccia libvirt. I comandi disponibili in locale sono quelli standard. Ad esempio:

virsh --readonly version virsh --readonly list --all

I nodi OLVM ospitano le VM che forniscono i servizi: quindi se cade un nodo cadono di conseguenza tutte le VM ospitate. Pero' se le VM sono state definite in HA ripartiranno automaticamente su uno degli altri nodi disponibili.

OLVM Engine

L'Engine puo' essere ospitato su una VM esterna, su bare metal o in configurazione Self Hosted. L'unico requisito e' Oracle Linux 7.6+ oppure 8.5.

Sull'Engine disponibili tre portali: Administration Portal, VM Portal, e Monitoring Portal (grafana). OLVM - Portale

L'Engine ospita i database PostgreSQL (engine, ovirt_engine_history) con l'intera configurazione e lo storico delle attivita'.

L'OLVM Engine comanda e controlla ogni attivita' ma... se anche viene riavviato, per manutenzione, per errore o per un qualsiasi altro motivo, non succede nulla alle VM.

Gestione

Come abbiamo visto la gestione si effettua dal browser. Sono presenti tre portali: Administration Portal, VM Portal, e Monitoring Portal. OLVM - Portale

L'interfaccia utente dell'Administration Portal e' semplice e guidata con una dashboard iniziale ed un menu organizzato per oggetti. La gestione e' tutta grafica ed e' organizzata come segue:
OLVM - Cockpit

 Dashboard
 Compute
	Virtual Machines
	Templates
	Pools
	Hosts
	Data Centers
	Clusters
 Network
	vNIC Profiles
	Networks
 Storage
	Data Centers
	Domains
	Volumes
	Disks
 Administration
	Providers
	Quota
	Active User Sessions
	Users
		User
		Group
	Errata
	Configure
		Roles
		System Permissions
		Scheduling Policies
		Instance Types
		MAC Address Pools
 Events

Per la configurazione e la gestione vengono utilizzati wizard e semplici form: OLVM - Configurazione network

Il portale di monitoraggio infine e' basato su grafana: OLVM - Grafana

VM

OLVM - Menu VM L'utilizzo di OLVM 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.

Utilizzando l'Administration Portal OLVM consente di creare, avviare, clonare, migrare, ... VM in modo semplice agendo nella console di gestione sulla barra e sul menu avanzato: OLVM - Barra VM

L'elenco dei sistemi operativi supportati come Guest e' molto ampio. Ad esempio sono supportati tutti gli Oracle Linux dalla versione 6 alla versione 9. Per maggiori dettagli e' opportuno consultare la documentazione ufficiale.
Per i sistemi Windows e' molto importate utilizzare gli Oracle VirtIO Drivers for Microsoft Windows. I driver vanno installati sui Guest dopo che la VM e' stata creata ed avviata. Le directory di installazione sono:

Per creare una VM e' possibile utilizzare un template. La definizione di template standard permette di semplificare ed ottimizzare le attivita' di configurazione delle VM ospite.

Installazione

La procedura di installazione prevede diverse alternative: possono essere diverse le versioni dei sistemi operativi, i server possono essere registrati su ULN, la base dati puo' essere esterna, si puo' utilizzare la configurazione Self-Hosted Engine [NdA dalla versione 4.3], ...

Nel caso piu' semplice, con le versioni piu' recenti e riassumendo molto... effettuata un'installazione da zero del sistema operativo OL 8.5+ i passi principali per l'installazione del Manager sono:

# dnf install oracle-ovirt-release-el8 # dnf install ovirt-engine # engine-setup

La maggioranza delle impostazioni di default del setup sono quelle consigliabili, quindi l'installazione e' molto semplice, basta proseguire confermando le varie opzioni: OLVM - Install E' ovviamente importante non dimenticare le password inserite!

Impostati tutti i parametri si puo' avviare la configurazione: OLVM - Install

Al termine del setup e' opportuno un riavvio del servizio con:
 systemctl restart ovirt-engine

Ed e' finalmente possibile collegarsi al portale all'URL: https://manager-fqdn/ovirt-engine

Per i nodi KVM host si procede in modo simile con un'installazione minimale del sistema operativo e quindi si installa il pacchetto oracle-ovirt-release-el8. Terminata questa parte e' possibile aggiungere l'host dal portale di amministrazione.

Naturalmente tutti i dettagli sono descritti nella documentazione ufficiale.

Evoluzione

Poiche' OLVM e' piuttosto recente... anche questo documento e' in evoluzione!

L'aggiornamento delle release dei prodotti di virtualizzazione e' sempre molto importante. Su OLVM teoricamente non ci sarebbe molto da dire perche' e' appena stato reso disponibile in GA [NdE 2019-06]...
Pero' in realta' un paio di cose e' gia' possibile segnalarle. La versione di oVirt su cui OLVM si basa e' molto recente ma non e' l'ultima. La versione di sistema operativo, OL 7.6 e' l'ultima disponibile, ma Red Hat ha gia' pubblicato la versione 8.0.
Diciamo quindi che e' stato scelto un approccio prudente... speriamo non troppo prudente come e' avvenuto in qualche altro caso!

Molto attese sono anche alcune funzionalita' che hanno importanti implicazioni non solo tecniche: CPU pinning, certificazione di Oracle RDBMS su KVM, DB backup vs Snapshot, OL su oVirt, RH/CentOS su OLVM, OLVM sui sistemi engeenered, K8s, ...
Le implicazioni? Ad esempio il CPU pinning su OVM e' consentito da Oracle come OVM Hard Partitioning, sara' lo stesso per OLVM??

Breaking news: e' stato pubblicato un documento ufficiale Oracle su come effettuare l'Hard Partitioning con OLVM [2019-10-11], i riferimenti ed altre indicazioni di dettaglio su OLVM Hard Partitioning.
In pratica si utilizza il comando olvm-vmcontrol per effettuare il pinning delle CPU. Con la macchina virtuale impostata in questo modo il numero di core conteggiate per il licensing Oracle e' quello assegnato e non il totale dei core presenti sul sistema ospite.

2022 News: la versione 4.4 di OLVM, disponibile dal 2022-05, e' allineata alla versione 4.4.8 di oVirt ed introduce il supporto OL 8, la customizzazione completa delle VM durante il cloning, la configurazione dell'auto-start, ... Tra i principali componenti: PostgreSQL 13.7, Grafana 7.5.11, Wildfly 23.0.2, ... Nel frattempo tutto continua a cambiare: oVirt e' gia' disponibile in versione 4.5, l'ultima versione di RHEL e' la 9.0, CentOS e' passato CentOS Stream, ...

Un maggior dettaglio sulle versioni di OLVM e' riportato sul documento Your server stinks! Puo' anche essere utile l'aggiornamento sulle versioni oVirt.

Database

TLDR;
Questo capitolo contiene alcuni dettagli per i curiosi di PostgreSQL...

Come abbiamo visto l'Engine ospita i database PostgreSQL (engine, ovirt_engine_history, postgres) con l'intera configurazione e lo storico delle attivita'.

La base dati piu' importante e' engine che e' quella che riporta tutte le configurazioni statiche e dinamiche.
Interessanti sono le tabelle vds_static, vds_dynamic, vm_static, ... ma lo schema generale e' abbastanza complesso (cfr. https://www.ovirt.org/images/wiki/rhevm-3-1.png) [NdA mouse over the image]:

OLVM engine DB Entity Relationship

Le basi dati possono essere utilizzate in lettura senza problemi per raccogliere le configurazioni o le statistiche.
Oltre che con comandi da interfaccia e' possibile cambiare alcune impostazioni anche direttamente nella base dati:

engine=# update vdc_options set option_value= '60' where option_name ='vdsHeartbeatInSeconds';

E' opportuno effettuare un backup periodico della base dati e delle configurazioni di OLVM con il semplice comando engine-backup.


Varie ed eventuali

OVM e' il precedente ambiente di virtualizzazione di Oracle, il cui Premier Support e' terminato il 2021-03 ed il termine dell'extended support e' previsto per il 2024-06. OVM e' basato su Xen, a differenza di OLVM che e' basato su KVM. Un documento introduttivo su OVM e' Oracle VM; il documento contiene un'introduzione e descrive l'installazione dei vari componenti.

OLVM e' stato inserito di recente tra gli ambienti che supportano l'Hard Partitioning: e' un aspetto fondamentale per il licensing.

La documentazione ufficiale e' sempre molto completa.


Titolo: Oracle Linux Virtualization Manager
Livello: Esperto (4/5)
Data: 21 Giugno 2019 🌤
Versione: 1.0.3 - 1 Aprile 2022
Autore: mail [AT] meo.bogliolo.name