Message ID | 1500993699-19299-5-git-send-email-pl@kamp.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/25/2017 09:41 AM, Peter Lieven wrote: > Signed-off-by: Peter Lieven <pl@kamp.de> > --- > qemu-img.texi | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/qemu-img.texi b/qemu-img.texi > index 72dabd6..3612c59 100644 > --- a/qemu-img.texi > +++ b/qemu-img.texi > @@ -676,6 +676,32 @@ file which is COW and has data blocks already, it couldn't be changed to NOCOW > by setting @code{nocow=on}. One can issue @code{lsattr filename} to check if > the NOCOW flag is set or not (Capital 'C' is NOCOW flag). > > +@item compress.format > +Defines which compression algorithm is should be used for compressed clusters. > +The following options are available if support for the respective libraries > +has been enabled at compile time: > + > + deflate Uses standard zlib defalte compression > + > +The compression algorithm can only be defined at image create time and cannot > +be changed later. We can't change it via 'qemu-img amend'? Might be an interesting feature to add later: in-place re-compression to a new algorithm - but since compression is global to the file, you have to be careful that aborting the operation in the middle doesn't mix the two compressions. Or put another way, we have to use at least twice the disk space for all compressed clusters, and only at the end of things update the headers to point to the new clusters and away from the old (so that an early abort just treats all the new clusters as leaked); possibly by amending from compressed to uncompressed back to compressed. Oh, and why is 'qemu-img --help' mostly alphabetical, except that 'amend' comes after 'resize'? Guess I'll do a quickie patch for that. > + > +Note: defining compression format settings which are different from the old > + default (format=deflate, level=0, window-size=12) will result in the > + compression format extension being written to the Qcow2 image. Versions > + of QEMU before 2.11 will not be able to open images with this extension. > + > +@item compress.level > +Valid for compress.format=deflate defines the compression level to use for > +selected compression format. The default of @code{compress.level=0} will use > +the default compression level for the format. Alternate values range from 1 for > +fastest compression to 9 for the best compression. > + > +@item compress.window-size > +Valid for compress.format=deflate defines the compression window size used > +during compression. Valid window sizes for deflate compression range from 8 to > +15 inclusively. The default is @code{compress.window-size=15}. Maybe emphasize that larger is generally better (smaller exists for the long-gone days of small machines, and for back-compat usage of 12 in older qemu). In fact, if we wanted, we could declare that qcow2's use of deflate can ONLY use 12 or 15, instead of anything in the range 8-15, if we though that would be easier to maintain.
diff --git a/qemu-img.texi b/qemu-img.texi index 72dabd6..3612c59 100644 --- a/qemu-img.texi +++ b/qemu-img.texi @@ -676,6 +676,32 @@ file which is COW and has data blocks already, it couldn't be changed to NOCOW by setting @code{nocow=on}. One can issue @code{lsattr filename} to check if the NOCOW flag is set or not (Capital 'C' is NOCOW flag). +@item compress.format +Defines which compression algorithm is should be used for compressed clusters. +The following options are available if support for the respective libraries +has been enabled at compile time: + + deflate Uses standard zlib defalte compression + +The compression algorithm can only be defined at image create time and cannot +be changed later. + +Note: defining compression format settings which are different from the old + default (format=deflate, level=0, window-size=12) will result in the + compression format extension being written to the Qcow2 image. Versions + of QEMU before 2.11 will not be able to open images with this extension. + +@item compress.level +Valid for compress.format=deflate defines the compression level to use for +selected compression format. The default of @code{compress.level=0} will use +the default compression level for the format. Alternate values range from 1 for +fastest compression to 9 for the best compression. + +@item compress.window-size +Valid for compress.format=deflate defines the compression window size used +during compression. Valid window sizes for deflate compression range from 8 to +15 inclusively. The default is @code{compress.window-size=15}. + @end table @item Other
Signed-off-by: Peter Lieven <pl@kamp.de> --- qemu-img.texi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)