[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Should 'qemu-img commit' sparsify the backing file?
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] Should 'qemu-img commit' sparsify the backing file? |
Date: |
Thu, 5 Nov 2015 15:14:49 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, 11/04 16:37, Richard W.M. Jones wrote:
>
> This doesn't work (I tested both qemu 2.3 and qemu from git). Should it?
>
> (1) Create a non-sparse guest image:
>
> $ virt-builder fedora-22
> $ mv fedora-22.img fedora-22.img.sparse
> $ cp --sparse=never fedora-22.img.sparse fedora-22.img
> $ du -sh fedora-22.img
> 6.1G fedora-22.img
>
> (2) Add a snapshot on top:
>
> $ qemu-img create -f qcow2 -o compat=1.1 -b fedora-22.img overlay.qcow2
> $ du -sh fedora-22.img overlay.qcow2
> 6.1G fedora-22.img
> 196K overlay.qcow2
>
> (3) Sparsify the overlay:
>
> $ virt-sparsify --in-place overlay.qcow2
> $ du -sh fedora-22.img overlay.qcow2
> 6.1G fedora-22.img
> 3.2M overlay.qcow2
>
> (4) Commit to the backing file:
>
> $ qemu-img commit overlay.qcow2
> Image committed.
> $ du -sh fedora-22.img overlay.qcow2
> 6.1G fedora-22.img <------
> 260K overlay.qcow2
>
> Notice that the backing file (fedora-22.img) doesn't get any smaller.
>
> I'm expecting the backing file to shrink to around 800 MB, which is
> does if you run virt-sparsify directly on the backing file.
>
I don't think this the purpose of "qemu-img commit". Committing "new" data in
overlay.qcow2 has little to do with discarding backing image's fragments where
there are only explict zeroes. However you can try
qemu-img convert fedora-22.img fedora-22.img.1
as the last step, which I think will yield a sparse image.
I don't think we have an in-place sparsifier now.
Fam