www.errorediridondanzaciclicodotcom

  • Home
  • virt01
  • BACK P.P.

  • LA VIRTUALIZZAZIONE, ADESSO O POI?

    La parola virtualizzazione è forse tra quelle più clikkate negli ultimi anni per curiosità, per capire cos'è e come si implementa o solo per trovare una giustificazione inconscia per evitarla.
    Senza fare concorrenza all'accademia della crusca, virtualizzare può significare semplicemente non utilizzare niente di fisico ma solo programmi per fare muovere dei dati che abitualmente risiedono e circolano su supporti fisici. Il significato più immediato di virtuale = non reale è quello di più facile comprensione, infatti se guardiamo a qualcosa di virtuale vediamo ciò che sembra reale ma in realtà è un'immagine di qualcosa.

    Qui vorrei spiegare la virtualizzazione dei sistemi operativi, anzi degli stessi computer. Si tratta di avere un vero computer che gira comunque su qualcosa di fisico ma non suo, preso in prestito. E' come se si prendessero tutti i supporti fisici di un computer (su cui gira comunque un SO) ed utilizzarne una parte per darli ad un altro SO.
    Dopo quest'ultima frase si può già capire quanto deve essere breve questo ponte tra fisico e virtuale per non sprecare potenzialità.

    Ci sono due tipi di "virtualizzatori" quelli che si installano su un SO di base, come Virtualbox, e quelli che fungono essi stessi da SO, come VMWare (si può pronunciare "viemuear" o "viemmeuare" ma mai "viemmeuear"!), in particolare ESXi. Ho preso questi due esempi perchè li conosco e perchè sono gratis. Esistono poi altri sistemi, soprattutto a pagamento e/o che non conosco.
    Bisogna sottolineare che la virtualizzazione è cresciuta ultimamente per ragioni commerciali ma in realtà molti anni prima IBM aveva già creato i suoi mainframe con lo scopo di condividere l'hardware con gli utenti. Dopo sono nati invece i Personal Computer, proprio con lo scopo di staccarsi dalla centralizzazione e distribuire risorse HW ai singoli. Ora invece, grazie all'aumento di potenza dei server (intesi così anche i pc di casa che hanno questa funzione) e ad esigenze di risparmio energetico, la distribuzione virtualizzata di risorse da un'unità centrale è tornata in auge.

    La prima specie di virtualizzazione, con Virtualbox, prevede di installare su un sistema operativo, sia dos che unix, un programma che fungerà da contenitore di macchine virtuali. Anche se verrà lanciato da solo, il fatto che giri insieme ad un altro sistema operativo completo può causare rallentamenti e diminuzione di risorse condivisibili dalle VM. Qualche hanno fa ho preso un desktop senza SO e ci ho messo Ubuntuserver per avere un SO leggero. Per visualizzare le VM da VBox però è necessaria un'interfaccia grafica e quindi ho installato LXDE una GUI tra le più leggere.
    Poi su VBox ho messo un paio di linux completi, un test di server+client basato su Edubuntu per provare i thin-client, ed una copia di Windows 7 retail in mio possesso.
    Ho utilizzato questo sistema per almeno tre anni senza niente di tragico a parte un aggiornamento di Vbox che mi ha incasinato il filesystem e mi presentava continui warning. Alla fine ho reinstallato VBox (e le VM's) e tutto è ritornato come prima.

    Un anno fa, sullo stesso desktop, ho invece voluto provare VMWare Esxi 6.0. Nelle pagine successive parlerò dell'installazione, la configurazione e l'utilizzo di VMWare (IMHO). Qui invece vorrei sottolineare la differenza rispetto a VBox: Esxi è un vero SO basato su kernel linux e ridotto all'osso per permettere solo di far girare le VM, tramite l'Hypervisor. E' bene spiegare, molto semplicisticamente, cos'è quest'ultimo. Una traduzione ufficiosa (ufficiale non l'ho trovata) è "sovraintendente", cioè colui che sovraintende alla gestione delle VM. Infatti con ESXi abbiamo vSphere, l'hypervisor che permette all'utente di spiegare, gestire, clonare, etc. le VM (oltre a gestire anche la parte hardware come i Datastore vari).

    Questi per me sono stati solo oggetti di studio (Esxi è installato in azienda dove lavoro e una sua conoscenza approfondita non può che aiutarmi) e non ho approfondito la differenza di prestazioni tra i due. Ritorno invece al motivo per cui si sceglie la virtualizzazione. Il concetto attualmente più sentito è quello dell'ottimizzazione delle risorse. Se prendete i pc che vengono venduti oggi sono tutti almeno dualcore con 500giga di HDD. Pensate ad un pc in azienda su cui gira un applicativo gestionale di pochi kb e non archivia niente se non sul server. Ovviamente il SO sarà windows10 e il consumo sarà di circa 160watt. Pensate a 10 o 20 di questi pc utilizzati al 20%. La virtualizzazione permette di avere questi 20 pc su un unico server, che usano potenza e spazio in base alla reale necessità in ogni "preciso" istante. Mettiamo di avere 20 pc dual core (40 core) ognuno con 500 GB di spazio (utilizzati 100 GB ciascuno) cioè 10 TB ma utilizzati 2 TB. Virtualizziamo ora su un server (es. 32 core con 10 TB). Le 20 VM utilizzeranno solo una parte molto piccola dei core (sopratutto con ESXi che ottimizza in maniera eccellente la distribuzione delle risorse) sia per il fatto che ogni pc era sfruttato al 20% della capacità massima e sia perchè in un istante non tutti i pc sono in azione (ad esempio sono in IDLE). Per quanto riguarda lo spazio, oltre ai SO che occupano lo stesso il proprio spazio sul server, ci saranno i rispettivi archivi che verranno dinamicamente dimensionati in base al solo utilizzo. Tutto ciò senza rallentamenti (percepibili) e con la possibilità di emulare anche le porte fisiche.

    Un altro aspetto positivo della virtualizzazione è la possibilità di creare immagini di un'intera VM in maniera semplice. Utilizzando poi sistemi come Veeam Backup (basato però su API incluse solo nella versione a pagamento di ESXi) si possono fare copie zippate velocissime. Per chi utilizza versioni free o Vbox, si tratta solo di lanciare delle copie dell'intera cartella dove risiedono le VM. Il ripristino è immediato (se sullo stesso HDD per VBox e Windows!) e si tratta solo di incollare la VM copiata. Collegato a questo concetto c'è anche il fatto di potere muovere, più o meno a piacimento, le VM tra i differenti supporti di archiviazione del server (pensate agli storage condivisi su rete). La controparte di tutto ciò è il costo del server che per poter ospitare più VM deve essere adeguato. Tuttavia in un ottica a lunga scadenza i costi sono inferiori perchè non ci sarà più la necessità di cambiare i pc (per usura od obsolescenza) ma solo il server.

    Quanto detto vale sicuramente per le aziende ma i privati, le famiglie? Se la famiglia è composta da più "smanettoni" lo scopo è quello di avere un server (recente) potente e le utenze (dei computer anche vecchi) che scelgono a piacimento quale macchina usare. Bisogna però sottolineare che per accedere ad una VM windows, questo deve essere la versione PRO che in genere è molto più costosa. C'è poi il vantaggio delle copie delle VM e la minore pericolosità di virus che infettano la singola VM rispetto al singolo pc in rete. Infine, e vale per tutti i tipi di utenti privati (anche il singolo), con la virtualizzazione si possono provare più sistemi operativi differenti open-source e non preoccuparsi più di tanto di problemi di crash perchè si ripristina il tutto in pochi minuti.

    Per ultimo si deve considerare un altro vantaggio che offre la virtualizzazione: capita a volte di avere programmi che girano solo su vecchi SO, mi riferisco ad XP. Neanche la possibilità che offre windows di scegliere di installare il software emulando le precedenti versioni può funzionare. Recuperando una versione old di XP ed installandola sul Virtualizzatore riusciamo ad ovviare al problema. A volte però non funziona neanche così, è il caso di dover installare driver esterni non più aggiornati che non riescono a girare su porte virtuali connesse alla VM.

    Nella pagina seguente la mia esperienza con ESxi.