Я пытаюсь сделать снимок с помощью KVM в соответствии с этой процедурой .
Должно быть, я в какой-то момент все испортил, потому что я в состоянии, которого я не понимаю.
Моя ВМ называется prod
. Он был создан в файле /srv/vm/prod.qcow2
.
Видимо, нет запущенного снимка: я работаю над базовым файлом. Я могу догадаться, потому что дата /srv/vm/prod.qcow2
изменения файла меняется каждую минуту или около того. Кроме того, эта команда подтверждает это:
# virsh domblklist prod
Target Source
------------------------------------------------
vda /srv/vm/prod.qcow2
И нечего блокировать коммит
# virsh blockcommit prod vda --active --pivot
error: invalid argument: top '/srv/vm/prod.qcow2' in chain for 'vda' has no backing file
Тем не менее, libvirt сохраняет след старого снимка:
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
snap 2015-06-09 12:11:33 +0200 disk-snapshot
Файл дескриптора /var/lib/libvirt/qemu/snapshot/prod/snap.xml
:
<domainsnapshot>
<name>snap</name>
<state>disk-snapshot</state>
<creationTime>1433844693</creationTime>
<memory snapshot='no'/>
<disks>
<disk name='vda' snapshot='external' type='file'>
<driver type='qcow2'/>
<source file='/srv/vm/snap.qcow2'/>
</disk>
</disks>
[...]
Исходный файл /srv/vm/snap.qcow2
был удален.
Учитывая метод, который я пытаюсь реализовать, весьма вероятно, что этот снимок был создан с помощью следующей команды:
virsh snapshot-create-as --domain prod snap --diskspec vda,file=/srv/vm/snap.qcow2 --disk-only --atomic
Я не могу удалить это:
# virsh snapshot-delete prod snap
error: Failed to delete snapshot snap
error: unsupported configuration: deletion of 1 external disk snapshots not supported yet
Таким образом, я нахожусь в состоянии, когда снимок был создан, по-видимому, больше не используется и не может быть удален.
Что я могу с этим поделать?
Должен ли я заботиться или я могу просто игнорировать это?
редактировать
Я только что удалил дескриптор файла снимка.
# systemctl stop libvirt
# mv /var/lib/libvirt/qemu/snapshot/prod/snap.xml /home/jerome
# systemctl start libvirt
Моя виртуальная машина снова работает, и я больше не вижу ссылок на снимок.
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
Ничего в вирт-менеджере тоже нет.
Я в порядке или все еще есть какая-то работа по дому?
Редактировать 2
По-видимому, переход -–no-metadata
к virsh snapshot-create-as
этой проблеме позволит избежать этой проблемы, не создавая файл .xml, таким образом не оставляя следов снимка.
qemu-img info /srv/vm/prod.qcow2
. Но я не уверен, как удалить этот след сам ...Ответы:
Правильный метод был
(Эту команду можно найти в вики . Я пробовал ее, прежде чем спрашивать здесь, но она не удалась из-за опечатки, которая была исправлена с тех пор.)
Я не знаю, что он делает, это не покрывается удалением XML-файла, пока libvirtd не работает. Может быть, единственная разница в том, что остановка libvirtd не нужна. Несмотря на это, может быть, это может развиваться в будущем. В любом случае, рекомендуется использовать API libvirt, а не играть с файлами напрямую.
Этот вызов действительно не нужен, если снимок был создан с
--no-metadata
аргументом.Я получил это разъяснение в этой теме на Libvirt-пользователей в список рассылки .
Любой, кто хочет делать резервные копии с помощью живых снимков, должен прочитать вышеупомянутую вики-страницу и может быть заинтересован в ветке форума, которая отвечает на мои вопросы о нубах и указывает на слайды от Эрика Блейка , а также на этот пост в блоге и последующие комментарии.
источник