故障症状
  * vMotion在82%进度时失败
  * 无法用vMotion迁移VM
  * 源头ESXi/ESX主机的/var/log/vmware/hostd.log文件里包含以下内容项:
ResolveCb: Failed with fault: (vmodl.fault.SystemError) {
reason = "Source detected that destination failed to resume."
msg = ""
}
 
* 目标ESXi/ESX主机的/var/log/vmware/hostd.log文件里包含以下内容项:
Upgrade is required since hwVersion in config file is 3

 
原因解析
可能原因有两个。
[1] 共享存储datastore在参与vMotion的各台ESXi/ESX主机上的16进制UUID出现了不一致。
    可以通过在各台主机上运行 vdf –h 命令来检查是否属于这一情况。
    至于为什么出现不一致,那是因为共享datastore在某台ESXi/ESX主机上的UUID是基于挂载时所指定的datastore名称生成的,但在指定名称过程中存在
    短名(hostname)
    全域名(hostname.domainname)
    IP地址
等三种不同方式,每种方式生成的UUID自然不同。
    可以通过esxcfg-nas -l 命令查看挂载时具体采用的是哪种方式。
 
[2] 虚拟机的硬件版本号过时
    如果在目标ESXi/ESX主机的/var/log/vmware/hostd.log文件中有以下内容项:
Upgrade is required since hwVersion in config file is 3
    则可确定属于这个原因。
 
排错方法
如果是 UUID不一致的原因,则需要把不一致的UUID恢复成与其它主机相一致的正确值。具体一点来说:
    如果VM可停机,则把VM停机,先把datastore卸载(unmount)后再重新挂载(mount),重新挂载时要选择正确的名称形式,以便生成与其它主机相一致的UUID;
    如果VM不可停机,则可利用Storage vMotion把该VM迁移到另一个状态正常的卷上,然后再卸载以及重新挂载datastore,最后再迁移回原来卷。
    如果以上方法仍然解决不了问题,则只能采用更加底层,也更加复杂的操作方式,即从数据存储层面对LUN作解除映射和重新映射的操作。
 
如果是 虚拟机硬件版本号过时,处理办法相对简单,通过编辑虚拟机属性,对其硬件版本做出升级,然后再重新安装VMware Tools即可。
 
具体操作细节可见VMware官方知识库文章:
  http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006052