5254
Commento: Terminata traduzione....
|
6103
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
#title Using KVM Directly | ## page was renamed from FabioMarconi/Prove11 #format wiki #language it [[Indice(depth=2)]] [[Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html")]] [[BR]] KVM/!GestioneDiretta = Introduzione = La documentazione trattata fino ad ora è focalizzata all'uso di '''KVM''' attraverso '''libvirt''', in questa pagina verrà spiegata la gestione diretta di '''KVM''', un metodo non raccomandabile, ma in alcuni casi, utile. |
Linea 5: | Linea 16: |
Siccome il resto di questa documentazione è focalizzato sull'uso di KVM attraverso libvirt, ricordiamo che è possibile anche la gestione diretta di KVMW. Non è un metodo raccomandabile, ma in alcuni casi può tornare utile. | '''KVM''' è molto simile a '''qemu''' e rende possibile l'esecuzione di macchine da riga di comando. |
Linea 7: | Linea 18: |
KVM è molto simile a qemu e rende possibile l'esecuzione di macchine da riga di comando. La sintassi di base è: {{{ |
La sintassi di base è:{{{ |
Linea 11: | Linea 21: |
* -m = memoria (in MB) * -hda = primo disco rigido * Si possono usare vari tipi di file immagine inclusi .img, .cow * È possibile avviare un disco rigido. '''Prestare attenzione nell'uso di questa opzione se non si vuole avviare la partizione di root del host''' * Sintassi -hda /dev/sda * Questo richiama il menu di grub dal MBR quando viene lanciato KVM. * -cdrom può essere sia un'immagine iso che un lettore CD/DVD. * -boot [a|c|d|n] avvio da floppy (a), disco rigido (c), CD-ROM (d), oppure rete (n) * -smp = numbero delle CPU * -alt-grab change Ctrl-Alt mouse grab combination for Ctrl-Alt-Shift (very practical if you often use some control key combinations like Ctrl-Alt-Del or Windows-E) |
|
Linea 22: | Linea 22: |
Per ulteriori opzioni o aiuto digitare: | dove: |
Linea 24: | Linea 24: |
{{{ | * '''-m''': è la memoria (in MB) * '''-hda''': è il primo disco rigido. È possibile usare vari tipi di file immagine inclusi `.img`, `.cow`. Per avviare un disco rigido è necessario prestare attenzione nell'uso di questa opzione, se non si vuole avviare la partizione di root del host. La sintassi corretta è '''-hda /dev/sda'''. Questa richiama il menu di grub dal MBR quando viene lanciato '''KVM'''. * '''-cdrom''' può essere sia un'immagine ISO che un lettore CD/DVD. * '''-boot a, c, d''' o '''n''': * '''a''': avvio da floppy, * '''c''': avvio da disco rigido, * '''d''': avvio da CD-ROM, * '''n''': avvio da da rete. * '''-smp''': è il numero delle CPU. * '''-alt-grab''' cambia la combinazione per il grab del puntatore da '''Ctrl-Alt''' a '''Ctrl-Alt-Shift''' (molto pratico se si usano spesso combinazioni di tasti come '''Ctrl-Alt-Del''' o '''Windows-E'''). Per ulteriori opzioni digitare:{{{ |
Linea 28: | Linea 39: |
Linea 31: | Linea 41: |
Prima di avviare KVM usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni. | Prima di avviare '''KVM''' usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni. |
Linea 33: | Linea 43: |
1. Creare il bridge sulla scheda, come descritto [[KVM/Networking#Creating a network bridge on the host QUI]]*****ancorare 2. Installare uml-utilities |
0. Creare il bridge sulla scheda, come descritto nella [http://wiki.ubuntu-it.org/FabioMarconi/Prove8#head-a634bdf356cef98f30c2e98c1e559f0b3cdbf637 relativa pagina ]. |
Linea 36: | Linea 45: |
{{{ sudo apt-get install uml-utilities }}} |
0. [:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto: [apt://uml-utilities uml-utilities] |
Linea 40: | Linea 47: |
3. Impostare i permessi al dispositivo tun, utilizzando qualsiasi editor di testo, modificare ''/etc/udev/rules.d/40-permissions.rules'', aggiungendo queste linee alla fine del file: {{{ |
0. Aprire con un [:Ufficio/EditorDiTesto:editor di testo] il file `/etc/udev/rules.d/40-permissions.rules` e aggiugere alla fine del file la seguente riga:{{{ |
Linea 45: | Linea 50: |
per impostare i permessi al dispositivo '''tun'''. | |
Linea 46: | Linea 52: |
4. Riavviare (per rendere visibili i dispositivi bridged e tun). | 0. Salvare e chiudere il file appena modificato. |
Linea 48: | Linea 54: |
5. Editare ''/etc/kvm/kvm-ifup'' aggiungendo sudo davanti ai comandi ifconfig e brctl: | 0. Riavviare la macchina per rendere visibili i dispositivi '''bridged''' e '''tun'''. |
Linea 50: | Linea 56: |
{{{ | 0. Aprire con un [:Ufficio/EditorDiTesto:editor di testo] il file `/etc/kvm/kvm-ifup` e aggiungere «sudo» davanti ai comandi «ifconfig» e «brctl»:{{{ |
Linea 58: | Linea 64: |
0. Salvare e chiudere il file appena modificato. | |
Linea 59: | Linea 66: |
6. Per lanciare KVM è necessario uno script wrapper. È possibile inserirlo in ~/bin e chiamarlo '''kvm-bridge''', e richiamarlo direttamene con il comando '''kvm-bridge'''. {{{ |
0. Per lanciare '''KVM''' è necessario uno script wrapper. È possibile inserirlo in `~/bin` e chiamarlo '''kvm-bridge''' e richiamarlo direttamene con il comando '''kvm-bridge'''.{{{ |
Linea 63: | Linea 68: |
# script to manage tap interface allocation. # for linux kernels >= 2.6.18. |
# script per gestire l'allocazione dell'interfaccia tap. # per kernels >= 2.6.18. |
Linea 69: | Linea 74: |
# http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon. | # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10. |
Linea 84: | Linea 89: |
# http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon. | # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10. |
Linea 98: | Linea 103: |
7. Rendere eseguibile lo script appena creato: | 0. Rendere eseguibile lo script appena creato digitando in un terminale:{{{ chmod 0755 ~/bin/kvm-bridge }}} |
Linea 100: | Linea 107: |
{{{ chmod 0755 ~/bin/kvm-bridge }}} |
0. Modificare '''sudoers''' per consentire ai membri del gruppo '''KVM''' di eseguire lo script '''wrapper kvm-bridge''' e creare una intefaccia di rete bridged senza l'esecuzione di '''KVM''' come superutente:{{{ visudo }}} |
Linea 104: | Linea 111: |
8. Modificare sudoers per consentire ai membri del gruppo kvm di eseguire lo script wrapper kvm-bridge e creare una intefaccia di rete bridged senza l'esecuzione di KVM come superutente. {{{ visudo }}} Aggiungere queste linee alla fine del file: |
Aggiungere le seguenti righe alla fine del file: |
Linea 114: | Linea 115: |
}}} | }}} |
Linea 116: | Linea 117: |
9. Avviare KVM da riga di comando. '''Non è necessario dichiarare una interfaccia network'''. {{{ |
0. Avviare '''KVM''' da riga di comando. Non è necessario dichiarare una interfaccia network.{{{ |
Linea 120: | Linea 119: |
}}} | }}} |
Linea 125: | Linea 124: |
Aggiungere le seguenti regole ad iptables: {{{ |
Aggiungere le seguenti regole ad iptables:{{{ |
Linea 134: | Linea 131: |
Sostituire "$IPADDR_FROM_GUEST_OS" con l'attuale indirizzo ip dell'ospite di kvm. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico). | Sostituire «$IPADDR_FROM_GUEST_OS» con l'attuale indirizzo ip dell'ospite di '''kvm'''. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico). |
Linea 136: | Linea 133: |
Se si usa ufw, aggiungere queste regole a ''/etc/ufw/before.rules'' | Se si usa '''ufw''', aggiungere queste regole al file `/etc/ufw/before.rules`, vedere anche [http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/firewall.html Ubuntu Sicurezza Firewall]. |
Linea 138: | Linea 135: |
* Vedere [https://help.ubuntu.com/8.04/serverguide/C/firewall.html Ubuntu Server Guide Firewall] | = Ulteriori risorse = |
Linea 140: | Linea 137: |
*[https://help.ubuntu.com/community/KVM/Directly Documento originale] | |
Linea 142: | Linea 140: |
---- |
Indice(depth=2) Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html") BR KVM/!GestioneDiretta
Introduzione
La documentazione trattata fino ad ora è focalizzata all'uso di KVM attraverso libvirt, in questa pagina verrà spiegata la gestione diretta di KVM, un metodo non raccomandabile, ma in alcuni casi, utile.
Gestione diretta di KVM
KVM è molto simile a qemu e rende possibile l'esecuzione di macchine da riga di comando.
La sintassi di base è:
kvm -m 512 -hda disk.img -cdrom ubuntu.iso -boot d -smp 2
dove:
-m: è la memoria (in MB)
-hda: è il primo disco rigido. È possibile usare vari tipi di file immagine inclusi .img, .cow. Per avviare un disco rigido è necessario prestare attenzione nell'uso di questa opzione, se non si vuole avviare la partizione di root del host. La sintassi corretta è -hda /dev/sda. Questa richiama il menu di grub dal MBR quando viene lanciato KVM.
-cdrom può essere sia un'immagine ISO che un lettore CD/DVD.
-boot a, c, d o n:
a: avvio da floppy,
c: avvio da disco rigido,
d: avvio da CD-ROM,
n: avvio da da rete.
-smp: è il numero delle CPU.
-alt-grab cambia la combinazione per il grab del puntatore da Ctrl-Alt a Ctrl-Alt-Shift (molto pratico se si usano spesso combinazioni di tasti come Ctrl-Alt-Del o Windows-E).
Per ulteriori opzioni digitare:
kvm --help
Dispositivi di connessione bridged
Prima di avviare KVM usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni.
Creare il bridge sulla scheda, come descritto nella [http://wiki.ubuntu-it.org/FabioMarconi/Prove8#head-a634bdf356cef98f30c2e98c1e559f0b3cdbf637 relativa pagina ].
[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto: [apt://uml-utilities uml-utilities]
Aprire con un [:Ufficio/EditorDiTesto:editor di testo] il file /etc/udev/rules.d/40-permissions.rules e aggiugere alla fine del file la seguente riga:
KERNEL=="tun", GROUP="kvm", MODE="0660"
per impostare i permessi al dispositivo tun.
- Salvare e chiudere il file appena modificato.
Riavviare la macchina per rendere visibili i dispositivi bridged e tun.
Aprire con un [:Ufficio/EditorDiTesto:editor di testo] il file /etc/kvm/kvm-ifup e aggiungere «sudo» davanti ai comandi «ifconfig» e «brctl»:
#!/bin/sh switch=$(ip route ls | awk '/^default / { for(i=0;i<NF;i++) { if ($(i) == "dev") print $(i+1) }}') '''sudo''' /sbin/ifconfig $1 0.0.0.0 up '''sudo''' /usr/sbin/brctl addif ${switch} $1 exit 0
- Salvare e chiudere il file appena modificato.
Per lanciare KVM è necessario uno script wrapper. È possibile inserirlo in ~/bin e chiamarlo kvm-bridge e richiamarlo direttamene con il comando kvm-bridge.
#!/usr/bin/env bash. # script per gestire l'allocazione dell'interfaccia tap. # per kernels >= 2.6.18. # modificato da bodhi.zazen con l'ausilio di: # http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-2511814cb92c14dbe1480089c04f83c281117a86. # http://ubuntuforums.org/showthread.php?t=528046. # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10. # impostazione di una interfaccia tap per qemu. # USERID - uid sotto il quale è in esecuzione qemu. USERID=`whoami` # generare un indirizzo macchina casuale peril nic di qemu . # shell script preso in prestito dall'utente pheldens @ qemu forum. ranmac=$(echo -n DE:AD:BE:EF ; for i in `seq 1 2` ; \ do echo -n `echo ":$RANDOM$RANDOM" | cut -n -c -3` ;done) # specificare quale NIC usare - vedere qemu.org per altri NIC. # model=r8169. # impostare il modello di scheda di rete. # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10. model=rtl8139 iface=`sudo tunctl -b -u $USERID` # avviare kvm con questi parametri. # echo "rendere visibile l'interfaccia $iface con indirizzo macchina $ranmac". # nohup aggiunto per consentire a kvm di essere indipendente dal terminale. nohup kvm -net nic,vlan=0,macaddr=$ranmac -net tap,vlan=0,ifname=$iface $@ # kvm è stato fermato - non usare più l'interfaccia tap. sudo tunctl -d $iface &> /dev/null
Rendere eseguibile lo script appena creato digitando in un terminale:
chmod 0755 ~/bin/kvm-bridge
Modificare sudoers per consentire ai membri del gruppo KVM di eseguire lo script wrapper kvm-bridge e creare una intefaccia di rete bridged senza l'esecuzione di KVM come superutente:
visudo
Aggiungere le seguenti righe alla fine del file:# Autorizzare i membri del gruppo KVM a configurare una interfaccia di rete bridged virtuale. %kvm ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/sbin/tunctl
Avviare KVM da riga di comando. Non è necessario dichiarare una interfaccia network.
kvm-bridge -m 512 -hda disk.img -cdrom ubuntu.iso -boot -d -smp 2
iptables
Aggiungere le seguenti regole ad iptables:
# autorizza i pacchetti in ingresso per l'ospite kvm. IPTABLES -A FORWARD -d $IPADDR_FROM_GUEST_OS -j ACCEPT # autorizza i pacchetti in uscita da kvm. IPTABLES -A FORWARD -s $IPADDR_FROM_GUEST_OS -j ACCEPT
Sostituire «$IPADDR_FROM_GUEST_OS» con l'attuale indirizzo ip dell'ospite di kvm. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico).
Se si usa ufw, aggiungere queste regole al file /etc/ufw/before.rules, vedere anche [http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/firewall.html Ubuntu Sicurezza Firewall].
Ulteriori risorse
[https://help.ubuntu.com/community/KVM/Directly Documento originale]