VMware stun 后立即修复系统时钟

VMware stun 后立即修复系统时钟

它是VMware 的已知问题在某些操作(例如 vmotion 和快照创建/删除)期间,它会执行所谓的“stun”。在此 stun 期间,客户操作系统会被冻结,因此当它恢复时,系统时钟会落后。现在,从人类的角度来看,stun 通常非常快(亚秒级),但从机器的角度来看,它们相当长,几百毫秒。而且,对于磁盘更大或内存更多的虚拟机,时间会变得更长,这些虚拟机通常是更关键的。对于相互通信的系统,这些时间差异可能会导致问题。

但无论如何,我要解决的问题是时钟。最终的要求是在发生眩晕后立即让系统时钟恢复同步。“立即”可能是一个模糊的术语,因此假设时钟应在 1 秒内恢复同步。

我们确实使用 ntp 进行时钟同步,但 ntp 需要几分钟(或更长时间)才能让系统重新同步,因为它不明白刚刚发生了什么。需要一段时间才能验证时间是否再次稳定(漂移率没有飙升),然后慢慢纠正。所以它不够快。

我能想到的最好的办法就是ntpdate在发生眩晕时立即运行,但我不知道客户操作系统如何发现发生了眩晕。

所涉及的系统是 Linux (CentOS/7)。

答案1

VM 主机是否也使用与客户机相同的 NTP 源?

这些 [timesync disable] 选项不会禁用 VMware Tools 针对工具启动、创建快照、从快照恢复、从挂起恢复或 vMotion 等事件执行的一次性同步。这些事件将客户机操作系统中的时间与主机操作系统中的时间同步,因此确保主机操作系统的时间正确非常重要。 Linux 客户机的计时最佳实践

可以设置较小的 NTP 步长阈值,但数据库尤其不能很好地处理时间回溯。

答案2

关于此问题的 VMWare 官方文章和解决方案可以在这里找到:https://kb.vmware.com/s/article/2108828

如果对 NTP 的调整不足以减轻由于虚拟机迁移而导致的时间差异的影响,请配置 VMware 工具的一次性时间同步以具有较低的阈值。

运行使用 vmx 选项的命令pref.timeLagInMilliseconds,并将时间默认为 1000(1 秒):

例如,如果您希望客户机时钟与主机同步,每当迁移后时间落后超过 100 毫秒时,请将其添加到您的 vmx 文件中。

pref.timeLagInMilliseconds = 100

关于编辑该vmx文件的文档可以在这里找到:https://kb.vmware.com/s/article/1714

因此,对于我的情况,我将值设置为10,这样如果在休克后时间偏离超过 10 毫秒,则 VMware 会同步它。然后我让 NTP 处理从那里开始的更精细的调整。

相关内容