Jump to section

Cos'è una macchina virtuale (VM)?

Copia URL

Una macchina virtuale (VM) è un ambiente di elaborazione che funziona come un sistema autonomo dotato di CPU, memoria, interfaccia di rete e storage, creato da un pool di risorse hardware. Un software denominato hypervisor isola le risorse di elaborazione necessarie e consente la creazione e la gestione delle VM.

La macchina fisica che esegue le VM viene indicata come macchina host, computer host, sistema operativo host o semplicemente host. Le diverse VM che ne utilizzano le risorse sono chiamate macchine guest, computer guest, sistemi operativi guest o semplicemente guest. L'hypervisor tratta le risorse di elaborazione (tra cui CPU, memoria e storage), come un pool di risorse facilmente riposizionabile tra i guest esistenti o su nuove macchine virtuali.

Le VM permettono l'esecuzione simultanea di più sistemi operativi diversi su un unico computer, ad esempio una distribuzione Linux® su un sistema Windows o MacOS. Ogni sistema operativo viene eseguito come avviene normalmente per un sistema operativo o un'applicazione in un hardware host, in modo tale che l'esperienza dell'utente finale emulata nella VM risulti identica all'esperienza del sistema operativo eseguito in tempo reale su una macchina fisica. 

La virtualizzazione è una tecnologia che sfrutta risorse tradizionalmente vincolate all'hardware. Ti consente di utilizzare tutte le capacità di una macchina fisica distribuendo le funzionalità tra utenti o ambienti diversi.

Esistono diversi tipi di virtualizzazione, tra cui:

  • La virtualizzazione dei dati, che consente alle organizzazioni di consolidare le sorgenti di dati in un'unica fonte di erogazione dinamica.

  • La virtualizzazione dei desktop, con cui più ambienti desktop simulati possono essere distribuiti e controllati tramite un amministratore centrale.

  • La virtualizzazione dei server, che permette agli amministratori di suddividere i server in configurazioni con funzioni specifiche.

  • La virtualizzazione dei sistemi operativi, grazie alla quale più sistemi operativi possono essere eseguiti su un unico computer.

  • La virtualizzazione delle funzioni di rete, che separa le funzioni di una rete (come i servizi directory, la condivisione di file e la configurazione IP) in modo da poterle distribuire tra gli ambienti.

Una VM è un singolo file di dati utilizzabile anche nel momento in cui viene spostato da un computer a un altro, e aperto su più computer. Un hypervisor gestisce l'hardware e separa le risorse fisiche dagli ambienti virtuali. A seconda delle esigenze, le risorse vengono suddivise e trasferite dall'ambiente fisico alle varie macchine virtuali. L'esecuzione è sempre compito dell'hardware fisico. Ad esempio, la CPU esegue le istruzioni inviate dalle VM, mentre l'hypervisor si occupa dell'assegnazione.

Durante l'esecuzione della VM, quando un utente o un programma invia un'istruzione che richiede ulteriori risorse dall'ambiente fisico, l'hypervisor programma la richiesta in base alle risorse del sistema fisico, in modo che il sistema operativo e le applicazioni della macchina virtuale possano accedere al pool condiviso di risorse fisiche.

Negli ambienti Linux®, l'hypervisor integrato si chiama Kernel-based Virtual Machine (KVM). Tra le altre soluzioni sono inclusi Xen, che è open source, e Microsoft Hyper-V.

Due sono le tipologie di hypervisor disponibili per la virtualizzazione.

Tipo 1

Un hypervisor di tipo 1 è su bare metal. La pianificazione delle risorse della VM avviene direttamente sull'hardware tramite l'hypervisor. KVM è un esempio di hypervisor di tipo 1.

Tipo 2

Un hypervisor di tipo 2 si trova su un host. Le risorse della VM vengono assegnate su un sistema operativo host, che a sua volta viene eseguito sull'hardware. VMware Workstation e Oracle VirtualBox sono esempi di hypervisor di tipo 2. 

Con la virtualizzazione, è possibile eseguire in contemporanea più sistemi operativi e condividere le stesse risorse hardware virtualizzate. Viceversa, senza la virtualizzazione solo un sistema operativo può essere eseguito sull'hardware.

Uno dei motivi principali per utilizzare le VM è il consolidamento del server. La maggior parte dei deployment di sistemi operativi e applicazioni utilizza solo una piccola quantità delle risorse fisiche disponibili quando il deployment avviene su bare metal. Virtualizzando i server è possibile collocare più server su ciascun server fisico, per un utilizzo più efficiente dell'hardware.

Ciò riduce sia l'esigenza di acquistare un maggior numero di risorse fisiche quali dischi o unità, sia la necessità di incrementare il fabbisogno energetico, lo spazio e le tecnologie di raffreddamento nel data center. Le VM offrono inoltre opzioni aggiuntive per il ripristino di emergenza, consentendo failover e ridondanza, processi che prima potevano essere ottenuti solo aggiungendo hardware.

Una VM fornisce un ambiente isolato dal resto del sistema; qualsiasi elemento eseguito all'interno di una VM non interferisce con quanto viene eseguito nell'hardware host.

Questo isolamento rende le VM la soluzione ideale per testare nuove applicazioni o configurare un ambiente di produzione. È anche possibile eseguire una VM con una specifica finalità, ad esempio il supporto di un determinato processo.

La virtualizzazione è una delle tecnologie che rendono possibile il cloud computing. I cloud pubblici e privati virtualizzano le risorse in pool condivisi, aggiungono un livello di controllo amministrativo e distribuiscono quelle stesse risorse con funzioni self service automatizzate.

Il software di virtualizzazione, gestione e automazione che costituisce i cloud si basa sul sistema operativo, che connette le risorse fisiche, i pool di dati virtuali, il software di gestione, gli script di automazione e i clienti.

Red Hat è uno dei principali contributori di lunga data allo sviluppo dei software di virtualizzazione open source. Oggi Red Hat® OpenShift® Virtualization, una funzionalità di Red Hat OpenShift, consente ai team IT di integrare le macchine virtuali (VM) nei flussi di lavoro containerizzati. Quando eseguono una VM all'interno di un container, i team possono distribuire e gestire le macchine virtuali insieme ai container su una singola piattaforma. In questo modo le aziende possono sfruttare i vantaggi degli investimenti già impegnati nell'ambito della virtualizzazione e usufruire al contempo della semplicità e velocità di una piattaforma applicativa moderna.

La migrazione delle macchine virtuali esistenti dalle altre piattaforme a OpenShift si può eseguire tramite strumenti dedicati, gratuiti e intuitivi. Le macchine virtuali che ne derivano vengono eseguite in parallelo ai container negli stessi nodi Red Hat OpenShift.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è una macchina virtuale (VM)?

Una macchina virtuale (VM) è un ambiente di elaborazione isolato creato astraendo le risorse da una macchina fisica.

ARTICOLO

La tecnologia KVM

KVM (Kernel-based Virtual Machine) è una tecnologia di virtualizzazione open source che trasforma Linux in un hypervisor.