在虚拟机中运行NTP服务器的限制是什么?


15

我想在本地网络上设置几台Stratum 2时间服务器。与购买三台1U服务器相比,虚拟机无疑是一种更便宜的方法。这样做会有什么限制?也就是说,精度将在多大程度上受到影响?

另外,我的直觉是这些本地时间服务器应驻留在不同的物理计算机上,以减轻任何硬件异常情况。这种直觉正确吗?

编辑 我应该说,“虚拟机”并不是专门VMware。相反,我指的是虚拟化实例的一般概念。

Answers:


19

一个简单的事实是,VM内的时钟精度仍然非常差。这来自几个地方,但杀手thing的是时间漂移不是恒定的。漂移因数会随时变化。NTP是一种内置了时钟补偿的协议,但是其设计时内置了静态漂移因子。例如,如果物理计算机每30天损失12秒,则NTP可以对此进行补偿,并且效果很好。但是,如果该计算机每30天损失4到70秒的任何时间,则NTP并不能很好地跟踪这种变化水平。

NTP很难在虚拟机环境中保持正常运行的原因是,它看到的本地时钟可以在一分钟内改变其漂移因子。根据检查其父时间源的频率,它可能会导致主要的漂移因子变化,并使它变得更加不同步。整个组织中的时间不同步。

本地网络的NTP是一种影响较小的协议,具有非常小的内存占用空间,并且可以愉快地搭载在其他网络基础结构服务器(例如DNS和DHCP服务器)上。一些路由器还可以提供NTP功能,因此您可能需要调查一下。

理想情况下,您希望在单独的位置放置两个单独的服务器,每个服务器与一组不同的较高层服务器同步。将两个时间服务器都配置为将另一个服务器用作“对等”也是一个很好的主意,如果上游时间源之一出现问题,这将最小化对时间服务的影响。会有阶层变化,但至少不会报告不同步。最后,对上游时间提供者友好,并在时间确定后将服务器配置为在两次轮询之间间隔很长时间。这是“服务器”行上的“ maxpoll”参数,两次同步尝试之间的间隔为2秒。

如果您绝对必须为此使用VM,那么我将设置不少于三台这样的NTP服务器。这些服务器中的每一个都需要位于不同的主机上,并且如果可能,还应位于不同的数据中心中。就像我刚才所建议的那样,它们需要不同的时间源,并且应该彼此对等。然后将所有NTP客户端配置为使用全部三个作为父源。确保您的maxpoll值足够低,以至于离网同步数据包和离网30分钟之间的间隔都不超过一个半小时。机会是好的,至少在任何给定时间,这三个都是其中之一。对于只能与一个时间主机对话的客户端,他们只需要忍受偶尔的不同步事件。总体而言,这种情况下的时间质量不会像物理服务器那样精确。

如果我不得不停下来,我想说的是您在纯VM环境中的共识时间可能在30到100毫秒内。在纯物理环境中,一旦服务器的运行时间足够长,您的共识时间可能会在10毫秒内。


1
我相当确定我至少需要三个,而不是两个本地NTP服务器。客户如何在两个之间消除歧义?
詹姆斯·罗森

由于某些不可思议的原因,您至少需要四个。就是说,我们只有两个内部服务器,它们同步到半个外部服务器(及其本地时钟作为备份)。对我们来说效果很好。
詹姆斯

James A Rosen-这是对等组配置的乐趣。只要对等组的至少一个成员具有外部连接并且处于同步状态,则整个对等组都处于同步状态。客户可能会降低层次,但是至少他们不会不同步。对等组中有三个?没问题。
sysadmin1138

1
关于所需服务器的数量,全部在这里:support.ntp.org。如果您只列出一个,则不会有任何问题被认为是“正确”或“错误”。[...]有两个,就不可能分辨出哪个更好。这实际上是最糟糕的配置。在三台服务器上,您的时间源数量最少。此配置不提供冗余。有了至少四个上游服务器,ntpd将有足够数量的源可供选择。
Mathieu 2015年

11

请参阅vmware计时文档。在VM中运行NTP守护程序可能不是一个好主意,尤其是在需要可靠时间的情况下。


2
哈哈-“特别是如果您需要可靠的时间”
squillman 2010年

1
我完全同意您的意见,实际上我想不出一台服务器不太适合在VM中运行:)
Chopper3 2010年

6

不幸的是,ntp和虚拟化并不能很好地融合在一起。客户端在大多数情况下都可以,但是ntp服务器(尤其是str2及以上版本)通常无法在虚拟服务器上可靠地工作。

我从Xen和Xen企业角度发表评论,但我相信vmware / kvm将会是相同的。

在不同的服务器上,是的,您是对的,理想情况下,它们也应该在不同的环境中,这样温度/湿度也不会影响准确性,但至少我不会对此感到困扰。也不要忘记,无论您做什么,仍然不如正确的原子钟那么精确,所以只需接受这个(非常微小的)偏差即可。


1

在虚拟环境中运行NTP,您很幸运达到20ms的准确性(这就是我们使用VMware所做的工作)。虚拟化的时钟偏差很严重,尤其是在存在资源争用的虚拟化环境中。

这取决于您需要的准确性。如果只关心第二个(对于Web服务器为EG),只要没有资源争用,就可以了。如果您希望获得毫秒级的准确性(例如繁忙的数据库,日志服务器,研究项目),则可以忽略虚拟化的时间服务器。

NTP服务器应始终位于物理主机上。您应该在池中至少有3个对等节点(以便一台恶意服务器被池否决);并尽可能从GPS或其他本地第0层资源获取时间,而不是通过Internet获取时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.