[pve-devel] [RFC pve-container 4/6] vzdump: lxc find/mp update 1: rsync
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue Sep 15 10:07:20 CEST 2015
change rsync_vm to use the new exclude pattern method and
deal with mountpoints
---
src/PVE/VZDump/LXC.pm | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm
index d2ae709..047f998 100644
--- a/src/PVE/VZDump/LXC.pm
+++ b/src/PVE/VZDump/LXC.pm
@@ -16,20 +16,25 @@ use base qw (PVE::VZDump::Plugin);
my $default_mount_point = "/mnt/vzsnap0";
my $rsync_vm = sub {
- my ($self, $task, $from, $to, $text) = @_;
+ my ($self, $task, $to, $text) = @_;
+ my $disks = $task->{disks};
+ my $from = $disks->[0]->{dir} . '/';
$self->loginfo ("starting $text sync $from to $to");
- my $starttime = time();
-
my $opts = $self->{vzdump}->{opts};
- my $rsyncopts = "--stats -x -X --numeric-ids";
+ my $base = ['rsync', '--stats', '-x', '-X', '--numeric-ids',
+ '-aH', '--delete', '--no-whole-file', '--inplace'];
+ push @$base, "--bwlimit=$opts->{bwlimit}" if $opts->{bwlimit};
+ push @$base, map { "--exclude=$_" } @{$self->{vzdump}->{findexcl}};
+ push @$base, map { "--exclude=$_" } @{$task->{exclude_dirs}};
- $rsyncopts .= " --bwlimit=$opts->{bwlimit}" if $opts->{bwlimit};
-
- $self->cmd ("rsync $rsyncopts -aH --delete --no-whole-file --inplace '$from' '$to'");
+ # FIXME: to support --one-file-system we have to make all exclude paths
+ # relative to the current mountpoint
+ my $starttime = time();
+ $self->cmd([@$base, $from, $to]);
my $delay = time () - $starttime;
$self->loginfo ("$text sync finished ($delay seconds)");
@@ -197,13 +202,13 @@ sub snapshot {
sub copy_data_phase1 {
my ($self, $task) = @_;
- $self->$rsync_vm($task, $task->{disks}->[0]->{dir}.'/', $task->{snapdir}, "first");
+ $self->$rsync_vm($task, $task->{snapdir}, "first");
}
sub copy_data_phase2 {
my ($self, $task) = @_;
- $self->$rsync_vm($task, $task->{disks}->[0]->{dir}.'/', $task->{snapdir}, "final");
+ $self->$rsync_vm($task, $task->{snapdir}, "final");
}
sub stop_vm {
--
2.1.4
More information about the pve-devel
mailing list