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>
---

Changes in v2:
* Adapt to API changes.

 src/PVE/VZDump/LXC.pm | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm
index 67d13db..0fc2a94 100644
--- a/src/PVE/VZDump/LXC.pm
+++ b/src/PVE/VZDump/LXC.pm
@@ -373,7 +373,27 @@ 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";
+
+
+       my $conf = PVE::LXC::Config->load_config($vmid);
+       my ($id_map, undef, undef) = PVE::LXC::parse_id_maps($conf);
+       my $info = {
+           directory => $snapdir,
+           sources => [@sources],
+       };
+       $info->{'firewall-config'} = $firewall_file if -e $firewall_file;
+       $info->{'bandwidth-limit'} = $opts->{bwlimit} * 1024 if 
$opts->{bwlimit};
+       $backup_provider->backup_container($vmid, $config_file, $id_map, 
$findexcl, $info);
+    } 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

Reply via email to