熟悉VMware vSphere的管理员,肯定会发现将虚拟机以下场景中,虚拟机会自动同步ESXi主机的时间:
(1)挂起后,该虚拟机在下次恢复时,会将时间调整为与主机同步;
(2)使用 vMotion 迁移虚拟机、生成快照、还原快照、压缩虚拟磁盘
(3)虚拟机中重新启动 VMware Tools 服务(包括重新引导虚拟机)时,将重新同步时间。
那虚拟机操作系统为啥会出现这种自动同步ESXi主机时间的情况呢?在回答这个问题之前,让我们先了解一下VMware虚拟机是通过啥组件进行时间同步的,没错,可能你已经想到是VMware Tools ,那让我们来看下VMware Tools支持哪些方式的时间同步机制:
- 定期时间同步:定期同步客户机操作系统时钟(每 60 秒一次),以跟踪主机时间。建议客户机使用本机时间同步服务,如基于操作系统的 NTPD 或 Chrony (Linux) 以及 W32Time (Microsoft Windows)。如果此方法不可行,则定期时间同步提供了一种备选方法。此功能默认处于关闭状态。
- 一次性时间同步:发生可能导致客户机时钟变得不正确的特定虚拟机生命周期事件(例如,从 vMotion 或快照/整合恢复等)时,客户机操作系统时钟将与主机时间同步。建议使用此功能,并默认启用此功能。
好了,了解完VMware Tools时间同步机制后,我们应该知道前面那个问题的答案了。但有些场景,我们需要更精准的时间同步,让虚拟机操作系统直接和物理时间服务器设备对接,那么这个时候,就需要我们关闭“一次性时间同步”这个功能设置,那么如何关闭呢,小编通过查询官方资料,整理出以下方法。
vSphere 7.0 U1 及更高版本
在 vSphere 7.0 Update 1 及更高版本中,虚拟机的“编辑设置”向导中的“VMware Tools”菜单提供了两个复选框,用于启用或禁用一次性时间同步和定期时间同步:
要在虚拟机中禁用定期时间同步,请启动 vSphere Client,转到编辑设置 → 虚拟机选项 → VMware Tools → 与主机同步时间,然后取消选中复选框定期同步时间。
此设置的 vmx 选项为 tools.syncTime,启用定期时间同步时,其值为 “TRUE”;禁用定期时间同步时,为 “FALSE”。
要在虚拟机中禁用一次性时间同步,请启动 vSphere Client,转到编辑设置 → 虚拟机选项 → VMware Tools → 与主机同步时间,然后取消选中复选框在启动和恢复时同步 (建议)。如上所述禁用一次性时间同步也将自动强制禁用定期时间同步。
此设置通过 vmx 选项 time.synchronize.allow 进行管理。默认情况下,启用一次性时间同步时,该选项的值为 “TRUE”,但不包含在 vmx 配置文件中。但是,禁用一次性时间同步时,可以在 vmx 配置文件中找到此选项,其值为 “FALSE”。
vSphere 7.0 U1 之前的版本
VMware Workstation、Fusion 和 7.01 U1 版本之前的 vSphere 在虚拟机的 VMware Tools 控制面板中提供一个复选框,只用于启用或禁用定期时间同步。
要在虚拟机中禁用定期时间同步,请启动 vSphere Client,转到编辑设置 → 虚拟机选项→ VMware Tools → 时间,然后取消选中复选框将客户机时间与主机同步
要在虚拟机中禁用一次性时间同步,必须进行以下高级配置设置。
time.synchronize.continue = "FALSE" time.synchronize.restore = "FALSE" time.synchronize.resume.disk = "FALSE" time.synchronize.shrink = "FALSE" time.synchronize.tools.startup = "FALSE" time.synchronize.tools.enable = "FALSE" time.synchronize.resume.host = "FALSE"
重新启动虚拟机(或其中运行的 VMware Tools)后,这些高级虚拟机设置才会生效。