the base idea is good, IMO, some comments in line,
On 08/10/2017 09:15 AM, Alexandre Derumier wrote:
We only use it to send commands faster like resume
Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
---
PVE/QemuMigrate.pm | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index fc847cc..8271adf 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -635,6 +635,14 @@ sub phase2 {
} else {
die "unsupported protocol in migration URI: $ruri\n";
}
+ } else {
+ #fork tunnel for insecure migration, to send faster commands like resume
+ $self->log('info', "start remote tunnel");
I'd rather move the log line from the if (secure) branch out so that we
have this line only once.
+ my $pfamily = PVE::Tools::get_host_address_family($nodename);
+ my $lport = PVE::Tools::next_migrate_port($pfamily);
+ my $tunnel_addr = "$lport:localhost:$rport";
+
I would omit those three lines above, its not needed for the insecure
case, the $tunnel_addr parameter from fork tunnel is optional.
+ $self->{tunnel} = $self->fork_tunnel($tunnel_addr);
use:
$self->{tunnel} = $self->fork_tunnel();
instead.
}
my $start = time();
I.e., a minified (slightly tested) version of your patch could be:
------8<------
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index fc847cc..7f39138 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -601,9 +601,9 @@ sub phase2 {
die "unable to detect remote migration address\n" if !$raddr;
- if ($migration_type eq 'secure') {
- $self->log('info', "start remote tunnel");
+ $self->log('info', "start remote tunnel");
+ if ($migration_type eq 'secure') {
if ($ruri =~ /^unix:/) {
unlink $raddr;
$self->{tunnel} = $self->fork_tunnel("$raddr:$raddr");
@@ -635,6 +635,9 @@ sub phase2 {
} else {
die "unsupported protocol in migration URI: $ruri\n";
}
+ } else {
+ # use mtunnel to send commands without the ssh/perl startup delay
+ $self->{tunnel} = $self->fork_tunnel();
}
my $start = time();
------>8------
_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel