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, ...
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.
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.
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:
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.
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).
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.
Come abbiamo visto la gestione si effettua dal browser. Sono presenti tre portali: Administration Portal, VM Portal, e Monitoring Portal.
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:
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:
Il portale di monitoraggio infine e' basato su grafana:
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:
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.
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:
La maggioranza delle impostazioni di default del setup sono quelle consigliabili, quindi l'installazione e' molto semplice, basta proseguire confermando le varie opzioni: E' ovviamente importante non dimenticare le password inserite!
Impostati tutti i parametri si puo' avviare la configurazione:
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.
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.
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]:
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:
E' opportuno effettuare un backup periodico della base dati e delle configurazioni di OLVM con il semplice comando engine-backup.
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
Data:
21 Giugno 2019 🌤
Versione: 1.0.3 - 1 Aprile 2022
Autore: mail [AT] meo.bogliolo.name