This patch adds the zstd to the compression selection for backup on the GUI and add .zst to the backup file filter. Including zstd as package install dependency.
Signed-off-by: Alwin Antreich <a.antre...@proxmox.com> --- PVE/VZDump.pm | 11 +++++++++-- debian/control | 1 + www/manager6/form/CompressionSelector.js | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm index f3274196..80f4734c 100644 --- a/PVE/VZDump.pm +++ b/PVE/VZDump.pm @@ -609,6 +609,13 @@ sub compressor_info { } else { return ('gzip --rsyncable', 'gz'); } + } elsif ($opt_compress eq 'zstd') { + my $zstd_threads = $opts->{zstd} // 1; + if ($zstd_threads == 0) { + my $cpuinfo = PVE::ProcFSTools::read_cpuinfo(); + $zstd_threads = int(($cpuinfo->{cpus} + 1)/2); + } + return ("zstd --threads=${zstd_threads}", 'zst'); } else { die "internal error - unknown compression option '$opt_compress'"; } @@ -620,7 +627,7 @@ sub get_backup_file_list { my $bklist = []; foreach my $fn (<$dir/${bkname}-*>) { next if $exclude_fn && $fn eq $exclude_fn; - if ($fn =~ m!/(${bkname}-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2})\.(tgz|((tar|vma)(\.(gz|lzo))?)))$!) { + if ($fn =~ m!/(${bkname}-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2})\.(tgz|((tar|vma)(\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)))$!) { $fn = "$dir/$1"; # untaint my $t = timelocal ($7, $6, $5, $4, $3 - 1, $2); push @$bklist, [$fn, $t]; @@ -928,7 +935,7 @@ sub exec_backup_task { debugmsg ('info', "delete old backup '$d->[0]'", $logfd); unlink $d->[0]; my $logfn = $d->[0]; - $logfn =~ s/\.(tgz|((tar|vma)(\.(gz|lzo))?))$/\.log/; + $logfn =~ s/\.(tgz|((tar|vma)(\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?))$/\.log/; unlink $logfn; } } diff --git a/debian/control b/debian/control index edb2833d..318b4f0e 100644 --- a/debian/control +++ b/debian/control @@ -60,6 +60,7 @@ Depends: apt-transport-https | apt (>= 1.5~), logrotate, lsb-base, lzop, + zstd, novnc-pve, pciutils, perl (>= 5.10.0-19), diff --git a/www/manager6/form/CompressionSelector.js b/www/manager6/form/CompressionSelector.js index 8938fc0e..842b7710 100644 --- a/www/manager6/form/CompressionSelector.js +++ b/www/manager6/form/CompressionSelector.js @@ -4,6 +4,7 @@ Ext.define('PVE.form.CompressionSelector', { comboItems: [ ['0', Proxmox.Utils.noneText], ['lzo', 'LZO (' + gettext('fast') + ')'], - ['gzip', 'GZIP (' + gettext('good') + ')'] + ['gzip', 'GZIP (' + gettext('good') + ')'], + ['zstd', 'ZSTD (' + gettext('better') + ')'], ] }); -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel