CPU 的扩展指令集发生变化。迁移后的系统中,新的虚拟 CPU 或主板和旧的会有一些不同。CPU 的扩展指令集如 SSE,Vectors, NX 可能被加入或去掉。CPU 的型号和制造商信息可能被改变。因此,如果你想要优化虚拟系统上的软件,这可能是浪费时间并且导致系统崩溃。最好是使用通用的软件,让程序在每次启动的时候检查运行环境和是否需要优化。实际上,实时迁移的状况比这个还要复杂,因为处理器可能在程序的运行的过程中被改变。目前为止还没有一个方案能很好的解决这个问题。
如你所见,P2V 和 V2V 最大的问题在于硬件的改变。Linux 发行版本身应该可以处理所有的硬件变化:在系统启动的时候去检查所有的硬件,操作系统内核识别新的设备并寻找新的驱动处理它们 ,所有应用软件都不要和硬件绑定,设计一个很好的模式来应对突然的环境变化。