[pve-devel] [PATCH v2 3/3] Allow migrate-all button on HA enabled VMs

Caspar Smit casparsmit at supernas.eu
Thu Mar 17 11:55:02 CET 2016


Hi all,

During some more tests with this feature i (maybe) stumbled on a bug (or
maybe this was by design).

When I select the migrate-all button and set the "parallel jobs" option to
1 i noticed the HA managed VM's were migrated at the same time (so it looks
like the parallel jobs option is ignored).
But i found out why this is:

When a HA managed VM is migrated a "HA <vmid> - Migrate" task is spawned.
This task returns an OK status way BEFORE the actual migration has taken
place. The "HA <vmid> - Migrate" task spawns another task which does the
actual migration called "VM <vmid> - Migrate".

Now I remember from PVE 3.4 that the "HA <vmid> - Migrate" task did not
return an OK until the actual "VM <vmid> - Migrate" returned an OK. Was
this changed on purpose or is this a bug?

The result here is that the migrate-all task receives an OK (from the HA
task) and starts the next migration resulting in multiple HA migrations
happen at once.

Kind regards,
Caspar

2016-03-14 12:07 GMT+01:00 Caspar Smit <casparsmit at supernas.eu>:

> Signed-off-by: Caspar Smit <casparsmit at supernas.eu>
> ---
>  PVE/API2/Nodes.pm | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
> index f1fb392..b2de907 100644
> --- a/PVE/API2/Nodes.pm
> +++ b/PVE/API2/Nodes.pm
> @@ -1208,9 +1208,6 @@ my $get_start_stop_list = sub {
>                 $startup = { order => $bootorder };
>             }
>
> -           # skip ha managed VMs (started by pve-ha-manager)
> -           return if PVE::HA::Config::vm_is_ha_managed($vmid);
> -
>             $resList->{$startup->{order}}->{$vmid} = $startup;
>             $resList->{$startup->{order}}->{$vmid}->{type} = $d->{type};
>         };
> @@ -1283,6 +1280,9 @@ __PACKAGE__->register_method ({
>                         die "unknown VM type '$d->{type}'\n";
>                     }
>
> +                   # skip ha managed VMs (started by pve-ha-manager)
> +                   next if PVE::HA::Config::vm_is_ha_managed($vmid);
> +
>                     PVE::Cluster::check_cfs_quorum(); # abort when we
> loose quorum
>
>                     eval {
> @@ -1407,6 +1407,9 @@ __PACKAGE__->register_method ({
>                 };
>
>                 foreach my $vmid (sort {$b <=> $a} keys %$vmlist) {
> +                   # skip ha managed VMs (stopped by pve-ha-manager)
> +                   next if PVE::HA::Config::vm_is_ha_managed($vmid);
> +
>                     my $d = $vmlist->{$vmid};
>                     my $upid;
>                     eval { $upid = &$create_stop_worker($nodename,
> $d->{type}, $vmid, $d->{down}); };
> --
> 2.1.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.proxmox.com/pipermail/pve-devel/attachments/20160317/bc2bb54f/attachment.htm>


More information about the pve-devel mailing list