Crmgo Blog

KVM, greška pri kloniranju u CentOS 7

KVM, greška pri kloniranju u CentOS 7

При клонирању виртуелне машине (ВМ) јавља се непријатан баг повезан са њеним конфигурационим фајлом. У том фајлу постоји секција: где је test име ВМ. Дакле, приликом клонирања командом: virt-clone -o test -n test2 -f /tmp/test2.img, у путањи се ово име не мења с…

KVM, greška pri kloniranju u CentOS 7

При клонировании ВМ возникает неприятный баг, связанный с её конфигурационным файлом. В этом файле есть секция:

<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-test/org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

где test — имя ВМ. При клонировании командой:

virt-clone -o test -n test2 -f /tmp/test2.img

в пути это имя не меняется с test на test2, и если ВМ test не запущена, новая ВМ test2 не запустится и будет выведена ошибка:

Цитата
ошибка: Не удалось запустить домен test2 ошибка: внутренняя ошибка: Процесс завершился при подключении к монитору: 2016-02-12T06:02:41.024054Z qemu-kvm: -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-test/org.qemu.guest_agent.0,server,nowait: Failed to bind socket: No such file or directory 2016-02-12T06:02:41.024121Z qemu-kvm: -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-test/org.qemu.guest_agent.0,server,nowait: chardev: opening backend "socket" failed

Чтобы это исправить, нужно вручную поменять имя ВМ в пути с test на test2, т.е. получится

<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-test2/org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

и выполнить команду:

systemctl restart libvirtd.service
Чтобы не перезагружаться, нужно править командой virsh edit
Ещё бывает, что при клонировании ссылка остаётся на старый qcow2:
<source file='/var/lib/libvirt/images/Old.qcow2'/>
Я с этим борюсь так:
cp /var/lib/libvirt/images/Old.qcow2 /var/lib/libvirt/images/New.qcow2
И исправляю в virsh edit New:
<source file='/var/lib/libvirt/images/New.qcow2'/>

Napomena: tekst može biti uz pomoć AI uz ljudsku proveru. Odgovoran: Dmytro Lomaka, Kaltenkirchen.

Kategorije: KVM