]> git.proxmox.com Git - pve-guest-common.git/blobdiff - PVE/Replication.pm
replicaiton: log rate and transport type
[pve-guest-common.git] / PVE / Replication.pm
index 493b77dead9d9c0a24902dbb85e1ccc9fc6d4563..b0c6db3beb967dd32beefb4a3b8674363e7f6d35 100644 (file)
@@ -11,10 +11,12 @@ use PVE::INotify;
 use PVE::ProcFSTools;
 use PVE::Tools;
 use PVE::Cluster;
+use PVE::DataCenterConfig;
 use PVE::Storage;
 use PVE::GuestHelpers;
 use PVE::ReplicationConfig;
 use PVE::ReplicationState;
+use PVE::SSHInfo;
 
 
 # regression tests should overwrite this
@@ -79,7 +81,7 @@ sub find_common_replication_snapshot {
 sub remote_prepare_local_job {
     my ($ssh_info, $jobid, $vmid, $volumes, $storeid_list, $last_sync, $parent_snapname, $force, $logfunc) = @_;
 
-    my $ssh_cmd = PVE::Cluster::ssh_info_to_command($ssh_info);
+    my $ssh_cmd = PVE::SSHInfo::ssh_info_to_command($ssh_info);
     my $cmd = [@$ssh_cmd, '--', 'pvesr', 'prepare-local-job', $jobid];
     push @$cmd, '--scan', join(',', @$storeid_list) if scalar(@$storeid_list);
     push @$cmd, @$volumes if scalar(@$volumes);
@@ -113,7 +115,7 @@ sub remote_prepare_local_job {
 sub remote_finalize_local_job {
     my ($ssh_info, $jobid, $vmid, $volumes, $last_sync, $logfunc) = @_;
 
-    my $ssh_cmd = PVE::Cluster::ssh_info_to_command($ssh_info);
+    my $ssh_cmd = PVE::SSHInfo::ssh_info_to_command($ssh_info);
     my $cmd = [@$ssh_cmd, '--', 'pvesr', 'finalize-local-job', $jobid,
               @$volumes, '--last_sync', $last_sync];
 
@@ -183,7 +185,8 @@ sub replicate_volume {
 
     my ($storeid, $volname) = PVE::Storage::parse_volume_id($volid);
 
-    my $ratelimit_bps = int(1000000*$rate) if $rate;
+    my $ratelimit_bps = $rate ? int(1000000 * $rate) : undef;
+
     PVE::Storage::storage_migrate($storecfg, $volid, $ssh_info, $storeid, $volname,
                                  $base_snapshot, $sync_snapname, $ratelimit_bps, $insecure, 1, $logfunc);
 }
@@ -237,7 +240,7 @@ sub replicate {
 
            my %hash = map { $_ => 1 } @store_list;
 
-           my $ssh_info = PVE::Cluster::get_ssh_info($jobcfg->{target});
+           my $ssh_info = PVE::SSHInfo::get_ssh_info($jobcfg->{target});
            remote_prepare_local_job($ssh_info, $jobid, $vmid, [], [ keys %hash ], 1, undef, 1, $logfunc);
 
        }
@@ -250,7 +253,7 @@ sub replicate {
        return undef;
     }
 
-    my $ssh_info = PVE::Cluster::get_ssh_info($jobcfg->{target}, $migration_network);
+    my $ssh_info = PVE::SSHInfo::get_ssh_info($jobcfg->{target}, $migration_network);
 
     my $parent_snapname = $conf->{parent};
 
@@ -309,6 +312,9 @@ sub replicate {
        my $rate = $jobcfg->{rate};
        my $insecure = $migration_type eq 'insecure';
 
+       $logfunc->("using $migration_type transmission, rate limit: "
+           . ($rate ? "$rate MByte/s" : "none"));
+
        foreach my $volid (@$sorted_volids) {
            my $base_snapname;
 
@@ -355,7 +361,7 @@ my $run_replication_nolock = sub {
 
     my $volumes;
 
-    # we normaly write errors into the state file,
+    # we normally write errors into the state file,
     # but we also catch unexpected errors and log them to syslog
     # (for examply when there are problems writing the state file)