Cos’è una macchina virtuale?

A virtual machine (VM) is an emulated or digital version of a physical computer. Virtual machines can be used to run different operating systems and applications, store data, connect to networks, as well as perform other tasks like a physical device. Virtual machines run on a physical device called a host or parent server. And a virtual machine is called a guest or child.

In questo articolo, spiegherò come funzionano le macchine virtuali e in cosa differiscono dai container. Descriverò anche alcuni dei casi d’uso più importanti per le macchine virtuali, tra cui lo sviluppo di software multipiattaforma e l’analisi di malware.

Pubblicità

Come funziona una macchina virtuale?

Essenzialmente, la tecnologia di virtualizzazione consente agli utenti di creare ed eseguire contemporaneamente più macchine virtuali su un singolo host. Ad esempio, un host Windows è in grado di eseguire diverse macchine virtuali con Windows, CentOS, Ubuntu e altre distribuzioni Linux.

A virtual server uses hypervisor software to interact with the underlying physical hardware. It makes it possible to keep VMs separate and evenly allocate host resources (CPUs, storage, and memory) to each VM guest as needed. The hypervisor can also schedule operations to prevent deadlocks.

Source: Microsoft

I due tipi di hypervisor

Ci sono due tipi principali di hypervisor utilizzati nella virtualizzazione.

Hypervisor di Tipo 1 (Process VM)

Innanzitutto, un hypervisor di tipo 1, anche chiamato hypervisor bare-metal, viene eseguito direttamente sul computer fisico. Tipicamente, è necessario uno strumento di gestione separato per la creazione/gestione delle macchine virtuali e la gestione delle autorizzazioni sull’hypervisor. Microsoft Hyper-V e Citrix Hypervisor sono esempi di hypervisor di tipo 1.

Annuncio

Hypervisor di tipo 2 (System VM)

A type 2 hypervisor, also known as a hosted hypervisor, can run as an application on the host OS. It allows users to manually create a virtual machine instance and install a guest operating system.

L’hypervisor di tipo 2 è relativamente più lento perché ogni richiesta di macchina virtuale deve essere instradata al sistema operativo host. È adatto per singoli utenti, sviluppatori e piccole aziende che non possono permettersi di acquistare server dedicati. Alcuni esempi comuni di hypervisor di tipo 2 includono Oracle VirtualBox e VMware Workstation.

Cos’è la virtualizzazione?

La virtualizzazione è una tecnologia che comporta la creazione di uno strato di astrazione su una macchina host fisica. Aiuta a dividere le risorse hardware (CPU, RAM e storage) di un singolo computer in diversi computer virtuali chiamati macchine virtuali.

Ogni macchina virtuale agisce come una macchina indipendente con il proprio sistema operativo. È una soluzione economica per le organizzazioni che desiderano eseguire più sistemi operativi e applicazioni su un singolo server fisico.

Annuncio

I cinque tipi di virtualizzazione

Esistono cinque tipi comuni di virtualizzazione: Hardware, software, storage, network e desktop virtualization.

1. Virtualizzazione hardware

La virtualizzazione hardware, nota anche come virtualizzazione del server, è una tecnica che consente agli utenti di creare versioni virtuali di computer e sistemi operativi. Rende possibile eseguire contemporaneamente più sistemi operativi sulla stessa macchina fisica. La virtualizzazione hardware ottimizza anche l’utilizzo delle risorse hardware.

2. Virtualizzazione software

La virtualizzazione del software è un metodo che consente a una macchina host fisica di eseguire più computer virtuali. Sfrutta il software hypervisor per distribuire le risorse hardware (come archiviazione, processori e memoria) tra diversi computer virtuali (VM). Ad esempio, una distribuzione Linux può essere eseguita in una macchina virtuale su un computer che esegue un sistema operativo Windows.

3. Virtualizzazione dello storage

La virtualizzazione dello storage consolida lo storage fisico da più dispositivi di archiviazione di rete per apparire come un singolo disco virtuale. Ha vari benefici tra cui costi ridotti, bilanciamento del carico, pianificazione del ripristino da disastro e miglioramento delle prestazioni e della velocità.

4. Virtualizzazione di rete

La virtualizzazione di rete è un processo utilizzato per raggruppare reti fisiche in una singola rete virtuale basata su software. Aiuta a distribuire la larghezza di banda disponibile in vari canali e assegnarli a dispositivi e server. Offre benefici come migliorata sicurezza, affidabilità e velocità di rete.

5. Virtualizzazione del desktop

La virtualizzazione del desktop consente agli utenti di simulare un carico di lavoro di postazione in modo che possa essere accessibile da qualsiasi luogo su qualsiasi dispositivo. I suoi principali benefici includono risparmi sui costi, ottimizzazione delle risorse, miglioramento della sicurezza dei dati e gestione più semplice.

Quali sono i principali benefici dell’uso dei VM?

Le macchine virtuali offrono vari vantaggi sia agli utenti finali che agli amministratori IT. Ecco un elenco di alcune delle caratteristiche che rendono le macchine virtuali molto attraenti negli ambienti aziendali:

1. Cloud computing

La tecnologia di virtualizzazione fornisce l’architettura di base per il cloud computing. Consente alle aziende di distribuire e migrare macchine virtuali native per il cloud in ambienti server in loco e di sfruttare i cloud ibridi.

È inoltre possibile per le organizzazioni allocare e modificare le risorse cloud in tempo reale per soddisfare i loro requisiti dinamici di utilizzo. I servizi di VM basati su cloud sono popolari per l’esecuzione di applicazioni SaaS, il backup dei dati e l’hosting di servizi di gestione dell’accesso e della posta elettronica.

2. Efficienza dei costi

Le macchine virtuali consentono alle organizzazioni di creare ed eseguire più istanze di macchine virtuali su un singolo server. Poiché i costi dell’hardware IT possono essere una sfida reale per le aziende, le VM possono contribuire ad aumentare l’efficienza dei costi utilizzando risorse hardware fisiche minime. Ad esempio, gli amministratori IT possono utilizzare una singola macchina server per distribuire diverse applicazioni in un ambiente aziendale.

3. Sicurezza

Gli utenti possono creare ambienti virtuali per potenziare la sicurezza e impedire ai malware di influire sull’hardware sottostante e sul sistema operativo. È possibile per gli utenti ripristinare rapidamente e facilmente una VM compromessa a versioni precedenti in caso di attacco informatico.

Nel frattempo, i sviluppatori possono utilizzare le VM per testare gli aggiornamenti del software e le app prima di rilasciarli agli utenti in produzione. Le VM sono utili anche per i ricercatori per testare software dannoso.

4. Scalabilità e portabilità

La virtualizzazione consente ai clienti di distribuire rapidamente diversi tipi di VM con i sistemi operativi scelti e un set specifico di risorse. Le VM possono inoltre aiutare le organizzazioni a rispondere meglio alle variazioni dei carichi di lavoro. Possono anche risparmiare il tempo extra e lo sforzo necessario per installare diversi sistemi operativi sui server fisici.

5. Migrazione di carichi di lavoro

Le macchine virtuali sono definite come “pacchetti autonomi” disaccoppiati dal computer fisico. Questo rende più semplice per i team IT migrare verso hardware più veloce, spostare una VM da un server a un altro e riprendersi da guasti.

6. Ripristino da disastro

Le organizzazioni possono utilizzare le macchine virtuali per eseguire il backup dei propri sistemi in ambienti cloud. Questa capacità fornisce un ulteriore livello di sicurezza e riduce al minimo il rischio di perdita di dati in scenari come i guasti hardware.

7. Supporto DevOps

Le macchine virtuali forniscono la massima flessibilità nel supportare gli sviluppatori aziendali. Possono creare ambienti isolati con funzionalità complete per il processo di sviluppo e test del software. Le VM consentono anche agli sviluppatori di eseguire e testare software incompatibili su diversi sistemi operativi.

Macchine Virtuali vs Container

Come le macchine virtuali, i container consentono di eseguire applicazioni isolate dall’host sottostante. Tuttavia, analizziamo più da vicino le principali differenze tra le macchine virtuali e i container:

Virtual Machines Containers
Hardware-level process isolation Operating system-level process isolation
A virtual machine offers complete isolation of apps from the host OS Containers can share some resources with the host OS
VMs use a few GBs of system memory Containers require less memory space (KBs or MBs)
Each VM has a dedicated OS Containers can share OS resources
VM is more secure Containers are less secure
Boots in minutes Boots in seconds
VMs consume more system resources Containers consume fewer resources
VMs can move between hardware Containers are destroyed and recreated
VM creation takes a considerable amount of time Users can create containers within a few seconds
Users can run any OS inside the VM Users can only run containers on the same OS version as the host
Some popular use cases of VMs are running multiple applications, monolithic applications, and legacy apps on older OS. Containers are best for running web apps, DevOps testing, and microservices.

I principali casi d’uso per le macchine virtuali

Le macchine virtuali hanno diversi casi d’uso sia per gli utenti finali che per gli amministratori IT. Ecco alcuni esempi:

1. Testare nuovi sistemi operativi

Le macchine virtuali permettono agli utenti di eseguire diversi sistemi operativi su un singolo host fisico. Ciò significa che gli utenti possono testare nuove funzionalità senza influenzare il proprio sistema operativo principale.

Se sei un Windows Insider, potresti essere tentato di utilizzare macchine virtuali per testare le build di anteprima di Windows 11 provenienti dal canale Dev. Queste build possono essere piuttosto instabili, anche se è possibile ricreare la macchina virtuale e reinstallare il sistema operativo se la VM non si avvia per qualche motivo.

2. Eseguire software legacy o incompatibili

Un altro caso d’uso comune delle macchine virtuali è la possibilità di utilizzare applicazioni software legacy in ambienti aziendali. Le VM consentono agli utenti di eseguire software non supportati dal loro sistema operativo attuale.

3. Indagini su malware

I ricercatori di malware hanno spesso bisogno di nuove macchine per testare programmi o applicazioni dannosi. Ecco perché le macchine virtuali sono molto utili. Possono testare il software in una VM invece di rischiare un’infezione sull’host fisico.

4. Sviluppo di software cross-platform

La tecnologia di virtualizzazione consente agli sviluppatori di software e ai tester di testare le loro applicazioni su più piattaforme. Ad esempio, un team di sviluppo può utilizzare diverse macchine virtuali per testare diverse versioni di un’app in un ambiente emulato.

5. Sessioni di formazione

È importante che i computer delle sale formazione eseguano varie istanze dei sistemi operativi. Le macchine virtuali consentono agli istruttori di condurre sessioni di formazione che replicano diversi scenari aziendali e ambienti.

6. Navigazione sicura

Infine, le macchine virtuali possono contribuire a garantire un’esperienza di navigazione sicura per gli utenti. È possibile fare uno snapshot di una VM nel suo stato attuale e poi ripristinarla in caso di infezione da malware. Gli utenti possono configurare un hypervisor di Tipo 2 o chiedere a un amministratore IT di concedere loro un accesso temporaneo a un desktop virtuale ospitato su un server.

Conclusione

In breve, le macchine virtuali sono una soluzione economica che consente ai team IT di distribuire efficientemente le risorse di sistema e gestire ampi cluster di computer. Tuttavia, le VM hanno vari aspetti positivi e negativi, e le organizzazioni di solito adottano un approccio ibrido (sia macchine fisiche che virtuali) in base alle proprie esigenze aziendali.

Source:
https://petri.com/what-is-a-virtual-machine/