LINUX.ORG.RU

Libvirt консолидация снапшотов virsh blockpull

 , ,


0

2

ОС Ubuntu 14.04.4

Установлен гипервизор KVM. Создаём тестовую виртуалку vm-test-1. Диск находится в:

-rw------- 1 libvirt-qemu kvm 10739318784 Jul 14 15:58 /home/kvm/vm-test-1.qcow2

Создаём 1-й снапшот:

virsh snapshot-create-as --domain vm-test-1 snapshot1 \
--diskspec vda,file=/home/kvm/images/vm-test-1.qcow2.snapshot1 \
--disk-only --atomic 

Domain snapshot snapshot1 created

Через некоторое время делаю 2-й снапшот:

virsh snapshot-create-as --domain vm-test-1 snapshot2 \
--diskspec vda,file=/home/kvm/images/vm-test-1.qcow2.snapshot2 \
--disk-only --atomic 

Проверяем, что снапшоты есть:

virsh snapshot-list vm-test-1
 Name                 Creation Time             State
------------------------------------------------------------
 snapshot1            2016-07-14 15:58:19 +0300 disk-snapshot
 snapshot2            2016-07-14 15:58:50 +0300 disk-snapshot

ll /home/kvm/images/
-rw------- 1 libvirt-qemu kvm     589824 Jul 14 15:58 vm-test-1.qcow2.snapshot1
-rw------- 1 libvirt-qemu kvm   22478848 Jul 14 16:17 vm-test-1.qcow2.snapshot2 

Т.е. имеем цепочку base ← snapshot1 ← snapshot2

Теперь я хочу смерджить с помощью blockpull снапшоты snapshot1 и snapshot2 и получить цепочку base ← snapshot1. Для этого я пытаюсь сделать по мануалам https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html...

http://vmsplice.net/~stefan/blockpull.html

virsh blockpull vm-test-1 /home/kvm/vm-test-1.qcow2 0 /home/kvm/images/vm-test-1.qcow2.snapshot1 --wait --verbose
error: invalid argument: No device found for specified path 

Никак не пойму, что ему не нравится. Диск есть, снапшоты есть, метаданные о снапшоте есть. Что ему ещё надо? Как мне смерджить/консолидировать снапшоты snapshot1 и snapshot2 ?


https://www.redhat.com/archives/libvirt-users/2012-October/msg00064.html


[root KVM libvirt]# virsh -d 0 blockpull CO1 --path /home/vms/co1.img
--bandwidth 500 --base /home/vms/co1.capture1
blockpull: domain(optdata): CO1
blockpull: path(optdata): /home/vms/co1.img
blockpull: bandwidth(optdata): 500
blockpull: base(optdata): /home/vms/co1.capture1
blockpull: found option <domain>: CO1
blockpull: <domain> trying as domain NAME
error: invalid argument: No device found for specified path

What does: 'virsh domblklist CO1' show? Only the names in that table
are acceptable for the --path argument of 'blockpull'.

что покажет virsh domblklist vm-test-1 ?

mos ★★☆☆☆
()

В примерах везде пишут vd*, а не имя файла. Подозреваю, что надо либо --path=/path/to/qcow2, либо без --path, но тогда имя устройства.

thesis ★★★★★
()
Ответ на: комментарий от mos
virsh -d 0 blockpull vm-test-1 --path /home/kvm/vm-test-1.qcow2 --bandwidth 500 --base /home/kvm/images/vm-test-1.qcow2.snapshot1 
blockpull: domain(optdata): vm-test-1
blockpull: path(optdata): /home/kvm/vm-test-1.qcow2
blockpull: bandwidth(optdata): 500
blockpull: base(optdata): /home/kvm/images/vm-test-1.qcow2.snapshot1
blockpull: found option <domain>: vm-test-1
blockpull: <domain> trying as domain NAME
error: invalid argument: No device found for specified path
virsh domblklist vm-test-1
Target     Source
------------------------------------------------
vda        /home/kvm/images/vm-test-1.qcow2.snapshot2
SoHm
() автор топика
Ответ на: комментарий от thesis

по ссылке которую я привел упоминается в частности, что vd* - это эквивалент пути.

you can also use the simpler 'vda' if that is the device name that owns the /home/vms/co1.capture1 disk image

mos ★★☆☆☆
()
Ответ на: комментарий от thesis
virsh -d 0 blockpull vm-test-1 vda --bandwidth 500 --base /home/kvm/images/vm-test-1.qcow2.snapshot1
blockpull: domain(optdata): vm-test-1
blockpull: path(optdata): vda
blockpull: bandwidth(optdata): 500
blockpull: base(optdata): /home/kvm/images/vm-test-1.qcow2.snapshot1
blockpull: found option <domain>: vm-test-1
blockpull: <domain> trying as domain NAME
Block Pull started
virsh domblklist vm-test-1
Target     Source
------------------------------------------------
vda        /home/kvm/images/vm-test-1.qcow2.snapshot2

Для vda в таком случае должен быть /home/kvm/images/vm-test-1.qcow2.snapshot1 , а не snapshot2 ?

SoHm
() автор топика
Ответ на: комментарий от SoHm

в цитате которую я привел сказано, что только имена из выхлопа virsh domblklist vm-test-1 можно ставить в --path

у тебя не так

mos ★★☆☆☆
()
Ответ на: комментарий от thesis

а, сорри, я не заметил, что у ТС было в ОП.

mos ★★☆☆☆
()
Ответ на: комментарий от thesis

С ключом path также не получается:

virsh -d 0 blockpull vm-test-1 --path /home/kvm/vm-test-1.qcow2 0 --base /home/kvm/images/vm-test-1.qcow2.snapshot1
blockpull: domain(optdata): vm-test-1
blockpull: path(optdata): /home/kvm/vm-test-1.qcow2
blockpull: bandwidth(optdata): 0
blockpull: base(optdata): /home/kvm/images/vm-test-1.qcow2.snapshot1
blockpull: found option <domain>: vm-test-1
blockpull: <domain> trying as domain NAME
error: invalid argument: No device found for specified path
SoHm
() автор топика
Ответ на: комментарий от SoHm

Начал разбираться более деатльно и что-то я похоже упускаю или не понимаю...

Есть снапшоты:

virsh snapshot-list vm-test-1
 Name                 Creation Time             State
------------------------------------------------------------
 snapshot1            2016-07-15 11:57:35 +0300 disk-snapshot
 snapshot2            2016-07-15 11:58:23 +0300 disk-snapshot
 snapshot3            2016-07-15 11:59:23 +0300 disk-snapshot

virsh domblklist vm-test-1
Target     Source
------------------------------------------------
vda        /home/kvm/images/vm-test-1.qcow2.snapshot3

Хочу откатиться к 1-му снапшоту:

virsh snapshot-revert vm-test-1 snapshot1
error: unsupported configuration: revert to external snapshot not supported yes

Что? Отсюда http://www.debianhelp.org/node/1945 я прочитал, что можно откатиться, если поправить XML, но это требует выключения ВМ. И там же пишут, что snapshot-revert не поддерживается в гипервизоре KVM.

Но позвольте. А как тогда работает полная консолидация снапшотов с помощью blockcommit, например выполнив

virsh blockcommit vm-test-1 vda --active --verbose --pivot

После этого мы стали использовать base диск и все внесенные в снапшотах изменения сохранились:

virsh domblklist vm-test-1
Target     Source
------------------------------------------------
vda        /home/kvm/vm-test-1.qcow2

Почему я не могу откатиться к определённому снапшоту?

SoHm
() автор топика
Ответ на: комментарий от SoHm

Почему я не могу откатиться к определённому снапшоту?

живьем? а как вы себе это представляете, ведь system state машины и то что лежит на дисках связано, есть всякие in flight io и все такое. Откат это остановка машины и включение ее уже подключенной с более раннему диску

dyasny ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.