Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 43 del 12/04/2010 15.27.01

Nascondi questo messaggio

Indice(depth=2) Informazioni(help="http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/virtualization.html"; forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html";)

KVM/!CreazioneOspiti

Introduzione

In questa pagina viene spiegato come creare delle macchine virtuali dopo aver installato KVM.

Ciò può essere fatto usando:

Ubuntu-vm-builder

Ubuntu-vm-builder è il miglior strumento per la creazione di macchine virtuali che eseguono Ubuntu JEOS 8.04, dato che l'installazione avviene interamente tramite script.

Installazione

Installare il pacchetto: [apt://ubuntu-vm-builder ubuntu-vm-builder]

Immagine(Icone/Piccole/note.png,,center)

A partire da Ubuntu 8.10 il pacchetto viene chiamato: python-vm-builder; il comando: vmbuilder. Per un dettagliato tutorial consultare la [http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/jeos-and-vmbuilder.html relativa pagina].

Utilizzo elementare

Digitando il seguente comando in una finestra di terminale:

sudo ubuntu-vm-builder kvm hardy

si creerà una Ubuntu Hardy, con tutte le opzione impostate in modo predefinito.

Oppure è possibile usare questo URL:

in uno strumento per script java per generare la lunga serie di parametri disponibili per ubuntu-vm-builder.

Se si preferisce usare Virsh per la gestione della macchina virtuale è necessario aggiungere questo parametro:

--libvirt qemu:///system

sfortunatamente lo script java non contiene una opzione per farlo automaticamente.

Utilizzando il parametro --libvirt, il file XML non viene archiviato localmente ma viene inserito in libvirt.

  • Utilizzare:
    virsh -c qemu:///system
    oppure,
    virt-manager -c qemu:///system
    per avviare la macchina o modificarne la configurazione.

Esempio più complesso

In seguito è riportato un esempio più complesso:

ubuntu-vm-builder kvm hardy \
                  --domain newvm \
                  --dest newvm \
                  --arch i386 \
                  --hostname hostnameformyvm \
                  --mem 256 \
                  --user john \
                  --pass doe \
                  --ip 192.168.0.12 \
                  --mask 255.255.255.0 \
                  --net 192.168.0.0 \
                  --bcast 192.168.0.255 \
                  --gw 192.168.0.1 \
                  --dns 192.168.0.1 \
                  --mirror http://archive.localubuntumirror.net/ubuntu \
                  --components main,universe \
                  --addpkg vim openssh-server \
                  --libvirt qemu:///system ;

ciò creerà una nuova macchina virtuale Ubuntu Hardy chiamata newvm:

  • L' hostname sarà impostato a hostnameformyvm.

  • La rete sarà configurata con un indirizzo IP statico e il gateway all'indirizzo «192.168.0.1.».

  • Il parametro --mirror richiederà allo script lo scaricamento dei pacchetti da un mirror locale di Ubuntu piuttosto che dal server centrale (ciò diminuirà di molto il tempo necesario alla creazione della macchina virtuale).

  • L'argomento components abiliterà i repository main e universe predefiniti sulla macchina virtuale.

  • --addpkg vim installerà Vim.

  • L'aggiunta di openssh-server a --addpkg consentirà di eseguire una sessione ssh sulla nuova macchina una volta avviata (assicurarsi che i dispositivi di connessione funzionino correttamente).

  • L'ultimo argomento aggiungerà automaticamente la macchina virtuale appena creata a KVM.

Immagine(Icone/Piccole/note.png,,center)

Il manuale non fornisce spiegazioni dettagliate sull'utilizzo dell'opzione --exec, usata per lanciare uno script durante il processo dicostruzione della macchina virtuale. Quindi se si specifica l'opzione --exec è necessario fornire l'indirizzo completo dallo script. In mancanza di ciò il programma d'installazione restituirà un errore relativo all'impossibilità di recuperare lo script.

Avviso bug

Sembra che il pacchetto linux-package non venga trovato durante la costruzione della macchina virtuale fino a che non viene aggiunta l'opzione restricted nell'argomento component di ubuntu-vm-builder. Se non specificato si otterrà un Sistema Operativo non funzionante che si avvierà solamente da grub.

Per risolvere il problema modificare l'argomento component come da esempio:

--components 'main,universe,restricted'

presumendo che ciò sia un bug di ubuntu-vm-builder.

Intallazione su un dispositivo a blocchi grezzo

Ubuntu-vm-builder non consente la creazione di macchine virtuali su un dispositivo a blocchi grezzo (come ad esempio una partizione indipendente, oppure una condivisione iSCSI). È possibile usare ubuntu-vm-builder per creare l'immagine qcow2 e quindi spostare la VM sul dispositivo a blocchi con qemu-img; se /dev/sdb è il disco sul quale trasferire la macchina virtuale procedere come segue:

  • Digitare il seguente comando in una finestra di terminale:

    sudo qemu-img convert root.qcow2 -O raw /dev/sdb
  • Aprire con un [:Ufficio/EditorDiTesto:editor di testo] il file definizione XML per la VM in /etc/libvirt/qemu/, ed impostare il file sorgente per essere:

    <source file='/dev/sdb'/>
  • Ridefinire la macchina virtuale ed avviarla; così facendo funzionerà da /dev/sdb.

Per avere un elenco più dettagliato delle capacità di Ubuntu-vm-builder, utilizzare:

 ubuntu-vm-builder --help

Virt-install: creazione di una macchina virtuale in grado di eseguire altri sistemi operativi

Virt-install a differenza di Ubuntu-vm-builder non crea una nuova macchina virtuale ma consente di avviare un immagine ISO e di installare qualsiasi sistema operativo.

Per l'elenco dei sistemi operativi supportati, consultare la [http://www.linux-kvm.org/page/Guest_Support_Status relativa pagina].

Di seguito viene descritto come installare Windows XPA.

Esempio di installazione di Windows

Immagine(Icone/Piccole/note.png,,center)

La seguente descrizione è relativa a windows XP sotto KVM-62 (Predefinito in Hardy durante la stesura di questo testo). In questa versione è impossibile l'esecuzione di windows 2000 server in modalità accelerata, per cui occorre usare KVM-72 adattato per Hardy fornito a: [https://launchpad.net/~soren/+archive questo indirizzo].

  • Copiare la ISO del sistema da installare nella vostra directory funzionante:

    yhamon@paris:~$ ls *.iso
    ubuntu-8.04-server-i386.iso  windowsxpsp2.iso

    oppure creare una ISO da cd/dvd:

    dd if=/dev/dvd of=dvd.iso
  • Installare il pacchetto [apt://python-virtinst python-virtinst]

  • Eseguire virt-install.

Su Ubuntu Hardy con KVM-62, l'installazione di windows XP non funziona se accelerata (cioè, usando --accelerate), quindi bigsogna installare senza questo argomento e sosituire qemu con kvm nel file definizione XML in /etc/libvirt/qemu dopo il primo riavvio:

sudo virt-install --connect qemu:///system -n xpsp2 -r 512 -f windows.qcow2 -s 12 -c windowsxpsp2.iso --vnc --noautoconsole --os-type windows --os-variant winxp

Immagine(Icone/Piccole/note.png,,center)

Per la versione di Ubuntu 8.10' aggiungere l'opzione --hvm per avere l'ospite completamente virtualizzato e far si che il precedente comando funzioni.

Questo avvierà una nuova macchina virtuale dalla ISO. Connettersi alla nuova macchina virtuale usando virt-viewer:

virt-viewer -c qemu:///system xpsp2

Oppure se KVM è in funzione su di un altro server:

virt-viewer -c qemu+ssh://ip/system xpsp2

È quindi possibile avviare l'installazione. Un'altro problema è che dopo il primo riavvio, nel processo di installazione, il programma di installazione di windows, riferirà che non è più possibile trovare il disco d'installazione. Quindi nel file definizione XML della MV aggiungere le seguenti linee alla lista dei dispositivi:

<domain type='kvm'>
  [...]
  <devices>
    [...]
    <disk type='file' device='cdrom'>
      <source file='//home/nomeutente/windowsxpsp2.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
    </disk>
  </devices>
</domain>

Ridefinire la MV in virsh (sudo virsh define /etc/libvirt/qemu/xpsp2.xml) e riavviare la VM.

Un altro problema con la combinazione virt-install - Wndowsin combination with Windows è che il disco immagine creato è corrotto. inizialmente l'installazione sembra funzionare, ma dopo il primo riavvio si fermerà riportando il messaggio 'A read error occured'. Ciò può essere agevolmente risolto creando un nuovo disco immagine (prima dell'installazione):

qemu-img create -f qcow2 disk0.qcow2 12G

Sovrascrive il file qcow2 creato da virt-install con questo nuovo file, riavviare la VM.

Esempio di installazione di Ubuntu

Per installare Ubuntu Hardy eseguire il comando:

sudo virt-install --connect qemu:///system -n hardy -r 512 -f hardy.qcow2 -s 12 -c hardy-server-amd64.iso --vnc --noautoconsole --os-type linux --os-variant ubuntuHardy --accelerate --network=network:default

L'opzione '--network' imposta la machina all'uso della rete libvirt predefinita. Per un elenco delle reti libvirt usare il comando:

virsh net-list --all

Altri sistemi operativi

È possibile installare altri sistemi operativi seguendo il metocdo precedente. Consultare 'man virt-install' per maggiori informazioni e differenti opzioni per la macchina virtuale, SO supportati e relative varianti.

Attenzione: questo metodo non funziona con il LiveCD di Fedora Fedora LiveCD e probabilmente anche altri; vedere: [https://bugs.launchpad.net/ubuntu/+source/kvm/+bug/220463 bug #220463].

Clonazione di una macchina virtuale

È possibile clonare una macchina virtuale usando lo strumento virt-clone. Quest'ultimo duplicherà l'immagine del disco e configurerà il dominio della macchina virtuale.

Per clonare una macchina virtuale chiamata srchost in una nouva macchina newhost, assicurarsi che la macchina virtuale srchost non sia in esecuzione ed eseguire il seguente comando:

$ virt-clone --connect=qemu:///system -o srchost -n newhost -f /indirizzo/per/newhost.qcow2

Creazione di una macchina virtuale da un'immagine preesistente

Assumendo che:

  • Virt-manager viene utilizzato per gestire macchine virtuali.
  • Si vuole aggiungere un'immagine preesistente a virt-manager.

Caso d'uso:

Nel caso si voglia corrompere un immagine è possibile sperimentare pesantemente sulle macchine virtuali, senza dover eseguire complete reinstallazioni, usando qcow2 con overlays. Un lato positivo di questo metodo, rispetto alla clonazione, è il minor utilizzo di spazio su disco.

Procedura:

1. Creare un immagine del hard disk in formato qcow2:

$ qemu-img create -f qcow2 <nome immagine>.qcow2

2. Installare la macchina virtuale usando virt-manager:

Invece di consentire a virt-manager la creazione di una nuova immagine del disco, indirizzarlo all'uso dell'immagine precedentemente creata.

3. Creazione dell'overlay:

$ qemu-img create -f qcow2 -b <nome immagine>.qcow2 <nome immagine>.ovl

4. Creare l'immagine virtuale del descrittore XML.

Leggere prima di proseguire:

$ man virt-image
$ man 5 virt-image

Copiare il file XML creato:

$ cp ~/.libvirt/qemu/<nome vm>.xml overlay.xml

Aprire ed editare il file XML copiato con l'editor preferito:

$ <editor> overlay.xml

Creare l'immagine virtuale del descrittore XML basandosi sulla pagina del manuale: virt-image(5), commentando il testo originale ed usandolo come guida durante la creazione del descrittore.

5. Creare la nuova macchina virtuale dall'immagine del descrittore:

$ virt-image --vnc overlay.xml

6. Avviare e verificare che la nuova macchina sia basata sull'overlay.

Avviare la macchina virtuale e testarla come meglio si crede. In caso di malfunzionamento, basta semplicemente distruggerla e cancellarla. Quindi ricreare l'immagine e la macchina overlay come descritto sopra. È possibile effettuare cambiamenti overlay all'immagine di base. In tal caso consultare il manuale alla pagina qemu-img per i dettagli.

Ulteriori risorse


CategoryHomepage CategoryInTraduzione