The filesystem structure is made available as a directory in a consistent manner (with details depending on the vzdump backup mode) just like for regular backup via tar.
The backup provider needs to back up the guest and firewall configuration and then the filesystem structure, honoring the ID maps (for unprivileged containers) as well as file exclusions and the bandwidth limit. Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- src/PVE/VZDump/LXC.pm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm index 67d13db..f2ccd11 100644 --- a/src/PVE/VZDump/LXC.pm +++ b/src/PVE/VZDump/LXC.pm @@ -373,7 +373,25 @@ sub archive { my $userns_cmd = $task->{userns_cmd}; my $findexcl = $self->{vzdump}->{findexcl}; - if ($self->{vzdump}->{opts}->{pbs}) { + if (my $backup_provider = $self->{vzdump}->{'backup-provider'}) { + $self->loginfo("starting external backup via " . $backup_provider->provider_name()); + + my ($mechanism) = $backup_provider->backup_get_mechanism($vmid, 'lxc'); + die "mechanism '$mechanism' requested by backup provider is not supported for containers\n" + if $mechanism ne 'directory'; + + my $config_file = "$tmpdir/etc/vzdump/pct.conf"; + my $firewall_file = "$tmpdir/etc/vzdump/pct.fw"; + + $backup_provider->backup_guest_config($vmid, $config_file); + $backup_provider->backup_firewall_config($vmid, $firewall_file) if -e $firewall_file; + + my $conf = PVE::LXC::Config->load_config($vmid); + my ($id_map, undef, undef) = PVE::LXC::parse_id_maps($conf); + my $bandwidth_limit = $opts->{bwlimit} ? $opts->{bwlimit} * 1024 : undef; + $backup_provider->backup_directory( + $vmid, $snapdir, $id_map, $findexcl, [@sources], $bandwidth_limit); + } elsif ($self->{vzdump}->{opts}->{pbs}) { my $param = []; push @$param, "pct.conf:$tmpdir/etc/vzdump/pct.conf"; -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel