Scrivere un messaggio su Internet è come farsi un tatuaggio, solo un tatuaggio è più facile da cancellare.
In pieno clima vacanziero stò testando una interessante soluzione di virtualizzazione che se mantiene le premesse può dare seriamente filo da torcere ai più blasonati VMWare ESX, Citrix XenServer e al nuovo fiammante Hyper-V di Microsoft. Ok, forse non subito, e forse solo in fascia "entry", ma questo prodotto presenta una caratteristica unica, non presente negli altri prodotti: l'unione di due dei paradigmi della virtualizzazione: system virtualization (container, VPS) e full virtualization hardware. Ecco qua il ProxMox Virtual Environment.
Proxmox VE è un progetto opensource austriaco portato avanti da Proxmox Server Solutions GmbH con il patrocinio della Internet foundation Austria (IPA).
Nuova tecnologia ? No, niente di nuovo. ProxMox VE si limita ad usare tecnologie già esistenti per "impacchettare" un prodotto relativamente semplice da gestire e pronto in pochi minuti. Si, non stò scherzando, in pochi minuti.
ProxMox VE usa due tecnologie diverse per proporre una ambiente che permette di "mischiare" le VM prodotte, e una comoda e leggera interfaccia web per gestire il tutto (o quasi). Facciamo una piccola panoramica sulle due tecnologie utilizzate:
OpenVZ è una tecnologia di virtualizzazione a livello di sistema operativo operata da un Kernel Linux modificato per lo scopo. Permette ad un server di isolare multiple istanze dello stesso sistema operativo (Linux); "istanze" conosciute come Containers, Virtual Private Servers (VPSs), o Virtual Environments (VEs). E' una tecnologia usatissima dai provider internet e deriva da Virtuozzo di SWSoft.
A differenza delle virtual machine prodotte da software tipo VMWare, e paravirtualizzazioni tipo quelle proposte da Xen, OpenVZ è limitato dal fatto che sia host che guest devono essere Linux (anche se si possono usare differenti distribuzioni). Il vantaggio di questa tecnologia è che abbiamo solo un decadimento (dichiarato) delle performance di un misero 1-3% rispetto ad una macchina fisica, e che risorse quali la RAM, ad esempio, vengono allocate dinamicamente e non impegnate allo "start" della VPS. Quindi un singolo server può, usando queste caratteristiche, "potenzialmente" ospitare un elevato numero di server virtuali. Se "esplorate" il sistema virtualizzato da OpenVZ vi accorgete che in pratica tutto stà in un sistema chrooted in /var/lib/vz/private/xxx dove "xxx" è il numero/nome della VPS.
Sviluppato da Qumranet, KVM è un modulo per il kernel di Linux entrato nella mainline dello stesso dalla versione 2.6.20 che, similmente a quanto fanno programmi come VMware, Bochs e Virtual PC, permette di creare una o più macchine virtuali in cui far girare versioni non modificate di Linux, Windows o Open/Free BSD. Ad ogni macchina virtuale vengono assegnate una serie di risorse hardware virtualizzate, quali scheda di rete, hard disk, scheda video ecc.
A differenza degli hypervisor esterni, che assumono il controllo della macchina e dividono le risorse tra i sistemi operativi guest, KVM è parte di Linux ed utilizza il suo stesso scheduler dei processi e lo stesso sistema di gestione della memoria. Ciò significa che KVM è molto più compatto e semplice da utilizzare. Interessante notare, ad esempio, che le macchine virtuali create con KVM sono normali processi gestibili attraverso comandi come top, kill e taskset.
Per usare la full virtualization di KVM bisogna disporre di un processore di recente generazione a 64 bit che supporti le estensioni Intel VT o AMD-V, come i Core Duo, Xeon, AMD64 Athlon X2 e Opteron. Nel mio caso ho usato un Intel Quad Core con 4GB di RAM, per poter stressare un po' il sistema e vedere come si comporta.
L'installazione è quasi una formalità: si scarica la ISO da circa 250MB, si crea un CD e lo si infila nella macchina di test.
E si, Proxmox VE non è un pacchetto da installare su una distro esistente, è un po' com VMWare ESX, un sistema completo, a tutti gli effetti una distribuzione Linux ottimizzata e parametrizzata per virtualizzare server.
La cosa interessante è che, a differenza del già citato VMWare ESX, Proxmox VE si basa su una "normale" Debian Etch 4.0 64Bit (con kernel opportunamente patchato ed ottimizzato allo scopo), con cui condivide anche i repository. Cosa significa questo ? Che oltre alla sicurezza di un sistema stabile e affidato come Debian, possiamo utilizzare qualsiasi hardware ufficialmente supportato dalla versione stable di Debian. E chi ha a che fare con i server sà quello che questo significa.
Anzi, aggiungerei anche qualcosina in più, dal momento che Proxmox "monta" il kernel 2.6.24 in sostituzione dell' "ufficiale" Debian Etch 2.6.18.
L'installazione è filata via liscia dopo aver risposto a qualche canonica domanda sul partizionamento del disco e sulla configurazione della scheda di rete. Tempo impiegato: circa 10 minuti.
A questo punto, dopo i canonici apt-get update e apt-get upgrade per allineare il software all'ultima versione disponibile, da un PC basta collegarsi con un normale browser al server usando https:, et voilà, siamo pronti ad installare e configurare le nostre Virtual Machine.
Attraverso l'interfaccia web (potete vedere degli screenshot sul wiki del progetto per farvi una idea) con pochi click del mouse si creano le VM di tipo container OpenVZ o full virtualization con KVM.
Nel mio caso la macchina di test aveva VMWare Server 1.0.6 e con la guida apposita o migrato le macchine esistenti. Windows 2008 server e le VPS Linux, invece, le ho installate da zero.
In totale ho buttato su:
L'installazione di un sistema Windows da zero è molto semplice: si carica la ISO di Windows (o si usa il CD di installazione) in /var/lib/vz/images/ISO e si avvia la VM: Proxmox VE dispone di una console VNC e attraverso questa si installa normalmente il tutto.
Ho avuto qualche problema con la migrazione di una macchina XP: ma seguando i consigli di Qumranet a riguardo ho risolto l'inghippo.
L'installazione di una VPS OpenVZ è invece una operazione di una banalità disarmante: attraverso l'interfaccia web abbiamo a disposizione una serie di VPS già pronte: basta scaricare il template dal sito del progetto e crearle: operazione che porta vià qualche secondo. Se non basta questo possiamo usare anche quelle "ufficiali" di Virtuozzo, papà di OpenVZ. Sono disponibili a questo indirizzo. Ce ne sono per tutti i gusti.
Se ne intravedono già, dalla possibilità di fare una backup dall'interfaccia utente (non ancora funzionante) alla gestione di "Cluster" di server. Questo non ho potuto testarlo, non ho una seconda macchina di test a disposizione, ma in buona sostanza permette di "unire" più server fisici in una unica entità, gestirli centralmente e migrare i server virtuali da uno all'altro.
La gestione della rete e delle interfacce viene fatta utilizzando, come succede per Xen, le utility standard di Linux, quali le brutils per gestire i bridge e i devices tap.
Premetto che non ho messo sotto carico le VM, e quindi le mie valutazioni lasciano il tempo che trovano. Ma nella stessa macchina prima c'era VMWare Server 1.0.6 e l' incremento di velocità e responsività che ho notato con le VM create con Proxmox VE è strabiliante: non c'e' proprio paragone, sembra quasi di essere su una macchina fisica.
Ad essere sinceri il confronto andrebbe fatto con Xen e ESX e con macchine "con carico", ma questo per ora non è nelle mie possibilità.
Naturalmente no, almeno non ancora. In fondo è ancora una beta, la roadmap la potete vedere sul wiki a questo indirizzo.
Ci sono vari problemi, a volte bisogna scendere dietro le quinte e sistemare le cose a colpi di shell, anche se devo dire che questo è divertente ed aiuta a capire meglio come funziona il tutto.
Manca la gestione del backup, la documentazione dei file .conf delle VM per poter gestire e passare parametri aggiuntivi a KVM (ad esempio collegare dispositivi USB, ora possibile solo dalla console di qemu), la gestione di più processori assegnati alle VM rende tutto traballante con bellissimi BSOD da parte di Windows. Ho avuto anche problemi per installare una Full VM Linux, costringendomi a lanciare a mano KVM e la console QEMU. Non ho nemmeno capito come e se bilanciare il traffico tra le VM create (con il nice di linux ?).
Ma son problemi di gioventù, tutto è molto promettente. Il team di sviluppo ha schedulato la 1.0 per fine estate, dichiarando che sarà utilizzabile in ambiente di produzione.
Ma a me un dubbio resta: KVM è pronto ? Avessero usato Xen al suo posto mi sarei sentito forse un pochino più tranquillo ;)
Qualcuno ha un IBM Bladecenter S da prestarmi ? Vorrei fare qualche test :D
Bye.
Recent comments
2 days 9 hours ago
6 weeks 3 days ago
10 weeks 1 day ago
11 weeks 2 days ago
13 weeks 1 day ago
14 weeks 5 days ago
14 weeks 5 days ago
14 weeks 5 days ago
14 weeks 5 days ago
14 weeks 5 days ago