KVM
(acronimo di Kernel-based Virtual Machine) è una soluzione completa di virtualizzazione, destinata ai
processori x86 che offrono estensioni hardware per la virtualizzazione (Intel VT-x o AMD-V). Essa è composta da un modulo
del kernel generico che fornisce l’infrastruttura chiave (chiamato kvm.ko), e da un modulo legato all’hardware (kvm-intel.ko o kvm-amd.ko). KVM richiede anche una versione modificata dell’emulatore/virtualizzatore QEMU per funzionare.
Usando KVM si possono eseguire diverse macchine virtuali per molti sistemi operativi: ciascuna macchina avrà, ovviamente, il suo hardware virtualizzato
privato.
In quel che segue si partirà da un’installazione host base di CentOS 7.0, per poi arrivare all’installazione e la configurazione
dell’infrastruttura software necessaria per poter virtualizzare sistemi guest.
Panoramica
Dopo aver verificato che il processore in uso supporti Intel VT-x o AMD-V, si provvederà all’installazione e configurazione del servizio libvirt.
L’interfaccia di rete principale verrà messa in bridge, per consentire l’assegnazione di IP univoci a ciascuna macchina virtuale – sebbene ciò non sia
strettamente necessario nei casi in cui la macchina guest necessita esclusivamente dell’accesso.
Infine si mostrerà come creare una macchina virtuale, su cui installeremo CentOS 7.0.
Supporto hardware alla virtualizzazione
KVM ha bisogno di una CPU recente, che supporti le estensioni di virtualizzazione (Intel VT-x o AMD-V) per funzionare. Le caratteristiche del processore in
uso sono visualizzabili accedendo allo pseudofile /proc/cpuinfo. Di conseguenza, possiamo verificare il supporto hardware alla virtualizzazione
con il comando seguente:
[code]egrep '(vmx|svm)' --color=always /proc/cpuinfo[/code]
Un processore AMD che supporta AMD-V restituisce svm; un processore Intel con supporto VT-x, invece, restituisce vmx. Se il valore di
ritorno è null, il processore non supporta la virtualizzazione hardware, rendendo impossibile l’utilizzo di KVM.
Output | Descrizione |
---|---|
svm |
Il processore supporta AMD-V |
vmx |
Il processore supporta Intel VT-x |
null |
Il processore non supporta la virtualizzazione hardware |