Chrony 作为虚拟机上的 NTP 服务器的“最不坏”设置

Chrony 作为虚拟机上的 NTP 服务器的“最不坏”设置

我的任务是重建一个 LAN 服务器,该服务器是数百台客户端计算机的 NTP 服务器。不幸的是,它位于虚拟机上,并且正如以下问题所示在虚拟机中运行 NTP 服务器有哪些限制?这远非理想。

然而,在目前的情况下,我必须这样做,直到将来某个时候,依赖这台服务器的数百台机器能够重新配置为更强大的 NTP 设置。

幸运的是,客户端不依赖毫秒级的精度。我一直计划在新服务器上运行 Chrony,并将其配置为使用四个本地 2 层服务器。

我是 NTP 服务和 Chrony 的新手。您认为在这种情况下哪些服务器端设置必不可少?首先,考虑到在虚拟机上运行 NTP 服务器的基本限制,目标是尽量减少不准确性。

答案1

你链接到的问题是一个很好的例子,说明一个既定答案中的公认智慧已经过时,以至于完全错误对于大多数用例来说,这都是可行的。在具有现代客户机内核的现代虚拟机管理程序上的虚拟机中运行 NTP 服务器通常不会出现问题。在 LAN 上,虚拟机可以实现亚毫秒级的精度(我刚刚检查了我的几个虚拟机,它们都低于 0.5 毫秒)。许多公共池服务器在虚拟机中运行

对于你的问题:

  1. 验证您的内核是否已正确自动检测时钟源:grep . /sys/devices/system/clocksource/clocksource*/[ac]*clocksource。这通常tsc用于裸机,Hyper-V、KVM 和 Xen 具有以其虚拟机管理程序命名的时钟驱动程序(hyperv_clocksource_tsc_pagekvm-clockxen)。
  2. 如果您在 KVM 或 Hyper-V 下运行,则可以配置本地 PTP 驱动程序以提供额外的准确性。请参阅https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-synchttps://opensource.com/article/17/6/timekeeping-linux-vms了解更多详细信息(后者值得一读,解释了所有最近的改进,这些改进使虚拟机中的计时比以前好得多)。 chrony 配置的 TL;DR:refclock PHC /dev/ptp0 dpoll -2
  3. 四个对等点是实现准确计时的最低要求 - 最好添加公共 NTP 池或一些额外的基于互联网的源(time.apple.com 是我经常使用的),这样就可以从更多的对等点和自动替换中受益。
  4. 不要将新 VM 作为网络中唯一的时间服务器。设置自己的当地相当于游泳池,其中您通过多值 DNS 条目为所有客户端提供多个 NTP 服务器,并让这些源中的每一个与 4-10 个较低层的源对等。
  5. 如果您有天空视野(用于 GPS 接收器)或有无穷无尽的金钱(用于原子钟),请考虑添加本地 1 层服务器,该服务器对您的虚拟机具有较低的延迟。我使用带有 GPS 卡的 BeagleBone;还有许多基于 Raspberry Pi 的解决方案,以及一些价格实惠的现成设备,例如狮子座NTP

相关内容