Ciao !!! I Syahrulloh, in questo blog ho discuterà su VPS server e Linux.

Virt-Manager: primi passi

Una quindicina di anni fà quando si parlava di virtualizzazione mi ritrovavo sempre affascinato da questa tecnologia. Avere un computer dentro un altro computer era il massimo, seppur menomato dal poco potente hardware dell'epoca. Oggi la virtualizzazione è un poco come il VoIP nei grandi provider telefonici. Non ne parlano ma lo usano intensivamente nelle loro architetture. Stessa cosa per la virtualizzazione. Avete una VPS ? Un sito Web ? O nella vostra azienda avete per voi un desktop remoto sul quale potete sviluppare ? Al 90% state operando su una VM Guest.

I competitor e le tecnologie sono varie ma indicativamente possiamo suddividere le varie tecnologie in 3 parti:

Full Virtualization: si chiama così un ambiente hardware simulato di un PC in tutti i suoi componenti. Può accedere alle estensioni di virtualizzazione della CPU, se questa è abbastanza recente, velocizzando l'emulazione ed estendendone le caratteristiche. E' il modello seguito da VMware, Virtualbox, KVM/QEMU, Bochs. 

Pro
  • emulazione hardware totale
  • possibilità di installare da CD/DVD o ISO il sistema operativo diverso dall'Host
  • totale separazione dei processi da Guest ad Host
Contro
  • richiede maggior CPU e RAM rispetto agli altri sistemi di virtualizzazione
  • maggior overhead. In poche parole, essendo i processi totalmente separati, l'Host non ha modo di sapere quali operazioni il Guest chiede alla macchina principale, quindi le esegue senza una organizzazione a monte. Ad esempio se il Guest effettua un accesso ad un file sul disco contemporaneamente all'Host, entrambi ci accederanno indipendentemente, senza usare eventuali buffer e "rubando" tempo e cpu l'uno all'altro.
Paravirtualizzation:  in questo tipo di virtualizzazione, l'Host usa un kernel wrapper collegato all'Host. In pratica sia l'Host che il Guest devono avere delle patch per consentire al kernel di gestire le risorse sia del Guest che dell'Host, mantenendo una separazione dei processi più alta. Possiamo definirlo la via di mezzo tra la Full e il Container del prossimo paragrafo. Le tecnologie sono differenti ma in questa categoria possiamo annoverare Xen e Openvz.

Pro
  • minor overhead. Il kernel in questo modo riesce a ordinare le varie richieste fatte tra Host e Guest, risparmiando molti accessi RAM/CPU/Disco.
  • richieste hardware più basse. Ma non di tanto, in ogni caso è obbligatorio avere i 64bit e sono utili anche le estensioni hardware della CPU, ma non necessarie.
Contro
  • non è possibile installare da CD o iso. Solitamente questi sistemi o hanno delle immagini da usare o bisogna crearle ad hoc usando l'hypervisor necessario.
  • limitato al sistema ospite. In realtà vale per Openvz, gli unici sistemi consentiti sono altre distro linux sempre usando il kernel wrapper. Xen in teoria può far girare qualsiasi sistema a patto questo sia modificato per girare come Guest su Xen. Al momento conosco solo Solaris adatto a girare, non sò se anche qualche BSD ha questa feature.
  • non sono macchine virtuali complete. Nel senso che non essendo delle Full Virtualization hanno comunque un legame con l'Host seppur protetto. Certe cose possibili nelle Full non sono accessibili con questa tecnologia.
Container

E' la tecnologia più anziana ma ha avuto un notevole aggiornamento. Su linux è il vecchio chroot, ma su altri sistemi è chiamato zone ( Solaris ) e jail ( BSD ), anche qui con le loro differenze ( NotaDellaJena: le zone di Solaris le ritengo dei container visto non usa kernel propri, ma ha delle caratteristiche simili alla para virtualization, che non vado ad approfondire ). Nei container viene ricreata in una directory il fs del sistema, ma non il kernel. Il software penserà alla gestione del Guest ottenendo una separazione dei processi rispetto all'Host. Le jail di BSD e chroot sono i capostipiti, ma su linux ormai hanno preso il largo LXC e Docker.

Pro
  • probabilmente il sistema più efficiente. In termini di risorse occupano pochissimo, motivo percui vengono usate per isolare server di una certa importanza come il DNS, DHCP ecc. Aggiungiamo anche un basso overhead.
  • facilità di installazione. A differenza degli altri sistemi i tool di gestione dei container sono sempre inclusi in ogni distribuzione. Non necessita di patch nel kernel. 
Contro

  • i contro sono gli stessi della para virtualizzazione, possiamo concepire il sistema dei container come una paravirtualizzazione con meno strati software e probabilmente meno sicurezza. 

Questo riassunto è piuttosto generico, in molti casi alcuni software elencati "rompono" i confini sopra accennati, vedi Xen che può essere usato anche in modalità Full. Vedremo in seguito il perchè. In ogni caso è bene conoscere limiti e possibilità dei singoli software, un esempio riguarda Docker il sistema di container oggi sulla cresta dell'onda. A suo tempo non riuscii a settare un server ntpd in un container e difatti non ha senso perchè il container prende l'orologio dell'Host. Ma se vi serve tirare su un server del genere è meglio per voi conoscere gli eventuali limiti del software che state scegliendo.

Torniamo a Virtual Manager

Ecco Virtual Manager, da ora in poi vmgr, è un frontend per una libreria fantastica chiamata libvirt, un progetto che ha come unico scopo poter uniformare tool e comandi per gestire vari sistemi di virtualizzazione, differenti tra loro ed appartenenti a tutte e tre le categorie sopra elencate ( NotaDellaJena: capito il perchè del pippotto ? ).

Questo sistema permette l'uso di shell, comandi, management ed altro usando solo un set di istruzioni e non TUTTE le istruzioni dei vari programmi, un bel passo in avanti. In realtà libvirt e vmgr permettono anche tante altre belle cose, ma andiamo con ordine.

Sono 3 i sistemi di virtualizzazione usati:

  1. Qemu/KVM - Full
  2. Xen - Para
  3. LXC - Container
Una cosa su Xen. Nato come sistema di para virtualizzazione, ha esteso nel tempo le sue caratteristiche, tra le quali incorporare KVM per permettere di usare una Full Virtualizzazion usando comunque gli strumenti di Xen per gestirla. Ciò apre una ibridizzazione interessante, nel quale si possono avere i vantaggi di entrambi i sistemi nello stesso Host. Per contro quando si usa Xen il sistema Host deve necessariamente usare il kernel patchato con Xen e tale obbligo include la gestione di Xen con libvirt e vmgr.

Anche qui è necessaria una analisi di cosa si deve emulare e quale tecnologia è vincente per questo caso. In questa sessione di post effettuerò delle prove con vmgr ed Xen con Hypervisor, vista la sua duplice natura.

Nel prossimo post proverò a descrivere la sua installazione su un server usando come distribuzione Opensuse, ma le spiegazioni saranno adatte anche su altri sistemi.

Nel frattempo buona virtualizzazione!



arulajeh.id Situs Berita Terbaru Dan Terbaik