Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Virtualizzazione/Kvm/GestioneDiretta"
Differenze tra le versioni 3 e 28 (in 25 versioni)
Versione 3 del 26/03/2010 18.30.46
Dimensione: 5007
Autore: FabioMarconi
Commento: Iniziata traduzione
Versione 28 del 15/06/2010 20.15.58
Dimensione: 6109
Autore: FabioMarconi
Commento:
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 Emulatori/Kvm/GestioneDiretta
## page was renamed from FabioMarconi/Prove11
## page updated 20-05-2010
#format wiki
#language it
[[Indice(depth=2)]]
[[Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html")]]
[[BR]]

= 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:
There are a number of additional options and additional help is available with : 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:
== Dispositivi di connessione bridged ==
Linea 29: Linea 41:
== Bridged Networking == Prima di avviare '''KVM''' usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni.
Linea 31: Linea 43:
In order to run KVM using bridged networking as a user we need to perform some configuration.  0. Creare il bridge sulla scheda, come descritto nella [:Virtualizzazione/Kvm/Networking#bridge-sull-host:relativa pagina].
Linea 33: Linea 45:
1. First bridge your network card as above [[KVM/Networking#Creating a network bridge on the host]]  0. [:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto: [apt://uml-utilities uml-utilities]
Linea 35: Linea 47:
2. Install uml-utilities

 {{{
 sudo apt-get install uml-utilities
 }}}

3. Set permissions on your tun device. Using any editor, edit ''/etc/udev/rules.d/40-permissions.rules'', add this line at the bottom of the 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 46: Linea 50:
 per impostare i permessi al dispositivo '''tun'''.
Linea 47: Linea 52:
4. Reboot (to bring up your bridge and tun device).  0. Salvare e chiudere il file appena modificato.
Linea 49: Linea 54:
5. Edit ''/etc/kvm/kvm-ifup'' adding sudo in front of the ifconfig and brctl commands  0. Riavviare la macchina per rendere visibili i dispositivi '''bridged''' e '''tun'''.
Linea 51: 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 59: Linea 64:
 0. Salvare e chiudere il file appena modificato.
Linea 60: Linea 66:
6. We need a wrapper script for launching kvm. I put this script in ~/bin and call it '''kvm-bridge'''. If ~/bin is on your path you can call the command directly with '''kvm-bridge'''. This script was modified from a number of sources  0. 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.
Linea 62: Linea 71:
 {{{
 #!/usr/bin/env bash
 # script to manage tap interface allocation
 # for linux 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.
Linea 67: Linea 76:
 # modified by bodhi.zazen from :
 # http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-2511814cb92c14dbe1480089c04f83c281117a86
 # http://ubuntuforums.org/showthread.php?t=528046
 # http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon

 # set up a tap interface for qemu
 # USERID - uid qemu is being run under.
 # impostazione di una interfaccia tap per qemu.
 # USERID - uid sotto il quale è in esecuzione qemu.
Linea 76: Linea 80:
 # generate a random mac address for the qemu nic
 # shell script borrowed from user pheldens @ qemu forum
 # generare un indirizzo macchina casuale peril nic di qemu .
 # shell script preso in prestito dall'utente pheldens @ qemu forum.
Linea 82: Linea 86:
 # specify which NIC to use - see qemu.org for others
 # model=r8169
 # Set model based on this how-to
 # http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon
 # 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.
Linea 90: Linea 94:
 # start kvm with our parameters
 # echo "Bringing up interface $iface with mac address $ranmac"
 # nohup added to allow kvm to run independent of the terminal
 # 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.
Linea 95: Linea 99:
 # kvm has stopped - no longer using tap interface  # kvm è stato fermato - non usare più l'interfaccia tap.
Linea 99: Linea 103:
7. Set the executable bit on the new script you just created:  0. Rendere eseguibile lo script appena creato digitando in un terminale:{{{
 chmod 0755 ~/bin/kvm-bridge
}}}
Linea 101: Linea 107:
 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
}}}

 Aggiungere le seguenti righe alla fine del file:
Linea 102: Linea 113:
 chmod 0755 ~/bin/kvm-bridge
 }}}
 # 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
}}}
Linea 105: Linea 117:
8. Modify sudoers to allow members of the kvm group to run the wrapper kvm-bridge and create a bridged network interface without running KVM as root.

 {{{
 visudo
 }}}

Add these line at the end of the file :
 {{{
 # Allow members of the kvm group to configure a bridged virtual network interface
 %kvm ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/sbin/tunctl
 }}}

9. Now start kvm from the command line. '''You do not need to declare a network interface'''

 {{{
 0. Avviare '''KVM''' da riga di comando. Non è necessario dichiarare una interfaccia network.{{{
Linea 121: Linea 119:
 }}} }}}
Linea 126: Linea 124:
Add these rules to iptables :

{{{
# allow incoming packets for kvm guest
Aggiungere le seguenti regole ad iptables:{{{
# autorizza i pacchetti in ingresso per l'ospite kvm.
Linea 131: Linea 127:
# allow outgoing packets from kvm # autorizza i pacchetti in uscita da kvm.
Linea 135: Linea 131:
Change "$IPADDR_FROM_GUEST_OS" to the actual ip address of the kvm guest (I advise you configure your guests to have a static IP address). 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 137: Linea 133:
If you use ufw, add these rules to ''/etc/ufw/before.rules'' Se si usa '''ufw''', aggiungere queste regole al file `/etc/ufw/before.rules`, vedere anche [http://help.ubuntu-it.org/current/ubuntu/serverguide/it/firewall.html Ubuntu Sicurezza Firewall].
Linea 139: Linea 135:
 * See [[https://help.ubuntu.com/8.04/serverguide/C/firewall.html | Ubuntu Server Guide Firewall]] = Ulteriori risorse =
Linea 141: Linea 137:
 * [https://help.ubuntu.com/community/KVM/Directly Documento originale]
Linea 143: Linea 139:
----
CategoryHomepage CategoryInTraduzione
CategoryVirtualizzazione

Indice(depth=2) Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html") BR

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.

  1. Creare il bridge sulla scheda, come descritto nella [:Virtualizzazione/Kvm/Networking#bridge-sull-host:relativa pagina].
  2. [:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto: [apt://uml-utilities uml-utilities]

  3. 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.

  4. Salvare e chiudere il file appena modificato.
  5. Riavviare la macchina per rendere visibili i dispositivi bridged e tun.

  6. 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
  7. Salvare e chiudere il file appena modificato.
  8. 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
  9. Rendere eseguibile lo script appena creato digitando in un terminale:

     chmod 0755 ~/bin/kvm-bridge
  10. 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
  11. 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/current/ubuntu/serverguide/it/firewall.html Ubuntu Sicurezza Firewall].

Ulteriori risorse


CategoryVirtualizzazione