Am 11.11.21 um 13:25 schrieb Fabian Grünbichler:
On November 10, 2021 12:17 pm, Fabian Ebner wrote:
Am 05.11.21 um 14:03 schrieb Fabian Grünbichler:
# set environment variable useful inside network script
-    $ENV{PVE_MIGRATED_FROM} = $migratedfrom if $migratedfrom;
+    if ($migrate_opts->{remote_node}) {
+       $ENV{PVE_MIGRATED_FROM} = $migrate_opts->{remote_node};
+    } elsif ($migratedfrom) {
+       $ENV{PVE_MIGRATED_FROM} = $migratedfrom;
+    }

But the network script tries to load the config from that node and if
it's not in the cluster that doesn't work?


this is a bit confusing, yeah.

$migratedfrom contains the source node, which is unusable on the remote
cluster
remote_node contains the target node, which actually has the full config
when we start the VM there over the tunnel (in contrast to a local
migration, where the target node doesn't yet have the config!)

so this should be correct? but even easier would be to just not set it
(for remote migrations), since the start MUST happen on the node where
mtunnel is running/the config is located.

Yes, sorry, I think I might've misread the code yesterday ;)


PVE::GuestHelpers::exec_hookscript($conf, $vmid, 'pre-start', 1); @@ -5621,7 +5625,7 @@ sub vm_start_nolock { my $migrate_storage_uri;
        # nbd_protocol_version > 0 for unix socket support
-       if ($nbd_protocol_version > 0 && $migration_type eq 'secure') {
+       if ($nbd_protocol_version > 0 && ($migration_type eq 'secure' || 
$migration_type eq 'websocket')) {
            my $socket_path = "/run/qemu-server/$vmid\_nbd.migrate";
            mon_cmd($vmid, "nbd-server-start", addr => { type => 'unix', data => { 
path => $socket_path } } );
            $migrate_storage_uri = "nbd:unix:$socket_path";




_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to