Cos'è una macchina virtuale e perché sono così utili? (2023)

Una macchina virtuale (VM) è un software che consente di eseguire programmi o applicazioni senza essere legati a una macchina fisica. In una VM, una o più macchine guest possono essere eseguite su un computer host. Ogni VM ha il proprio sistema operativo e funziona separatamente dalle altre VM, anche se sono collocate sullo stesso host fisico. Le VM di solito vengono eseguite su server, ma possono anche essere eseguite su sistemi desktop o persino su piattaforme embedded. Le VM possono condividere risorse da un host fisico, come cicli CPU, larghezza di banda di rete e memoria. Le VM hanno origine nei primi giorni dell'informatica negli anni '60, quando il time sharing per gli utenti dei mainframe veniva utilizzato per separare il software da un sistema host fisico. Una macchina virtuale è stata definita nei primi anni '70 come "una duplicazione efficiente e isolata di una macchina informatica reale". Le VM, come le conosciamo oggi, hanno guadagnato popolarità negli ultimi 20 anni, poiché le aziende hanno adottato la virtualizzazione dei server per utilizzare in modo più efficiente la potenza di calcolo dei loro server fisici, riducendo il numero di server fisici e risparmiando spazio nel data center. Le VM offrono numerosi vantaggi, come la possibilità di eseguire più istanze di sistemi operativi su un singolo hardware, il supporto per applicazioni legacy e la possibilità di testare applicazioni in un ambiente sandbox. Tuttavia, le VM hanno anche alcuni svantaggi, come la potenziale instabilità delle prestazioni quando vengono eseguite più VM su un singolo host fisico e la dipendenza dalla disponibilità del server fisico. Nonostante questi svantaggi, le VM rimangono uno strumento prezioso per molte aziende e continuano a evolversi insieme ad altre tecnologie come i container.

Come funzionano le macchine virtuali?

In generale, esistono due tipi di VM: le VM di processo, che separano un singolo processo, e le VM di sistema, che offrono una separazione completa del sistema operativo e delle applicazioni dal computer fisico. Le VM di processo includono la Java Virtual Machine, il .NET Framework e la Parrot virtual machine. Le VM di sistema si basano su hypervisor come intermediari che consentono al software di accedere alle risorse hardware. L'hypervisor emula la CPU, la memoria, il disco rigido, la rete e altre risorse hardware del computer, creando un pool di risorse che possono essere allocate alle singole VM in base alle loro specifiche esigenze. L'hypervisor può supportare più piattaforme hardware virtuali isolate l'una dall'altra, consentendo alle VM di eseguire sistemi operativi Linux e Windows Server sullo stesso host fisico. Alcuni dei nomi più noti nel campo degli hypervisor includono VMware (ESX/ESXi), Intel/Linux Foundation (Xen), Oracle (MV Server for SPARC e Oracle VM Server for x86) e Microsoft (Hyper-V). Le macchine desktop possono anche utilizzare le macchine virtuali. Ad esempio, un utente Mac può eseguire un'istanza virtuale di Windows sul proprio hardware Mac fisico.

Quali sono i vantaggi delle macchine virtuali?

Le macchine virtuali offrono diversi vantaggi. Poiché il software è separato dal computer host fisico, gli utenti possono eseguire più istanze di sistemi operativi su un singolo hardware, risparmiando tempo, costi di gestione e spazio fisico. Un altro vantaggio è che le VM possono supportare applicazioni legacy, riducendo o eliminando la necessità e i costi di migrazione di un'applicazione più vecchia a un sistema operativo aggiornato o diverso. Inoltre, gli sviluppatori utilizzano le VM per testare le applicazioni in un ambiente sicuro e sandbox. Ad esempio, Microsoft ha recentemente aggiornato le sue VM Windows gratuite che consentono agli sviluppatori di scaricare una VM di valutazione con Windows 11 per provare il sistema operativo senza dover aggiornare un computer principale. Le VM possono anche aiutare ad isolare il malware che potrebbe infettare una determinata istanza di VM. Poiché il software all'interno di una VM non può interferire con il computer host, i software dannosi non possono causare danni estesi.

Quali sono gli svantaggi delle macchine virtuali?

Le macchine virtuali hanno anche alcuni svantaggi. Eseguire più VM su un singolo host fisico può comportare prestazioni instabili, specialmente se i requisiti infrastrutturali di un'applicazione specifica non vengono soddisfatti. Ciò rende le VM meno efficienti in molti casi rispetto a un computer fisico. Inoltre, se il server fisico si blocca, tutte le applicazioni in esecuzione su di esso si interromperanno. La maggior parte dei reparti IT utilizza un equilibrio tra sistemi fisici e virtuali per mitigare questo rischio.

Altre forme di virtualizzazione

Il successo delle VM nella virtualizzazione dei server ha portato all'applicazione della virtualizzazione in altre aree, tra cui lo storage, le reti e i desktop. La virtualizzazione di rete, ad esempio, ha portato all'esplorazione di opzioni di rete come il network-as-a-service e la network functions virtualization (NFV), che utilizzano server di tipo commodity per sostituire dispositivi di rete specializzati e consentire servizi più flessibili e scalabili. Questo differisce leggermente dalla software-defined networking, che separa il piano di controllo della rete dal piano di inoltro per consentire una provisioning più automatizzato e una gestione basata su politiche delle risorse di rete. Una terza tecnologia, le virtual network functions, sono servizi basati su software che possono essere eseguiti in un ambiente NFV, inclusi processi come il routing, il firewalling, il bilanciamento del carico, l'accelerazione WAN e la crittografia.

Le VM e i container

La crescita delle VM ha portato allo sviluppo di tecnologie come i container, che portano il concetto un passo avanti e stanno guadagnando popolarità tra gli sviluppatori di applicazioni web. In un ambiente di container, un'applicazione singola insieme alle sue dipendenze può essere virtualizzata. Con un overhead molto inferiore rispetto a una VM, un container include solo binari, librerie e applicazioni. Nonostante lo sviluppo dei container, le VM mantengono ancora molte capacità e vantaggi che le rendono una tecnologia preziosa. Ad esempio, le VM sono ancora utili quando si eseguono più applicazioni insieme o quando si eseguono applicazioni legacy su sistemi operativi più vecchi. Inoltre, alcuni ritengono che i container siano meno sicuri degli hypervisor delle VM perché i container hanno un solo sistema operativo che le applicazioni condividono, mentre le VM possono isolare l'applicazione e il sistema operativo.

Le macchine virtuali, insieme ad altre tecnologie come il 5G e il computing edge, stanno diventando parte integrante di nuove innovazioni. Ad esempio, i fornitori di infrastrutture desktop virtuali (VDI) come Microsoft, VMware e Citrix stanno cercando modi per estendere i loro sistemi VDI ai dipendenti che lavorano da casa come parte di un modello ibrido post-COVID. Le reti 5G utilizzano la tecnologia di network slicing, che utilizza la virtualizzazione delle funzioni di rete (NFV) per installare funzionalità di rete su VM su un server virtualizzato al fine di fornire servizi che in passato venivano eseguiti solo su hardware proprietario.

Come molte altre tecnologie utilizzate oggi, queste innovazioni emergenti non sarebbero state sviluppate se non fosse stato per i concetti originali delle macchine virtuali introdotti decenni fa.

References

Top Articles
Latest Posts
Article information

Author: Van Hayes

Last Updated: 16/12/2023

Views: 6156

Rating: 4.6 / 5 (66 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Van Hayes

Birthday: 1994-06-07

Address: 2004 Kling Rapid, New Destiny, MT 64658-2367

Phone: +512425013758

Job: National Farming Director

Hobby: Reading, Polo, Genealogy, amateur radio, Scouting, Stand-up comedy, Cryptography

Introduction: My name is Van Hayes, I am a thankful, friendly, smiling, calm, powerful, fine, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.