背景介绍

    某企业使用VMware 5.5U3搭建虚拟化平台,其上运行着近200台虚拟机,无论是Windows还是Linux系统都运行在工作组模式下,由于需要给上级部门上传数据,客户反映部分虚拟机上传时间不对,检查发现是因为虚拟机本身时间不对导致。

解决思路

    该企业内部有专门的NTP服务器,搭建平台初期已设置承载虚拟机的虚拟化物理主机向NTP服务器同步时间,且所有虚拟机都已安装Vmware Tools,根据VMware白皮书介绍,安装了VMware Tools的操作系统会定期通过VMware Tools向虚拟化物理主机同步时间,而问题只是出现在这一小部分虚拟机上,其他虚拟机并无类似问题,将问题聚焦在出问题这部分虚拟机的VMware Tools上。

问题排查

    查看了时间同步异常的虚拟机后,发现这部分虚拟机VMware Tools中的同步客户机与主机时间选项未勾选

某企业虚拟化平台时间同步异常排查_第1张图片

    该选项对应的是虚拟机.vmx配置文件中的tools.snycTime选项的值

某企业虚拟化平台时间同步异常排查_第2张图片

    将该选项勾选后,重启VMware Tools服务,时间同步就恢复正常了,相对于Windows系统,Linux系统还有些不一样,具体的区别为:

1.对于Windows系统

    Windows虚拟机会每隔2分钟左右向宿主机同步一次时间,将tools.syncTime值改为FALSE后,虚拟机就不再通过VMware tools向宿主机同步时间,但重启虚拟机、重启后台VMware tools服务或者迁移虚拟机所在虚拟化物理主机时会触发所谓一次性时间同步。

2.对于LInux系统

    linux虚拟机最主要通过timesync程序与宿主机进行时间同步,只有timesync状态是Enable时虚拟机才会与宿主机同步时间,周期也为2分钟左右。就算.vmx配置文件中tools.syncTime值为TRUE,但是timesync状态是Disabled,他依然不会去同步时间,且不论.vmx配置文件中tools.syncTime值为什么,重启时都不会更改timesync的当前状态

某企业虚拟化平台时间同步异常排查_第3张图片

    linux虚拟机在使用service.sh重启VMware tools、重新禁用再启用timesync程序、重启虚拟机或者迁移虚拟机所在虚拟化物理主机时会触发所谓一次性时间同步

wKioL1l-ADzDLHxOAAASEatyHdI398.png

总结

    尽管虚拟机可以通过VMware Tools向虚拟化物理主机同步时间,但VMware给出的最佳实践还是建议使用NTP进行时间同步,即在创建虚拟机时将.vmx配置文件中tools.syncTime值改为FALSE,Linux系统还需要将timesync程序改为Disable,然后再给虚拟机指定NTP服务器。使用VMware Tools同步时间的方式既然存在,那么它也有一定的适用性,采用哪种方式还需根据实际情况来决定。