如何保持VMWare VM的时钟同步?

我注意到我们的VMWare虚拟机经常有不正确的时间。 无论多less次我重置时间,他们继续desyncing。

有没有其他人注意到这一点? 其他人做什么来保持他们的虚拟机时间同步?

编辑:这些是CLI linux虚拟机btw ..

如果您的主机时间正确,则可以设置以下.vmxconfiguration文件选项以启用定期同步:

tools.syncTime = true 

默认情况下,每分钟同步一次。 要更改周期率,请将以下选项设置为期望的同步时间(秒):

 tools.syncTime.period = 60 

为了这个工作,你需要在你的客户操作系统中安装VMWare工具。

有关更多信息,请参阅pdf/vmware_timekeeping.pdf

根据VMware的知识库,实际的解决scheme取决于Linux发行版和发行版,在RHEL 5.3中,我通常编辑/etc/grub.conf并将此参数附加到内核条目中:divider = 10 clocksource = acpi_pm

然后启用NTP,从vmware-toolbox禁用VMware时间同步,最后重新启动虚拟机

每个Linux发行版的指南都可以在这里find:

为LINUX客人提供最佳实践http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

我会回答Windows客人。 如果您安装了VMware Tools,则任务栏的通知区域(靠近时钟)会有一个VMware Tools图标。 双击并设置您的选项。

如果您没有安装VMware Tools,您仍然可以设置时钟的上网时间选项以与某些NTP服务器同步。 如果您的物理机器为您的客机提供NTP协议,那么您可以使用主机专用networking完成。 否则,您必须让您的客人在互联网上与真正的NTP服务器同步,例如time.windows.com。

这里需要注意一些事情。 我们对在ESXi主机上运行的Windows VM有同样的问题。 guest虚拟机上的VMWare工具中已打开时间同步,但来宾时钟始终与主机时钟关断(约30秒)。 ESXi主机已configuration为从内部时间服务器获取时间更新。

事实certificate,我们在Windows VM(控制面板>date和时间>互联网时间选项卡)打开了互联网时间设置,所以客人得到两个地方的时间更新,互联网时间赢了。 我们将其closures,现在客户时钟很好,只能从ESXi主机获取时间。

就我而言,我们正在Windows Server 2003 R2 Standard上运行VMWare Server 2.02。 主机也是Windows Server 2003 R2 Standard。 我安装了VMware Tools并设置为同步时间。 我做了我在各种网站上find的一切想象。 我们仍然有可怕的漂移,虽然它已经从15分钟或更长时间缩小到3或4分钟的范围。

最后在vmware.log中,我发现这个条目(作为.vmx文件驻留在文件夹中):“您的主机系统不能保证跨不同CPU的同步TSC,所以请将Windows Boot.ini文件中的/ usepmtimer选项设置为请确保计时是可靠的。有关详细信息,请参阅Microsoft KB http://support.microsoft.com/kb …以获取更多信息,请参阅Microsoft KB http://support.microsoft.com/kb …。

原因:当计算机在BIOS或某些英特尔多核处理器中启用AMD Cool'n'Quiet技术(AMD双核)时,会出现此问题。 当不同核之间的时间不同步时,多核或多处理器系统可能会遇到时间戳计数器(TSC)漂移。 使用TSC作为计时资源的操作系统可能会遇到问题。 如果系统中有其他可用作计时源的定时器,则较新的操作系统通常默认不使用TSC。 其他可用的定时器包括PM_Timer和高精度事件定时器(HPET)。 解决scheme:要解决此问题,请与硬件供应商联系,查看是否有新的驱动程序/固件更新可用于解决问题。

注意驱动程序安装可能会在Boot.ini文件中添加/ usepmtimer开关。

一旦这个(/使用pmtimer开关)完成,时钟就准时死了。

这个文档为我解决了这个问题。

CPU速度因节电而异。 我最初注意到这一点,因为VMware给了我一个有用的提示,我的笔记本电脑,但这个网页提到了同样的事情:

引用自: VMWare提示和技巧节能(SpeedStep,C状态,P状态…)

您的省电设置可能会严重干扰VMware的性能。 有几个级别的节电。

CPU频率

这不应该导致性能下降,除非以较低的频率运行CPU(手动通过诸如“ondemand”或“conservative”之类的pipe理器),性​​能明显降低。 在运行vmware的过程中改变CPU速度的唯一问题是Windows时钟将会损失时间。 为了防止出现这种情况,请在/ etc / vmware / config中以千赫为单位指定完整的CPU速度

host.cpukHz = 2167000

VMware经历了很多时钟漂移。 这个谷歌search “vmware时钟漂移”链接到几篇文章。

第一击可能对你最有用: http : //www.fjc.net/linux/linux-and-vmware-related-issues/linux-2-6-kernels-and-vmware-clock-drift-issues

在Windows客户机上安装VMware Tools时,默认情况下,“时间同步”未启用。 但是,“最佳做法”是在Windows来宾上启用时间同步。

有几种方法可以从虚拟机外部执行此操作,但是我想要在安装工具之后或之后find从guest虚拟机内部启用时间同步的方法。

令人惊讶的是,这并不像我预期的那么简单。 (我认为可以在安装工具时将其设置为参数/configuration选项)

经过一番search之后,我find了一个VMware的文章“使用VMware Tools命令行界面”的方法。

因此,如果时间同步被禁用,您可以通过在guest虚拟机中运行以下命令行来启用它:

  VMwareService.exe –cmd “vmx.set_option synctime 0 1″ 

补充笔记

对于一些(恕我直言)愚蠢的原因,这个工具要求你指定当前以及新的价值

0 =禁用1 =启用

所以 – 如果你在已经设置好的机器上运行这个命令,你会得到一个错误 – “无效的旧值”。 显然你可以在运行时“忽略”这个错误(所以不是一个大问题),但目前的devise似乎有点愚蠢。 恕我直言,这将是多明智的,如果你可以简单地指定你想要设置的值,而不需要指定当前值。

即VMwareService.exe -cmd“vmx.set_option synctime <0 | 1>”

我将以下作业添加到crontab。 这是hacky,但我认为应该工作。

* / 5 * * * * service ntpd stop && ntpdate pool.ntp.org && service ntpd start

它停止从服务的ntpd服务更新,并再次启动ntpd

在Active Directory环境中,了解以下内容非常重要:

  • 所有成员机器都与任何域控制器同步。

  • 在域中,所有域控制器都从该域的PDC模拟器(PDCe)进行同步。

  • 域的PDC模拟器应该与本地或NTP同步。

在vmware中设置时间或configuration时间同步时考虑这一点很重要。

摘自: http : //www.sysadmit.com/2016/12/vmware-esxi-configurar-hora.html