Mag 042012
 

Ammetto di essere un accanito sostenitore di VMWARE.

Da anni ho l’occasione di utilizzare in ambito aziendale soluzioni basate su ESXi4.x e 5.x e di apprezzarne la flessibilità e la robustezza.

Il fatto che tali prodotti siano anche offerti con un licensing gratuito (e senza grosse limitazioni funzionali) li rende ancora più attraenti.

Ma non è nel mio carattere fossilizzarmi su un’unica (seppur buona) soluzione.

L’occasione per scatenare la mia voglia di sperimentare qualche alternativa è giunta quasi un anno fa quando una piccola fumata grigia ha posto fine alla travagliata esistenza del mio server domestico.

Dovendo procedere con ristrutturazione forzata del network casalingo ho deciso di impegnare un budget non superiore ai 200 euro.

Impresa non facile visto che le esigenze, cresciute con gli anni insieme alla famiglia ed ai bimbi che hanno bisogno di un accesso “sicuro” ad internet, erano degne del CED di una piccola/media azienda:

  • rete sezionata in 3 sottoreti: WAN, DMZ, e LAN
  • firewall appliance con proxy sicuro (filtro dei contenuti/antivirus)
  • 2 server LINUX in DMZ per la parte web ed altre cosette
  • centralino VOIP in DMZ
  • server di storage in LAN  per condivisioni varie
  • possibilità di installare nuovi server e desk al volo per test.

Il budget è stato interamente dedicato all’acquisto di una mainboard con processore dual-core  64 bit e 8 GB di ram. Il tutto è stato assemblato in un case di recupero insieme ad un disco da 2TB tolto da un unità USB distrutta e 3 schede di rete dalla cassetta dei ferri vecchi….

Provare ad installare VMWARE su un accrocchio del genere sarebbe stato tempo perso!

Per far girare windows (quando serve…)  sulla mia workstation Ubuntu, ho da tempo sostituito VMWARE  con KVM/QEMU e, alla luce di questa positiva esperienza,  ho voluto provare a cimentarmi con un’ installazione server decisamente più impegnativa, ma potenzialmente risolutiva per il mio problema domestico.

Per l’ hypervisor la scelta è caduta sul mondo RHEL con l’ultima 6.x, in particolare con la compatibilissima nonchè gratuita CentOS.

Il setup del sistema via rete è stata molto veloce in quanto ho limitato il numero di pacchetti al minimo indispensabile.

Tutta la gestione della virtualizzazione KVM/QEMU e stata installata semplicemente utilizzando il gestore di pacchetti della distro (YUM).

Impostate le chiavi SSH ed eseguite le configurazioni minime di sistema ho iniziato a cimentarmi con il setup della prima macchina virtuale.

Ho deciso di indulgere nella pigrizia ed utilizzare per le configurazioni il tool grafico virt-manager.

Connessione remota tramite SSH dal mio desktop del lavoro

Ho approfittato per studiare un po’ quello che il tool mette a disposizione scoprendo con piacere di essere in grado di ritrovare senza fatica molte delle configurazioni con cui lavoro ogni giorno utilizzando VMWARE.

Virt-manager consente di agire direttamente sulle configurazione principali dell’ambiente di virtualizzazione, come i pool di storage ed il networking.

Per la creazione della VM si può usare un semplicissimo wizard.

Il primo problema è sorto cercando di configurare il networking della VM.

Di default per le VM è definita solo una sottorete virtuale con NAT verso l’esterno, configurazione sufficiente per un utilizzo locale, ma assolutamente insufficiente per le mie necessità.

Volendo crearne altre,  quelle puramente virtuali (la DMZ nel mio caso) possono essere gestite e piacimento.

Per le reti fisiche (analogamente ai virtual-switch di Vmware) è necessario creare  dei bridge a livello di sistema che poi possono essere scelti dal tool di configurazione per il networking delle VM.

A me servivano 2 bridge da collegare a 2 schede ethernet per LAN e WAN.

(aggiornamento: con le versioni più recenti si possono configurare anche i bridge dalla GUI di virt-manager. Non è più necessario agire manualmente sul sistema)

Gestione delle interfacce di rete

Sono poi ritornato al più agevole virt-manager per configurare lo storage.  E possibile con esso aggiungere storage esterni ISCSI, NFS, LVM,  dispositivi a blocchi ed altri, ma io avendo 2TB disponibili in locale ho creato un semplice pool in una cartella sul mio filesystem.

Ho caricato l’ISO di installazione dell’appliance firewall ENDIAN nello storage pool e sono partito col wizard assegnando l’ISO al CD della macchina virtuale. E’ bastato rispondere alle domande per dimensionare la VM (memoria, disco) e scegliere l’harware virtualizzato (le 3 interfacce di rete) per accedere alla console grafica di installazione.

L’installazione stessa è giunta a temine senza inconvenienti ed in pochissimo tempo l’appliance era in funzione.

Ho proseguiro con il server web resuscitando il precedente CentOS 5 da un’immagine del disco fisso (fortunatamente sopravvissuto all’incidente precedente). E’ bastata  una sistematina ai parametri e la macchina era online.

Ho aggiungo un server UBUNTU per la conversione online degli ebook (calibre su CentOS è un disastro…)

definizione dei parametri della VM

Ho concluso rapidamente le altre installazioni ed in poco tempo tutto era in funzione.

UBUNTU in esecuzione vista remotamente attraverso virt-manager

Le prime impressioni

L’installazione è stata estremamente semplice. L’unica parte un po’ complessa non gestita direttamente dagli strumenti di sistema è stata la creazione dei bridge. (non più necessaria con le versioni più recenti)

Memore di passate esperienze  con il mitico XEN , questa facilità di configurazione/gestione è stata una piacevole sorpresa.

Il sistema ha funzionato per quasi un anno senza manifestare il minimo inconveniente.

Oltre ad essere solido come una roccia, nonostante l’utilizzo di un hardware scadente, è molto performante.

L’interfaccia grafica permette di fare moltissime cose.

Per esempio è possibile allocare dinamicamente la memoria  (balloning) ed il numero di CPU virtuali per le VM anche durante l’esecuzione. Se non erro questa opzione è disponibile su Vmware solo per le versioni a pagamento.

Il tool grafico di gestione gira sotto qualsiasi distro LINUX,  mentre il client Vsphere di Vmware può essere eseguito solo in sistemi Windows di elevate prestazioni.

Nel complesso virt-manager ha a disposizione meno opzioni del client Vsphere, ma lo trovo del tutto adeguato ad un utilizzo normale.

Cosa molto importante: si possono effettuare connessioni remote attraverso internet (SSH) a diversi sistemi di virtualizzazione.  Nello screenshot precedente è mostrata una connessione aperta attraverso internet dalla mia postazione di lavoro Ubuntu  al server KVM CentOS di casa.  Sono elencate, sia le VM locali Windows 7 e Windows 8  (gira anche quello!), che tutte le VM remote.

E’possibile persino “clonare” la VM (non in esecuzione) direttamente dall’interfaccia grafica (nelle prossime puntate vedremo come farlo a caldo).

Tutti i parametri di funzionamento (memoria, CPU) sia globali che per singola VM sono disponibili con pochi click.

Tutto ciò che manca nell’interfaccia grafica  (p. es snapshot/backup) può essere gestito sfruttando i potenti comandi di sistema, ma sarà oggetto della prossima puntata.

 

Aggiornamenti:

La configurazione indicata nell’articolo risale a più di 2 anni fa il che corrisponde ad un era geologica nel campo dell’informatica.

Nel frattempo ho avuto modo di approfondire parecchi aspetti relativi all’argomento.

Per una corretta gestione del filesystem con volumi LVM leggi qui

Per un buon sistema di backup con snapshot (ed eventuale clonazione) a caldo leggi qui.

Gestione delle VLAN leggi qui.

Problemi con policy di SWAP troppo “intraprendenti” leggi qui.

  2 Risposte a “NonSoloVmware: giocando con KVM/QEMU”

  1. […] Nella precedente installazione mi ero affidato ad immagini su file. Il sistema ha funzionato per 2 anni senza il minimo problema, ma ora voglio portare le immagini su volumi logici per effettuare sperimentazioni avanzate. Si può fare?. […]

  2. […] le istruzioni di Fabrizio ho configurato il Linux casalingo di frontiera con KVM e una VM su cui gira la versione 2.1 di […]

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)