From 69e62894706b03aa4b7e01a5f4521d61eef99b01 Mon Sep 17 00:00:00 2001 From: Stefan Reiter Date: Thu, 25 Jun 2020 12:23:34 +0200 Subject: [PATCH] enable dirty-bitmap incremental backups for PBS The $total != $transferred check is changed to a log, as QEMU reports only actually transferred bytes, and it is indeed correct for incremental backups to have differing values from $total. The 'incremental' parameter is always set, QEMU will figure out if it should re-use an existing bitmap or create a new one on its own. Signed-off-by: Stefan Reiter --- PVE/VZDump/QemuServer.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm index 8513d897..f7b5ad63 100644 --- a/PVE/VZDump/QemuServer.pm +++ b/PVE/VZDump/QemuServer.pm @@ -7,6 +7,7 @@ use File::Basename; use File::Path; use IO::File; use IPC::Open3; +use JSON; use PVE::Cluster qw(cfs_read_file); use PVE::INotify; @@ -295,7 +296,7 @@ my $query_backup_status_loop = sub { die (($status->{errmsg} || "unknown error") . "\n") if $res eq 'error'; die "got unexpected status '$res'\n"; } elsif ($total != $transferred) { - die "got wrong number of transfered bytes ($total != $transferred)\n"; + $self->loginfo("backup was done incrementally"); } last; } @@ -396,6 +397,7 @@ sub archive_pbs { password => $password, devlist => $devlist, 'config-file' => $conffile, + incremental => JSON::true, }; $params->{fingerprint} = $fingerprint if defined($fingerprint); $params->{'firewall-file'} = $firewall if -e $firewall;