La vir­tua­liz­za­zio­ne di hardware, software, spazio di ar­chi­via­zio­ne o com­po­nen­ti di rete ga­ran­ti­sce un’astra­zio­ne delle risorse IT fisiche, in modo da ottenere un migliore utilizzo.

Che cos’è la vir­tua­liz­za­zio­ne?

La vir­tua­liz­za­zio­ne consiste in un’astra­zio­ne dalle risorse fisiche dell’IT con lo scopo di di­stri­buir­le in modo fles­si­bi­le e in base alle necessità. In questo modo ci si assicura un migliore utilizzo delle risorse. Si possono astrarre sia i com­po­nen­ti hardware che quelli software. Una com­po­nen­te IT creata con la vir­tua­liz­za­zio­ne si indica come com­po­nen­te virtuale o logica e può essere uti­liz­za­ta esat­ta­men­te come il suo cor­ri­spet­ti­vo fisico.

Uno dei vantaggi prin­ci­pa­li della vir­tua­liz­za­zio­ne è il livello di astra­zio­ne tra le risorse fisiche e la rap­pre­sen­ta­zio­ne virtuale, alla base di diversi servizi cloud che ac­qui­si­sco­no una sempre maggiore im­por­tan­za nella quo­ti­dia­ni­tà aziendale. Il concetto di vir­tua­liz­za­zio­ne deve in­nan­zi­tut­to essere separato da quelli (a volte molto simili) di si­mu­la­zio­ne ed emu­la­zio­ne.

Vir­tua­liz­za­zio­ne: né si­mu­la­zio­ne né emu­la­zio­ne

Chi si occupa di vir­tua­liz­za­zio­ne s’imbatterà ine­vi­ta­bil­men­te nei concetti di si­mu­la­zio­ne ed emu­la­zio­ne, che spesso vengono uti­liz­za­ti come sinonimi, ma che si dif­fe­ren­zia­no l’uno dall’altro, nonché dal concetto di vir­tua­liz­za­zio­ne.

  • Si­mu­la­zio­ne: con si­mu­la­zio­ne si indica la completa ri­pro­du­zio­ne di un sistema per mezzo di un software. In questo caso, la “com­ple­tez­za” sta a si­gni­fi­ca­re che non soltanto sono imitate le funzioni nell’in­te­ra­zio­ne con altri sistemi, ma anche tutte le com­po­nen­ti del sistema e la loro logica. I si­mu­la­to­ri sono uti­liz­za­ti per compilare, con finalità di analisi, programmi che sono stati svi­lup­pa­ti per un par­ti­co­la­re sistema su un altro sistema.
  • Emu­la­zio­ne: mentre la si­mu­la­zio­ne mira a ri­pro­dur­re sistemi, l’emu­la­zio­ne presenta le funzioni delle com­po­nen­ti hardware o software ma non la logica a loro in­trin­se­ca. Il fine dell’emu­la­zio­ne è infatti di ottenere con il sistema ri­pro­dot­to gli stessi risultati ottenuti dal cor­ri­spet­ti­vo reale. A dif­fe­ren­za del si­mu­la­to­re, l’emulatore può perciò so­sti­tui­re com­ple­ta­men­te i sistemi che riproduce.

I si­mu­la­to­ri e gli emulatori tornano utili in tre scenari:

  • Per la ri­pro­du­zio­ne di un ambiente hardware in modo da poter eseguire un sistema operativo che era stato in realtà svi­lup­pa­to per altre piat­ta­for­me di pro­ces­so­ri.
  • Per la ri­pro­du­zio­ne di un sistema operativo per eseguire ap­pli­ca­zio­ni che sono state pro­get­ta­te per altri sistemi.
  • Quando occorre ri­pro­dur­re un ambiente hardware per un software divenuto obsoleto, le cui com­po­nen­ti originali non sono più di­spo­ni­bi­li.

Oltre a quella tra si­mu­la­to­ri ed emulatori, occorre fare un’ulteriore di­stin­zio­ne per le soluzioni software che for­ni­sco­no sem­pli­ce­men­te un livello di com­pa­ti­bi­li­tà per superare le in­com­pa­ti­bi­li­tà tra diverse com­po­nen­ti hardware e software. In questo caso viene ri­pro­dot­to non l’intero sistema, ma soltanto una parte di un sistema, per esempio un’in­ter­fac­cia. Tra gli esempi noti rientrano Wine (un acronimo ricorsivo per Wine Is Not an Emulator) e Cygwin.

Come funziona la vir­tua­liz­za­zio­ne?

La vir­tua­liz­za­zio­ne as­so­mi­glia ai concetti di si­mu­la­zio­ne ed emu­la­zio­ne, anche se serve a un altro scopo. I si­mu­la­to­ri e gli emulatori im­ple­men­ta­no un modello di un sistema in­for­ma­ti­co rea­liz­za­to mediante software che serve a colmare le in­com­pa­ti­bi­li­tà. Nel migliore dei casi, la vir­tua­liz­za­zio­ne dovrebbe essere concepita in modo da dover essere simulata o emulata il meno possibile. Al suo posto le tec­no­lo­gie di vir­tua­liz­za­zio­ne do­vreb­be­ro stabilire soltanto un grado di astra­zio­ne che consenta di fornire risorse IT in­di­pen­den­te­men­te dalla loro base fisica.

Per fare un esempio: a scopo di test vengono eseguite sul proprio computer Windows 10 una o più versioni virtuali di Windows 10; viene anche usato un software di vir­tua­liz­za­zio­ne. Se, invece, si volesse avviare sullo stesso computer due versioni virtuali di Ubuntu, ser­vi­reb­be un software di vir­tua­liz­za­zio­ne capace di colmare le in­com­pa­ti­bi­li­tà tra il sistema Windows su cui si opera e il sistema Linux che si deve eseguire at­tra­ver­so l’emu­la­zio­ne.

Numerose soluzioni software uti­liz­za­te nell’ambito della vir­tua­liz­za­zio­ne con­ten­go­no emulatori e nella pratica i due concetti spesso si so­vrap­pon­go­no.

Le diverse forme di vir­tua­liz­za­zio­ne

Nel moderno panorama IT esistono diverse forme di vir­tua­liz­za­zio­ne che si ri­fe­ri­sco­no all’astra­zio­ne di risorse IT: software, spazio di ar­chi­via­zio­ne, dati o com­po­nen­ti di rete. In generale si distingue tra:

  • Vir­tua­liz­za­zio­ne dell’hardware
  • Vir­tua­liz­za­zio­ne del software
  • Vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne
  • Vir­tua­liz­za­zio­ne dei dati
  • Vir­tua­liz­za­zio­ne delle reti

Vir­tua­liz­za­zio­ne dell’hardware

Il concetto di vir­tua­liz­za­zio­ne dell’hardware si riferisce a tec­no­lo­gie che per­met­to­no di fornire com­po­nen­ti hardware at­tra­ver­so software in­di­pen­den­te­men­te dalla loro base fisica. Il primo esempio di vir­tua­liz­za­zio­ne dell’hardware è la macchina virtuale (co­no­sciu­ta con l’ab­bre­via­zio­ne VM).

Una VM è un computer virtuale che si comporta con l’utente finale allo stesso modo di un computer fisico dotato di hardware e sistema operativo. Il livello di astra­zio­ne tra la base fisica e il sistema virtuale in una vir­tua­liz­za­zio­ne hardware vengono generati da diversi tipi di hy­per­vi­sor.

N.B.

Un hy­per­vi­sor (chiamato anche Virtual Machine Monitor, VMM) è un software che consente il fun­zio­na­men­to di più sistemi guest su un unico host.

Gli hy­per­vi­sor ge­sti­sco­no le risorse hardware messe a di­spo­si­zio­ne dal sistema host, come CPU, RAM, spazio di ar­chi­via­zio­ne e pe­ri­fe­ri­che, e le con­di­vi­do­no con un numero qualsiasi di sistemi guest. A livello tecnico ciò può avvenire con una vir­tua­liz­za­zio­ne completa o una pa­ra­vir­tua­liz­za­zio­ne.

  • Vir­tua­liz­za­zio­ne completa: con la vir­tua­liz­za­zio­ne completa l’hy­per­vi­sor di ciascuna macchina virtuale riproduce un ambiente hardware completo. In questo modo ogni VM dispone di un proprio con­tin­gen­te di risorse hardware fornito dall’hy­per­vi­sor e può eseguirvi ap­pli­ca­zio­ni. Invece, l’hardware fisico del sistema host rimane nascosto al sistema operativo guest. Questo approccio consente il fun­zio­na­men­to di sistemi guest non mo­di­fi­ca­ti. Le soluzioni software più popolari per la vir­tua­liz­za­zio­ne completa sono Oracle VM Vir­tual­Box, Parallels Work­sta­tion, VMware Work­sta­tion, Microsoft Hyper-V e Microsoft Virtual Server.
  • Pa­ra­vir­tua­liz­za­zio­ne: mentre con la vir­tua­liz­za­zio­ne completa viene fornito un ambiente hardware virtuale per ogni VM, per la pa­ra­vir­tua­liz­za­zio­ne l’hy­per­vi­sor mette a di­spo­si­zio­ne soltanto un’in­ter­fac­cia di pro­gram­ma­zio­ne (API) che consente ai sistemi operativi guest di accedere all’hardware fisico del sistema host. La pa­ra­vir­tua­liz­za­zio­ne offre quindi un vantaggio in termini di pre­sta­zio­ni rispetto alla vir­tua­liz­za­zio­ne completa. Tuttavia, il pre­re­qui­si­to è che il kernel del sistema operativo guest sia stato pro­get­ta­to per le API. Ciò significa che solo i sistemi guest mo­di­fi­ca­ti possono essere pa­ra­vir­tua­liz­za­ti. Ciò richiede, tuttavia, che il kernel del sistema operativo guest venga portato all’API, in modo che soltanto i sistemi guest mo­di­fi­ca­ti possano essere pa­ra­vir­tua­liz­za­ti.

Per gli utenti finali una macchina virtuale non presenta dif­fe­ren­ze rispetto a un computer fisico. La vir­tua­liz­za­zio­ne hardware riguarda perciò la pos­si­bi­li­tà di scegliere una varietà di server virtuali per diversi utenti sulla base di una potente piat­ta­for­ma di ela­bo­ra­zio­ne: la base del popolare modello di hosting condiviso.

N.B.

Con l’hosting condiviso un provider di hosting gestisce e si occupa delle ma­nu­ten­zio­ni della macchina fisica in un data center ot­ti­miz­za­to fornendo ai suoi clienti risorse hardware vir­tua­liz­za­te come sistemi guest chiusi.

Un ulteriore campo di ap­pli­ca­zio­ne della vir­tua­liz­za­zio­ne hardware è il con­so­li­da­men­to dei server in ambito aziendale. Ciò comporta es­sen­zial­men­te tre vantaggi:

  • Un miglior utilizzo del server
  • Una di­stri­bu­zio­ne efficace dei supporti di me­mo­riz­za­zio­ne
  • Un minor consumo di energia per fun­zio­na­men­to e raf­fred­da­men­to

La vir­tua­liz­za­zio­ne dell’hardware è un concetto di vir­tua­liz­za­zio­ne re­la­ti­va­men­te sicuro. Ogni sistema guest è eseguito iso­la­ta­men­te in un ambiente hardware virtuale. Se uno dei sistemi guest viene attaccato da hacker o dan­neg­gia­to da un malware nelle sue funzioni, ciò di solito non ha alcun effetto sugli altri sistemi guest sullo stesso sistema host.

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne dell’hardware:

Vantaggi Svantaggi
Nell’ambito del con­so­li­da­men­to dei server è possibile allocare le risorse hardware in modo dinamico e uti­liz­zar­le in modo più ef­fi­cien­te. La ri­pro­du­zio­ne di un ambiente hardware, sistema operativo incluso, porta a un overhead.
L’hardware con­so­li­da­to è più ef­fi­cien­te dal punto di vista ener­ge­ti­co rispetto ai computer separati. La per­for­man­ce di una macchina virtuale può essere in­fluen­za­ta da altre VM sullo stesso sistema host.
Con l’iso­la­men­to del carico di lavoro le macchine virtuali offrono un livello di iso­la­men­to e di sicurezza re­la­ti­va­men­te alto.

Vir­tua­liz­za­zio­ne del software

Se anziché com­po­nen­ti hardware vengono vir­tua­liz­za­te com­po­nen­ti software, si parla di vir­tua­liz­za­zio­ne del software. Gli approcci comuni a questo concetto di vir­tua­liz­za­zio­ne sono:

  • Vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni
  • Vir­tua­liz­za­zio­ne del desktop
  • Vir­tua­liz­za­zio­ne del sistema operativo

Vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni

Con vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni (in inglese ap­pli­ca­tion vir­tua­li­za­tion) si intende l’astra­zio­ne di singole ap­pli­ca­zio­ni dal sistema operativo sot­to­stan­te. I sistemi di vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni con­sen­to­no di eseguire programmi in ambienti di runtime isolati e di di­stri­buir­li su più sistemi senza ri­chie­de­re modifiche ai sistemi operativi locali, ai file system o al ri­spet­ti­vo registry.

La vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni è par­ti­co­lar­men­te adatta per l’im­ple­men­ta­zio­ne locale, ad esempio per pro­teg­ge­re il sistema operativo sot­to­stan­te da possibili codici maligni. In al­ter­na­ti­va, le ap­pli­ca­zio­ni vir­tua­liz­za­te possono essere fornite su un solo server per diversi client nella rete. In questo caso gli utenti finali accedono ad ap­pli­ca­zio­ni vir­tua­liz­za­te at­tra­ver­so lo streaming delle ap­pli­ca­zio­ni.

L’in­cap­su­la­men­to delle ap­pli­ca­zio­ni, incluso l’ambiente di runtime, consente inoltre di copiare ed eseguire i programmi su supporti di ar­chi­via­zio­ne portatili come chiavette USB.

Lo scopo della vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni è di dis­so­cia­re i programmi dal sistema operativo sot­to­stan­te, in modo da poterli adattare e gestire cen­tral­men­te. In un contesto aziendale questo concetto si utilizza ad esempio per fornire le ap­pli­ca­zio­ni di Office.

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni:

Vantaggi Svantaggi
Il software dell’ap­pli­ca­zio­ne può essere fornito e gestito cen­tral­men­te. Le ap­pli­ca­zio­ni che sono stret­ta­men­te integrate con il sistema operativo o che ne­ces­si­ta­no l’accesso a par­ti­co­la­ri di­spo­si­ti­vi non si possono vir­tua­liz­za­re.
At­tra­ver­so l’iso­la­men­to dell’ap­pli­ca­zio­ne il sistema sot­to­stan­te è protetto da codici maligni. La vir­tua­liz­za­zio­ne delle ap­pli­ca­zio­ni pone domande riguardo alle licenze.
Il software può essere rimosso dal sistema senza lasciare residui.

La vir­tua­liz­za­zio­ne del desktop

La vir­tua­liz­za­zio­ne del desktop indica un concetto per il quale gli ambienti desktop vengono forniti cen­tral­men­te e possono essere uti­liz­za­ti at­tra­ver­so una rete. Questo approccio trova ap­pli­ca­zio­ne in primo luogo in contesti aziendali.

La vir­tua­liz­za­zio­ne del desktop si basa su una struttura client-server. Lo scambio di dati tra il server e il client avviene at­tra­ver­so i co­sid­det­ti pro­to­col­li remote display. A seconda di dove venga uti­liz­za­ta la potenza di calcolo per fornire un desktop virtuale, viene fatta una di­stin­zio­ne tra approcci basati su host e client.

  • Vir­tua­liz­za­zio­ne desktop basata sull’host: per vir­tua­liz­za­zio­ne desktop basata sull’host si intendono tutti gli approcci nei quali i desktop virtuali vengono eseguiti di­ret­ta­men­te sul server. In questo caso la potenza di calcolo totale per fornire l’ambiente desktop e per il fun­zio­na­men­to delle ap­pli­ca­zio­ni viene messa a di­spo­si­zio­ne dall’hardware del server. Gli utenti accedono al desktop virtuale basato sull’host con un numero di di­spo­si­ti­vi client a piacere at­tra­ver­so la rete. La vir­tua­liz­za­zio­ne desktop basata sull’host può essere im­ple­men­ta­ta uti­liz­zan­do le seguenti modalità:

    • Macchina virtuale basata sull’host: con questo approccio alla vir­tua­liz­za­zio­ne ogni utente si connette a un di­spo­si­ti­vo client con una propria macchina virtuale sul server. Si distingue tra una vir­tua­liz­za­zio­ne desktop per­si­sten­te, nella quale un utente si connette alla stessa VM in ogni sessione e una non per­si­sten­te, in cui le macchine virtuali vengono assegnate ca­sual­men­te.
    • Terminal service: quando il client viene uti­liz­za­to solo come di­spo­si­ti­vo di vi­sua­liz­za­zio­ne per ambienti desktop ospitati cen­tral­men­te, si parla di terminal services o di vir­tua­liz­za­zio­ne della pre­sen­ta­zio­ne, che vengono messi a di­spo­si­zio­ne da un co­sid­det­to terminal server.
    • Blade server: con l’aiuto di un blade server l’utente finale può accedere da remoto a macchine fisiche separate. Si tratta di un server modulare o di un al­log­gia­men­to del server che contiene diversi computer a scheda singola, i co­sid­det­ti blades (in italiano: fogli).
  • Vir­tua­liz­za­zio­ne del desktop basata sul client: se la vir­tua­liz­za­zio­ne del desktop avviene basandosi sul client, le risorse per il fun­zio­na­men­to dell’ambiente desktop devono essere fornite dal relativo di­spo­si­ti­vo client.

  • Macchine virtuali basate sul client: con questa modalità di vir­tua­liz­za­zio­ne l’ambiente desktop della macchina virtuale viene eseguito sul di­spo­si­ti­vo client. Nor­mal­men­te viene uti­liz­za­to un hy­per­vi­sor.

  • Streaming del sistema operativo: con lo streaming del sistema operativo (OS streaming), il sistema operativo dell’ambiente desktop viene eseguito sull’hardware locale. Solamente il processo di avvio viene eseguito da remoto tramite un’immagine sul server.

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne del desktop:

Vantaggi Svantaggi
Consente una gestione cen­tra­liz­za­ta dell’ambiente desktop. La vir­tua­liz­za­zio­ne del desktop si presta so­prat­tut­to per in­fra­strut­tu­re omogenee.
Gli utenti possono accedere al desktop virtuale con diversi di­spo­si­ti­vi. Alcune tipologie ri­chie­do­no una con­nes­sio­ne di rete costante.
La vir­tua­liz­za­zio­ne del desktop consente un backup centrale. Requisiti elevati in termini di pre­sta­zio­ni del server, capacità di ar­chi­via­zio­ne e larghezza di banda della rete.
I thin client per­met­to­no di ri­spar­mia­re sia per quanto riguarda l’acquisto che per il fun­zio­na­men­to.

Vir­tua­liz­za­zio­ne a livello del sistema operativo

I concetti di vir­tua­liz­za­zio­ne a livello del sistema operativo poggiano su funzioni native del kernel dei sistemi operativi simili a Unix che con­sen­to­no di eseguire in parallelo più istanze isolate dello spazio utente. A dif­fe­ren­za della vir­tua­liz­za­zio­ne dell’hardware, in questo modo non si riproduce un sistema guest completo inclusivo del kernel, bensì le ap­pli­ca­zio­ni si di­stri­bui­sco­no a livello del sistema operativo ai kernel del sistema host.

N.B.

I sistemi operativi moderni di­stin­guo­no per motivi di sicurezza tra due ambiti di ar­chi­via­zio­ne virtuale: kernel space e user space. Mentre i processi che servono al fun­zio­na­men­to del kernel e degli altri com­po­nen­ti prin­ci­pa­li sono eseguiti nel kernel space, lo user space è a di­spo­si­zio­ne per le ap­pli­ca­zio­ni riservate all’utente. Sui sistemi operativi simili a Unix è possibile eseguire in parallelo diverse istanze virtuali nello user space. Questa funzione è la base della vir­tua­liz­za­zio­ne a livello del sistema operativo.

Ogni istanza dello user space rap­pre­sen­ta un ambiente di runtime virtuale chiuso in se stesso, chiamato a seconda della tec­no­lo­gia uti­liz­za­ta container, partition, vir­tua­li­za­tion engine (ab­bre­via­to in VE) o jail. La vir­tua­liz­za­zio­ne basata sul sistema operativo ha vissuto un revival con le piat­ta­for­me container come Docker. Nel frattempo, l’utente ha a di­spo­si­zio­ne con rtk, OpenVZ/Virtuozzo e runC col­lau­da­te al­ter­na­ti­ve al leader di mercato.

La vir­tua­liz­za­zio­ne delle istanze nello user space avviene grazie a mec­ca­ni­smi chroot nativi, di cui di­spon­go­no tutti i sistemi operativi simili a Unix. Chroot (ab­bre­via­zio­ne per “change root”) è una chiamata di sistema che permette di cambiare la directory root di un processo in corso. I processi che vengono tra­sfe­ri­ti in una directory root virtuale, se cor­ret­ta­men­te im­ple­men­ta­ti, possono accedere solo ai file all’interno di quella directory. Il comando chroot da solo, tuttavia, non incapsula i processi in modo adeguato. La chiamata di sistema, in effetti, consente le funzioni di vir­tua­liz­za­zio­ne di base, ma non è stata concepita per as­si­cu­ra­re i processi. Le tec­no­lo­gie container combinano perciò chroot con altre funzioni kernel native come cgroups e na­me­spa­ces, per mettere a di­spo­si­zio­ne dei processi un ambiente di runtime isolato con accesso limitato alle risorse hardware. In questo caso si parla di processi di con­tai­ne­riz­za­zio­ne.

  • Cgroups: i cgroups sono gruppi di controllo per la gestione delle risorse che con­sen­to­no di limitare gli accessi dei processi alle risorse hardware.
  • Na­me­spa­ces: i na­me­spa­ces sono spazi di nome per l’iden­ti­fi­ca­zio­ne di sistema e di processo, per le co­mu­ni­ca­zio­ni in­ter­pro­ces­sua­li e per le risorse della rete. Con na­me­spa­ces si può limitare un processo e tutte le sue ra­mi­fi­ca­zio­ni alla sezione de­si­de­ra­ta del sistema che sta alla base.

Un container di software contiene un’ap­pli­ca­zio­ne che comprende tutte le di­pen­den­ze come librerie, programmi di as­si­sten­za o file di con­fi­gu­ra­zio­ne. Le ap­pli­ca­zio­ni si possono con­tai­ne­riz­za­re senza ulteriori adat­ta­men­ti e si possono spostare da un sistema a un altro. Pertanto, il punto di forza di questo approccio container risiede nella di­stri­bu­zio­ne di ap­pli­ca­zio­ni nella rete (de­ploy­ment).

Quando i container sono uti­liz­za­ti nell’ambito delle ar­chi­tet­tu­re di mi­cro­ser­vi­zi, gli utenti possono inoltre ap­pro­fit­ta­re di un’alta sca­la­bi­li­tà.

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne a livello del sistema operativo:

Vantaggi Svantaggi
Non richiede un hy­per­vi­sor e per questo è legata a un livello di vir­tua­liz­za­zio­ne minima. È rivolta alle ar­chi­tet­tu­re di mi­cro­ser­vi­zi. Se si uti­liz­za­no ap­pli­ca­zio­ni strut­tu­ra­te in modo mo­no­li­ti­co, la tec­no­lo­gia dei container diventa svan­tag­gio­sa (ad esempio in termini di sca­la­bi­li­tà).
Se si uti­liz­za­no i container per ap­pli­ca­zio­ni che si basano sul col­le­ga­men­to di diversi mi­cro­ser­vi­zi, l’utente può usufruire di un’elevata sca­la­bi­li­tà. A dif­fe­ren­za delle VM, i container sono eseguiti nel kernel del sistema operativo host e questo pone dei precisi requisiti tecnici. Queste di­pen­den­ze limitano la por­ta­bi­li­tà dei container: ad esempio i container di Linux si possono eseguire sui sistemi Windows soltanto con l’emu­la­zio­ne.
Si possono di­stri­bui­re fa­cil­men­te i container senza com­pli­ca­ti processi di in­stal­la­zio­ne. I container offrono un iso­la­men­to si­gni­fi­ca­ti­va­men­te inferiore rispetto alle macchine virtuali. La loro vir­tua­liz­za­zio­ne non è perciò adatta all’im­ple­men­ta­zio­ne delle istanze di sicurezza.
Il software può essere rimosso com­ple­ta­men­te.
Online si possono trovare un gran numero di container già pronti all’uso per le prin­ci­pa­li piat­ta­for­me.

Vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne

La vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne (vir­tua­liz­za­zio­ne dello storage) è un concetto di vir­tua­liz­za­zio­ne che mira a raf­fi­gu­ra­re vir­tual­men­te le diverse risorse di memoria dell’azienda, come dischi rigidi, memoria flash o unità nastro e di­stri­buir­le in un pool di ar­chi­via­zio­ne in­ter­di­pen­den­te.

Anche l’archivio virtuale si può sud­di­vi­de­re in quote e assegnare alle ap­pli­ca­zio­ni se­le­zio­na­te. No­no­stan­te la vir­tua­liz­za­zio­ne, gli utenti possono sempre accedere ai file me­mo­riz­za­ti at­tra­ver­so gli stessi percorsi, anche se la posizione fisica di ar­chi­via­zio­ne cambia, grazie a una tabella di mappatura gestita dal software di vir­tua­liz­za­zio­ne. Si parla quindi di mapping dei supporti di ar­chi­via­zio­ne fisici su un’unità logica (chiamati anche volumes).

Nor­mal­men­te, in ambito aziendale la vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne è im­ple­men­ta­ta basandosi su blocchi. Con la me­mo­riz­za­zio­ne a blocchi i dati vengono suddivisi in blocchi di di­men­sio­ni uguali. A ogni blocco di file viene assegnato un indirizzo univoco che viene salvato dal software di vir­tua­liz­za­zio­ne nella tabella di mappatura cen­tra­liz­za­ta (mapping table).

Nella pratica, la vir­tua­liz­za­zio­ne basata su blocchi si può im­ple­men­ta­re in base all’host, ai di­spo­si­ti­vi e alle rete.

La vir­tua­liz­za­zio­ne basata sull’host è uti­liz­za­ta, di solito, in com­bi­na­zio­ne con le macchine virtuali. In questo caso un sistema host presenta a uno o più sistemi guest (vedi vir­tua­liz­za­zio­ne dell’hardware) delle unità virtuali a un livello di astra­zio­ne. L’accesso all’hardware avviene at­tra­ver­so i driver di pe­ri­fe­ri­ca del sistema host.

La vir­tua­liz­za­zio­ne basata sull’host non necessita di un hardware ag­giun­ti­vo, supporta qualsiasi di­spo­si­ti­vo di ar­chi­via­zio­ne ed è facile da im­ple­men­ta­re. Inoltre, questo approccio offre rispetto ad altri la migliore per­for­man­ce, dato che ogni di­spo­si­ti­vo di ar­chi­via­zio­ne è in­di­riz­za­to di­ret­ta­men­te e quindi senza tempi di latenza. Tuttavia, gli utenti devono tenere conto del fatto che la vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne con la con­se­guen­te pos­si­bi­li­tà di ot­ti­miz­zar­ne l’utilizzo, si limita all’host di ri­fe­ri­men­to.

Anche i disk array, ovvero i di­spo­si­ti­vi di ar­chi­via­zio­ne di massa che possono essere uti­liz­za­ti per di­stri­bui­re i dischi sulla rete, offrono la pos­si­bi­li­tà di vir­tua­liz­za­re le risorse di ar­chi­via­zio­ne nell’ambito della vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne basata sui di­spo­si­ti­vi, uti­liz­zan­do i co­sid­det­ti schemi RAID. Il RAID (ab­bre­via­zio­ne per Redundant Array of In­de­pen­dent Disks, di­spo­si­zio­ne ri­don­dan­te di dischi rigidi in­di­pen­den­ti) è una modalità di gestione dei dati nella quale diverse unità fisiche sono riunite in una piat­ta­for­ma di ar­chi­via­zio­ne virtuale.

Consiglio

Trovi maggiori in­for­ma­zio­ni su disk array e schemi RAID sul nostro articolo dedicato al Network Attached Storage (NAS).

Anche la vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne basata sui di­spo­si­ti­vi offre buone pre­sta­zio­ni at­tra­ver­so una minima latenza I/O. A parte i disk array da unire, non sono necessari com­po­nen­ti hardware ag­giun­ti­vi.

Una vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne basata sulla rete è par­ti­co­lar­men­te utile quando si rag­grup­pa­no risorse di memoria da sistemi ete­ro­ge­nei in un pool di ar­chi­via­zio­ne virtuale. In un contesto aziendale viene so­li­ta­men­te im­ple­men­ta­ta come parte di una storage area network (SAN).

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne:

Vantaggi Svantaggi
Le risorse di ar­chi­via­zio­ne fisiche sono sfruttate al meglio. La vir­tua­liz­za­zio­ne dello spazio di ar­chi­via­zio­ne è sempre legata a un overhead, dato che occorre generare ed elaborare i metadati.
Si possono gestire cen­tral­men­te risorse di ar­chi­via­zio­ne combinate in un’unità logica. L’ela­bo­ra­zio­ne delle richieste I/O può portare a colli di bottiglia che ral­len­ta­no l’intero sistema di ar­chi­via­zio­ne.

Vir­tua­liz­za­zio­ne dei dati

La vir­tua­liz­za­zio­ne dei dati abbraccia diversi tipi di vir­tua­liz­za­zio­ne nell’ambito dell’analisi di data warehouse, che hanno lo scopo di fornire alle ap­pli­ca­zio­ni un accesso ai dati astratto dalle cir­co­stan­ze fisiche. Per fare ciò viene creata la co­sid­det­ta copia master, una ri­pro­du­zio­ne virtuale com­pren­si­va dell’intero insieme dei dati.

La vir­tua­liz­za­zio­ne dei dati è quindi un concetto di in­te­gra­zio­ne delle in­for­ma­zio­ni.

Nell’ambito dell’in­te­gra­zio­ne delle in­for­ma­zio­ni si utilizza ETL (Extract, Transform, Load) per estrarre i dati da fonti di­ver­sa­men­te strut­tu­ra­te e riunirli in un database di de­sti­na­zio­ne fornendo loro una struttura unitaria. Anche la vir­tua­liz­za­zio­ne dei dati consente di leggere dati da diverse fonti e di ma­ni­po­lar­li; tuttavia, essi rimangono fi­si­ca­men­te nello stesso luogo, di­ver­sa­men­te che con ETL. Le soluzioni software per la vir­tua­liz­za­zio­ne dei dati integrano sem­pli­ce­men­te i dati a livello virtuale e rea­liz­za­no un accesso in tempo reale alla fonte fisica dei dati.

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne di dati:

Vantaggi Svantaggi
Lo spazio di ar­chi­via­zio­ne ne­ces­sa­rio per copie fisiche dei dati è ridotto. Al contrario dell’approccio di data warehouse, la vir­tua­liz­za­zio­ne dei dati non è idonea a re­gi­stra­re e con­ser­va­re snapshot cro­no­lo­gi­ci di un set di dati.
Viene eliminata l’estra­zio­ne dei dati, che richiede molto tempo (per esempio via ETL).
Le nuove fonti di dati si possono collegare tramite strumenti self-service di BI, anche senza co­no­scen­ze tecniche pre­li­mi­na­ri.
I dati vir­tua­liz­za­ti si possono elaborare con numerosi strumenti di gestione dei dati.

Vir­tua­liz­za­zio­ne della rete

La vir­tua­liz­za­zio­ne della rete comprende diversi metodi che astrag­go­no le risorse di rete a livello hardware e software dalla loro base fisica. Nor­mal­men­te questo tipo di vir­tua­liz­za­zio­ne viene uti­liz­za­to nell’ambito delle istanze di sicurezza, prin­ci­pal­men­te con due obiettivi:

  • Aggregare le risorse di rete fisiche in un’unica unità logica per mezzo della vir­tua­liz­za­zio­ne
  • Sud­di­vi­de­re le risorse di rete fisiche in diverse unità virtuali per mezzo della vir­tua­liz­za­zio­ne

Un esempio evidente per la vir­tua­liz­za­zio­ne della rete è la Virtual Private Network (VPN), una rete virtuale basata su una rete fisica. Nella pratica, le VPN si uti­liz­za­no per rea­liz­za­re con­nes­sio­ni sicure at­tra­ver­so canali meno sicuri: ad esempio quando un col­la­bo­ra­to­re esterno vuole rag­giun­ge­re su internet la rete privata della propria azienda.

Un altro esempio di vir­tua­liz­za­zio­ne della rete sono le co­sid­det­te Virtual Local Area Network (VLAN), parti di rete virtuali basate su una rete fisica di computer.

Un approccio che permette di am­mi­ni­stra­re le risorse di rete virtuali in modo centrale, senza dover accedere ma­nual­men­te ai com­po­nen­ti fisici della rete, è il Software-Defined Net­wor­king (SDN), che si basa sul di­sac­cop­pia­men­to del piano di controllo virtuale (control plane) dal livello di rete fisico, che è re­spon­sa­bi­le per l’inoltro dei pacchetti di dati (data plane).

Vantaggi e svantaggi della vir­tua­liz­za­zio­ne della rete:

Vantaggi Svantaggi
Risparmio sui costi grazie all’uso multiplo dell’in­fra­strut­tu­ra di rete fisica. Il fun­zio­na­men­to di diverse sottoreti virtuali su una sola rete fisica richiede com­po­nen­ti hardware prestanti.
A livello virtuale le risorse della rete si possono am­mi­ni­stra­re cen­tral­men­te, scalare fa­cil­men­te e sud­di­vi­de­re in modo dinamico. Può rivelarsi ne­ces­sa­ria un’in­fra­strut­tu­ra di rete fisica ri­don­dan­te per garantire l’af­fi­da­bi­li­tà.
La vir­tua­liz­za­zio­ne di rete offre diversi approcci con i quali si possono im­ple­men­ta­re concetti di sicurezza a livello di rete lato software e quindi in modo più con­ve­nien­te.
Vai al menu prin­ci­pa­le