Hapus snapshot libvirt “yatim piatu”

11

Saya mencoba untuk melakukan snapshot langsung menggunakan KVM sesuai prosedur ini .

Saya pasti telah mengacaukan suatu saat karena saya dalam keadaan saya tidak mengerti.

VM saya dipanggil prod. Itu dibuat dalam file /srv/vm/prod.qcow2.

Tampaknya, tidak ada snapshot yang berjalan: Saya sedang mengerjakan file base. Saya bisa menebak karena tanggal modifikasi file /srv/vm/prod.qcow2berubah setiap menit atau lebih. Selain itu, perintah ini menegaskan:

# virsh domblklist prod
Target     Source
------------------------------------------------
vda        /srv/vm/prod.qcow2

Dan tidak ada yang diblokir:

# virsh blockcommit prod vda --active --pivot
error: invalid argument: top '/srv/vm/prod.qcow2' in chain for 'vda' has no backing file

Namun, libvirt menyimpan jejak snapshot lama:

# virsh snapshot-list prod
 Name                 Creation Time             State
------------------------------------------------------------
 snap                 2015-06-09 12:11:33 +0200 disk-snapshot

File deskriptornya adalah /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>
[...]

File sumber /srv/vm/snap.qcow2telah dihapus.

Mempertimbangkan metode yang saya coba terapkan, sangat mungkin snapshot ini dibuat dengan perintah berikut:

virsh snapshot-create-as --domain prod snap --diskspec vda,file=/srv/vm/snap.qcow2 --disk-only --atomic

Saya tidak bisa menghapusnya:

# virsh snapshot-delete prod snap
error: Failed to delete snapshot snap
error: unsupported configuration: deletion of 1 external disk snapshots not supported yet

Jadi saya dalam keadaan di mana snapshot dibuat, tampaknya tidak lagi digunakan, dan tidak dapat dihapus.

Adakah yang bisa saya lakukan?

Haruskah saya peduli atau bisakah saya mengabaikannya saja?

Edit

Saya baru saja menghapus deskriptor file foto.

# systemctl stop libvirt
# mv /var/lib/libvirt/qemu/snapshot/prod/snap.xml /home/jerome
# systemctl start libvirt

VM saya naik lagi dan saya tidak melihat referensi ke snapshot lagi.

# virsh snapshot-list prod
 Name                 Creation Time             State
------------------------------------------------------------

Tidak ada dalam manajer-kebajikan juga.

Apakah saya baik-baik saja atau masih ada beberapa pekerjaan rumah tangga yang harus dilakukan?

Edit 2

Tampaknya, meneruskan -–no-metadatake virsh snapshot-create-asakan menghindari masalah ini dengan tidak membuat file .xml, sehingga tidak ada jejak snapshot.

Jérôme
sumber
1
Setelah Anda menghapus deskriptor file snapshot, masih harus ada beberapa bukti dari snapshot yang ada di gambar VM itu sendiri yang dapat diperiksa qemu-img info /srv/vm/prod.qcow2. Tapi saya tidak yakin bagaimana cara menghapus jejak itu sendiri ...
sdittmar
@sdittmar Anda mungkin ingin menghubungi milis libvirt-pengguna (lihat jawaban saya) untuk mendapatkan jawaban yang tepat untuk ini.
Jérôme

Jawaban:

16

Metode yang tepat adalah

virsh snapshot-delete prod --metadata snap

(Perintah ini dapat ditemukan di wiki . Saya mencobanya sebelum bertanya di sini tetapi gagal karena kesalahan ketik yang telah diperbaiki sejak itu.)

Saya tidak tahu apa fungsinya yang tidak tercakup dengan menghapus file .xml saat libvirtd mati. Mungkin satu-satunya perbedaan adalah bahwa menghentikan libvirtd tidak diperlukan. Meski begitu, mungkin ini bisa berkembang di masa depan. Bagaimanapun, disarankan untuk menggunakan API libvirt daripada bermain dengan file secara langsung.

Panggilan ini memang tidak diperlukan jika snapshot dibuat dengan --no-metadataargumen.

Saya memperoleh klarifikasi ini di thread ini dari libvirt-pengguna mailing-list .

Siapa pun yang mau melakukan backup melalui snapshot langsung harus membaca halaman wiki yang disebutkan di atas, dan mungkin tertarik dengan utas forum yang menjawab pertanyaan noob saya, dan menunjuk ke slide dari Eric Blake , serta posting blog ini dan komentar berikut.

Jérôme
sumber