即使使用 NTP,Hyper-V 機器也會到處漂移
已解決 問題是該機器上的 Hyper-V。我刪除了 Hyper-V,安裝了 VMware Server,執行了同一個虛擬機。時間同步問題消失了(一天后的差異小於 100 毫秒)。
我的設置是這樣的:
HYV1 - HyperV machine (non domain) - sync irrelevant AD1 - VM AD server on HYV1, sync'd to time.nist.gov. HyperV time sync off. S1 - Physical machine, sync'd to domain. S2 - Physical machine running HyperV, sync'd to domain. V1 - Linux VM machine on S2, sync'd to AD1. No HyperV integration.
AD1 和 S1 有很好的同步——帶狀圖顯示小於 100 毫秒的差異。
S2像瘋了一樣漂移。下面是一些針對 AD1 的條形圖:
18:33:22 d:+00.0010138s o:+05.4101899s 18:33:24 d:+00.0010138s o:+05.4319765s 18:33:26 d:+00.0000000s o:+05.4788429s 18:33:28 d:+00.0000000s o:+05.6089942s 18:33:30 d:+00.0010138s o:+05.7240269s 18:33:32 d:+00.0000000s o:+06.0421911s 18:33:34 d:+00.0081104s o:+06.5613708s 18:33:37 d:+00.0000000s o:+06.9096594s 18:33:39 d:+00.0000000s o:+06.8867838s 18:33:41 d:+00.0010127s o:+06.8936401s
在 20 秒內,它漂移了超過一秒。如果我在 1 秒內手動將其重置,則在幾分鐘內它會重新漂移大約 2 秒。一夜之間,它從~2s變成了~5s。S2 內的 Linux VM 與 AD1 完美同步。
這是配置:
C:\Users\mgg>w32tm /dumpreg /subkey:Parameters Value Name Value Type Value Data ------------------------------------------------------------ ServiceDll REG_EXPAND_SZ %systemroot%\system32\w32time.dll ServiceMain REG_SZ SvchostEntry_W32Time ServiceDllUnloadOnStop REG_DWORD 1 Type REG_SZ NT5DS NtpServer REG_SZ ad01.mydomain ad02.mydomain C:\Users\mgg>w32tm /dumpreg /subkey:Config Value Name Value Type Value Data ----------------------------------------------------------- FrequencyCorrectRate REG_DWORD 4 PollAdjustFactor REG_DWORD 5 LargePhaseOffset REG_DWORD 50000000 SpikeWatchPeriod REG_DWORD 900 LocalClockDispersion REG_DWORD 9 HoldPeriod REG_DWORD 5 PhaseCorrectRate REG_DWORD 1 UpdateInterval REG_DWORD 30000 EventLogFlags REG_DWORD 2 AnnounceFlags REG_DWORD 5 TimeJumpAuditOffset REG_DWORD 28800 MinPollInterval REG_DWORD 2 MaxPollInterval REG_DWORD 8 MaxNegPhaseCorrection REG_DWORD -1 MaxPosPhaseCorrection REG_DWORD -1 MaxAllowedPhaseOffset REG_DWORD 300
我查看了事件日誌,除了關於同步的警告(在它失去同步之後),沒有其他警告。
我該如何解決這個問題?這是唯一有此問題的機器。所有其他機器(物理和虛擬)都執行良好。
**編輯:**澄清:VM(AD1)已關閉集成並同步到 time.nist.gov。AD1沒問題。是物理機S1無法同步到AD1,到處漂移。所有其他物理伺服器都能夠很好地同步到 AD1。
更新 因此,這似乎是執行 VM 的問題。虛擬機關閉時,時鐘慢慢滑落。打開後,它立即開始失去秒數。我 swt VM 只使用了一半的資源,現在這似乎稍微減輕了它。謝謝!
根據您的描述,伺服器 S2 主機板上 的 RTC ( http://en.wikipedia.org/wiki/Real-time_clock )似乎存在實際硬體問題。
Hyper-V 來賓最初從主機 (HYV1) 獲取時鐘,但由於您禁用了 Hyper-V 時間同步,它會從 NIST 獲取所有進一步的時鐘更新(工作正常)。您的 Linux VM 未與 Hyper-V 集成,因此它正在從域中獲取時間,這也可以正常工作。您的其他物理機器工作正常,它只是一個物理伺服器,每 20 秒有 1 秒的漂移(這是一個瘋狂的漂移量)。時間漂移的速度比網路時間同步可以將時鐘重置到正確的時間快得多(如果我沒記錯的話,它每 8 小時發生一次)。
如果您想排除 Hyper-V 作為 S2 上錯誤的原因,請創建“無 Hypervisor”引導條目,在沒有 Hyper-V 的情況下重新啟動,並查看時間漂移是否仍然存在。此處的說明:http: //blogs.msdn.com/virtual_pc_guy/archive/2008/04/14/creating-a-no-hypervisor-boot-entry.aspx
-肖恩