#1 Leader globale nella resilienza dei dati
Linee guida di Veeam per i clienti interessati dall'aggiornamento dei contenuti di CrowdStrike

Cos'è una macchina virtuale?

Una macchina virtuale, o VM, è esattamente ciò che suggerisce il nome, una forma di computer virtuale. Il software di virtualizzazione consente a un singolo computer "host" di eseguire diverse macchine virtuali "guest" sul proprio hardware. Ogni guest esegue il proprio sistema operativo e si comporta in modo indipendente dagli altri guest. È possibile che i guest eseguano un sistema operativo diverso da quello dell'host. Ad esempio, un host macOS potrebbe avere macchine virtuali Windows e/o Linux in esecuzione su di esso.

Come funziona una macchina virtuale?

Il processo di creazione di macchine virtuali da eseguire su un host è noto come virtualizzazione. L'hardware del computer host esegue il sistema operativo host. Il software di virtualizzazione viene eseguito all'interno del sistema operativo host e alloca le risorse per ciascun guest. Ogni guest ha il proprio sistema operativo e il proprio set di librerie e file binari necessari per eseguire le applicazioni desiderate. Il sistema operativo guest si comporta esattamente come un computer fisico dotato della potenza di elaborazione, della memoria, dello spazio di archiviazione e delle altre risorse di elaborazione a esso assegnate.

I due tipi di macchine virtuali

Esistono due tipi di macchine virtuali: macchine virtuali di processo e macchine virtuali di sistema. La differenza fondamentale tra questi è la loro dimensione e il caso d'uso previsto.

Cos'è una macchina virtuale di processo?

Una macchina virtuale di processo è una macchina virtuale specializzata, progettata per consentire l'esecuzione di un singolo processo come applicazione sull'host. Un esempio comune è la macchina virtuale Java. Le applicazioni scritte in Java sono indipendenti dalla piattaforma e possono essere eseguite su qualsiasi hardware e sistema operativo che supporti la VM Java. Invece di doversi preoccupare della compatibilità dell'hardware e del sistema operativo, gli sviluppatori devono semplicemente scrivere per la VM Java, che si occupa di tutti i problemi specifici dell'host e consente al codice Java di essere eseguito su qualsiasi sistema operativo supportato come se fosse stato scritto in modo nativo per tale sistema operativo.

Cos'è una macchina virtuale di sistema?

Le macchine virtuali di sistema sono una forma di virtualizzazione su scala più ampia. Una macchina virtuale di sistema è una replica completa di una macchina fisica. È possibile eseguire diverse VM su un potente computer host, con ciascun guest che esegue il proprio sistema operativo. A tale scopo, l'host deve eseguire un hypervisor.

Alcuni software hypervisor vengono eseguiti su un sistema operativo host. Questi hypervisor sono noti come Type 2 e offrono praticità e usabilità a scapito di una certa latenza e del consumo di risorse aggiuntivo. Altre soluzioni possono essere eseguite direttamente sull'hardware dell'host o "bare metal". Questo tipo di hypervisor è noto come hypervisor di tipo 1. Poiché gli hypervisor di tipo 1 vengono eseguiti direttamente sull'hardware host, sono una soluzione a bassa latenza e ad alte prestazioni e sono diffusi negli ambienti aziendali in cui l'uso efficiente delle risorse è essenziale.

Gli hypervisor consentono a ciascuna macchina di funzionare in modo indipendente, allocando dinamicamente memoria, throughput di rete, storage e risorse del processore, isolando al contempo le VM guest l'una dall'altra per evitare problemi di sicurezza.

Gli hypervisor semplificano l'installazione di nuove macchine virtuali in base alle necessità e consentono un uso efficiente dell'hardware host. Le immagini di macchine virtuali create per un hypervisor specifico, ad esempio VMware ESXi o Oracle VM VirtualBox, sono altamente portabili in quanto possono essere implementate in qualsiasi hardware che supporti il software dell'hypervisor e disponga di risorse di sistema sufficienti. Questa portabilità, unita alla potenza del software di replica, rende la virtualizzazione una parte importante di qualsiasi piano di continuità aziendale. Veeam Backup and Replication può essere utilizzato per gestire macchine virtuali on-premises e in hosting nel cloud, proteggendo i dati della tua organizzazione e aiutandoti a tornare operativi rapidamente in caso di interruzione del servizio o guasto hardware.

A cosa serve una macchina virtuale?

Le macchine virtuali presentano molti casi d'uso, tra cui:

  • Esecuzione di diversi sistemi operativi per testare le build multipiattaforma
  • Esecuzione di software specifico del sistema operativo su dispositivi/piattaforme per cui non è stato progettato
  • Accesso ai dati da macchine infette da virus o ransomware
  • Creazione di un ambiente di sviluppo per test/build automatizzati
  • Backup di una configurazione di macchina esistente per una rapida re-implementazione
  • Distribuzione delle applicazioni nel cloud
  • Suddivisione di un potente server Web in diversi server virtuali da rivendere a un provider di hosting

Perché usare una macchina virtuale?

Le macchine virtuali presentano diversi vantaggi chiave. Consentono di eseguire più ambienti di sistemi operativi su un unico dispositivo. Questo li rende un modo economico ed efficiente per attivare più server, testare le build delle applicazioni su una varietà di configurazioni del sistema operativo diverse o eseguire un'applicazione legacy. Ad esempio, un'azienda che si affida a un sistema di contabilità clienti scritto per una versione obsoleta di Windows può fornire una VM contenente quell'applicazione invece di disporre di un hardware dedicato più vecchio su cui eseguire il software.

L'hypervisor fornisce un ambiente sandbox per ogni guest. Ciò rende le VM utili dal punto di vista della sicurezza, in quanto i guest non hanno accesso diretto ai rispettivi file system o alla memoria. Se un virus infetta una macchina virtuale, i danni devono essere contenuti. Se una macchina virtuale si arresta in modo anomalo a causa di un programma che si comporta in modo anomalo, l'host e le altre macchine virtuali non dovrebbero essere interessate.

Un'altra caratteristica utile delle macchine virtuali è la facilità con cui è possibile eseguirne il backup, lo spostamento e il ripristino. Per eseguire il backup di una macchina virtuale basta eseguire il backup dei file di configurazione e dell'immagine del disco. In uno scenario di disaster recovery, il ripristino di tali file su un nuovo host e la riaccensione delle VM consente a un'organizzazione di tornare operativa più facilmente. Poiché le macchine virtuali sono indipendenti dall'hardware, i backup possono essere ripristinati su qualsiasi server che disponga di risorse adeguate per eseguire quel guest. 

La natura sandbox e altamente portatile delle macchine virtuali ha però un costo. Ogni VM guest esegue una copia completa del sistema operativo. L'esecuzione di più macchine virtuali su un server fisico può causare problemi di stabilità se il server non è sufficientemente potente. A seconda dell'uso che si intende fare delle VM, potrebbe esserci un modo più efficiente per raggiungere i propri obiettivi, come i contenitori.

Contenitori e macchine virtuali

I contenitori rappresentano una forma di tecnologia di virtualizzazione che presenta molte analogie con le macchine virtuali, ma con uno scopo leggermente diverso. Mentre le macchine virtuali simulano un'intera macchina, incluso il sistema operativo e il livello hardware, i contenitori virtualizzano solo i livelli software in esecuzione sul sistema operativo. L'IEEE descrive i contenitori come alternativa leggera alle macchine virtuali.

Mentre le macchine virtuali vengono eseguite su un hypervisor che può essere eseguito direttamente sull'hardware o all'interno di un sistema operativo, i contenitori vengono eseguiti in un motore dei contenitori. Ogni contenitore avrà le proprie copie di tutti i file binari e le librerie necessarie per eseguire il software che contiene, ma il contenitore non ha bisogno delle proprie copie del sistema operativo. I contenitori condividono l'hardware su cui sono in esecuzione, anche se avranno accesso limitato al file system.

I software di gestione dei contenitori più diffusi includono Docker, Google Kubernetes Engine, LXC e Portainer. I contenitori vengono spesso usati sulle piattaforme di cloud computing come un modo per distribuire rapidamente tutto ciò che è necessario per eseguire uno script o un microservizio.

Alcuni vantaggi dei contenitori includono:

  • Sono leggeri poiché contengono solo i file binari e le librerie che sono assolutamente necessari per la loro esecuzione.
  • Sono facili da avviare e gestire.

Gli svantaggi dei contenitori sono:

  • Non è possibile combinare i sistemi operativi su un singolo host con i contenitori.
  • I contenitori stateless sono facili da creare, ma la gestione dei contenitori stateful richiede una maggiore pianificazione.
  • Poiché i contenitori non sono completamente in modalità sandbox, sono spesso considerati meno sicuri delle macchine virtuali.

La questione della sicurezza dei contenitori è complessa e i contenitori configurati correttamente offrono una sicurezza robusta. Le applicazioni nei contenitori sono isolate l'una dall'altra, il che le rende più sicure rispetto all'esecuzione delle singole applicazioni direttamente sulla macchina host. Inoltre, ogni contenitore ha una superficie di attacco più piccola rispetto a una macchina virtuale completa. Alcuni contenitori sono senza stato, quindi ogni volta che vengono avviati il contenitore è una "tabula rasa" con la stessa configurazione. I contenitori stateless sono utili per alcuni tipi di microserver e la mancanza di storage persistente può rappresentare un problema di sicurezza in alcune situazioni.

Tuttavia, i contenitori senza stato non sono adatti per l'esecuzione di servizi più complessi o servizi in cui è importante essere in grado di preservare lo stato delle applicazioni durante il ripristino da un'interruzione. Inoltre, i contenitori condividono un sistema operativo, quindi se un contenitore viene compromesso, l'utente malintenzionato ha la possibilità di compromettere altri contenitori in esecuzione sulla stessa macchina. Con le macchine virtuali, se una macchina virtuale è compromessa, l'aggressore non può usare tale accesso per compromettere altre macchine virtuali sullo stesso host.  

Quando scegliere i contenitori rispetto alle VM

In generale, è una buona idea utilizzare le macchine virtuali se si ha la necessità di eseguire più sistemi operativi su un'unica macchina, oppure se si vuole essere in grado di creare snapshot della macchina in diversi stati per scopi di backup. Disporre di macchine virtuali pronte per l'implementazione semplifica la scalabilità del sistema operativo e può essere vantaggioso dal punto di vista del disaster recovery

I contenitori sono utili per distribuire microservizi più piccoli o come parte di una pipeline DevOps. In un articolo per EPR Today, Daniel Riedel spiega la differenza con l'analogia "animali domestici e bestiame". I contenitori sono bestiame, da trattare come merci e da far girare su richiesta, mentre è più probabile che i servizi monolitici vengano eseguiti in VM e curati con attenzione, come animali domestici.

Come configurare una macchina virtuale

Alcuni dei software più diffusi per macchine virtuali includono:

  • VMware ESXi
  • Oracle VM VirtualBox
  • Azure Spot Virtual Machines
  • Linux KVM

La procedura di configurazione di una macchina virtuale varia a seconda del software di virtualizzazione utilizzato. Strumenti come VMware e Oracle VM VirtualBox offrono configurazioni guidate per aiutare gli utenti a configurare l'hardware e installare il sistema operativo per la VM tramite un'interfaccia grafica (GUI). Essendo una soluzione basata sul cloud, la gamma di VM dedicate e spot di Azure offre anche opzioni di configurazione relativamente semplici.

La configurazione di un KVM Linux tramite la riga di comando richiede una conoscenza più approfondita della rete e dell'hardware della macchina. Strumenti come Kimchi e Proxmox semplificano agli amministratori di sistema la gestione delle distribuzioni di più macchine virtuali su un singolo host.

Di seguito sono riportate alcune considerazioni importanti per la configurazione di una macchina virtuale:

  • Assegnazione dell'hardware: Il guest deve avere accesso a una quantità sufficiente di memoria e core/thread del processore per garantire prestazioni ottimali.
  • Risorse disponibili: Se l'host eseguirà più guest, l'host deve disporre di risorse adeguate per il corretto funzionamento di ciascuna VM.
  • Limiti di burst: Consentire alla macchina virtuale di superare temporaneamente la consueta allocazione delle risorse può migliorare la stabilità e le prestazioni durante brevi periodi di carico elevato.
  • Spazio su disco: assicurati che il guest abbia a disposizione uno spazio di storage sufficiente. Può trattarsi di un singolo file di grandi dimensioni o suddiviso in più file per una maggiore portabilità e facilità di backup.
  • Licenze software: considera i requisiti di licenza di qualsiasi software installato sulla VM. Ciascuna macchina virtuale in esecuzione può essere considerata una "postazione" ai fini della concessione di licenze software.

Se si dispone già di una macchina fisica configurata come si desidera, è possibile creare una copia del disco rigido di quella macchina virtuale come disco della macchina virtuale Hyper-V, utilizzando la cosiddetta conversione da fisico a virtuale (P2V). Una volta effettuata una copia dell'unità, è possibile caricarla in una macchina virtuale configurata con lo stesso tipo di virtualizzazione hardware e avviarla in base alle esigenze. È quindi possibile proteggere i dati della macchina virtuale eseguendo backup virtuali con Veeam.

Una volta configurata, la macchina virtuale può essere eseguita dall'interno del sistema operativo host come se fosse un'altra applicazione. La VM può quindi essere controllata tramite la tastiera e il mouse dell'host oppure tramite SSH/KVM remoto se il server è in esecuzione in modalità headless.

Se desideri saperne di più sulle soluzioni Veeam per il backup delle macchine virtuali e su come possiamo aiutarti a proteggere i tuoi dati, perché non provi direttamente Veeam Backup and Replication? Scarica una prova gratuita oggi stesso.

Risorse in primo piano

Protezione dei dati

2022 Data Protection Trends

Il più grande report del settore sulla protezione dei dati da parte di oltre 3.000 leader IT

Icona del partner

Richiedi una demo

Scopri come modernizzare la tua protezione dei dati in una sessione dal vivo

Icona di contatto

Contattaci

Fatti aiutare a selezionare la soluzione giusta per la tua organizzazione