14534
Commento: CategoryVirtualizzazione
|
15001
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 3: | Linea 3: |
##page updated 25-10-2010 | |
Linea 25: | Linea 26: |
||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Per il corretto funzionamento di vmbuilder è necessario avere installato grub. Il sistema operativo host può tranquillamente essere avviato con lilo, ma il sistema ospite deve essere avviato da grub. Grub deve essere installato sulla maclhina ospite per costruire l'immagine. |
Indice(depth=2) Informazioni(help="http://help.ubuntu-it.org/current/ubuntu/serverguide/it/virtualization.html"; forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html";)
Introduzione
In questa pagina viene spiegato come creare delle macchine virtuali dopo aver installato KVM.
Ciò può essere fatto usando:
[http://help.ubuntu-it.org/current/ubuntu/serverguide/it/jeos-and-vmbuilder.html ubuntu-vm-builder], sviluppato da Canonical.
[http://help.ubuntu-it.org/current/ubuntu/serverguide/it/libvirt.html virt-install], uno script python sviluppato da Red Hat.
[http://help.ubuntu-it.org/current/ubuntu/serverguide/it/libvirt.html#libvirt-management virt-manager]: uno strumento GUI.
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]
||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>Immagine(Icone/Piccole/note.png,,center) ||<style="padding:0.5em; border:none;">Per il corretto funzionamento di vmbuilder è necessario avere installato grub. Il sistema operativo host può tranquillamente essere avviato con lilo, ma il sistema ospite deve essere avviato da grub. Grub deve essere installato sulla maclhina ospite per costruire l'immagine. 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].
Digitando il seguente comando in una finestra di terminale: 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 Se si preferisce usare Virsh per la gestione della macchina virtuale è necessario aggiungere questo parametro: 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.
In seguito è riportato un esempio più complesso: 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. 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.
Sembra che il pacchetto Per risolvere il problema modificare l'argomento component come da esempio: presumendo che ciò sia un bug di
Digitare il seguente comando in una finestra di terminale: 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: Ridefinire la macchina virtuale ed avviarla; così facendo funzionerà da /dev/sdb. Per avere un elenco più dettagliato delle capacità di
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.
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 Home: in caso di solo possesso del CD è possibile creare il file .iso inserendo il CD nell'apposito lettore e digitando in una finestra di terminale: 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). Installare senza questo argomento e sosituire qemu con kvm nel file definizione XML in /etc/libvirt/qemu dopo il primo riavvio: 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. Per la versione di Ubuntu 9.10 usare l'opzione --accelerate invece di --hvm nel caso in cui la macchina virtuale dovesse bloccarsi 1 o 2 minuti dopo l'inizio dell'installazione di Windows xp. Connettersi alla nuova macchina virtuale usando virt-viewer: Oppure se KVM è in funzione su di un altro server: 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 macchina virtuale aggiungere le seguenti linee alla lista dei dispositivi: Ridefinire la macchina virtuale in virsh digitando da una finestra di terminale: Un altro problema con la combinazione virt-install - 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 risolto creando un nuovo disco immagine (prima dell'installazione): questo comando sovrascrive il file qcow2 creato da virt-install. Con questo nuovo file, riavviare la macchina virtuale.
Per installare Ubuntu 8.04 digitare il seguente comando in un terminale: L'opzione --network imposta la machina all'uso della rete libvirt predefinita. Per un elenco delle reti libvirt digitare il seguente comando in un yerminale:
È possibile installare altri sistemi operativi seguendo il metodo precedente. Consultare: per maggiori informazioni e differenti opzioni per la macchina virtuale, sistemi operativi supportati e relative varianti. Questo metodo non funziona con il LiveCD di Fedora e probabilmente anche altri. Per maggiori informazioni vedere: [https://bugs.launchpad.net/ubuntu/+source/kvm/+bug/220463 bug #220463].
È 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 e digitare il seguente comando in un terminale:
Virt-manager viene utilizzato per gestire macchine virtuali. Nel caso si voglia corrompere un immagine è possibile sperimentarlo sulle macchine virtuali senza dover eseguire complete reinstallazzioni, usando qcow2 con overlays. Un lato positivo di questo metodo rispetto alla clonazione è il minor utilizzo di spazio su disco. Procedura: Creare un immagine del hard disk in formato qcow2: 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. Creare l'overlay digitanto il seguente comando in un terminale: Prima di proseguire leggere: Copiare il file XML creato: Aprire con un [:Ufficio/EditorDiTesto:editor di testo] il file overlay.xml. Creare la nuova macchina virtuale dall'immagine del descrittore digitando in un terminale 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.
[http://wiki.ubuntu-it.org/FabioMarconi/Prove12 Domande frequenti] [http://packages.ubuntu.com/search?keywords=apt-cacher-ng apt-cacher-ng per il mirroring] [https://help.ubuntu.com/community/KVM/CreateGuests Documento originale]
Utilizzo elementare
sudo ubuntu-vm-builder kvm hardy
--libvirt qemu:///system
virsh -c qemu:///system
oppure, virt-manager -c qemu:///system
per avviare la macchina o modificarne la configurazione. 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 ;
Avviso bug
--components 'main,universe,restricted'
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: sudo qemu-img convert root.qcow2 -O raw /dev/sdb
<source file='/dev/sdb'/>
ubuntu-vm-builder --help
Virt-install: creazione di una macchina virtuale in grado di eseguire altri sistemi operativi
Esempio di installazione di Windows
yhamon@paris:~$ ls *.iso
ubuntu-8.04-server-i386.iso windowsxpsp2.iso
dd if=/dev/dvd of=dvd.iso
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
Questo avvierà una nuova macchina virtuale dalla ISO.
virt-viewer -c qemu:///system xpsp2
virt-viewer -c qemu+ssh://ip/system xpsp2
<domain type='kvm'>
[...]
<devices>
[...]
<disk type='file' device='cdrom'>
<source file='//home/nomeutente/windowsxpsp2.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
</devices>
</domain>
sudo virsh define /etc/libvirt/qemu/xpsp2.xml
qemu-img create -f qcow2 disk0.qcow2 12G
Esempio di installazione di Ubuntu
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
virsh net-list --all
Altri sistemi operativi
man virt-install
Clonazione di una macchina virtuale
virt-clone --connect=qemu:///system -o srchost -n newhost -f /indirizzo/per/newhost.qcow2
Creazione di una macchina virtuale da un'immagine preesistente
qemu-img create -f qcow2 nome_immagine.qcow2
sostituire «nome_immagine» con il nome dell'immagine in uso. qemu-img create -f qcow2 -b <nome immagine>.qcow2 <nome immagine>.ovl
man virt-image
man 5 virt-image
cp ~/.libvirt/qemu/<nome vm>.xml overlay.xml
virt-image --vnc overlay.xml
Ulteriori risorse