虛擬機伺服器上的時間漂移,需要一個可靠的解決方案
我們在多個物理伺服器(託管)上有一些 windows server 2008 VMware 實例,並且有一個應用程序需要時間在伺服器實例之間進行同步。
顯然,VMware 有這方面的問題,我們真的從來沒有讓它工作得更好,我們已經設置伺服器每分鐘輪詢一次 NTP 更新,這可以緩解問題(以相當粗略的方式)。除了每隔一段時間,更新就會失敗(因為已經有太多的漂移了)然後windows永遠不會在之後進行NTP更新,這最終允許伺服器漂移得足夠遠,以至於我們的應用程序中斷了,我們注意到了。
我們正在考慮在大致相同的設置上將主機更改為 Xen 伺服器,我預計會出現類似的問題。
誰能告訴我 Xen 是否有與 VMware 對客人相同的時間漂移問題?
誰能告訴我與外部 NTP 伺服器同步以保持同步的最佳 Windows 伺服器設置是什麼:
您建議多久同步一次?(假設每分鐘)
您是否建議執行我們自己的 NTP 伺服器 - 即使它必須在虛擬實例上?(假設不是)
無論時差是多少,有什麼方法可以告訴 Windows 與 NTP 伺服器同步?
保持Windows伺服器時間同步的任何其他建議?
我已經熟悉 [ http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1318 ] 並且它有所幫助,但它並不完全有效(見上文)。
非常感謝!
間歇性地使用 NTP(甚至每分鐘一次)不會有太大幫助。NTP 專為不斷更新/調整而設計,不適用於離散時鐘跳躍。
如果你安裝了一個合適的 NTP 守護程序,你會有更好的運氣。我發現http://www.meinberg.de/english/sw/ntp.htm(“標準”NTPd 實現的 Windows 建構)在執行 Windows Server 2003 和 2008 的 VM 中是可靠的。
不過要注意四點:
- 確保 VMWare 時間同步方法或已關閉來賓 NTP 正在執行,否則它們和 NTP 將相互爭鬥。上面連結的 NTP 版本的安裝程序將關閉來賓中的常用時間同步軟體,但它無法關閉 VMWare,因此您需要自己執行此操作。
- 確保您已
tinker panic 0
在 NTPd 配置文件的頂部指定。如果時鐘漂移突然變化,這會阻止 NTP 服務放棄,這在 VM 中並不少見,因為主機上的負載隨時間不同而不同。- 為 VM 使用本地時間源以獲得更好的本地準確性,並將此本地源與 .pool.ntp.org 或類似文件同步,而不是將 VM 直接與外部世界同步。這樣,如果您的外部網路訪問中斷,VM 仍然有一個比自己更可靠的時鐘源來同步(並且您對公共時間伺服器更友好)。您可以使用 VMWare 主機作為本地時間源,儘管我傾向於讓一台機器充當外部網路網關並讓它也執行這項工作。
- 確保您沒有將 VM 的本地時鐘列為時間源,即使作為最後的備份手段也是如此。