Virtualization

在虛擬機中執行 NTP 伺服器有什麼限制?

  • September 26, 2013

我想在我的本地網路上設置多個 Stratum 2 時間伺服器。虛擬機肯定比購買三台 1U 伺服器更便宜。這樣做會施加什麼限制?也就是說,準確性會在多大程度上受到不利影響?

此外,我的直覺是這些本地時間伺服器應該駐留在不同的物理機器上,以減輕任何硬體異常。這種直覺正確嗎?

編輯 我應該說“虛擬機”並不是VMware。相反,我指的是虛擬化實例的一般概念。

一個簡單的事實是,VM 內的時鐘精度仍然很差。這來自幾個地方,但殺手鐧是時間漂移不是恆定的;漂移因子隨時變化。NTP 是一種內置時鐘補償的協議,但它的設計內置了靜態漂移因子。例如,如果一台物理機器每 30 天失去 12 秒,NTP 可以彌補這一點並且做得很好。但是,如果這台機器每 30 天會失去 4 到 70 秒,那麼 NTP 就不能很好地跟踪這種變化水平。

NTP 很難在 VM 環境中跟上進度的真正原因是它所看到的本地時鐘可以在一分鐘內改變其漂移因子。根據它檢查其父時間源的頻率,它可能會導致主要的漂移因子變化並導致它更頻繁地不同步。整個組織中的不同步時間級聯。

用於本地網路的 NTP 是一種影響相對較小的協議,記憶體佔用非常小,並且可以愉快地搭載在您的其他網路基礎設施伺服器上,例如 DNS 和 DHCP 伺服器。一些路由器還可以提供 NTP 功能,因此您可能需要研究一下。

理想情況下,您希望兩個獨立的伺服器位於不同的位置,每個伺服器都與一組不同的更高層伺服器同步。將兩個時間伺服器配置為將另一台伺服器用作“對等點”也是一個非常好的主意,這將在上游時間源之一出錯時將對時間服務的影響降至最低;會有階層變化,但至少不會報告不同步。最後,請善待您的上游時間提供者,並在時間確定後配置您的伺服器以在輪詢之間執行很長時間。這是 ‘server’ 行上的 ‘maxpoll’ 參數,是兩次同步嘗試之間的秒數。

如果您絕對必須為此使用虛擬機,我會設置不少於三個這樣的 NTP 伺服器。每個都需要在不同的主機上,如果可能的話,在不同的數據中心。正如我剛剛建議的那樣,它們需要不同的時間源並且應該相互對等。然後將所有 NTP 客戶端配置為使用所有三個作為父源。確保您的 maxpoll 值足夠低,不會在網路外同步數據包和網路上 30 分鐘之間超過一個半小時​​。在任何給定時間,至少三個中的一個很有可能是同步的。對於只能與一個時間主機交談的客戶端,他們只需要忍受偶爾的不同步事件。總體而言,這種情況下的時間質量不會像物理伺服器那樣精確。

如果我不得不說一下,我會說你在純 VM 環境中的共識時間可能在 30 到 100 毫秒之內。在純粹的物理環境中,一旦時間伺服器已經啟動足夠長的時間來解決問題,您的共識時間可能會在 10 毫秒內。

引用自:https://serverfault.com/questions/106501