Questa guida è stata verificata solo con versioni obsolete di Ubuntu, potrebbe non essere più valida. Vuoi contribuire ad aggiornarla? Clicca qui!

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

In questa pagina viene spiegata la gestione delle macchine virtuali da riga di comando o da interfaccia grafica.

Gestione da terminale

Per la gestione delle macchine virtuali da terminale usare Virsh.

Definizione della nuova Macchina Virtuale

Prima di gestire la macchina virtuale con virsh, è necessario definirla:

 virsh --connect qemu:///system
Connecting to uri: qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # define /etc/libvirt/qemu/newvm.xml
Domain newvm defined from /etc/libvirt/qemu/newvm.xml

Per elencare la nuova macchina virtuale, si deve usare list --inactive oppure list --all, dato che list senza opzioni elenca solo le macchine attualmente in esecuzione.

Come elencare le MV

Virsh consente di elencare le macchine virtuali presenti sull'host:

yhamon@paris:/etc/libvirt/qemu$ virsh --connect qemu:///system
Connecting to uri: qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # help list
  NAME
    list - list domains

  SYNOPSIS
    list [--inactive | --all]

  DESCRIPTION
    Returns list of domains.

  OPTIONS
    --inactive       list inactive domains
    --all            list inactive & active domains

virsh # list
 Id Name                 State
----------------------------------
 15 mirror               running
 16 vm2                  running

virsh # list --all
 Id Name                 State
----------------------------------
 15 mirror               running
 16 vm2                  running
  - test5                shut off

Definire, indefinire, avviare, spegnere e distruggere macchine virtuali

Le macchine virtuali visualizzate con list --all sono definite da un file XML. Ogni macchina virtuale è configurata tramite un file XML in /etc/libvirt/qemu.

Sospensione e ripristino di una macchina virtuale

Virsh consente di sospendere e riavviare facilmente una macchina virtuale:

virsh # suspend mirror
Domain mirror suspended

virsh # resume mirror
Domain mirror resumed

Modifica degli attributi di una macchina virtuale

Libvirt memorizza la sua configurazione come .xml in /etc/libvirt/qemu. Il file .xml è facilmente comprensibile, ed è simile ai file *.vmx di VMware, quindi è possibile editare questi file sul posto e riavviare libvirt di modo che i cambiamenti abbiano effetto.

Il metodo raccomandato per la modifica degli attributi di una macchina virtuale è tramite virsh oppure virt-manager (sempre che supporti i cambiamenti hardware che volete effettuare):

  1. Esportare il file xml della macchina virtuale da editare (aka 'dump')

  2. Editare il file xml.

  3. Importare il file xml. (aka 'define')

Per esempio, per editare la macchina chiamata foo (per avere l'elenco delle macchine usare virsh list --all), eseguire:

 virsh dumpxml foo > /tmp/foo.xml
(editare /tmp/foo.xml come necessario)
 virsh define /tmp/foo.xml

Aggiunta di CPU

KVM permette di creare ospiti SMP.

Per allocare due CPU in una macchina virtuale, fare il dump del file xml come sopra, quindi editarlo per avere:

<domain type='kvm'>
  ...
  <vcpu>2</vcpu>
  ...
</domain>

Definire la macchina virtuale come sopra.

Aggiunta di memoria

Per cambiare l'allolocazione di memoria in una macchina virtuale, fare il dump del file xml come sopra, quindi editarlo per avere:

<domain type='kvm'>
  ...
  <memory>262144</memory>
  <currentMemory>262144</currentMemory>
  ...
</domain>

Definire la macchina virtuale come sopra.

Tenere a mente che l'allocazione di memoria è in kilobytes, quindi per allocare 512 MB di memoria, usare 512 * 1024, oppure 524288.

Cambiare il modello di scheda di rete

kvm e qemu attualmente e in maniera prestabilita usano il NIC «rtl8139».

I NIC supportati in Ubuntu 8.04 sono «i82551», «i82557b», «i82559er», «ne2k_pci», «pcnet», «rtl8139», «e1000», e «virtio».

Per usare un NIC alternativo, fare il dump del file xml come sopra, quindi editarlo per avere:

<domain type='kvm'>
  ...
    <interface type='network'>
      ...
      <model type='e1000'/>
    </interface>
  ...
</domain>

Ridefinire la macchina virtuale come sopra.

Aggiunta di dispositivi USB passanti

Limitazioni

Modifica di Apparmor

Per consentire a un programma software di accedere correttamente a un dispositivo usb è necessario modificare Apparmor.

Aggiunta di dispositivi USB

Cercare, relativamente all'USB il codice del costruttore (Vendor ID) e del prodotto (Product ID).

Per fare ciò digitare il seguente comando in una finestra di terminale:

lsusb

il risultato sarà simile al seguente:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 012: ID 0a5c:2110 Broadcom Corp. Bluetooth Controller
Bus 005 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Se per esempio bisogna aggiungere «Broadcom Corp. Bluetooth Controller» i codici identificativi (ID) del costruttore e del prodotto sono rispettivamente «0a5c» e «2110».

Questi valori vanno inseriti nel profilo xml. Ciò può essere fatto tramite virsh con il comando edit <domain>:

<domain type='kvm'>
  <name>windowsxp</name>
  <devices>
    <hostdev mode='subsystem' type='usb'>
      <source>
        <vendor id='0x0a5c'/>
        <product id='0x2110'/>
      </source>
    </hostdev>
  </devices>
</domain>

Ottenere nuovi ID

Ulteriori risorse


CategoryVirtualizzazione CategoryDaRevisionare

Virtualizzazione/Kvm/GestioneOspiti (l'ultima modifica è del 02/12/2022 17.08.21, fatta da gnomefanatic)