Nell’ambito della virtualizzazione hardware si possono suddividere le risorse di un sistema fisico su diversi sistemi virtuali. In questo modo si divide ogni sistema guest, inclusi tutti i programmi che vi vengono eseguiti, dall’hardware soggiacente.
Di solito nella pratica le macchine virtuali entrano in campo per isolare precisi processi e applicazioni per motivi di sicurezza. Rispetto agli altri concetti di virtualizzazione, le VM offrono un forte incapsulamento e fungono perciò come base per prodotti hosting in cui si possono gestire più server client su una comune piattaforma hardware. La creazione di una macchina virtuale è la base per le offerte di shared hosting e VPS (Virtual Private Server). Poiché ogni sistema ospitante viene eseguito in un ambiente di runtime isolato, in una VM i processi incapsulati non influenzano né il sistema host né altri sistemi guest.
In un contesto aziendale si utilizzano le macchine virtuali per ridurre i costi di gestione e di manutenzione delle infrastrutture IT. Le imprese talvolta si dotano di estese infrastrutture IT che rimangono inutilizzate per la maggior parte della giornata. Con le macchine virtuali si riducono notevolmente questi momenti di inattività: anziché mettere a disposizione una corrispondente macchina fisica per ogni campo di applicazione dell’IT aziendale, sempre più aziende si stanno spostando su server di posta, database, file o applicazioni in ambienti virtuali isolati sulla stessa efficiente piattaforma hardware.
Questo concetto è implementato come parte del consolidamento dei server. Infatti tendenzialmente è più conveniente alimentare una singola grande piattaforma di elaborazione per diversi sistemi virtuali rispetto a gestire molti piccoli calcolatori. In particolare i processori sono ancora costosi da acquistare. Il tempo inutilizzato del processore è perciò un costo inutile che si può evitare optando per i sistemi virtuali.
Un ulteriore campo di applicazione degli ambienti virtuali è lo sviluppo software. I programmatori che sviluppano le applicazioni per diverse architetture di sistema spesso si appoggiano a macchine virtuali per i test dei software. Numerosi prodotti hypervisor permettono il funzionamento in parallelo di diversi sistemi operativi o versioni di sistema. Le macchine virtuali si possono creare, clonare ed eliminare dal disco fisso senza avanzi di dati semplicemente premendo un pulsante. Inoltre i processi difettosi all’interno di una macchina virtuale, a causa dell’incapsulamento, non hanno alcun effetto sul sistema soggiacente.
Gli utenti privati normalmente fanno ricorso a hypervisor con funzioni di emulazione per eseguire applicazioni che sono state scritte per un’altra architettura di sistema. Su questo punto bisogna stare attenti al fatto che sia la virtualizzazione dell’hardware che l’emulazione sono sempre accompagnate da una perdita di prestazioni. Se per esempio si desidera eseguire un programma di Linux in una VM su un calcolatore Windows, bisogna attingere a risorse aggiuntive sia per l’hypervisor che per il sistema guest. Una simile applicazione incapsulata di Linux non ha quindi più a disposizione l’intera potenza di prestazioni dell’hardware soggiacente: in questi casi si parla di overhead.