Da tempo la vir­tua­liz­za­zio­ne è diventata in­di­spen­sa­bi­le nel contesto aziendale e nei server di uso pro­fes­sio­na­le. Su un unico computer fisico possono essere gestiti diversi sistemi ospiti virtuali. Vi elen­chia­mo alcuni tra i vantaggi prin­ci­pa­li:

  • i sistemi possono essere separati in base alla funzione senza hardware ag­giun­ti­vi, ad esempio in server di posta, di file e di ap­pli­ca­zio­ni.
  • Un sistema ospite può essere per così dire messo in pausa (“congelato”) e ri­pri­sti­na­to sem­pli­ce­men­te premendo un pulsante.
  • La mi­gra­zio­ne verso un nuovo hardware avviene in bre­vis­si­mo tempo.
  • I sistemi ospiti sono infine scalabili a proprio pia­ci­men­to e con­sen­to­no di reagire di­na­mi­ca­men­te ai picchi di utilizzo.
  • Si crea una base hardware uniforme per tutti i sistemi ospiti. I conflitti tra driver sono pre­via­men­te esclusi.

Mentre il sistema operativo Linux è piuttosto singolare nell’area del desktop e per gli utenti privati, lato server è con­si­de­ra­to già da tempo come sistema con­so­li­da­to. Ecco perché svolge un ruolo im­por­tan­te come base per la vir­tua­liz­za­zio­ne.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Che cos’è KVM?

La Kernel-based Virtual Machine (KVM), in­tro­dot­ta dalla società Qumranet nel 2006, è stata uf­fi­cial­men­te acquisita nel kernel Linux 2.6.20 all’inizio del 2007. L’anno suc­ces­si­vo Qumranet è stata ac­qui­sta­ta dal di­stri­bu­to­re Linux RedHat. Per svi­lup­pa­re ul­te­rior­men­te la tec­no­lo­gia, RedHat ha fondato la Open Vir­tua­li­za­tion Alliance (OVA) con IBM. A questa alleanza hanno par­te­ci­pa­to aziende come Suse, Intel e HP.

KVM è stret­ta­men­te collegato al software di emu­la­zio­ne QEMU; esso mette a di­spo­si­zio­ne delle funzioni per la vir­tua­liz­za­zio­ne dell’hardware, mentre Linux KVM gestisce l’as­se­gna­zio­ne delle risorse dal sistema ospite. Per questo motivo spesso si utilizza la de­no­mi­na­zio­ne KVM/QEMU. Poiché KVM è parte in­te­gran­te di Linux, la soluzione di vir­tua­liz­za­zio­ne non può essere uti­liz­za­ta su computer Windows. Viceversa, Windows è sup­por­ta­to come sistema ospite accanto alla maggior parte dei sistemi operativi unixoid come Linux, Solaris e BSD. KVM è incluso di default nella maggior parte delle di­stri­bu­zio­ni Linux, ma deve essere abilitato.

Fun­zio­na­men­to di KVM-Linux nel dettaglio

Per capire come funziona la Kernel-based Virtual Machine, è ne­ces­sa­rio prima di tutto aprire una parentesi sui principi di vir­tua­liz­za­zio­ne. Vir­tua­liz­za­zio­ne significa che uno o più sistemi operativi completi (sistemi ospiti) possono essere eseguiti su un computer host. L’hardware messo a di­spo­si­zio­ne dal sistema ospite è ricreato lato software o, gestito da un hy­per­vi­sor, ripartito con le risorse hardware reali. L’hy­per­vi­sor è un livello di gestione e tra­du­zio­ne tra hardware reale e virtuale. A seconda del tipo di vir­tua­liz­za­zio­ne, è quindi ne­ces­sa­rio tradurre i requisiti dell’hardware reale o ef­fet­tua­re solo l’as­se­gna­zio­ne delle azioni richieste, come ad esempio un calcolo nel pro­ces­so­re.

Ci sono diversi tipi di vir­tua­liz­za­zio­ne:

  • Vir­tua­liz­za­zio­ne completa: l’hardware è com­ple­ta­men­te simulato lato software. Non è quindi ne­ces­sa­ria alcuna in­te­ra­zio­ne con l’hardware reale, il che rende superflui anche i driver relativi. Questa variante è re­la­ti­va­men­te lenta.
  • Pa­ra­vir­tua­liz­za­zio­ne: il sistema ospite in­te­ra­gi­sce di­ret­ta­men­te con l’hy­per­vi­sor e richiede driver con­fi­gu­ra­ti ap­po­si­ta­men­te.
  • Pa­ra­vir­tua­liz­za­zio­ne sup­por­ta­ta da hardware: il supporto hardware è già integrato nel pro­ces­so­re. Questo aumenta l’ef­fi­cien­za e riduce lo sforzo di ade­gua­men­to ne­ces­sa­rio per i sistemi ospiti. I moderni pro­ces­so­ri Intel (Intel-VT-x) e AMD (AMD-V) sono dotati di questa fun­zio­na­li­tà. Even­tual­men­te potrebbe essere ne­ces­sa­rio attivarli nel BIOS/UEFI.

Inoltre, si possono di­stin­gue­re due tipi di hy­per­vi­sor:

  • Tipo 1 (Bare Metal): l’hy­per­vi­sor funziona di­ret­ta­men­te sull’hardware uti­liz­za­to senza essere in­cor­po­ra­to in un sistema operativo.
  • Tipo 2 (Hosted): l’hy­per­vi­sor è integrato nel sistema operativo ospite ed è attivato da questo.

Linux KVM è un hy­per­vi­sor di tipo 2 e utilizza la pa­ra­vir­tua­liz­za­zio­ne sup­por­ta­ta da hardware. Ciò che lo rende speciale, tuttavia, è la sua in­te­gra­zio­ne diretta nel kernel.

N.B.

“Kernel” è la parola inglese uti­liz­za­ta in in­for­ma­ti­ca per indicare il “cuore” di un sistema operativo. In esso sono integrate le funzioni basilari del sistema operativo, ad esempio l’accesso all’hardware e l’as­se­gna­zio­ne del tempo di calcolo ai pro­ces­so­ri in un sistema mul­ti­ta­sking. L’accesso al kernel è par­ti­co­lar­men­te protetto (modalità kernel) e i requisiti a esso richiesti sono trattati in modo pri­vi­le­gia­to dai pro­ces­so­ri.

A causa della stretta con­nes­sio­ne con il kernel, si discute sul fatto che il sistema non presenti anche elementi di un hy­per­vi­sor di tipo 1.

Quali sono i com­po­nen­ti della Kernel-based Virtual Machine?

Il pacchetto KVM com­ples­si­vo è composto da diversi com­po­nen­ti:

  • Esten­sio­ne del kernel: contiene l’esten­sio­ne effettiva kernel.ko, che è il livello di tra­du­zio­ne da hardware reale a virtuale. Comprende anche i moduli kvm-amd e kvm-intel adattati ai pro­ces­so­ri.
  • libvirt: l’in­ter­fac­cia di pro­gram­ma­zio­ne delle ap­pli­ca­zio­ni (API) per l’in­di­riz­za­men­to delle macchine virtuali, che possono così essere con­trol­la­te e gestite. Libvirt include anche strumenti, come una riga di comando chiamata virsh e l’in­ter­fac­cia grafica Virtual Machine Manager.
  • QEMU: si tratta di un programma fon­da­men­tal­men­te in­di­pen­den­te per emulare i computer e gestire le macchine virtuali. Linux KVM utilizza le sue fun­zio­na­li­tà per emulare l’hardware e mi­glio­ra­re la velocità at­tra­ver­so la pa­ra­vir­tua­liz­za­zio­ne. In molte di­stri­bu­zio­ni entrambi i com­po­nen­ti sono offerti in un unico pacchetto di in­stal­la­zio­ne.
  • Kvmtool: un’al­ter­na­ti­va più snella a QEMU, non ancora in grado, però, di so­sti­tuir­lo.
  • VirtIO-Driver: driver speciali per sistemi ospiti che sono adattati all’hy­per­vi­sor e con­sen­to­no la pa­ra­vir­tua­liz­za­zio­ne.

Campi di ap­pli­ca­zio­ne di KVM

La Kernel-based Virtual Machine è usata fre­quen­te­men­te, spe­cial­men­te quando si lavora con sistemi di server pro­fes­sio­na­li.

Il KVM di Linux acquista ulteriore rilevanza grazie alla sua in­te­gra­zio­ne come hy­per­vi­sor nella popolare soluzione cloud OpenStack.

Vantaggi e svantaggi di KVM

Infine, con­si­de­ria­mo bre­ve­men­te alcuni vantaggi e svantaggi della soluzione di vir­tua­liz­za­zio­ne:

Vantaggi:

  • sistema maturo e con­so­li­da­to
  • già incluso nella maggior parte delle di­stri­bu­zio­ni Linux
  • gratuito e open source
  • una “Kernel Virtual Machine” autentica, il che assicura pre­sta­zio­ni e stabilità
  • sviluppo da parte di aziende rinomate
  • am­mi­ni­stra­zio­ne au­to­ma­tiz­za­ta possibile tramite libvirt

Svantaggi:

  • di­spo­ni­bi­le solo per sistemi Linux
  • necessità di un hardware potente per il computer host
  • impegno formativo per la gestione
  • la cen­tra­liz­za­zio­ne dell’hardware aumenta il rischio di guasto del sistema (un “Single Point of Failure” può essere ridotto con una strategia di backup in­tel­li­gen­te)

Al­ter­na­ti­ve a Linux KVM

Nell’ambito dei software li­be­ra­men­te ac­ces­si­bi­li con fun­zio­na­li­tà simili, esistono diverse al­ter­na­ti­ve a Linux KVM. Una di queste è XEN, soluzione di vir­tua­liz­za­zio­ne sempre stret­ta­men­te legata a Linux ma non integrata nel kernel.

L’affermato provider com­mer­cia­le VMWare offre al­ter­na­ti­ve alla pa­ra­vir­tua­liz­za­zio­ne con i suoi server ESXi e una vir­tua­liz­za­zio­ne completa con la sua work­sta­tion. Il lettore VMWare è di­spo­ni­bi­le gra­tui­ta­men­te per uso privato.

Un’altra al­ter­na­ti­va gratuita alla vir­tua­liz­za­zio­ne completa è Vir­tual­box, di­spo­ni­bi­le come base per tutti i comuni sistemi operativi.

Con il sistema Hyper-V, Microsoft fornisce una soluzione di pa­ra­vir­tua­liz­za­zio­ne per Windows la cui fun­zio­na­li­tà è pa­ra­go­na­bi­le a quella di KVM perché dotato sia di un server Windows Hyper-V dedicato sia di fun­zio­na­li­tà integrate nei sistemi operativi dei server. In più, Hyper-V è incluso anche nelle versioni Windows 10 Pro­fes­sio­nal e En­ter­pri­se.

Cloud Backup powered by Acronis
Riduci i tempi di inat­ti­vi­tà e proteggi i carichi di lavoro
  • Backup au­to­ma­ti­ci e recupero dei dati
  • Pia­ni­fi­ca­zio­ne e gestione intuitive delle attività
  • Pro­te­zio­ne dalle minacce basata sul­l'in­tel­li­gen­za ar­ti­fi­cia­le

In sintesi

Fles­si­bi­li­tà e sca­la­bi­li­tà sono due argomenti quasi im­bat­ti­bi­li quando si parla di vir­tua­liz­za­zio­ne. I sistemi operativi ospiti con­ti­nua­no a essere mantenuti snelli e uti­liz­za­ti per ap­pli­ca­zio­ni spe­ci­fi­che. Se i sistemi sono re­go­lar­men­te sot­to­po­sti a backup su supporti di me­mo­riz­za­zio­ne separati dal punto di vista spaziale, il rischio di guasto è minimo.

Chiunque utilizzi Linux per il proprio server non può fare a meno di prendere in con­si­de­ra­zio­ne KVM. L’in­te­gra­zio­ne nel kernel e lo sviluppo da parte di pro­dut­to­ri affermati sono due buoni motivi per sce­glier­lo.

Vai al menu prin­ci­pa­le