Quando si parla di virtualizzazione in ambito server viene immediato pensare a VMware vSphere e magari, in seconda battuta, a Hyper-V di Microsoft o a Citrix XenServer, piuttosto che a Red Hat Virtualization (KVM). Proxmox Virtual Environment (VE) è una alternativa senza dubbio meno blasonata e conosciuta, ma comunque valida e originale.

proxmox logo 2

UPDATE: in datata 12 Dicembre, dopo la fine delle nostre prove, è stata rilasciata la versione 4.1. Basata sull'ultima release Debian Jessie con Kernel 4.2.6, LXC e QEMU 2.4.1. Sono stati risolti alcuni bug e migliorata l'integrazione con ZFS, oltre che svariate funzioni legate ai container su LXC.

Proxmox è un progetto open source basato su KVM e – dalla nuova versione 4.0 – anche su LXC (Linux Containers): è gratuito ma la società che lo sviluppa mette a disposizione il supporto commerciale a pagamento. Si tratta di un hypervisor basato su Debian, che usa una versione modificata del kernel Red Hat Enterprise Linux (RHEL) ed è fornito come immagine ISO installabile in modalità bare-metal direttamente sugli host fisici. La sua interfaccia di gestione è esclusivamente Web e non richiede un server o una VM dedicata per il management. Come la maggior parte dei progetti Linux based, può succedere che si renda necessario l’utilizzo della linea di comando per svolgere alcune operazioni avanzate. La documentazione disponibile è discreta, non mancano guide dettagliate per tutte le operazioni principali consultabili sulla Wiki dedicata, ma siamo comunque molto lontani dai livelli di progetti come vSphere o Hyper-V.

Proxmox permette di creare due tipologie di macchine virtuali (VM): Full Virtualization con l’utilizzo di KVM (Kernel-based Virtual Machine) e Container-based. Nel primo caso si tratta di classiche VM autonome con risorse e sistema operativo dedicati, mentre l’utilizzo dei Container permette di implementare una virtualizzazione a livello di sistema operativo, per più sistemi Linux isolati su un singolo host. Da specificare che, a partire dalla release 4.0, i Container sono gestiti utilizzando LXC (Linux Containers) al posto di OpenVZ che è stato abbandonato.

1 cluster viewCome le migliori piattaforme IAAS, Proxmox permette di creare cluster multi-nodo per implementare l’alta affidabilità (HA, high availability): questa funzione ad esempio non è gestibile direttamente da interfaccia Web ma deve essere realizzata da linea di comando. L’architettura multi-master consente di non avere nodi dedicati alla gestione centralizzata, permettendo un risparmio in termini di risorse ed escludendo la presenza di Single Point of Failure (SPOF). Infatti, accedendo via Web a uno qualsiasi degli host, è possibile vedere e gestire tutti quelli presenti nel cluster. Avendo a disposizione una configurazione di questo tipo, si può anche implementare l’HA singolarmente sia sulle VM sia sui Container, a patto di avere uno storage condiviso dedicato. Come accade con vSphere sono supportati sia i dischi locali (con i file system LVM, ZFS) sia storage di rete collegati via protocollo NFS, iSCSI, o configurati con file system di tipo GLusterFS. Nell’ottica della configurazione in cluster, è interessante la possibilità di implementare uno storage distribuito utilizzando il file system Ceph, che però richiede un server di gestione del servizio dedicato (anche se è possibile installarlo su un nodo del cluster in ambienti di piccole dimensioni)

La piattaforma supporta snapshot multipli e include funzionalità di backup native, anche schedulabili, per ogni singola VM. Non mancano le possibilità di migrazione “live” delle VM anche tra storage differenti e senza downtime (per intenderci l’equivalente di vMotion e Storage vMotion in ambito VMware). 
Il networking è strutturato sul modello bridged, similmente a quanto accade su vSphere, un bridge è l’equivalente software di uno switch fisico, dove più macchine virtuali possono collegarsi e condividere il canale di comunicazione. Per ogni host è possibile realizzare fino a 4096 bridge e l’accesso al mondo esterno avviene associando questi ultimi a porte di rete fisiche sul server. La gestione del networking può esser completamente controllata tramite l’apposita voce dell’interfaccia Web.

Installazione e utilizzo

La procedura di installazione risulta piuttosto semplice, durante le varie fasi è possibile selezionare le impostazioni di default, oppure intervenire per alcuni setup specifici come, ad esempio, la configurazione dello storage locale con file system ZFS (soluzione che risulta utile in casi dove si preferisca una gestione completamente software dei dischi, al posto di un RAID realizzato via hardware dal controller fisico). L’aggiunta di storage di rete (nel nostro caso con NFS) può essere fatta in pochi semplici passaggi, rendendoli visibili sia al singolo host che all’intero cluster.

2 add nfs1

Una volta terminato il setup di Proxmox sui nodi, abbiamo provato a realizzare il cluster, fase indispensabile per l’High Availability. Questa funzionalità va implementata da linea di comando agendo sui singoli nodi, una volta creato il cluster sul primo, è sufficiente “agganciare” gli altri per vederli comparire nella colonna di sinistra dell’interfaccia Web.  Contrariamente a quanto si possa pensare, sono sufficienti due semplici comandi per effettuare queste operazioni: pvecm create [nome-cluster] (per creare il cluster da uno qualsiasi dei nodi), e pvecm add [Indirizzo-IP-cluster] (per aggiungereli al cluster esistente - nell'immagine la procedura di creazione).

3 create cluster
Come già accennato in precedenza, la natura multi-master di Proxmox permette una gestione completamente decentralizzata, è infatti possibile agire sui vari host del cluster nello stesso modo a prescindere da quello su cui si è collegati.

Per chi conosce altre piattaforme IAAS, come vSphere, la creazione di macchine virtuali è strutturata in modo molto simile, è possibile assegnare risorse (Disco, RAM, schede di rete etc.) e agganciare una ISO del sistema operativo da installare. È possibile interfacciarsi con le VM create utilizzando la console HTML5 noVNC (o SPICE in alternativa) inclusa, sia integrata nell’interfaccia Web che eseguibile in una finestra autonoma.
container 3

Per quanto riguarda i Container la procedura di creazione differisce fondamentalmente nel passaggio in cui si assegna il sistema operativo da utilizzare. Data la natura dei Container stessi, la parte di configurazione di rete, DNS e risorse hardware è paragonabile a quella delle VM classiche, ma al posto del sistema operativo avviabile è necessario fornire a Proxmox un apposito Template. I template sono immagini di sistemi operativi pre-configurati che è possibile scaricare direttamente dall’interfaccia di gestione principale e sono già pronti per essere implementati. La maggior parte della documentazione relativa a questo argomento fa ancora riferimento ai template disponibili per OpenVZ (per cui era disponibile un apposito repository). Con l’introduzione di LXC il download viene fatto direttamente dalla pagina di gestione storage degli host, tramite il tasto Template, che permette di accedere a quelli attualmente disponibili per LXC (Ubuntu 14.04, Arch-base, CentOS 6, Debian 7.0 etc).

ha1

Per l’utilizzo dell’HA è necessario indicare a Proxmox quali macchine virtuali devono essere incluse, nella pagina Web di gestione è prevista una voce di menu dedicata, ma naturalmente è possibile farlo con un apposito comando anche via CLI (Command Line Interface).  Interessante indicare che Proxmox offre un HA Simulator, una funzionalità che permette di realizzare e testare l’high availability in sicurezza all’interno di un ambiente simulato.

Le nostre prove

Il laboratorio di prova è stato realizzato configurando in cluster tre server HP di generazioni diverse (Proliant DL360 e DL380), tutti collegati alla stessa sottorete e dotati di storage locale su cui è stato installato Proxmox (l’installazione su SD o chiavette USB è supportata solo a livello di test, non in ambienti di produzione). 
Due dei nodi sono stati configurati utilizzando la procedura standard senza andare ad agire sulle impostazioni avanzate. Sul terzo server abbiamo invece provato ad utilizzare lo storage locale, configurandolo senza problemi con file system ZFS durante l’installazione. Al di là della differenza di gestione a livello dischi tra il RAID hardware via controller e via software affidato a ZFS, l’utilizzo dello spazio di memorizzazione disponibile sul nodo è risultato del tutto trasparente. L’utilizzo delle macchine virtuali risulta paragonabile a quello offerto dalle soluzioni più blasonate: la console noVNC permette infatti di interagire in modo relativamente comodo anche con sistemi desktop. Assolutamente trasparente rispetto all’hypervisor utilizzato è invece l’accesso alle VM tramite SSH o interfaccia Web. Abbiamo sperimentato senza problema alcuno anche la clonazione e la creazione di template. Anche la successiva migrazione di macchine virtuali e dischi da un host all’altro non ci ha creato particolari problemi, agendo dall’interfaccia Web la procedura è piuttosto facile da portare a termine in quanto è sufficiente indicare quale sia l’host di destinazione (nel caso dei dischi si può anche indicare se tenere o rimuovere il disco originale).

migrate1

Leggermente più articolato è la gestione dei Container: il passaggio da OpenVZ a LXC ha reso prima di tutto necessaria la possibilità di convertire quelli creati precedentemente (per cui è disponibile una apposita guida sulla Wiki), inoltre la possibilità di migrazione (offline) è stata introdotta solo a partire dalla release 4.0 beta2. Nonostante le best practices di Proxmox prevedano l’utilizzo di una porta di rete (e relativo networking virtuale) dedicata alla migrazione di vm e Container, le nostre prove si sono svolte utilizzando una sola porta fisica dell’host su cui era mappata la configurazione virtuale.

Importante segnalare un problema che abbiamo riscontrato nel testing dell’alta affidabilità, pur utilizzando macchine HP di fascia Enterprise (su cui abbiamo testato diverse versioni di ESXi fino anche all’ultima 6.0 senza alcun problema di compatibilità). Un bug di Linux nel collegamento tra il sistema e la iLO (sistema di gestione fuori banda dei server HP), necessaria per verificare lo stato attuale dell’host fisico e rilevare eventuali necessità di migrazione, porta al crash del nodi nel cluster su cui viene attivata la funzione di HA per una qualsiasi delle macchine virtuali (nello specifico un Kernel Panic generato dal modulo hpwdt). Per risolvere questo inconveniente è sufficiente disabilitare il servizio watchdog

Perché scegliere Proxmox

Proxmox è una soluzione gratuita e molto completa per la gestione di infrastrutture virtuali in ambienti di piccole e medie dimensioni, ma prima di lanciarsi su questo progetto è bene considerare alcune controindicazioni. Il difetto principale è l’assenza di un ecosistema vasto e completo di software, servizi, documentazione e supporto associati alla piattaforma, come invece avviene con i concorrenti Microsoft e VMware, così come l’alto livello di affidabilità necessario in ambienti di produzione, magari di grosse dimensioni. Il baco rilevato durante la configurazione dell’alta affidabilità è stato un esempio che ci ha fatto riflettere sulle possibili conseguenze nell’adozione di questa soluzione in ambienti critici.  Considerata la recente, e molto forte, tendenza del mercato IT verso l’ecosistema dei Container, Proxmox può essere un ottimo punto di partenza per avvicinarsi all’argomento. È infatti molto semplice e intuitivo iniziare a lavorare con questa diversa metodologia di virtualizzazione, anche senza una approfondita preparazione in merito e una infrastruttura dedicata.
Sicuramente Proxmox è un progetto ricco di potenzialità e con ampio margine di sviluppo, ma vi invitiamo a fare tutte le dovute valutazioni prima di adottarlo in progetti di lunga durata o che richiedano un livello di durabilità e affidabilità superiore.

L'autore

Lorenzo Bedin e Riccardo Gallazzi

Lorenzo Bedin

Laureato in Ingegneria delle Telecomunicazioni, svolge l'attività di libero professionista come consulente IT, dopo un periodo di formazione e esperienza in azienda nel ruolo di sistemista Windows e Linux. Si occupa di soluzioni hardware, siti web e virtualizzazione.

Riccardo Gallazzi

Sistemista JR, tra i suoi campi di interesse maggiori si annoverano virtualizzazione con vSphere e Proxmox e gestione ambienti Linux. È certificato VMware VCA for Data Center Virtualization.

Altri articoli dello stesso autore

banner5

fb icon evo twitter icon evo

Parola del giorno

L'acronimo SoC  (System on a Chip) nasce per descrivere quei circuiti integrati che, all'interno di un singolo chip fisico, contengono un...

>

YAML è un formato utilizzato per serializzare (ovvero salvare oggetti su supporti di memoria ad accesso seriale) dati, in modo...

>

Il termine Edge Computing descrive, all'interno di infrastrutture cloud-based, l'insieme di dispositivi e di tecnologie che permettono l'elaborazione dei dati ai...

>

L'acronimo FPGA  (Field Programmable Gate Array), descrive quei dispositivi hardware formati da un circuito integrato e con funzionalità programmabili tramite...

>

Il termine Agentless (computing) descrive operazioni dove non è necessaria la presenza e l'esecuzione di un servizio software (demone o...

>
Leggi anche le altre...

Download del giorno

Fiddler

Fiddler è un server proxy che può girare in locale per consentire il debug delle applicazioni e il...

>

Adapter Watch

Adapter Watch è uno strumento che permette di visualizzare un riepilogo completo e dettagliato delle informazioni riguardanti una determinata...

>

DNS DataView

DNS Lookup  è un tool a interfaccia grafica per effettuare il lookup DNS dal proprio PC, sfruttando i...

>

SolarWinds Traceroute NG

SolarWinds Traceroute NG è un tool a linea di comando per effettuare traceroute avanzati in ambiente Windows...

>

Network Inventory Advisor

Network Inventory Advisor  è uno strumento che permette di scansionare la rete e acquisire informazioni riguardanti tutti i...

>
Tutti i Download del giorno...

Archivio numeri

  • GURU advisor: numero 21 - maggio 2019

    GURU advisor: numero 21 - maggio 2019

  • GURU advisor: numero 20 - dicembre 2018

    GURU advisor: numero 20 - dicembre 2018

  • GURU advisor: numero 19 - luglio 2018

    GURU advisor: numero 19 - luglio 2018

  • GURU advisor: numero 18 - aprile 2018

    GURU advisor: numero 18 - aprile 2018

  • GURU advisor: numero 17 - gennaio 2018

    GURU advisor: numero 17 - gennaio 2018

  • GURU advisor: numero 16 - ottobre 2017

    GURU advisor: numero 16 - ottobre 2017

  • GURU advisor: numero 15 - luglio 2017

    GURU advisor: numero 15 - luglio 2017

  • GURU advisor: numero 14 - maggio 2017

    GURU advisor: numero 14 - maggio 2017

  • 1
  • 2
  • 3
  • Teslacrypt: rilasciata la chiave

    Gli sviluppatori del temuto ransomware TeslaCrypt hanno deciso di terminare il progetto di diffusione e sviluppo e consegnare al pubblico la chiave universale per decifrare i file. Read More
  • Proxmox 4.1 sfida vSphere

    Proxmox VE (da qui in avanti semplicemente Proxmox) è basato sul sistema operativo Debian e porta con sé vantaggi e svantaggi di questa nota distribuzione Linux: un sistema operativo stabile, sicuro, diffuso e ben collaudato. Read More
  • Malware: risvolti legali

    tutti i virus e in particolare i più recenti Ransomware, che rubano i vostri dati e vi chiedono un riscatto, violano la legge. Vediamo insieme come comportarsi, per capire anche se e quando bisogna sporgere denuncia. Read More
  • 1