Inainte de a incepe clonarea oricarei masini virtuale trebuie mai intai s-a obtinem cateva informatii de baza despre aceasta. Informatiile minime necesare cu privire la sursa masini virtuale ce suntem pe cale de a clona cum ar fi numele si numarul de disc in utilizarea acestuia.
# virsh list Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org runningIn continuare, ne-am putea dori sa cunoastem disc sursa al masinii noastre virtuale precum si locatia sa. Informatiile despre locatia discurilor este optionala, deoarece ne ofera doar un indiciu in cazul in care am stoca noi fisiere pe clona disc:
# virsh dumpxml server1.linuxconfig.org | grep "source file"Vedem ca masina noastra originala virtuala are trei discuri stocate in locatie
/var/lib/libvirt/images/
.Inainte de clonare, masina noastra sursa virtuala trebuie intrerupta / suspendata:
# virsh suspend server1.linuxconfig.org Domain server1.linuxconfig.org suspendedO modalitate de clonare a masini virtuale bazate pe KVM pe RedHat este de a utiliza comutator
--auto-clone
. Principalul avantaj al comutatorului --auto-clone
este ca cloneaza in mod automat un numar nelimitat de discuri sursa , prin urmare , utilizatorul nu are nevoie sa cunoasca locatia si numarul discului atasat la masina virtuala originala.Dezavantajul este ca utilizatorul nu poate specifica nume discului la noile discuri virtuale clonate. Urmatoarea comanda va clona masina virtuala originala server1.linuxconfig.org in noua masina virtuala clona server2.linuxconfig.org automat folosind comutatorul --auto-clone
.
# 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.Dupa cum se poate vedea mai sus
--auto-clone
cloneaza automat toate discurile virtuale atasate la masina virtuala originala. Noua masina virtuala clonata ar trebui sa fie acum in asteptare isi asteapta sa fie pornita:
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org paused - server2.linuxconfig.org shut offPentru a obtine mai mult control asupra noii locatii de disc si numele clonei putem omite comutatorul
--auto-clone
si sa furnizam nume nou discului clonat si calea de destinatie , folosind comutatorul --file
. Notati numarul de argument --file
furnizat ce trebuie sa fie egal cu numarul de discuri atasate la masina virtuala originala. Exemplu:
# 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.In aceasta etapa , suntem gata sa reluam masina noastra originala virtuala server1.linuxconfig.org:
# virsh resume server1.linuxconfig.org Domain server1.linuxconfig.org resumedSi , de asemenea , porniti masina virtuala nou clonata server2.linuxconfig.org:
# virsh start server2.linuxconfig.org Domain server2.linuxconfig.org startedVerificati starea tuturor masinilor virtuale:
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running 3 server2.linuxconfig.org running