Answers:
一个简单的事实是,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毫秒内。
请参阅vmware计时文档。在VM中运行NTP守护程序可能不是一个好主意,尤其是在需要可靠时间的情况下。