Installare KVM su Debian: differenze tra le versioni
Riga 51: | Riga 51: | ||
== Configurazione == | == Configurazione == | ||
Come prima cosa avviamo il network di default di ''libvirt'': | |||
<pre> | <pre> | ||
# virsh net-start default && virsh net-autostart default | # virsh net-start default && virsh net-autostart default | ||
Riga 57: | Riga 58: | ||
# apt-get install bridge-utils | # apt-get install bridge-utils | ||
</pre> | </pre> | ||
Per fare in modo che le virtual machine possano connettersi alla stessa rete presso cui il server è collegato, esattamente come se fossero dei normali PC, sarà necessario configurare bridge (per approfondimenti si veda la guida: [[Ethernet Bridging | '''Ethernet Bridging''': "trasformare" un computer in un hub/switch]]) e abilitare l'''IP forward'' per dare accesso a internet: | |||
<pre> | <pre> | ||
Versione delle 13:44, 8 mag 2014
Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.
Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template. |
Appunti per una guida su come installare, configurare e gestire KVM.
Prerequisiti
Kernel-based Virtual Machine (KVM) è un'infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V.
Per utilizzare KVM è necessario avere un processore dotato di estensioni per la virtualizzazione; verifichiamo quindi che siano presenti con il seguente comando:
# egrep -c '(vmx|svm)' /proc/cpuinfo
Se il comando restituisce "1" o un numero maggiore le estensioni sono state rilevate; se restituisce "0", significa che il vostro processore non dispone di tali estensioni e dovrete quindi utilizzare una soluzione di virtualizzazione differente, come ad esempio Xen o VirtualBox.
Nel caso vogliate creare VirtualMachine con un quantitativo di RAM superiore ai 2 GB, è necessario avere un processore con architettura X86-64. Anche in questo caso possiamo estrarre questa informazione dal file /proc/cpuinfo:
# egrep -c ' lm ' /proc/cpuinfo
Anche in questo caso, se il comando restituisce un numero diverso da "0", il vostro processore potrà eseguire software a 64 bit.
L’ultima componente in gioco è il kernel del vostro sistema, che deve essere compilato con il supporto ai 64 bit; per verificarlo è sufficiente lanciare:
# uname -m x86_64
Installazione
A causa di alcuni bug presenti nel pacchetto libvirt di Wheezy è consigliabile installare una versione più aggiornata dal repository backports (assicurarsi quindi che il repository backport sia presente nel file /etc/apt/sources.list
):
# apt-get -t wheezy-backports install qemu-kvm virtinst libvirt-bin bridge-utils screen debconf
Diamo la possibilità all'utente con il quale siamo loggati (root) di gestire le macchine virtuali, aggiungendolo ai gruppi corretti:
# adduser `id -un` libvirt # adduser `id -un` kvm
ed eventualmente estendiamo questa possibilità anche a uno o più altri utenti:
# adduser ferdy libvirt
Quindi verifichiamo che l'installazione si sia conclusa correttamente:
# virsh -c qemu:///system list
Dovremmo ottenere:
Id Name State ---------------------------------- #
Il tool utilizzato, virsh, è una shell interattiva che permette di gestire il proprio ambiente di virtualizzazione da linea di comando.
Configurazione
Come prima cosa avviamo il network di default di libvirt:
# virsh net-start default && virsh net-autostart default
# apt-get install bridge-utils
Per fare in modo che le virtual machine possano connettersi alla stessa rete presso cui il server è collegato, esattamente come se fossero dei normali PC, sarà necessario configurare bridge (per approfondimenti si veda la guida: Ethernet Bridging: "trasformare" un computer in un hub/switch) e abilitare l'IP forward per dare accesso a internet:
nano /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
Carichiamo le modifiche:
sysctl -p /etc/sysctl.conf
Per fare in modo che le modifiche appena apportare rimangano anche dopo un riavvio dobbiamo, a causa di un bug segnalato su Ubuntu ma presente anche in Debian Squeeze, apportare i seguenti cambiamenti al file /etc/rc.local, appena prima della riga exit 0:
/sbin/sysctl -p /etc/sysctl.conf
Sulla workstation:
# apt-get install virt-manager ssh-askpass
Sul server:
# adduser utente_workstation libvirt
Sulla workstation:
# adduser utente_workstation libvirt
Sulla workstation: verificare corretto funzionamento connessione SSH.
Sulla workstation: aggiungere una connessione al demone libvirt del server:
$ virt-manager -c qemu+ssh://ferdy@192.168.1.1:22222/system
dove:
- ferdy è il nome utente
- 192.168.1.1 è l'indirizzo IP del server
- 22222 è la porta su cui è in ascolto SSH
Sulla workstation:
- creare una nuova macchina virtuale (fare screenshot)
- avviare installazione
- installare driver virtio:
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
- workaround se la macchina virtuale è Debian:
http://wp.libpf.com/?p=373 Sul server:
# virsh list # apt-get install acpi-support acpid # virsh start my-guest-vm # virsh shutdown my-guest-vm # virsh destroy my-guest-vm
Per arrestare una VM Windows senza essere loggati:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shutdownwithoutlogon 0=disabled 1=enabled
Memo: http://www.miamammausalinux.org/2011/06/implementazione-di-un-server-di-virtualizzazione-con-kvm/
Guida scritta da: Ferdybassi | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |