giovedì 26 gennaio 2017

Virtualizzatori parte 2 ProxMox VE

In questa seconda parte dedicata alla virtualizzazione, mi concentrerò non più sulla virtualizzazione della singola macchina locale cosa fattibile con VirtualBox, ma sulla virtualizzazione di una infrastruttura di server.
Solitamente quando si pensa alla virtualizzazione di infrastruttura complesse si pensa subito a VMware leader indiscusso in questo campo, eppure qualche anno fa ho scovato nel mondo open source un software che può rimpiazzare il costoso VMware in modo adeguato, non voglio dire che VMware possa essere rimpiazzato in ogni contesto, ma se parliamo di piccole e medie imprese, vi garantisco che questo software non ha nulla da invidiare a nessuno, nel mio piccolo ho gestito senza grosse difficoltà circa 20 server virtuali dislocati su 5 macchine fisiche con ProxMox VE.
ProxMox VE essendo un software pensato per la virtualizzazione di livello enterprise non può essere utilizzato, come i classici virtualizzatori desktop, su un sistema operativo già funzionante, ma ha bisogna di una macchina dedicata sulla quale poi si possono creare, tramite una comoda interfaccia WEB, tante macchine virtuali.


Supporta sia la tecnologia container LXC, in cui le varie macchine virtuali condividono il sistema operativo su base Linux, cosa che consente una maggior velocità di esecuzione considerando il fatto che non è presente nessuna emulazione, sia la tecnologia KVM (Kernel Based Virtual Machine) con pieno supporto ad Intel VT ed AMD-V, in questo caso ovviamente la virtualizzazione passa per un'emulazione con una perdita di prestazione comunque minima rispetto alla base della macchina sulla quale è installata ProxMox VE.
Pieno supporto a backup e restore delle macchine virtuali con la possibilità di effettuare una schedulazione delle attività, supporto alle snapshot, il backup ovviamente e possibile sia internamente al singolo server sia su eventuali storage esterni o in rete.
E' possibile installare ProxMox VE su più server per creare un cluster, sul quale poi è possibile sia distribuire il carico di lavoro della macchine virtualizzate facendo anche una live migration delle stesse, sia attivare un HA (High Availability) su più nodi del cluster per evitare che il down di una macchina possa bloccare un server virtuale importante per le vostre attività.
ProxMox VE può gestire storage esterni come:
  • iSCSI target
  • LVM Group (network backing with iSCSI targets)
  • NFS Share
  • Ceph RBD
  • Direct to iSCSI LUN
  • GlusterFS
Quindi come vedete non ci sono grossi limiti sul suo utilizzo in aziende anche di una certa grandezza, inoltre in rete trovate una wiki veramente ben fatta che copre un buon 90% delle problematiche da affrontare per un suo corretto utilizzo.
Passiamo a vedere un po' l'interfaccia WEB, dopo aver installato ProxMox VE, per poterlo gestire bisognerà accedere alla sua interfaccia WEB la trovate all'indirizzo IP che avete assegnato in fase di installazione, https://"indirizzo_IP_assegnato":8006, se il browser vi da un errore relativo ai certificati, non vi preoccupate ed andate aventi ugualmente, non è un problema.
ProxMox VE schermata iniziale

Dopo esservi autenticati sul serve utilizzando come utente root, e come password quella scelta in fase di installazione, potete gestire il vostro Datacenter, ovviamente appena installato ci sarà un solo nodo, bisognerà poi aggiungerne altri se ne avete nell'apposita sezione HA
Nella sezione Summary, avete subito una vista completa dello stato di utilizzo del Datacenter o se avete selezionato un nodo potete vedere tutte le informazioni relative all'attuale carico di lavoro su di esso.

ProxMox VE Summary Datacenter

ProxMox VE Summary Nodo


Per poter creare una macchina virtuale in modalità KVM, avrete bisogno o di utilizzare il lettore CD/DVD del server o potete caricare un immagine ISO, per farlo vi basterà selezionare il nodo dove volete caricare l'immagine, quindi selezionare lo storage relativo e caricare il file dal vostro computer.

ProxMox VE caricamento immagine ISO

Mentre se volete creare una macchina virtuale utilizzando un container LXC sempre nello storage del nodo vi vengono proposti dei container preconfezionati da poter scaricare e successivamente utilizzare come macchine virtuali nel Datacenter.

ProxMox VE download container

Altra cosa interessante aggiunta di recente su ProxMox VE è la possibilità in fase di creazione di una macchina virtuale di lasciare al sistema la gestione della RAM a disposizione della varie macchine virtuale, questo può risultare molto utile quando ad esempio, il carico di lavoro su una macchina virtuale diventa maggiore rispetto a quello normale, in questo caso sarà ProxMox VE a ridurre le risorse messe a disposizione su altre macchine meno utilizzate per darle a quella con un carico di lavoro maggiore.

ProxMox VE gestione automatica della memoria


E se questo non dovesse bastare avete sempre la possibilità di effettuare una live migration della macchina virtuale su un nodo meno carico, ovviamente per poter effettuare una live migration è ovvio che l'immagine del disco della macchina virtuale non deve risiedere sul nodo stesso ma su uno storage esterno, tra l'altro potete sempre dedicare uno o più nodi a fare da storage esterni, io ad esempio utilizzavo OpenMediaVault, e per garantire una adeguata velocità di trasferimento dotavo tutti i nodi del datacenter di 4 schede di rete, visto che ProxMox VE permette di effettuare il bonding delle schede di rete sia per aumentare la banda passante, sia per gestire i fail over in caso di rottura di schede di rete o switch, è ovvio che il massimo lo si ottiene utilizzando storage con connessione in fibra ottica, ma visti i costi di quest'ultimi, gestire il tutto con delle schede di rete a 1GB messe in bonding può risultare un buon compromesso, ed onestamente non ho mai avuto problemi di eccessiva latenza nell'utilizzo quotidiano.

Ok questo è ProxMox, spero che possa essere utile a qualcuno come lo è stato per me, svolgendo adeguatamente il suo dovere per oltre 5 anni, buona virtualizzazione a tutti.