On 04.06.2019 10:56, Denis Plotnikov wrote: > > > On 28.05.2019 17:37, Denis Plotnikov wrote: >> The goal of the patch-set is to enable qcow2 to use zstd compression for >> clusters. ZSTD provides better (de)compression performance than currently >> used ZLIB. Using it will improve perforamnce (reduce compression time) >> when the compressed clusters is used, e.g backup scenarios. >> >> Also, the patch-set extends qcow2 specification by adding compression_type >> feature. The feature enables adding ZSTD and another compression algorithms >> in the future. >> >> Here is some measurements ZSTD vs ZLIB: >> >> The test: >> Test compresses and decompresses qemu qcow2 image with just >> installed rhel-7.6 guest. >> Image cluster size: 64K. Image on disk size: 2.2G >> >> The test was conducted with brd disk to reduce the influence >> of disk subsystem to the test results. >> The results is given in seconds. >> >> compress cmd: >> time ./qemu-img convert -O qcow2 -c -o compression_type=[zlib|zstd] >> src.img [zlib|zstd]_compressed.img >> decompress cmd >> time ./qemu-img convert -O qcow2 >> [zlib|zstd]_compressed.img uncompressed.img >> >> >> The results: >> compression decompression >> zlib zstd zlib zstd >> ------------------------------------------------------------ >> real 65.5 16.3 (-75 %) 1.9 1.6 (-16 %) >> user 65.0 15.8 5.3 2.5 >> sys 3.3 0.2 2.0 2.0 >> >> Both ZLIB and ZSTD gave the same compression ratio: ~1.5 >> compressed image size in both cases: ~1.4G >> >> Denis Plotnikov (3): >> qcow2: introduce compression type feature >> qcow2: add compression type processing >> qcow2: add zstd cluster compression >> >> block/qcow2.c | 240 ++++++++++++++++++++++++++++++++++++-- >> block/qcow2.h | 29 +++-- >> configure | 26 +++++ >> docs/interop/qcow2.txt | 37 +++++- >> include/block/block_int.h | 1 + >> qapi/block-core.json | 34 +++++- >> 6 files changed, 348 insertions(+), 19 deletions(-) >> > -- Best, Denis
© 2016 - 2024 Red Hat, Inc.