Для этого Вам потребуется привилегированный доступ к вашей установке Redhat Linux.
Получить информацию об исходной виртуальной машине
Прежде чем мы начнем клонировать любую виртуальную машину, нам сначала нужно получить некоторую основную информацию о ней. Абсолютно минимальная информация, необходимая для исходной виртуальной машины, которую мы собираемся клонировать, - это ее имя и номер используемого диска. Чтобы получить имя виртуальной машины, запустите:
# virsh list
Id Name State
----------------------------------------------------
1 server1.Ваше_имя.org running
Далее, мы можем узнать количество дисков, используемых нашими исходными виртуальными машинами, а также их местоположение. Информация о расположении дисков является необязательной, поскольку она только дает нам подсказку о том, где хранить новые файлы клонов дисков для согласованности:
# virsh dumpxml server1.linuxconfig.org | grep "source file"
<source file='/var/lib/libvirt/images/server1.Ваше_имя.org.qcow2'/>
<source file='/var/lib/libvirt/images/server1.Ваше_имя.org-1.qcow2'/>
<source file='/var/lib/libvirt/images/server1.Ваше_имя.org-2.qcow2'/>
Из вышеприведенного вывода мы можем видеть, что наша оригинальная виртуальная машина имеет три диска, хранящихся на месте /var/lib/libvirt/images/.
Приостановить исходную виртуальную машину
Перед клонированием наша виртуальная машина-источник должна быть приостановлена:
# virsh suspend server1.Ваше_имя.org
Domain server1.Ваше_имя.org suspended
Авто-клонирование виртуальной машины
Одним из способов клонирования виртуальных машин на основе KVM в Redhat Linux является использование --auto-clone коммутатора. Основным преимуществом --auto-clone коммутатора является то, что он автоматически клонирует любое количество исходных дисков, поэтому пользователю не нужно знать местоположение и номер диска, подключенного к исходной виртуальной машине.
Недостатком является то, что пользователь не может указать имена дисков и гордиться альтернативным расположением новых клонированных виртуальных дисков. Следующая команда linux автоматически клонирует исходную виртуальную машину server1.linuxconfig.org на новую виртуальную машину клонирования server2.Ваше_имя с помощью --auto-cloneswitch.
# virt-clone --original=server1.Ваше_имя.org --name=server2.Ваше_имя.org --auto-clone
WARNING Setting the graphics device port to autoport, in order to avoid conflicting.
Allocating 'server2.Ваше_имя.org.qcow2' | 11 GB 00:00:00
Allocating 'server1.Ваше_имя.org-1-clone.qcow2' | 6.0 GB 00:00:08
Allocating 'server1.Ваше_имя.org-2-clone.qcow2' | 6.0 GB 00:00:00
Clone 'server2.Ваше_имя.org' created successfully.
Как видно из вышеприведенного вывода, --auto-clone автоматически клонируются все виртуальные диски, подключенные к исходной виртуальной машине, и добавляется clone ключевое слово для любых дополнительных дисков. Новая клонированная виртуальная машина должна находиться в shut off состоянии ожидания запуска:
# virsh list --all
Id Name State
----------------------------------------------------
1 server1.Ваше_имя.org paused
- server2.Ваше_имя.org shut off
Клонирование нескольких дисков вручную
Чтобы получить больше контроля над новым местоположением и именем клонированного диска, мы можем опустить --auto-clone коммутатор и указать новое имя и путь клонированного диска с помощью --file коммутатора. Обратите внимание, что количество предоставленных --file аргументов должно быть равно количеству дисков, подключенных к исходной виртуальной машине. Пример:
# virt-clone --original=server1.Ваше_имя.org --name=server2.Ваше_имя.org --file /var/lib/libvirt/images/server2.Ваше_имя.org.img --file /var/lib/libvirt/images/server2.Ваше_имя.org-1.img --file /var/lib/libvirt/images/server2.Ваше_имя.org-2.img
WARNING Setting the graphics device port to autoport, in order to avoid conflicting.
Allocating 'server2.Ваше_имя.org.img' | 11 GB 00:00:00
Allocating 'server2.Ваше_имя.org-1.img' | 6.0 GB 00:00:08
Allocating 'server2.Ваше_имя.org-2.img' | 6.0 GB 00:00:00
Clone 'server2.Ваше_имя.org' created successfully.
Резюме / Start
На этом этапе мы готовы возобновить нашу оригинальную виртуальную машину server1.Ваше_имя.org:
# virsh resume server1.Ваше_имя.org
Domain server1.Ваше_имя.org resumed
также запустить новую клонированную виртуальную машину server2.Ваше_имя.org:
# virsh start server2.Ваше_имя.org
Domain server2.Ваше_имя.org started
Проверьте состояние всех виртуальных машин:
# virsh list --all
Id Name State
----------------------------------------------------
1 server1.Ваше_имя.org running
3 server2.Ваше_имя.org running