为什么需要进行调整才能强制VMware ESXi 5与Windows NTP服务器同步时间?

我受到一个看似简单却又麻烦的问题的困扰,所以我在这里寻求帮助。

症状

我在VMware Workstation内部安装了VMware ESXi 5.1实例,以了解各种ESXifunction。 让我称之为vESXi机器。 我运行vESXi的问题是,每次我在晚上暂停vESXi并在第二天恢复时,vESXi的时间就会滞后。 也就是说,如果我昨天晚上22点暂停vESXi并且今天早上恢复,我会看到vESXi报告昨天晚上22点还在。 我知道这是正常的,因为PC系统通过计数硬件计时器滴答中断来保持它的时间。 所以,我决定让vESXi使用NTP与NTP服务器同步。 我的NTP服务器是在同一LAN网段上运行的Windows Server 2003域控制器。

我很快就注意到了这个问题:无论我等待多长时间,我的vESXi都不会同步Window NTP服务器。

您可能会build议我closuresvESXi而不是挂起它,但我真的很喜欢VMware Workstation提供的挂起function,它非常快速而stream畅。

snap0327-ESXi的时间,drift.png

问题

我已经阅读http://kb.vmware.com/kb/1035833其中提供了解决方法(一些调整,使其与Windows NTP服务器),但该知识产权文章创build更多的障碍,在一读。 更重要的是,如果我有相当多的vESXi,调整每个vESXi都是非常麻烦的。

Q1(小学):这些陈述到底是什么意思?

默认情况下,未初始化的Windows服务器select10秒的离散度,并在每个轮询时间间隔上添加离散度,以保持同步。 默认情况下,ESXi / ESX主机不接受任何根分散大于1.5秒的NTP答复。

Q2:KB告诉我添加

tos maxdist 30 

/etc/ntp.conf 。 那条线是什么意思? ntpd.conf手册页http://linux.die.net/man/5/ntp.conf似乎没有说tosmaxdist

问题3:由于ESXi NTP客户端(守护程序)未与指定的NTP服务器成功同步,ESXi是否生成一些日志消息来解释详细信息?

问题4:有没有办法强制ESXi的ntp客户端立即与特定的NTP服务器同步? 即使是手动操作也是受欢迎的。 我不知道捆绑的ntpd命令是否可以做到这一点。

Q5:如果在ESXi上没有手动调整/etc/ntp.conf ,可以设置什么样的NTP服务器来为我的vESXi提供时间源? Linux ntpd还是什么? 服务器端需要什么特殊configuration?

先谢谢你。

更新实验

在阅读NTP常见问题和做了一些实验之后,我确认了以下事实:

  1. 使用KB1035833进行调整,即使vESXi的时间比服务器晚7天(仅等待5到10分钟),vESXi也能与我的Windows NTP服务器真正同步。
  2. 使用viclient在我的局域网中分配一台Linux机器(openSUSE 11.4,ntp package 4.2.6)作为NTP服务器,没有KB1035833调整的vESXi也可以与NTP服务器同步,只有5到10分钟的延迟即使是7天的时间滞后。 但是我发现我必须记住的一件事是,我需要勾选重新启动NTP服务,以在viclient中应用更改 ,以便在5到10分钟内强制时间同步。 换句话说,如果我不重新启动ESXi的NTP服务,那么很难预测在隔夜时间延迟(有时需要一个小时或更多时间)后才能恢复vESXi所需的时间。 – 可能是因为恢复的NTP客户端代码在此期间认为NTP服务器的时间抖动是不可接受的。

所以:关于vESXi的计时问题我的实际问题已经解决了(宁愿与Linux NTP服务器同步时间)。

现在重点在第一季度。 Windows NTP服务器有什么问题? 我希望有人能从NTP协议的angular度帮助解释第一季度的这两个声明。

我对四重奏和真实提取器的有用信息表示感谢,虽然他们对我的具体问题的答案不太准确。

如果时差太大,NTP将不会同步。 这是预期的行为。

通常,这不是问题,因为安装在客户操作系统中的VMware Tools会将时间同步到主机,无论时间有多长。 由于您正在使用实验性和不受支持的选项将ESXi作为虚拟机运行,因此无法获得VMware Toolsfunction,因此不会同步。

对于tos maxdist您可以查看自动NTPconfiguration选项,但是这些不会解决您的问题,因为时间太短了。

这是一个相当不错的设置,ESXi内部VMWare工作站。 向你致敬。

如果NTPD“认为”它正在运行(通过睡觉),它将不会进行大量的时间调整。 不幸的是,ESXi似乎没有一个ntpdate二进制文件(你可以每隔半小时运行一次cron,并且完全禁用ntpd)。

我注意到,如果您停止并启动服务(可能是几次),ntp会自行更正。

丑陋的解决方法,但也许一个cron工作来停止/启动ntpd?

以下是将cron作业添加到ESXi的链接

停止和启动的命令是

 /etc/init.d/ntpd stop /etc/init.d/ntpd start 

我终于弄明白了。 了解第一季度VMware KB语句的关键是分散的含义。 它实际上是指NTP响应数据包中的Root Dispersion字段。 Windows广告10秒左右的Root Dispersion字段,而Linux ntpd广告约0.01秒。

我认为微软故意这样做,并在http://support.microsoft.com/kb/939322/en-us上公布这种行为。

下面的图像显示了10秒的分散场(用Microsoftnetworking监视器3.4捕获)。

在这里输入图像说明