Cosa sono le VM (virtual machine)?
Una VM è una rappresentazione virtuale di un computer fisico e le unità di calcolo per la prima generazione di cloud computing.
Sfondo nero e blu
Cosa sono le VM (virtual machine)?

Una VM è una rappresentazione virtuale, o emulazione, di un computer fisico. Spesso vengono indicate come guest mentre la macchina fisica su cui vengono eseguite è nota come host.

La virtualizzazione consente di creare più VM, ognuna con il proprio sistema operativo e le proprie applicazioni, su una singola macchina fisica. Una VM non può interagire direttamente con un computer fisico. Al contrario, ha bisogno di un livello di software leggero, chiamato hypervisor, per coordinarsi con l'hardware fisico sottostante. L'hypervisor alloca le risorse di calcolo fisico - come i processori, la memoria e lo storage - ad ogni VM. Tiene separate le VM in modo che non interferiscano tra loro.

Anche se questa tecnologia è nota con nomi diversi, tra cui server virtuale, VSI (virtual server instance) e VPS (virtual private server), in questo articolo verrà semplicemente indicata come VM.

Come funziona la virtualizzazione

Quando viene utilizzato su un computer o un server fisico, (noto anche come server bare metal), un hypervisor consente al computer fisico di separare il sistema operativo e le applicazioni dall'hardware. Quindi, può dividersi in diverse "VM" indipendenti.

Ognuna di queste nuove VM può quindi eseguire autonomamente i propri sistemi operativi e le proprie applicazioni, condividendo le risorse originali dal server bare metal gestito dall'hypervisor. Le risorse includono memoria, RAM, storage e così via.

L'hypervisor agisce come un vigile urbano, dirigendo e allocando le risorse del server bare metal a ciascuna delle varie nuove VM, verificando che non interferiscano tra loro.

Esistono due tipi principali di hypervisor.

Gli hypervisor di tipo 1 vengono eseguiti direttamente sull'hardware fisico (generalmente un server), sostituendo il sistema operativo. Di solito si utilizza un prodotto software separato per creare e gestire le VM sull'hypervisor. Alcuni strumenti di gestione, come VMware vSphere, ti consentono di selezionare un sistema operativo guest da installare nella VM.

Puoi utilizzare una VM come modello per le altre, duplicandola per crearne di nuove. In base alle tue esigenze, puoi creare più modelli di VM per diversi scopi, come ad esempio test software, database di produzione e ambienti di sviluppo.

Gli hypervisor di tipo 2 vengono eseguiti come applicazione all'interno di un sistema operativo host e di solito vengono utilizzati sulle piattaforme desktop o notebook dei singoli utenti. Con un hypervisor di tipo 2, puoi creare manualmente una VM e poi installare un sistema operativo guest. Puoi utilizzare l'hypervisor per assegnare le risorse fisiche alla tua VM, impostando manualmente la quantità di core del processore e la memoria che può utilizzare. A seconda delle funzionalità dell'hypervisor, puoi anche impostare opzioni come l'accelerazione 3D per la grafica.

Il seguente video spiega i concetti di base della virtualizzazione. Consulta anche l'articolo "5 Benefits of Virtualization".

Vantaggi delle VM

Le VM offrono diversi vantaggi rispetto all'hardware fisico tradizionale:

  • Utilizzo delle risorse e ROI migliorato: poiché più VM vengono eseguite su un singolo computer fisico, i clienti non devono acquistare un nuovo server ogni volta che desiderano eseguire un altro sistema operativo e possono ottenere un rendimento maggiore da ogni componente hardware che già possiedono.

  • Scalabilità: con il  cloud computing, è facile implementare più copie della stessa VM per gestire al meglio l'incremento del carico.

  • Portabilità: le VM possono essere ricollocate tra i diversi computer fisici di una rete come necessario. Questo consente di assegnare i carichi di lavoro ai server che hanno potenza di calcolo supplementare. È inoltre possibile spostare le VM tra ambienti on-premise e cloud, utilizzandole così in scenari con cloud ibridi in cui le risorse di calcolo sono condivise tra il tuo data center e un provider di servizi cloud.

  • Flessibilità: la creazione di una VM è più rapida e semplice rispetto all'installazione di un sistema operativo su un server fisico perché è possibile clonare una VM con il sistema operativo già installato. Gli sviluppatori e i tester software possono creare nuovi ambienti on demand per gestire nuove attività man mano che si presentano.

  • Sicurezza: rispetto ai sistemi operativi in esecuzione direttamente sull'hardware, le VM migliorano in diversi modi la sicurezza. Una VM è un file che può essere analizzato per rilevare software dannosi da un programma esterno. È possibile creare un'intera istantanea della VM in qualsiasi momento e poi ripristinarne lo stato se viene infettata da malware, garantendone l'integrità. La creazione veloce e facile di VM consente anche di eliminare completamente una VM compromessa e quindi di ricrearla rapidamente, accelerando il ripristino dalle infezioni da malware.
Casi di utilizzo delle VM

Le VM possono essere utilizzate per diversi scopi, sia dagli amministratori IT aziendali che dagli utenti.

Cloud computing: negli ultimi 10 anni, le VM sono state l'unità fondamentale di calcolo nel cloud, consentendo di eseguire e scalare con successo dozzine di diversi tipi di applicazioni e carichi di lavoro.

Supporto di DevOps: le VM sono un ottimo modo per supportare gli sviluppatori aziendali, che possono configurare i modelli di VM con le impostazioni per i propri processi di sviluppo e verifica del software. Possono creare VM per compiti specifici come i test software statici, includendo questi passaggi in un flusso di lavoro di sviluppo automatizzato. Tutto questo consente di semplificare la toolchain DevOps.

Test di un nuovo sistema operativo: una VM ti consente di effettuare il test di un nuovo sistema operativo sul desktop senza ripercussioni sul tuo sistema operativo principale.

Studio dei malware: le VM sono utili per i ricercatori di malware che hanno spesso bisogno di nuove macchine su cui verificare i programmi potenzialmente dannosi.

Esecuzione di software incompatibile: alcuni utenti potrebbero preferire un sistema operativo, continuando allo stesso tempo ad avere bisogno di un programma disponibile solo in un altro sistema operativo. Un esempio è la linea di software Dragon di dettatura vocale. Il suo fornitore, Nuance, ha interrotto la produzione della versione macOS del suo prodotto. Tuttavia, l'esecuzione di un hypervisor basato su desktop - come VMware Fusion o Parallels - consente di eseguire Windows in una VM, fornendoti l'accesso a quella versione del software.

Navigazione in sicurezza: utilizzando una VM per la navigazione, potrai visitare i siti senza preoccuparti di eventuali infezioni. Puoi scattare un'istantanea della tua macchina e ripristinare l'immagine dopo ogni sessione di navigazione. Un utente può configurare questa impostazione autonomamente, utilizzando un hypervisor desktop di tipo 2. In alternativa, un amministratore può fornire un desktop virtuale temporaneo ubicato sul server.

Tipi di VM

VM Windows

La maggior parte degli hypervisor supporta le VM che eseguono il sistema operativo Windows come guest. L'hypervisor Hyper-V di Microsoft fa parte del sistema operativo Windows. Quando installato, crea una partizione principale contenente sia l'hypervisor che il sistema operativo Windows principale, ed entrambi hanno un accesso privilegiato all'hardware. Altri sistemi operativi, inclusi i guest Windows, vengono eseguiti in partizioni secondarie che comunicano con l'hardware tramite la partizione principale.

VM Android

Il sistema operativo Android open-source di Google è comune su diversi dispositivi mobili e dispositivi domestici connessi, come quelli di home entertainment. Il sistema operativo Android è compatibile solo con l'architettura del processore ARM utilizzata in questi dispositivi, ma gli appassionati, i giocatori Android o gli sviluppatori di software potrebbero volerlo eseguire su PC.

Ciò rappresenta un aspetto problematico, perché i PC utilizzano un'architettura con processore x86 completamente diversa e un hypervisor di virtualizzazione hardware trasferisce le istruzioni solo tra la VM e la CPU. Non le converte per i processori con diverse serie di istruzioni. Esistono vari progetti che risolvono questo problema.

Alcuni progetti, come Shashlik o Genymotion, utilizzano un emulatore che ricrea l'architettura ARM nel software. Un'alternativa, il progetto Android-x86, esegue invece il porting di Android sull'architettura x86. Per eseguirlo, devi installare il programma Android-x86 come una VM utilizzando l'hypervisor di tipo 2 VirtualBox. Un'altra alternativa, Anbox, esegue il sistema operativo Android sul kernel di un sistema operativo Linux host.

VM Mac

Apple consente al suo sistema macOS di funzionare solo su hardware Apple, bloccandone l'esecuzione su hardware non Apple come VM o in altri modi ai sensi del proprio accordo di licenza con l'utente finale. Puoi utilizzare gli hypervisor di tipo 2 su hardware Mac per creare VM con un guest macOS.

VM iOS

Attualmente non è possibile eseguire iOS in una VM, poiché Apple controlla rigorosamente il proprio sistema operativo iOS e non permette di eseguirlo su dispositivi diversi da quelli iOS.

La soluzione più simile a una VM iOS è il simulatore di iPhone incluso nell'ambiente di sviluppo integrato Xcode, che simula l'intero sistema iPhone nel software.

VM Java

La piattaforma Java è un ambiente di esecuzione per i programmi scritti nel linguaggio di sviluppo software Java. L'obiettivo di Java era offrire la funzionalità "write once, run anywhere" (scrivi una volta, esegui ovunque). Ciò significa che qualsiasi programma Java poteva essere eseguito su qualsiasi hardware basato sulla piattaforma Java. Per raggiungere tale obiettivo, la piattaforma Java include una JVM (Java Virtual Machine).

I programmi Java contengono bytecode, istruzioni destinate alla JVM. La JVM compila questo bytecode in codice macchina, ovvero il linguaggio di livello più basso utilizzato dal computer host. La JVM nella piattaforma Java di una piattaforma di calcolo convertirà una serie diversa di istruzioni di codice macchina per ogni JVM, in base al codice macchina previsto dal processore.

La JVM, quindi, non esegue un intero sistema operativo e non utilizza un hypervisor come le altre VM. Converte invece i programmi software di livello applicativo per eseguirli su un particolare hardware.

Per ulteriori informazioni su Java, consulta "Java: una guida completa."

VM Python

Come la JVM, la VM Python non viene eseguita su un hypervisor e non contiene un sistema operativo guest. È uno strumento che consente ai programmi scritti nel linguaggio di programmazione Python di funzionare su una serie di CPU.

Allo stesso modo di Java, Python converte i suoi programmi in un formato intermedio chiamato bytecode, memorizzandolo in un file pronto per essere eseguito. Quando il programma viene eseguito, la VM Python converte il bytecode in codice macchina per l'esecuzione veloce.

VM Linux

Linux è un sistema operativo guest comune utilizzato in molte VM. È anche un sistema operativo host comune utilizzato per eseguire le VM e dispone inoltre di un suo hypervisor, denominato KVM (kernel-based virtual machine). Il kernel Linux mainstream include KVM dal 2007. Sebbene si tratti di un progetto open source, Red Hat è ora proprietaria della società originale che ha sviluppato KVM.

VM VMware

VMware è stato uno dei primi fornitori di software di virtualizzazione e oggi è uno dei più importanti fornitori di hypervisor di tipo 1 e 2 e di software VM per i clienti aziendali.

L'articolo "VMware: una guida completa" offre una panoramica completa su tutti gli aspetti che riguardano VMware.

VM Ubuntu

Ubuntu è una distribuzione Linux prodotta da Canonical. È disponibile nelle versioni desktop e server ed entrambe possono essere installate come una VM. Ubuntu può essere implementato come sistema operativo guest su Microsoft Hyper-V; fornisce una versione ottimizzata di Ubuntu Desktop che funziona nella modalità di sessione avanzata di Hyper-V, fornendo una stretta integrazione tra l'host Windows e la VM Ubuntu. Include il supporto per l'integrazione degli appunti, il ridimensionamento dinamico del desktop, le cartelle condivise e lo spostamento del mouse tra i desktop host e guest.

Confronto tra multi-tenant e single-tenant

Nel cloud computing, le VM sono tipicamente offerte in entrambe le versioni: single-tenant e multi-tenant.

Le VM pubbliche, o multi-tenant, sono VM in cui più utenti condividono infrastrutture fisiche comuni. Questo è l'approccio più conveniente e scalabile per la fornitura di VM, ma non presenta alcune caratteristiche di isolamento che potrebbero essere richieste da organizzazioni con rigorosi requisiti di sicurezza o conformità.

Due modelli per VM single-tenant sono gli host dedicati e le istanze dedicate.

Un host dedicato richiede il noleggio di un'intera macchina fisica, il mantenimento di un accesso continuo e il controllo della macchina, dell'hardware e di qualsiasi software installato su di essa. Questo modello fornisce il massimo livello di flessibilità e trasparenza dell'hardware e di controllo e posizionamento del carico di lavoro, e offre anche alcuni vantaggi per determinati software con licenza bring-your-own.

 Un'istanza dedicata offre lo stesso isolamento single-tenant e lo stesso controllo sul posizionamento del carico di lavoro, ma non può essere associata a una macchina fisica specifica. Quindi, ad esempio, se un'istanza dedicata viene riavviata, potrebbe essere associata a una nuova macchina fisica - una macchina dedicata al singolo account, ma pur tuttavia un'altra macchina, potenzialmente in un'ubicazione fisica diversa.

Modelli di prezzo per le VM

I modelli di prezzo più comuni per le VM nel cloud sono con pagamento a consumo (per ora o secondo), istanze transitorie/spot, istanze riservate e host dedicati.

  • Pagamento a consumo: nel modello di pagamento a consumo, non sono previsti costi iniziali per la VM e gli utenti pagano semplicemente per quello che usano, tipicamente con fatturazione all'ora o al secondo, in base al tipo di provider e di istanza.

  • Istanze transitorie/spot: le istanze transitorie/spot sono il modello di VM dal costo più basso e beneficiano della capacità in eccesso dei provider, che però può essere reclamata dal provider in qualsiasi momento. Di solito, sono utili per le applicazioni che non devono essere sempre disponibili o che hanno costi proibitivi in qualsiasi altro modello.

  • Istanze riservate: a differenza dei modelli di pagamento a consumo, le istanze riservate prevedono un impegno a termine esplicito, di solito tra uno e tre anni, ma sono disponibili con forti sconti.

  • Host dedicati: nel caso degli host dedicati, all'utente viene addebitato il costo del server fisico totale, fatturato in base agli incrementi con cui il provider offre i server dedicati, tipicamente orari o mensili.
Confronto tra VM e server bare metal

Nella scelta di una VM invece di una macchina fisica, nota anche come server bare metal, più che confrontare le varie funzionalità si tratta di considerare le proprie esigenze e le relative tempistiche.

I server bare metal si distinguono per hardware, potenza e isolamento puri. Sono server fisici single-tenant completamente privi di cicli di hypervisor (software di virtualizzazione) e interamente dedicati a un singolo cliente: tu.

I carichi di lavoro che danno priorità alle prestazioni e all'isolamento, come ad esempio le applicazioni con uso intensivo di dati e obblighi di conformità normativa, sono tipicamente ideali per i server bare metal – soprattutto se implementati su periodi di tempo prolungati.

Le applicazioni di e-commerce, ERP, CRM, SCM e di servizi finanziari sono solo alcuni carichi di lavoro ideali per i server bare metal.

Pertanto, quando è il caso che tu aggiunga un hypervisor all'hardware bare metal per realizzare una VM? Quando i tuoi carichi di lavoro richiedono massima flessibilità e scalabilità.

Le VM incrementano con facilità la capacità dei server e aumentano l'utilizzo - condizioni ideali per spostare i dati da una VM all'altra, ridimensionare i set di dati e suddividere i carichi di lavoro dinamici.

Confronto tra VM e container

Il modo più semplice per comprendere cos'è un container è capire in cosa si differenzia da una VM tradizionale. Nella virtualizzazione tradizionale - sia on-premise che nel cloud - viene utilizzato un  hypervisor per virtualizzare l'hardware fisico. Ogni VM contiene quindi un sistema operativo guest, una copia virtuale dell'hardware di cui il sistema operativo ha bisogno per essere eseguito, insieme a un'applicazione e alle relative librerie e dipendenze associate.

Invece di virtualizzare l'hardware sottostante, i container virtualizzano il sistema operativo (di solito Linux), in modo che ogni singolo container includa solo l'applicazione e le relative librerie e dipendenze. L'assenza del sistema operativo guest è il motivo per cui i container sono così leggeri e, quindi, veloci e portabili.

I container, e il motore di orchestrazione che li gestisce, Kubernetes, sono adatti per architetture moderne, native del cloud e di microservizi . E anche se i container sono più comunemente associati ai servizi stateless, possono essere utilizzati anche per i servizi stateful.

I container inoltre stanno diventando più comuni negli scenari di cloud ibrido, poiché possono essere eseguiti in modo coerente su laptop, cloud e ambienti IT on-premise tradizionali.

Per ulteriori informazioni, consulta il post del blog "Containers vs. VM: What's the difference?".

Il l video seguente illustra le basi della containerizzazione e il suo confronto con l'uso delle VM:

Scelta di un provider di VM

La scelta di un provider di VM e cloud non è difficile, se hai le idee chiare su cosa cercare. La VM deve rispondere alle esigenze dei carichi di lavoro e al budget aziendale, ovviamente, ma anche altri fattori sono importanti per la scelta del tuo ambiente di virtualizzazione. Di seguito sono riportati dieci aspetti da considerare per la scelta del provider di servizi di VM.

Supporto affidabile. Assicurati che sia disponibile un servizio di assistenza clienti 24 ore al giorno, 7 giorni su 7, via telefono, e-mail e chat. È particolarmente utile poter parlare con una persona che ti aiuti a risolvere le situazioni IT critiche. È anche importante notare quali provider cloud offrono servizi aggiuntivi per un supporto più pratico.

Opzioni gestite. Il provider cloud offre soluzioni sia gestite che non gestite? Se non conosci a fondo la tecnologia di virtualizzazione, considera un provider che offra servizi di installazione, manutenzione e monitoraggio continuo delle prestazioni.

Integrazione software. L'ambiente della VM si integra correttamente con altri ambienti? I sistemi operativi, il software di terze parti, la tecnologia open source e le applicazioni ti aiutano a fornire più soluzioni in tutta la tua azienda. Ti consigliamo un provider di VM che offra assistenza e collaborazioni consolidate con i fornitori del software più utilizzato del settore. Nota: evita soluzioni che prevedono condizioni di vincolo a uno specifico vendor (lock-in).

Rete e infrastruttura di alta qualità. Quanto è aggiornata l'infrastruttura su cui viene eseguita la nuova VM? Ciò include server bare metal affidabili, data center moderni e struttura portante di rete. Un provider cloud deve essere in grado di fornire hardware all'avanguardia e tecnologie di rete ad alta velocità.

Posizione, posizione, posizione. Più vicini saranno i dati agli utenti, meno saranno i problemi in termini di latenza, sicurezza e fornitura tempestiva di servizi. Una buona rete globale di data center e località POP distribuiti è fondamentale per disporre dei dati dove e quando necessario.

Backup e ripristino. Che piano offre il tuo provider cloud per assicurare la disponibilità operativa delle VM in caso di eventi imprevisti? Include anche opzioni di backup e ridondanza per l'ambiente virtualizzato? L'operatività continua è un aspetto da tenere seriamente in considerazione.

Facilità della scalabilità. Quanto sarà facile e veloce per te avviare, arrestare, riservare, mettere in pausa e aggiornare la tua VM? Il modello da preferire per quanto riguarda la scalabilità della VM è quello on-demand.

Configurazioni della CPU eterogenee. Le soluzioni con un maggior numero di configurazioni sono da preferire. Non tutte le configurazioni di VM sono adatte a ogni carico di lavoro durante ogni sessione di utilizzo. Assicurati di cercare un provider di VM che offra pacchetti di configurazione eterogenei per requisiti sia single-tenant che multi-tenant.

Livelli di sicurezza. Chiedi al tuo provider cosa offre in merito, e fallo in modo scrupoloso. I tuoi dati aziendali sono estremamente preziosi, soprattutto se si tratta di informazioni sensibili del cliente. Le linee di rete private, le opzioni di data center federali, le funzioni di crittografia integrate e il rispetto degli standard di conformità normativa sono essenziali per proteggere il tuo asset più prezioso.

Supporto di migrazioni senza soluzione di continuità. Le tue priorità IT sono in continua evoluzione. Questo lo sappiamo tutti. Qualsiasi provider di VM deve essere in grado di aiutarti a eseguire il rehosting tra ambienti ibridi, on-premise e off-premise. Verifica che siano disponibili opzioni di migrazione di inserimento completo dei dati, sulla rete e basate sulle applicazioni.

Soluzioni correlate
IBM Cloud

IBM Cloud con Red Hat offre sicurezza ai vertici del mercato, scalabilità aziendale e innovazione aperta per realizzare il pieno potenziale del cloud e dell'AI.

Esplora IBM Cloud
Soluzioni VMware

IBM Cloud for VMware Solutions è progettato per aiutare a spostare i carichi di lavoro VMware da ambienti on-premise a IBM Cloud.

Esplora IBM Cloud for VMware Solutions
Server virtuali

I server virtuali IBM Cloud sono server virtuali pubblici e dedicati, con provisioning e scalabilità on demand e opzioni di fatturazione mensile e oraria.

Esplora i server virtuali
Risorse Cos'è il cloud computing?

Il cloud computing trasforma l'infrastruttura IT in un programma di utilità, consentendoti di "collegarti" alle risorse e alle applicazioni informatiche tramite Internet, senza doverle installare e gestire on-premise.

Cos'è il cloud ibrido?

Il cloud ibrido integra servizi di cloud pubblico, servizi di cloud privato e infrastruttura on-premise in un unico ambiente di calcolo distribuito.

Cos'è DevOps?

DevOps velocizza la fornitura di software di qualità superiore combinando e automatizzando il lavoro dei team di sviluppo software e di operazioni IT.

Passa alla fase successiva

IBM® Cloud Virtual Server for VPC offre una capacità di elaborazione di cui è possibile eseguire il provisioning rapidamente con le massime velocità di rete e le risorse di rete definite dal software più sicure disponibili su IBM Cloud. Sviluppata su IBM Cloud VPC (Virtual Private Cloud) e dotata di potenti processori Intel® Xeon® di seconda generazione, questa infrastruttura facile da utilizzare per gli sviluppatori contribuisce a promuovere carichi di lavoro moderni in modo più rapido e facile con profili di istanza preimpostati, una rapida implementazione e un controllo della rete privata in un agile ambiente cloud pubblico. Scegli multi-tenant o dedicato, aggiungi le GPU e paga in base al consumo su base oraria.

Esplora IBM Cloud Virtual Server for VPC