Virtualizzazione

menu icon

Virtualizzazione

La virtualizzazione è un processo che consente un utilizzo più efficiente dell'hardware del computer fisico ed è la base del cloud computing.

Cos'è la virtualizzazione?

La virtualizzazione utilizza il software per creare uno livello di astrazione sull'hardware del computer che consente agli elementi hardware di un singolo computer - processori, memoria, storage a altro - di essere divisi in più computer virtuali, comunemente denominati VM (virtual machine). Ogni VM esegue il proprio sistema operativo (SO) e si comporta come un computer indipendente, anche se è in esecuzione solo su una parte dell'hardware del computer sottostante effettivo.

Ne consegue che la virtualizzazione abilita un utilizzo più efficiente dell'hardware del computer fisico e consente un maggiore ROI dell'hardware di un'organizzazione.

Oggi la virtualizzazione è una prassi standard nell'architettura IT aziendale. È anche la tecnologia che promuove gli aspetti economici del cloud computing. La virtualizzazione consente ai provider di servizi cloud di soddisfare le esigenze dei utenti con il loro hardware del computer fisico esistente; consente agli utenti cloud di acquistare solo i servizi di calcolo di cui hanno bisogno e quando ne hanno bisogno e di ridimensionare tali risorse in modo efficiente in termini di costi man mano che i loro carichi di lavoro crescono.

Per un'ulteriore panoramica di come funziona la virtualizzazione, guarda il nostro video "Virtualization Explained" (5:20):

Vantaggi della virtualizzazione

La virtualizzazione offre diversi vantaggi agli operatori del data center e ai provider di servizi:

  • Efficienza delle risorse: prima della virtualizzazione, ogni server delle applicazioni richiedeva una sua CPU fisica dedicata - lo staff IT acquistava e configurava un server separato per ogni applicazione che desiderava eseguire. (L'IT preferiva una singola applicazione e un singolo sistema operativo (SO) per ogni computer per motivi di affidabilità). Inevitabilmente, ogni server fisico era sottoutilizzato. La virtualizzazione del server, invece, ti consente di eseguire diverse applicazioni - ciascuna sulla sua VM con il suo sistema operativo - su un singolo computer fisico (di solito un server x86) senza andare a discapito dell'affidabilità. Ciò consente il massimo utilizzo della capacità di calcolo dell'hardware fisico.
  • Gestione più facile: sostituire i computer fisici con VM software-defined rende più facile l'uso e la gestione delle politiche scritte nel software. Ciò ti consente di creare dei flussi di lavoro di gestione dei servizi IT automatizzati. Ad esempio, gli strumenti di implementazione e configurazione automatizzata consentono agli amministratori di definire delle raccolte di VM e applicazioni come servizi, in modelli software. Questo significa che possono installare tali servizi ripetutamente e coerentemente evitando una complicata configurazione manuale che richiede molto tempo ed è soggetta ad errori. Gli amministratori possono utilizzare le politiche di sicurezza della virtualizzazione per imporre determinate configurazioni della sicurezza in base al ruolo della VM. Le politiche possono anche aumentare l'efficienza delle risorse ritirando le VM inutilizzate per risparmiare spazio e potenza di calcolo.
  • Tempi di inattività ridotti al minimo: gli arresti anomali del sistema operativo e delle applicazioni possono causare dei tempi di inattività e interrompere la produttività degli utenti. Gli amministratori possono eseguire più VM ridondanti affiancate ed eseguire il failover tra di esse quando si verificano dei problemi. Eseguire più server fisici ridondanti è più costoso.
  • Provisioning più rapido: acquistare, installare e configurare l'hardware per ogni applicazione richiede molto tempo. A condizione che l'hardware sia già implementato, il provisioning di VM per eseguire tutte le tue applicazioni è molto più veloce. Puoi anche automatizzarlo utilizzando il software di gestione e integrandolo nei flussi di lavoro esistenti.

Per uno sguardo più approfondito ai potenziali vantaggi, consultare "5 Benefits of Virtualization".

Soluzioni

Diverse aziende offrono soluzioni di virtualizzazione che coprono specifiche attività del data center o scenari di virtualizzazione desktop incentrati sugli utenti finali. Gli esempi più noti includono VMware, che è specializzato nella virtualizzazione di storage, rete, desktop e server, Citrix, che ha una sua nicchia nel campo della virtualizzazione delle applicazioni ma che offre anche soluzioni di desktop virtuale e virtualizzazione di server, e Microsoft, la cui soluzione di virtualizzazione Hyper-V viene fornita con Windows e si concentra sulle versioni virtuali di computer desktop e server.

VM (Virtual Machine)

Le VM (Virtual Machine) sono ambienti virtuali che simulano un computer fisico in formato software. Normalmente comprendono diversi file che contengono la configurazione della VM, lo storage per l'unità disco virtuale e qualche snapshot della VM per preservarne lo stato a uno specifico punto temporale.

Per una panoramica completa delle VM, consultare " What is a Virtual Machine?".

Hypervisor

Un hypervisor è il livello software che coordina le VM. Funge da interfaccia tra la VM e l'hardware fisico sottostante, garantendo che ognuna abbia accesso alle risorse fisiche di cui ha bisogno per essere eseguita. Garantisce inoltre che le VM non interferiscano tra di loro incidendo sullo spazio di memoria o i cicli di calcolo reciproci.

Esistono due tipi di hypervisor:

  • Gli hypervisor di tipo 1o"bare-metal" interagiscono con le risorse fisiche sottostanti, sostituendo del tutto il sistema operativo tradizionale. Compaiono più comunemente negli scenari di server virtuale.
  • Gli hypervisor di tipo 2 vengono eseguiti come un'applicazione su un sistema operativo esistente. Più comunemente utilizzati sui dispositivi endpoint per eseguire sistemi operativi alternativi, comportano un sovraccarico delle prestazioni perché devono utilizzare il sistema operativo host per accedere alle risorse hardware sottostanti e coordinarle.

Hypervisors: A Complete Guide” fornisce una panoramica completa di tutto ciò che riguarda gli hypervisor.

Tipi di virtualizzazione

A questo punto abbiamo discusso della virtualizzazione dei server ma molti altri elementi dell'infrastruttura IT possono essere virtualizzati per offrire vantaggi significativi ai responsabili IT (in particolare) e all'azienda nel suo insieme. In questa sezione tratteremo i seguenti tipi di virtualizzazione:

  • Virtualizzazione desktop
  • Virtualizzazione della rete
  • Virtualizzazione dello storage
  • Virtualizzazione dei dati
  • Virtualizzazione di applicazioni
  • Virtualizzazione dei data center
  • Virtualizzazione della CPU
  • Virtualizzazione della GPU
  • Virtualizzazione di Linux
  • Virtualizzazione cloud

Virtualizzazione desktop

La virtualizzazione desktop ti consente di eseguire più sistemi operativi desktop, ciascuno nella sua VM sullo stesso computer.

Esistono due tipi di virtualizzazione desktop:

  • VDI (virtual desktop infrastructure) esegue più desktop nelle VM su un server centrale e ne esegue lo streaming agli utenti che eseguono l'accesso ai dispositivi thin client. In questo modo, VDI consente a un'organizzazione di fornire ai suoi utenti l'accesso a una varietà di sistemi operativi da qualsiasi dispositivo, senza installare sistemi operativi sui dispositivi. Per una spiegazione più approfondita, consultare "What is Virtual Desktop Infrastructure (VDI)?".
  • La virtualizzazione desktop locale esegue un hypervisor su un computer locale, consentendo all'utente di eseguire uno o più sistemi operativi aggiuntivi su tale computer e passare da un sistema operativo all'altro come necessario senza modificare nulla del sistema operativo primario.

Per ulteriori informazioni sui desktop virtuali, consultare “Desktop-as-a-Service (DaaS).”

Virtualizzazione della rete

La virtualizzazione della rete utilizza il software per creare una "vista" della rete che un amministratore può utilizzare per gestire la rete da una singola console. Astrae gli elementi e le funzioni hardware (ad es. connessioni, switch, router ecc) come software in esecuzione su un hypervisor. L'amministratore della rete può modificare e controllare questi elementi senza toccare i componenti fisici sottostanti, il che semplifica notevolmente la gestione della rete.

I tipi di virtualizzazione della rete includono SDN (software-defined networking), che virtualizza l'hardware che controlla l'instradamento del traffico di rete (chiamato il "piano di controllo") e NFV (network function virtualization), che virtualizza una o più appliance hardware che forniscono una specifica funzione di rete (ad es. un firewall, un programma di bilanciamento del carico o un analizzatore del traffico), rendendo più facile eseguire la configurazione, il provisioning e la gestione di tali appliance.

Virtualizzazione dello storage

La virtualizzazione dello storage consente di gestire e accedere a tutti i dispositivi di storage presenti sulla rete - sia installati su singoli server che su unità di storage autonome - come un singolo dispositivo di storage. Nello specifico, la virtualizzazione dello storage riunisce tutti i blocchi di storage in un singolo pool condiviso da cui è possibile assegnarli a qualsiasi VM sulla rete come necessario. La virtualizzazione dello storage rende più semplice il provisioning di storage per le VM e utilizza al massimo tutto lo storage disponibile sulla rete.

Per un approfondimento della virtualizzazione dello storage, consultare "What is Cloud storage?"

Virtualizzazione dei dati

Le aziende moderne archiviano i dati da più applicazioni, utilizzando più formati di file, in più ubicazioni, spaziando dal cloud ai sistemi hardware e software on-premises. La virtualizzazione dei dati consente a qualsiasi applicazione di accedere a tutti quei dati, indipendentemente dall'origine, dal formato o dall'ubicazione.

Gli strumenti di virtualizzazione dei dati creano uno livello software tra le applicazioni che accedono ai dati e i sistemi dove sono archiviati. Il livello converte la richiesta o la query di dati di un'applicazione come necessario e restituisce i risultati che possono estendersi a più sistemi. La virtualizzazione dei dati può aiutare ad abbattere i silos di dati quando altri tipi di integrazione non sono fattibili, desiderabili o convenienti in termini di costi.

Virtualizzazione di applicazioni

La virtualizzazione di applicazioni esegue il software delle applicazioni senza installarlo direttamente sul sistema operativo dell'utente. Questo differisce dalla completa virtualizzazione desktop (menzionata precedentemente) perché solo l'applicazione viene eseguita in un ambiente virtuale; il sistema operativo e il dispositivo dell'utente finale vengono eseguiti come di consueto. Esistono tre tipi di virtualizzazione di applicazioni:

  • Virtualizzazione di applicazioni locale: l'intera applicazione viene eseguita sul dispositivo endpoint ma viene eseguita in un ambiente di runtime invece che sull'hardware nativo.
  • Streaming di applicazioni: l'applicazione risiede su un server che invia piccoli componenti del software affinché vengano eseguiti sul dispositivo dell'utente finale quando necessario.
  • Virtualizzazione delle applicazioni basata sul server: l'applicazione viene eseguita interamente su un server che invia solo la sua interfaccia utente al dispositivo client.

Virtualizzazione dei data center

La virtualizzazione dei data center astrae come software la maggior parte dell'hardware di un data center, consentendo a un amministratore di dividere in modo efficiente un singolo data center fisico in più data center virtuali per i diversi client.

Ogni client può accedere a una sua IaaS (infrastructure ad a service), che viene eseguita sullo stesso hardware fisico sottostante. I data center virtuali offrono una facile rampa di accesso al calcolo basato sul cloud, consentendo a un'azienda di configurare rapidamente un ambiente di data center completo senza acquistare hardware di infrastruttura.

Virtualizzazione della CPU

La virtualizzazione della CPU (central processing unit) è la tecnologia fondamentale che rende possibili gli hypervisor, le VM e i sistemi operativi. Consente di dividere una singola CPU in più CPU virtuali perché siano utilizzate da più VM.

Inizialmente, la virtualizzazione della CPU era interamente software-defined, ma molti dei processori attuali includono ampi set di istruzioni che supportano la virtualizzazione della CPU, il che migliora le prestazioni delle VM.

Virtualizzazione della GPU

Una GPU (graphical processing unit) è un processore multi-core che migliora le prestazioni di calcolo complessive occupandosi dell'elaborazione grafica o matematica più impegnativa in termini di risorse. La virtualizzazione della GPU consente a più VM di utilizzare, completamente o parzialmente, la potenza di elaborazione di una singola GPU per applicazioni video, di AI e di altro tipo a uso intensivo di grafica e matematica più rapide.

  • Le GPU pass-through rendono l'intera GPU disponibile a un singolo sistema operativo guest.
  • Le vGPU condivise dividono i core GPU fisici tra diverse GPU virtuali (vGPU) per l'utilizzo da parte di VM basate sui server.

Virtualizzazione di Linux

Linux include un suo hypervisor, chiamato KVM (kernel -based virtual machine), che supporta le estensioni di processore di virtualizzazione di Intel e AMD consentendoti così di creare delle VM basate su x86 dall'interno di un sistema operativo host Linux.

In quanto sistema operativo open source, Linux è altamente personalizzabile. Puoi creare delle VM che eseguono versioni di Linux personalizzate per specifici carichi di lavoro o versioni con sicurezza avanzata per le applicazioni più sensibili.

Virtualizzazione cloud

Come osservato in precedenza, il modello di cloud computing dipende dalla virtualizzazione. Virtualizzando server, storage e altre risorse fisiche dei data center, i provider di cloud computing possono offrire una gamma di servizi ai clienti, tra cui i seguenti:

  • IaaS (infrastructure as a service): risorse virtualizzate di rete, storage e server che puoi configurare in base ai loro requisiti.
  • PaaS (platform as a service): strumenti di sviluppo, database e altri servizi basati sul cloud virtualizzati che puoi utilizzare per creare delle tue applicazioni e soluzioni basate sul cloud.
  • SaaS (software as a service): le applicazioni software che utilizzi sul cloud. SaaS è il servizio basato sul cloud con il più elevato grado di astrazione dall'hardware.

Se desideri saperne di più su questi modelli di servizio cloud, consulta la nostra guida: “IaaS vs. PaaS vs. SaaS.”

Virtualizzazione e containerizzazione

La virtualizzazione del server riproduce un intero computer a livello dell'hardware, che poi esegue un intero sistema operativo. Il sistema operativo esegue una singola applicazione. Ciò è più efficiente di una virtualizzazione pari a zero ma continua a duplicare codice e servizi non necessari per ciascuna applicazione che desideri eseguire.

I container adottano un approccio alternativo. Condividono un kernel del sistema operativo sottostante, eseguendo solo l'applicazione e gli elementi da cui dipende, come le librerie software e le variabili di ambiente. Questo rende i container più piccoli e più veloci da implementare.

Per un'analisi approfondita dei container e della containerizzazione, consultare “Containers: A Complete Guide” e “Containerization: A Complete Guide.”

Per un confronto più ravvicinato, consultare il post del blog "Containers vs. VMs: What's the difference?".

Nel seguente video, Sai Vennam suddivide la containerizzazione nei relativi elementi di base e la confronta con la virtualizzazione tramite VM (8:09):

VMware

VMware crea il software di virtualizzazione. VMware ha iniziato offrendo solo la virtualizzazione dei server - il suo hypervisor ESX (ora ESXi) è stato uno dei primi prodotti di virtualizzazione di successo dal punto di vista commerciale. Oggi VMware offre anche soluzioni per la virtualizzazione di rete, storage e desktop.

Per un'analisi approfondita di tutto ciò che riguarda VMware, consultare “VMware: A Complete Guide.”

Sicurezza

La virtualizzazione offre alcuni vantaggi in termini di sicurezza. Ad esempio, le VM infettate da malware possono essere riportate a un punto temporale (detto snapshot) se la VM non era infetta e stabile; possono anche essere più facilmente eliminate e ricreate. Non è sempre possibile rimuovere le infezioni da un sistema operativo non virtualizzato poiché il malware è spesso integrato in profondità nei componenti principali del sistema operativo, continuando a essere presente anche dopo i rollback di sistema.

La virtualizzazione presenta anche alcune sfide in materia di sicurezza. Se un aggressore compromette un hypervisor, potenzialmente possiede tutte le VM e tutti i sistemi operativi guest. Poiché gli hypervisor possono anche consentire alle VM di comunicare tra di loro senza toccare la rete fisica, può essere difficile vedere il loro traffico e rilevare quindi attività sospette.

Un hypervisor di tipo 2 su un sistema operativo host è inoltre suscettibile alla compromissione del sistema operativo host.

Il mercato offre una gamma di prodotti di sicurezza della virtualizzazione che possono analizzare le VM per rilevare eventuale malware e applicare ad esse delle patch, crittografare interi dischi virtuali di VM e controllare e verificare l'accesso alle VM.

Virtualizzazione e IBM

IBM Cloud offre una serie completa di soluzioni di virtualizzazione basate sul cloud, spaziando dai servizi su cloud pubblico alle offerte di cloud privato e ibrido. Puoi anche utilizzarlo per creare ed eseguire un'infrastruttura virtuale e avvalerti anche di servizi che vanno dall'AI basata sul cloud alla migrazione di carichi di lavoro VMware con IBM Cloud for VMware Solutions.

Registrati oggi stesso per un account IBM Cloud.