Online migration of a virtual environment is failing with the following message:
For a container:
Can not migrate: Insufficient cpu capabilities on destination HN. Can't move/copy VE#123 -> VE#123, ,  : Insufficient cpu capabilities on destination HN.
With the verbose output (vzmigrate with -v switch), you can see exact CPU features which are missing on the destination node:
/usr/libexec/vztestcaps 2622788 161183 vztestcaps : Error: Destination cpu does not have xsave vztestcaps : Error: Destination cpu does not have avx vztestcaps : Error: Destination cpu does not have aesni
For a virtual machine:
Failed to migrate the VM: You cannot migrate this virtual machine using the live mode. The CPUs on the source and destination servers are not compatible. /usr/bin/prlctl failed, exitcode=255
This warning is displayed if the destination hardware node does not have some CPU features available on the source node. If a process inside a VE detected SSE2 extension (or some other CPU/system feature) on startup, this process will assume that SSE2 will be available any time later for its use. If a process requests SSE2 functionality after online migration to a node with CPU not providing such instructions, then a process can fail.
However, if the same process will be started on the node without SSE2, then it will not expect/use it and this process will work correctly after a VE is migrated to a hardware node without SSE2 extensions.
The message warns you about possible problems with VE functionality, if you migrate such VE to a hardware node which does not support any of CPU capabilities available on source node.
Please note that SSE2 is mentioned just as an example, it does not mean that exactly SSE2 is absent on destination hardware node, it could be any other CPU extension or system capability.
NOTE: IPv6 support is checked together with CPU features, therefore if the destination node has IPv6 disabled (either by forbidding 'ipv6' module from loading or passing 'enable=0' to this module while loading), the migration will fail if the source node has IPv6 enabled.
For containers it is possible to attempt migration ignoring the difference in CPU capabilities (use '
-f' switch of '
vzmigrate' utility). There is no guarantee that this migration will succeed, but it might work as it all depends on the exact difference in CPU flags.
Note!: If migration succeeds it's still possible for VE to misbehave due to difference in CPU capabilities. In such case CT restart will be necessary.
If migration with "
-f" key fails then there is no other way than offline migration.