Virtual-Machines
Chrony 作為虛擬機上的 NTP 伺服器的“最差”設置
我的任務是重建一個 LAN 伺服器,該伺服器用作數百台客戶端電腦的 NTP 伺服器。不幸的是,它在虛擬機上,正如在虛擬機中執行 NTP 伺服器的限制是什麼之類的問題所證明的那樣?這遠非理想。
但是,在目前情況下,這是我必須使用的,直到依賴此伺服器的數百台機器在未來某個地方被重新配置為更強大的 NTP 設置。
幸運的是,客戶端不依賴毫秒精度。我一直計劃在新伺服器上執行 Chrony,將其配置為使用四個本地第 2 層伺服器。
我是 NTP 服務的新手,也是 Chrony 的新手。對於這種情況,您認為哪些伺服器端設置必不可少?考慮到首先在虛擬機上執行 NTP 伺服器的基本限制,目標是最大限度地減少不准確性。
您連結到的問題是一個很好的例子,表明已建立的答案變得如此過時,以至於對於大多數案例來說都是完全錯誤的。在具有現代客戶核心的現代虛擬機管理程序上的虛擬機中執行 NTP 伺服器通常不會出現問題。在 LAN 上,VM 可以達到亞毫秒級的精度(我剛剛檢查了一些我自己的 VM,它們都低於 0.5 毫秒)。許多公共池伺服器在 VM 中執行。
對於你的問題:
- 驗證您的核心是否已正確自動檢測到時鐘源:
grep . /sys/devices/system/clocksource/clocksource*/[ac]*clocksource
. 這通常tsc
用於裸機,Hyper-V、KVM 和 Xen 具有以其管理程序(、、和)命名的時鐘hyperv_clocksource_tsc_page
驅動kvm-clock
程序xen
。- 如果您在 KVM 或 Hyper-V 下執行,您可以配置一個本地 PTP 驅動程序來提供更高的準確性。有關更多詳細資訊,請參閱https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-sync>和<https://opensource.com/article/17/6/timekeeping-linux-vms(後者值得一讀,它解釋了所有最近的改進,這些改進使 VM 中的計時比以前好得多)。TL;用於 chrony 配置的 DR:
refclock PHC /dev/ptp0 dpoll -2
- 四個對等點是準確計時的最低要求 - 最好添加公共 NTP 池或一些額外的基於 Internet 的源(time.apple.com 是我經常使用的一個),並從更多對等點和自動替換中受益。
- 不要將新 VM 作為網路中唯一的時間伺服器。設置您自己的本地等效池,您可以在其中通過多值 DNS 條目為所有客戶端提供多個 NTP 伺服器,並讓這些源中的每一個與 4-10 個較低層源對等。
- 如果您可以看到天空(對於 GPS 接收器)或無盡的金錢(對於原子鐘),請考慮為您的 VM 添加一個具有低延遲的本地第 1 層伺服器。我使用帶有 GPS 卡的 BeagleBone;還有許多基於 Raspberry Pi 的解決方案,以及一些價格實惠的現成設備,例如LeoNTP。