Univention Bugzilla – Bug 25181
Informationen über Snapshots werden nicht vollständig entfernt
Last modified: 2012-12-12 21:07:57 CET
Ich hatte eine KVM-Instanz mit vier Platten und zwei Snapshots. Die Platten habe ich im UVMM nacheinander gelöscht und sie anschließend (gleiche Namen, Größe etc. - alles default) wieder angelegt. Anschließend waren die ehemals erstellten Snapshots wieder zu sehen. Ich habe dann die ganze Instanz gelöscht und mit gleichen Namen sowie den vier Platten (auch wieder alles default) wieder angelegt - auch dann tauchen die Snapshots wieder auf.
libvirt-0.8.7 löscht noch nicht die zugehörigen Metadaten beim löschen der Domain-Definition, das wurde erst mit 0.9.5 nachgerüstet <http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=e485dcc9cbe253c1282263996156f3658b4b775e>.
Wird ein Revert auf einen der nicht mehr vorhandenen Snapshots probiert, hängt anschließend der libvirtd auf dem System.
Erneut heute intern und gestern auch extern bei einem Kunden aufgetreten: Nach dem Neuanlegen hat die neue VM eine andere UUID, in der Snapshot-XML-Datei steht allerdings noch die alte UUID. Bei einem Revert ändert sich dann dadurch plötzlich die UUID, was libvirtd aus dem Tritt bringt: Er sucht dann immer nach der falschen UUID und kann keinen passenden Namen zu finden, was dann als "No state" angezeigt wird. In /var/log/univention/virtual-machine-manager-daemon-errors.log wird das massenhaft als "libvir: QEMU error : Domain not found: no domain with matching uuid '0e833b14-ca53-be26-a04d-919ecfd17f64'" gemeldet.
UCS 3.1 will be the next release.
*** Bug 28127 has been marked as a duplicate of this bug. ***
Das Problem ist hier, daß wir libvirt gepatched haben (3001-Allow-to-migrate-and-undefine-domains-with-snapshots.patch), damit die Snapshots eben nicht beim Undefine der Domain gelöscht werden, weil dieses bei der Migration einer inaktiven Domain nicht passieren darf. Diese Funktionalität wird nicht direkt durch libvirt zur Verfügung gestellt (ein Patch dazu wird seit Wochen auf der ML diskutiert: <https://www.redhat.com/archives/libvir-list/2012-October/msg00950.html>) In libvirt fehlt aber auch weiterhin die Unterstützung für VMs mit Snapshots: In UCS habe wir das auch nur dadurch ermöglicht, wenn /var/lib/libvirt/qemu/snapshots/ auf einem gemeinsamen Laufwerk liegt. svn11033: libvirt wurde jetzt so gepatched, daß die Snapshots bei Migration nicht gelöscht werden, aber durch dom.undefineFlags(VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA) gelöscht werden. libvirt_0.9.12-5.115.201210262224< svn36687: UVMM verwendet nun dieses Flag beim Löschen, um die Snapshots ebenfalls zu löschen. univention-virtual-machine-manager-daemon_2.0.12-2.401.201210262229 ChangLog: svn15399 \item Snapshots are now deleted when a virtual machine is removed (\ucsBug{25181}).
Durch die Umstellung kam es jetzt zu Problemeb beim Löschen von Xen-VMs, da die Xen-Implementierung in libvirt nicht mit den zusätzlichen Flags zurecht kam. svn36990, univention-virtual-machine-manager-daemon_2.0.16-1.406.201211071545
(In reply to comment #0) > Ich hatte eine KVM-Instanz mit vier Platten und zwei Snapshots. > Die Platten habe ich im UVMM nacheinander gelöscht und sie anschließend > (gleiche Namen, Größe etc. - alles default) wieder angelegt. Anschließend waren > die ehemals erstellten Snapshots wieder zu sehen. Dies tritt noch auf. > Ich habe dann die ganze Instanz gelöscht und mit gleichen Namen sowie den vier > Platten (auch wieder alles default) wieder angelegt - auch dann tauchen die > Snapshots wieder auf. Dies tritt nicht mehr auf.
(In reply to comment #8) > (In reply to comment #0) > > Ich hatte eine KVM-Instanz mit vier Platten und zwei Snapshots. > > Die Platten habe ich im UVMM nacheinander gelöscht und sie anschließend > > (gleiche Namen, Größe etc. - alles default) wieder angelegt. Anschließend waren > > die ehemals erstellten Snapshots wieder zu sehen. > Dies tritt noch auf. Dadurch werden die XML-Informationen von libvirtd und die Daten innerhalb der qcow2 inkonsistent. libvirt validiert derzeit nicht seine XML-Dateien, ob die benötigten qcow2-Dateien oder die Snapshot-Daten innerhalb der qcow2-Dateien auch wirklich noch existieren. Das zu implementieren ist nicht mal eben gemacht, weil das eine Erweiterung der XML-Daten erfordert. Entsprechende Email an die Mailingliste ist raus. Auf der anderen Seite kann man darüber streiten, ob das Löschen und Neuanlegen der qcow2-Datei mit gleichem Name nicht einem Modifizieren der internen Daten von QEMU gleich kommt und damit in die Kategorie "Don't do that, ever!" gehört.
(In reply to comment #9) Das wurde in Bug #29253 ausgelagert, damit kann der Bug wieder zu.
(In reply to comment #10) > (In reply to comment #9) > Das wurde in Bug #29253 ausgelagert, damit kann der Bug wieder zu. OK Changelog OK
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".