Signed-off-by: Wolfgang Link <w.l...@proxmox.com> --- PVE/Storage.pm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
diff --git a/PVE/Storage.pm b/PVE/Storage.pm index e46bc77..4e15df8 100755 --- a/PVE/Storage.pm +++ b/PVE/Storage.pm @@ -490,6 +490,35 @@ sub storage_migrate { } else { die "$errstr - target type '$tcfg->{type}' not implemented\n"; } + } elsif ($scfg->{type} eq 'zfspool') { + + if($tcfg->{type} eq 'zfspool'){ + + die "$errstr - pool on target has not same name as source!"if $tcfg->{pool} ne $scfg->{pool}; + + my ( undef, $volname) = parse_volname($cfg, $volid); + + my $zfspath = "$scfg->{pool}\/$volname"; + + my $snap = "zfs snapshot $zfspath\@__migration__"; + + my $send = "zfs send -v $zfspath\@__migration__ \| ssh root\@$target_host zfs recv $zfspath"; + + my $destroy_target = "ssh root\@$target_host zfs destroy $zfspath\@__migration__"; + run_command($snap); + eval{ + run_command($send); + }; + my $err; + if ($err = $@){ + run_command("zfs destroy $zfspath\@__migration__"); + die $err; + } + run_command($destroy_target); + + } else { + die "$errstr - target type $tcfg->{type} is not valid\n"; + } } else { die "$errstr - source type '$scfg->{type}' not implemented\n"; } -- 1.7.10.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel