Forum Discussion

Karl-WE's avatar
Jun 19, 2023

Windows Server "erroneously" keeps setting LiveMigrations to 1 on Hyper-V host - here is why

affected products:

Windows Server 2022

Azure Stack HCI

 

Dear Community,

 

we have seen numerous reports from customers running Windows Server 2022 servers or Azure Stack HCI that Livemigration Settings were altered to 1 per Hyper-V Host, as seen per PowerShell and Hyper-V Settings.

 

We previously set the value to 4 via PowerShell, so we could prove it was a different value by code at a certain time. 

We haven't stepped into intense research why the configuration altered after a time, yet a customer stumbled across it, quite accidently, when fetching all parameters of Get-Cluster.

According to an article a CU back in 2022 changed the default behaviour and allows to specify the LiveMigrations on a cluster level.

The new default seems to be 1 on a per cluster level and this forces to change the values on the Hyper-V nodes to 1 accordingly. In contrast to the commandlet documentation, the value is not 2, which would make more sense.

 


That's quite unknown, since it is not even documented in the CU [1] itself, but referenced in the documentation for the PowerShell commandlet Get-Cluster [2].
Frankly, both aren't areas customers nor partners would check quite regularly to spot any of such relevant feature improvements or changes.

 

 

 

(Get-Cluster).MaximumParallelMigrations = 2

 

 

 

 


"Beginning with the 2022-09 Cumulative Update, you can now configure the number of parallel live migrations within a cluster. For more information, see
KB5017381 for Windows Server 2022 and  KB5017382 for Azure Stack HCI, version 21H2. 

This example sets the cluster property MaximumParallelMigrations to a value of 2, limiting the number of live migrations that a cluster node can participate in. Both existing and new cluster nodes inherit this value of 2 because it's a cluster property. Setting the cluster property overrides any values configured using the Set-VMHost command." 

 


Conclusion:

It appears that the cluster setting is forcing this global setting down to the Hyper-V based Windows Server / Azure Stack HCI nodes after a time. 

We previously thought this would happen after using Windows Admin Center (WAC) when opening the cluster settings, would be enough to alter this value.


Why the new default of 2 (or 1 effectively):
I can just guess that the value, should avoid bottlenecks or longer sync times for SMB multichannel negotiations. Maybe EldenChristensen or John Marlin might want add more insights on the new default values.


Finding references:
Later the day, as my interest grew to learn about this change I have found an official announcement [3]:

In agreement to another article, on optimizing LiveMigrations [4], the default value should be 2, but for some reason at most customers, even on fresh installations and clusters, it is set to 1.


TLDR:
1. Stop bothering to keep changing the Livemigration setting manually or PowerShell or DSC / Policy

2. Check and set the LiveMigration value to 2 as per default and follow these recommendations.

3. Today and in future train your muscles to change LiveMigration on a cluster level with (Get-Cluster).
The changes will be forced down quite immediately to the nodes, which is quite awesome.

4. Kindly stop blaming WAC or eager collegues for changing the values over and over (my WAC issue PR will be removed after submitting this post)  

Happy Clustering! 😀

Resources