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 1 e 17 (in 16 versioni)
Versione 1 del 22/03/2010 22.26.30
Dimensione: 5045
Autore: FabioMarconi
Commento:
Versione 17 del 19/04/2010 11.18.59
Dimensione: 5708
Commento: to be continued....
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#title Using KVM Directly
<<Include(KVM/Header)>>
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents(3)>>||
#format wiki
#language it
[[Indice(depth=2)]]
[[Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html")]]
[[BR]]
KVM/!GestioneDiretta
Linea 5: Linea 8:
= Using KVM Directly =
Linea 7: Linea 9:
While the rest of this documentation focuses on using KVM through libvirt, it is also possible to work with KVM directly. This is not the recommended way but can be useful in some cases. = Introduzione =
Linea 9: Linea 11:
KVM is very similar to qemu and it is possible to run machines from the command line. The basic syntax is :
{{{
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 è:{{{
Linea 13: Linea 20:
 * -m = memory (in MB)
 * -hda = first hard drive
  * You can use a number of image file types including .img, .cow
  * You can also boot a hard drive. '''Be careful with this option as you do not want to boot the host root partition'''
   * Syntax -hda /dev/sda
   * This will call your grub menu from your MBR when you boot kvm.
 * -cdrom can be an iso image or a CD/DVD drive.
 * -boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)
 * -smp = number of 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 24: Linea 21:
There are a number of additional options and additional help is available with : dove:
Linea 26: Linea 23:
{{{  * '''-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, n''':
  * '''a''': avvio da floppy,
  * '''c''': disco rigido,
  * '''d''': CD-ROM,
  * '''n''': 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 30: Linea 38:
== Dispositivi di connessione bridged ==
Linea 31: Linea 40:
== Bridged Networking == Prima di avviare '''KVM''' usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni.
Linea 33: Linea 42:
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 [[KVM/Networking#Creazione di un bridge di rete sul host QUI]]*****ancorare
Linea 35: Linea 44:
1. First bridge your network card as above [[KVM/Networking#Creating a network bridge on the host]]

2. Install uml-utilities
2. Installare uml-utilities
Linea 43: Linea 50:
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 : 3. Impostare i permessi al dispositivo tun, tramite qualsiasi editor di testo, modificare ''/etc/udev/rules.d/40-permissions.rules'', aggiungendo queste linee alla fine del file:
Linea 49: Linea 56:
4. Reboot (to bring up your bridge and tun device). 4. Riavviare (per rendere visibili i dispositivi bridged e tun).
Linea 51: Linea 58:
5. Edit ''/etc/kvm/kvm-ifup'' adding sudo in front of the ifconfig and brctl commands 5. Editare ''/etc/kvm/kvm-ifup'' aggiungendo sudo davanti ai comandi ifconfig e brctl:
Linea 62: Linea 69:
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 6. Per lanciare KVM è necessario uno script wrapper. È possibile inserirlo in ~/bin e chiamarlo '''kvm-bridge''', e richiamarlo direttamene con il comando '''kvm-bridge'''.
Linea 65: Linea 72:
 #!/usr/bin/env bash
 # script to manage tap interface allocation
 # for linux kernels >= 2.6.18
 #!/usr/bin/env bash.
 # script per gestire l'allocazione dell'interfaccia tap.
 # per kernels >= 2.6.18.
Linea 69: 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
 # 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 74: Linea 81:
 # 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 78: Linea 85:
 # 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 84: Linea 91:
 # 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 92: Linea 99:
 # 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 97: Linea 104:
 # kvm has stopped - no longer using tap interface  # kvm è stato fermato - non usare più l'interfaccia tap.
Linea 101: Linea 108:
7. Set the executable bit on the new script you just created: 7. Rendere eseguibile lo script appena creato:
Linea 107: Linea 114:
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. 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.
Linea 113: Linea 120:
Add these line at the end of the file : Aggiungere queste linee alla fine del file:
Linea 115: Linea 122:
 # Allow members of the kvm group to configure a bridged virtual network interface  # Autorizzare i membri del gruppo KVM a configurare una interfaccia di rete bridged virtuale.
Linea 119: Linea 126:
9. Now start kvm from the command line. '''You do not need to declare a network interface''' 9. Avviare KVM da riga di comando. '''Non è necessario dichiarare una interfaccia network'''.
Linea 128: Linea 135:
Add these rules to iptables : Aggiungere le seguenti regole ad iptables:
Linea 131: Linea 138:
# allow incoming packets for kvm guest # autorizza i pacchetti in ingresso per l'ospite kvm.
Linea 133: Linea 140:
# allow outgoing packets from kvm # autorizza i pacchetti in uscita da kvm.
Linea 137: Linea 144:
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 139: Linea 146:
If you use ufw, add these rules to ''/etc/ufw/before.rules'' Se si usa ufw, aggiungere queste regole a ''/etc/ufw/before.rules''
Linea 141: Linea 148:
 * See [[https://help.ubuntu.com/8.04/serverguide/C/firewall.html | Ubuntu Server Guide Firewall]]  * Vedere [http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/firewall.html Ubuntu Sicurezza Firewall]
Linea 143: Linea 150:
= Ulteriori risorse =
 *[https://help.ubuntu.com/community/KVM/Directly Documento originale]
##traduzionepagina del 10.02.2009
Linea 145: Linea 154:
----
CategoryHomepage
CategoryHomepage CategoryInTraduzione

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, n:

    • a: avvio da floppy,

    • c: disco rigido,

    • d: CD-ROM,

    • n: 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 KVM/Networking#Creazione di un bridge di rete sul host QUI*****ancorare

2. Installare uml-utilities

  •  sudo apt-get install uml-utilities

3. Impostare i permessi al dispositivo tun, tramite qualsiasi editor di testo, modificare /etc/udev/rules.d/40-permissions.rules, aggiungendo queste linee alla fine del file:

  •  KERNEL=="tun", GROUP="kvm", MODE="0660"

4. Riavviare (per rendere visibili i dispositivi bridged e tun).

5. Editare /etc/kvm/kvm-ifup aggiungendo 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

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

7. Rendere eseguibile lo script appena creato:

  •  chmod 0755 ~/bin/kvm-bridge

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:

  •  # 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

9. 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 a /etc/ufw/before.rules

Ulteriori risorse


CategoryHomepage CategoryInTraduzione