故障状态
1、vMotion虚拟机失败后,系统提示如下错误提示:
A general system error occurred:Failed to flush checkpoint data!
复制代码
2、发生上述问题时,vm有如下设定:

虚拟机的分辨率大于1280x1024;
虚拟机选用了WDDM驱动(Windows 7、Windows Server 2008R2);
虚拟机选用的硬件版本为8;

3、vCenter Server的错误信息提示里有如下内容:

An I/O error occurred while savingthe checkpoint:0(Resource tempoarily unavailable);
Failed to write checkpoint data(offset xxxxxxxx,size xxxx):Failed to resume VM;

4、在虚拟机的vmware.log里有类是如下错误信息:
vmx| MigrateSetState: Transitioning from state 9 to 11.

vmx| Migrate_SetFailure: Failed waiting for data.  Error bad0006. Limit exceeded.

vmx|

vmx| Migrate: cleaning up migration state.

vmx| MigrateSetState: Transitioning from state 11 to 0.

vmx| Msg_Post: Error

vmx| [vob.vmotion.chkpt.toobig] vMotion migration [XXXXXXXX:xxxxxxxxxxxxxxxx] failed. The checkpoint data length (xxxxx bytes) or the offset (xxxxxxxx bytes) exceeds the maximum checkpoint data length (xxxxxxxx byte).

vmx| [msg.moduletable.powerOnFailed] Module Migrate power on failed.
复制代码
故障分析
确认虚拟机硬件版本为8的WDDM驱动所包含的新组件,vMotion对于显存要求有所增加。缺省分配的缓存对于系统要求而言,较小。但是如果mks.enable3d值被设定为FALSE,则系统缓存尺寸不会自动跟随新组件需求增加而增加;

解决方案
解决这个问题需要执行如下步骤:
1、在执行vMotion之前,先将虚拟机的分辨率调整小于1280x1024;

2、暂时不要将虚拟机的硬件版本升级到8;

3、增加基础checkpoint cache size的值,将它从8MB从16MB(16777216byte)以便能满足单一显示器的分辨率。如果使用2个1600x1200分辨率的显示器,则需要将显存增加到20MB(20971520byte)。增
       备注:如果不想关闭VM可以通过在/etc/vmware/config文件里添加上述参数;

将mks.enable3d值设定为TRUE