CPUs - EVC mode?
-
Yes, but it isn't user configurable AFAIK. It is all handled automatically behind the scenes.
-
@Danp Doing some searching this link seems to implies it may works under the correct scenario. That is if you migrate a VM from a server with an older instruction set it will work, but not from a server with a newer instruction set to one with an older set.
https://xcp-ng.org/forum/topic/5328/live-migration-on-different-cpu?_=1708711766633
But it is dated 12/21 have improvements been made?
Thanks
Dan -
@Dan56 The pool will downgrade all host/guests to the match the lowest matching instruction set and features of the oldest CPU.
If you have a Xeon from 2015 and a Xeon from 2020, they will pool, down to the Xeon's 2015 capabilities, which may or may not support EVC mode.
-
Right... your original question was about heterogeneous pools, not migration between pools. AFAIK, the same "rules" as outlined by @olivierlambert still apply today when migrating between pools with different CPU levels.
-
@Dan56 Thanks. What happen to the VMs that are running when the pools is downgraded? or do you need to power off the VMs to do the down grade.
Example I build my pool with the 2020 Xeons and later I find I need more resources and add the 2015 Xeons.
I work in an environment with thousands of VMs and hundreds of servers. Servers are replaced or moved to meet resource needs depending on demands.
Thanks for the information.
Dan
-
Thank you
Dan -
The VM must be shutdown and started again to get the lower features and allowing it to migrate seamlessly. Otherwise, migration will be refused (you can force it, but if your app or your VM OS is using the feature, the VM could crash)
-
@Dan56 might be worth mentioning that I have tested migrating from newer to older before and in my experience the VMs always crash, definitely would recommend shutting down the VM, then migrating.
-
It appears that a solution would be to build a Pool with the oldest CPU first and set it to master. That will set the CPU masking algorithm low enough for backwards compatibility.
I would like to see some administrator access to the CPU masking algorithm. If it can't be updated dynamic, at least be able to set the Pool at creation time to a CPU architecture level that is appropriate.
-
The problem is there's no such thing as "CPU architecture", that's only CPU features. It's a very complex problem and the easier way to solve it is to automatically harmonize to the lower one. Even if you are the oldest last, that will do as long as you shutdown/start previous VM again during a maintenance reboot of the guest OS.