Obiettivo
Le seguenti istruzioni spiegheranno come clonare macchine virtuali basate su KVM su Redhat Linux dalla riga di comando usando virt-clone
comando.
Sistema operativo e versioni software
- Sistema operativo: – Redhat 7.3
- Software: – libvirtd (libvirt) 2.0.0
Requisiti
Sarà richiesto l'accesso privilegiato all'installazione di Redhat Linux.
Difficoltà
FACILE
Convenzioni
- # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando
sudo
comando - $ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato
Istruzioni
Ottieni le informazioni sulla macchina virtuale di origine
Prima di iniziare a clonare qualsiasi macchina virtuale, dobbiamo prima ottenere alcune informazioni di base su di essa. Le informazioni minime in assoluto richieste sulla macchina virtuale di origine che stiamo per clonare sarebbero il nome e il numero del disco in uso. Per eseguire il nome delle macchine virtuali:
# virsh list Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running
Successivamente, potremmo voler conoscere il numero di dischi utilizzati dalle nostre macchine virtuali di origine e la sua posizione. Le informazioni sulla posizione dei dischi sono facoltative in quanto forniscono solo un suggerimento su dove archiviare i nuovi file del disco clone per motivi di coerenza:
# virsh dumpxml server1.linuxconfig.org | grep "source file" <source file='/var/lib/libvirt/images/server1.linuxconfig.org.qcow2'/> <source file='/var/lib/libvirt/images/server1.linuxconfig.org-1.qcow2'/> <source file='/var/lib/libvirt/images/server1.linuxconfig.org-2.qcow2'/>
Dall'output di cui sopra possiamo vedere che la nostra macchina virtuale originale ha tre dischi archiviati nella posizione /var/lib/libvirt/images/
.
Sospendi la macchina virtuale di origine
Prima che la clonazione possa aver luogo, la nostra macchina virtuale di origine deve essere messa in pausa/sospesa:
# virsh suspend server1.linuxconfig.org Domain server1.linuxconfig.org suspended
Clone automatico della macchina virtuale
Un modo per clonare macchine virtuali basate su KVM su Redhat Linux è usare --auto-clone
interruttore. Il vantaggio principale di --auto-clone
l'opzione è che clona automaticamente un numero qualsiasi di dischi di origine, quindi l'utente non ha bisogno di conoscere la posizione e il numero del disco collegato alla macchina virtuale originale.
Lo svantaggio è che l'utente non è in grado di specificare i nomi dei dischi e vanta una posizione alternativa ai nuovi dischi virtuali clonati. Il seguente comando linux clonerà la macchina virtuale originale server1.linuxconfig.org
alla nuova macchina virtuale clonata server2.linuxconfig.org
automaticamente usando --auto-clone
interruttore.
# virt-clone --original=server1.linuxconfig.org --name=server2.linuxconfig.org --auto-clone WARNING Setting the graphics device port to autoport, in order to avoid conflicting. Allocating 'server2.linuxconfig.org.qcow2' | 10 GB 00:00:00 Allocating 'server1.linuxconfig.org-1-clone.qcow2' | 5.0 GB 00:00:07 Allocating 'server1.linuxconfig.org-2-clone.qcow2' | 5.0 GB 00:00:00 Clone 'server2.linuxconfig.org' created successfully.
Come possiamo vedere dall'output sopra, --auto-clone
ha clonato automaticamente tutti i dischi virtuali collegati alla macchina virtuale originale e ha aggiunto clone
parola chiave su eventuali dischi aggiuntivi. La nuova macchina virtuale clonata dovrebbe essere ora in attesa in shut off
stato da avviare:
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org paused - server2.linuxconfig.org shut off
Clone manualmente più dischi
Per ottenere un maggiore controllo sulla nuova posizione e nome del disco clonato, possiamo omettere --auto-clone
cambia e fornisci tutti i nuovi nomi del disco clonato e il percorso di destinazione utilizzando --file
interruttore. Nota il numero di --file
gli argomenti forniti devono essere uguali al numero di dischi collegati alla macchina virtuale originale. Esempio:
# virt-clone --original=server1.linuxconfig.org --name=server2.linuxconfig.org --file /var/lib/libvirt/images/server2.linuxconfig.org.img --file /var/lib/libvirt/images/server2.linuxconfig.org-1.img --file /var/lib/libvirt/images/server2.linuxconfig.org-2.img WARNING Setting the graphics device port to autoport, in order to avoid conflicting. Allocating 'server2.linuxconfig.org.img' | 10 GB 00:00:00 Allocating 'server2.linuxconfig.org-1.img' | 5.0 GB 00:00:07 Allocating 'server2.linuxconfig.org-2.img' | 5.0 GB 00:00:00 Clone 'server2.linuxconfig.org' created successfully.
Riprendi/Avvia
A questo punto siamo pronti per riprendere la nostra macchina virtuale originale server1.linuxconfig.org
:
# virsh resume server1.linuxconfig.org Domain server1.linuxconfig.org resumed
e avvia anche la macchina virtuale appena clonata server2.linuxconfig.org
:
# virsh start server2.linuxconfig.org Domain server2.linuxconfig.org started
Controlla lo stato di tutte le macchine virtuali:
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running 3 server2.linuxconfig.org running