Удалить «сиротский» снимок libvirt


11

Я пытаюсь сделать снимок с помощью 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, таким образом не оставляя следов снимка.


1
После удаления дескриптора файла моментального снимка в самом образе виртуальной машины должны остаться некоторые свидетельства существующего моментального снимка, который можно проверить с помощью qemu-img info /srv/vm/prod.qcow2. Но я не уверен, как удалить этот след сам ...
sdittmar

@sdittmar Вы можете связаться со списком рассылки libvirt-users (см. мой ответ), чтобы получить точный ответ на этот вопрос.
Жером

Ответы:


16

Правильный метод был

virsh snapshot-delete prod --metadata snap

(Эту команду можно найти в вики . Я пробовал ее, прежде чем спрашивать здесь, но она не удалась из-за опечатки, которая была исправлена ​​с тех пор.)

Я не знаю, что он делает, это не покрывается удалением XML-файла, пока libvirtd не работает. Может быть, единственная разница в том, что остановка libvirtd не нужна. Несмотря на это, может быть, это может развиваться в будущем. В любом случае, рекомендуется использовать API libvirt, а не играть с файлами напрямую.

Этот вызов действительно не нужен, если снимок был создан с --no-metadataаргументом.

Я получил это разъяснение в этой теме на Libvirt-пользователей в список рассылки .

Любой, кто хочет делать резервные копии с помощью живых снимков, должен прочитать вышеупомянутую вики-страницу и может быть заинтересован в ветке форума, которая отвечает на мои вопросы о нубах и указывает на слайды от Эрика Блейка , а также на этот пост в блоге и последующие комментарии.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.