[pve-devel] applied-series: [PATCH storage v5 00/17] Fix: #2124 zstd
Fabian Grünbichler
f.gruenbichler at proxmox.com
Mon May 4 14:31:34 CEST 2020
with an additional commit adding '--rsyncable'.
thanks!
On April 28, 2020 3:58 pm, Alwin Antreich wrote:
> Zstandard (zstd) [0] is a data compression algorithm, in addition to
> gzip, lzo for our backup/restore. It can utilize multiple core CPUs. But
> by default it has one compression and one writer thread.
>
>
> Here some quick tests I made on my workstation. The files where placed
> on a ram disk. And with dd filled from /dev/urandom and /dev/zero.
>
> __Compression__
> file size: 1073741824 bytes
> = urandom = = zero =
> 995ms 1073766414 328ms 98192 zstd -k
> 732ms 1073766414 295ms 98192 zstd -k -T4
> 906ms 1073791036 562ms 4894779 lzop -k
> 31992ms 1073915558 5594ms 1042087 gzip -k
> 30832ms 1074069541 5776ms 1171491 pigz -k -p 1
> 7814ms 1074069541 1567ms 1171491 pigz -k -p 4
>
> __Decompression__
> file size: 1073741824 bytes
> = urandom = = zero =
> 712ms 869ms zstd -d
> 685ms 872ms zstd -k -d -T4
> 841ms 2462ms lzop -d
> 5417ms 4754ms gzip -k -d
> 1248ms 3118ms pigz -k -d -p 1
> 1236ms 2379ms pigz -k -d -p 4
>
>
> And I used the same ramdisk to move a VM onto it and run a quick
> backup/restore.
>
> __vzdump backup__
> INFO: transferred 34359 MB in 69 seconds (497 MB/s) zstd -T1
> INFO: transferred 34359 MB in 37 seconds (928 MB/s) zstd -T4
> INFO: transferred 34359 MB in 51 seconds (673 MB/s) lzo
> INFO: transferred 34359 MB in 1083 seconds (31 MB/s) gzip
> INFO: transferred 34359 MB in 241 seconds (142 MB/s) pigz -n 4
>
> __qmrestore__
> progress 100% (read 34359738368 bytes, duration 36 sec)
> total bytes read 34359738368, sparse bytes 8005484544 (23.3%) zstd -d -T4
>
> progress 100% (read 34359738368 bytes, duration 38 sec)
> total bytes read 34359738368, sparse bytes 8005484544 (23.3%) lzo
>
> progress 100% (read 34359738368 bytes, duration 175 sec)
> total bytes read 34359738368, sparse bytes 8005484544 (23.3%) pigz -n 4
>
>
> v4 -> v5:
> * fixup, use File::stat directly without overwriting CORE::stat,
> thanks Dietmar for pointing this out
> https://pve.proxmox.com/pipermail/pve-devel/2020-April/043134.html
> * rebase to current master
>
> v3 -> v4:
> * fixed styling issues discovered by f.ebner (thanks)
> * incorporated tests of d.jaeger into patches
> * added fixes discovered by tests (f.ebner thanks)
>
> v2 -> v3:
> * split archive_info into decompressor_info and archive_info
> * "compact" regex pattern is now a constant and used in
> multiple modules
> * added tests for regex matching
> * bug fix for ctime of backup files
>
> v1 -> v2:
> * factored out the decompressor info first, as Thomas suggested
> * made the regex pattern of backup files more compact, easier to
> read (hopefully)
> * less code changes for container restores
>
> Thanks for any comment or suggestion in advance.
>
> [0] https://facebook.github.io/zstd/
>
> Alwin Antreich (17):
> __pve-storage__
> storage: test: split archive format/compressor
> storage: replace build-in stat with File::stat
> test: parse_volname
> test: list_volumes
> Fix: backup: ctime was from stat not file name
> test: path_to_volume_id
> Fix: path_to_volume_id returned wrong content
> Fix: add missing snippets subdir
> backup: compact regex for backup file filter
> Fix: #2124 storage: add zstd support
> test: get_subdir
> test: filesystem_path
>
> test/Makefile | 5 +-
> PVE/Diskmanage.pm | 9 +-
> PVE/Storage.pm | 91 ++++--
> PVE/Storage/Plugin.pm | 47 ++-
> test/archive_info_test.pm | 127 ++++++++
> test/filesystem_path_test.pm | 91 ++++++
> test/get_subdir_test.pm | 44 +++
> test/list_volumes_test.pm | 537 +++++++++++++++++++++++++++++++++
> test/parse_volname_test.pm | 253 ++++++++++++++++
> test/path_to_volume_id_test.pm | 274 +++++++++++++++++
> test/run_plugin_tests.pl | 18 ++
> 11 files changed, 1440 insertions(+), 56 deletions(-)
> create mode 100644 test/archive_info_test.pm
> create mode 100644 test/filesystem_path_test.pm
> create mode 100644 test/get_subdir_test.pm
> create mode 100644 test/list_volumes_test.pm
> create mode 100644 test/parse_volname_test.pm
> create mode 100644 test/path_to_volume_id_test.pm
> create mode 100755 test/run_plugin_tests.pl
>
>
> __guest_common__
> Fix: #2124 add zstd support
>
> PVE/VZDump/Common.pm | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
>
> __qemu-server__
> restore: replace archive format/compression
> Fix #2124: Add support for zstd
>
> PVE/QemuServer.pm | 38 +++++++-------------------------------
> 1 file changed, 7 insertions(+), 31 deletions(-)
>
>
> __pve-container__
> Fix: #2124 add zstd
>
> src/PVE/LXC/Create.pm | 1 +
> 1 file changed, 1 insertion(+)
>
>
> __pve-manager__
> Fix #2124: Add support for zstd
>
> PVE/VZDump.pm | 11 +++++++++--
> debian/control | 1 +
> www/manager6/form/CompressionSelector.js | 3 ++-
> 3 files changed, 12 insertions(+), 3 deletions(-)
> --
> 2.20.1
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
More information about the pve-devel
mailing list