“Yetim” libvirt anlık görüntüsünü sil


11

Bu yordama göre KVM kullanarak anlık görüntü canlı çalışıyorum .

Bir noktada berbat olmalıydım çünkü anlamadığım bir durumdayım.

VM'im çağrıldı prod. Dosyada oluşturuldu /srv/vm/prod.qcow2.

Görünüşe göre, çalışan bir anlık görüntü yok: Temel dosya üzerinde çalışıyorum. Tahmin ediyorum çünkü dosyanın /srv/vm/prod.qcow2değişiklik tarihi her dakika değişiyor. Ayrıca, bu komut bunu doğrular:

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

Ve bloke edilecek hiçbir şey yok:

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

Ancak, libvirt eski bir anlık görüntünün izini tutar:

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

Tanımlayıcı dosyası /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>
[...]

Kaynak dosya /srv/vm/snap.qcow2silindi.

Uygulamaya çalıştığım yöntem göz önüne alındığında, bu anlık görüntünün aşağıdaki komutla oluşturulmuş olması muhtemeldir:

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

Ben kaldıramıyorum:

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

Bu yüzden bir anlık görüntünün oluşturulduğu, görünüşe göre artık kullanılmadığı ve silinemediği bir durumdayım.

Bu konuda yapabileceğim bir şey var mı?

Umursamalı mıyım yoksa görmezden gelebilir miyim?

Düzenle

Anlık görüntü dosya tanımlayıcısını kaldırdım.

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

VM'im tekrar çalışıyor ve artık anlık görüntüye referans görmüyorum.

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

Virt-manager hiçbir şey ya.

İyi miyim yoksa hala temizlik yapmam gerekiyor mu?

Düzenle 2

Görünüşe göre, geçen -–no-metadataetmek virsh snapshot-create-asve böylece anlık iz tutarak .xml dosyası oluşturarak değil bu sorunu önleyeceğini.


1
Anlık görüntü dosyası tanımlayıcısını sildikten sonra, VM görüntüsünde kontrol edilebilecek mevcut bir anlık görüntünün hala bir kanıtı olmalıdır qemu-img info /srv/vm/prod.qcow2. Ama bu iz kendim kaldırmak nasıl emin değilim ...
sdittmar

@sdittmar, buna kesin bir cevap almak için libvirt-kullanıcılarının posta listesiyle (cevabımı görün) iletişime geçmek isteyebilirsiniz.
Jérôme

Yanıtlar:


16

Uygun yöntem

virsh snapshot-delete prod --metadata snap

(Bu komut wiki'de bulunabilir . Sormadan önce denedim ama o zamandan beri düzeltilmiş bir yazım hatası nedeniyle başarısız oldu.)

Ne yaptığını bilmiyorum libvirtd kapalı iken .xml dosyasını kaldırarak kaplıdır. Belki de tek fark libvirtd'i durdurmanın gerekli olmamasıdır. Yine de, belki de bu gelecekte gelişebilir. Her durumda, doğrudan dosyalarla oynamak yerine libvirt API'sini kullanmanız önerilir.

Anlık görüntü --no-metadatabağımsız değişken ile oluşturulmuşsa, bu çağrı gerçekten gerekli değildir .

Ben de bu açıklama elde Bu konuya ait libvirt kullanıcılara e-posta listesinde .

Canlı anlık yoluyla yedekleri yapmak isteyen herkes yukarıda belirtilen wiki sayfasını okumalı ve benim çaylak soruları yanıtlar forum iplik ilginizi çekebilir ve işaret ettiği Eric Blake'den slaytlar yanı sıra bu blog yayınında ve aşağıdaki yorumların.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.