On 08/21/2014 12:51 AM, Adam King wrote: > > ----- Original Message ----- > From: "Eric Blake" <eblake@xxxxxxxxxx> > To: "Adam King" <kinga@xxxxxxxxxxx>, libvirt-users@xxxxxxxxxx > Sent: Thursday, August 21, 2014 3:17:09 AM > Subject: Re: virsh snapshot Including this blurb in the reply was overkill. > >> > I then wanted the domain to be called APP01 for clarity's sake, so I > did virsh dumpxml APP03 > APP03.xml, edited the name to APP01 and > changed the ID. I then did virsh define APP03.xml to get APP01. > >> >Yes, this achieves the goal of defining a new domain name that inherits > from the old state. Your quoting is horrible. You used the same prefix for your original content as for my reply (">> >" in both cases). I'm not sure what mailer you are using, but it is making conversation difficult. > > -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization > library http://libvirt.org Thanks for the response. I'll look at the > text wrap. Before you responded I ran virsh snapshot-list APP01 to find > no snapshots. I then ran virsh snapshot-list APP03 to find one per day Worse, you put your new content AFTER a line containing just "-- ". Any compliant email would have stripped the "-- " and all subsequent lines as the signature before letting you edit to add your reply. But because your mailer didn't do that, your entire content appeared as if it were a signature, which meant when I hit "reply-all", your content was omitted from my edit window. I had to hit "ctrl-a" to select the entire message, then "reply-all" to reply to the selected text, but that in turn triggers a Thunderbird bug that anything selected with a trailing space gets line-wrapped in the reply; and because the signature line "-- " has a trailing space, you can see how botched the reply looks. So I'm having to do a lot of manual work just to get a sane repesentation of your reply before I can even answer it. > > Thanks for the response. > I'll look at the text wrap. > Before you responded I ran virsh snapshot-list APP01 to find no snapshots. That's as I thought. By creating a new domain, you've discarded all of libvirt's tracked information about the image. The snapshots themselves aren't gone, just libvirt's tracking of the snapshots. > I then ran virsh snapshot-list APP03 to find one per day for 3 months... > APP03 was shutdown so I used awk to pull out the snapshot ID's. > I from a file I then ran > while read line > do > virsh snapshot-delete APP03 $line > done </file > > Leaving just 1 snapshot > > I have run qemu-img info on the file as you said, here's the output > > qemu-img info /virtual/APP03-c.qcow2 > image: /virtual/APP03-c.qcow2 > file format: qcow2 > virtual size: 80G (85899345920 bytes) > disk size: 987G > cluster_size: 65536 > Snapshot list: > ID TAG VM SIZE DATE VM CLOCK > �K��Q�w���q���U��eInh�ik�{K?�M�w Ouch. That's a qemu bug. Qemu should never report uninitialized data like that. I don't know if you kept the original file around, but this sort of garbage should be reported to qemu-devel@xxxxxxxxxx. Also, be aware that snapshot deletion does NOT shrink the listed disk size of a file, although with newer qemu, it DOES punch holes so that the amount of disk space actually occupied by the file is smaller. Or put another way, qemu-img (which is all the more libvirt snapshot-delete is using) does not know how to compact an image after deleting snapshots (no one has yet written a qcow2 defragmenter, although such a thing should be technically doable). In your situation, I'd highly recommend looking into virt-sparsify from libguestfs - that's a program that is designed to copy (or even attempt in-place) disk images so that the copy doesn't need as large of a file size. > > APP03 is down but APP01 needs to be up. > What exactly is the qemu-img command I need? Wait. So you have APP01 still up and running, AND using the same disk image as what the APP03 definition points to, AND you modified the image? That's a recipe for disaster. You _cannot_ safely modify a qcow2 image by two simultaneous processes, and the fact that APP01 is a running qemu process means that the only _safe_ way to delete snapshots from that image is via qemu commands triggered through the libvirt process managing that qemu process. Maybe that explains the corrupted display from qemu-img. I hope you didn't corrupt your data too badly. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users