Domain-Controller

VM 域控制器的 Hyper-V 時間同步

  • March 7, 2019

我們有 2 台物理 hyper-V 伺服器在它們之間執行 8 個虛擬機,每台物理伺服器上都有一個域控制器在虛擬機中執行,所有伺服器都是 2008R2

VM PDC 設置為 NTP 並與 time.microsoft.com 同步,包括物理伺服器在內的其餘部分為 NT5DS。此主 VM PDC 肯定持有 FSMO 並且是 UDP 123 處於活動狀態

當我執行 w32tm /query /status

我在兩個 VM DC 上都獲得了 VM IC 時間同步提供程序,我知道這意味著與主機同步。

當我執行 w32tm /resync /rediscover

我得到“沒有重新同步,因為沒有時間數據可用”和日誌中的事件 ID 134 對此有何想法?

我還查看了日誌並得到了事件 144 和 12

我遵循了有關設置外部時間源的 MS KB 詳細資訊並進行了所有系統資料庫更改,但我認為 DNS 讓我失望了?

但是當我在其中一台物理機器上更改時間時,這就是設置時間的地方。也許如果我將它們全部註銷並註冊、更新和同步,但恐怕會造成更大的問題!

我正在嘗試啟用 VM 和 Hyper-V 主機之間的時間同步,因為我相信這是我所讀到的最佳實踐。

謝謝你的幫助



我終於讓它工作了!這樣做的目的是幫助那些剛開始設置域時間的人。

在此範例中,所有伺服器、主域控制器 (PDC)、其他域控制器 (DC) 和其他伺服器都執行 Windows 2008 R2 並使用 Hyper-V 進行虛擬化。

首先,您將閱讀以禁用 Hyper-V 中任何虛擬機上的“時間同步集成服務”,但您應該從虛擬 DC 中操作 Windows 時間服務(w32tm 服務),您不應該禁用它,因為當虛擬機重啟這會導致問題,應該用 w32tm 來完成。 http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

您將需要找出哪個伺服器是 PDC 並執行 FSMO 角色。執行以下命令: netdom query fsmo 結果應該是您的 PDC,這是您進行大部分更改的地方。

確保防火牆中有一個UDP123上的“出站”規則,程序是%SystemRoot%\System32\w32tm.exe只需瀏覽到windows目錄並找到exe時間

這是系統資料庫更改失敗的地方!HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time

確保上面註冊地址中config下的PDC設置為“type”的NTP,其他所有伺服器都是NT5DS,這意味著NTP是爸爸!此處的最佳做法是讓 PDC 從外部查找時間並將所有內容同步到它。

在所有域控制器(包括 PDC)上執行它,它將部分禁用 Windows 時間,因此它不會查看主機時間,這很重要,因為我們是虛擬化的。reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v 啟用 /t reg_dword /d 0

您可以到 ntp.org http://support.ntp.org/bin/view/Servers/WebHome 站點找到離您最近的伺服器來同步您的外部時間。我建議不要使用 Microsoft,因為它們被大量使用並且可能因此而滑出。

下面的命令將 PDC 設置為在外部查看,但也會檢查此處定義的系統資料庫設置以在外部同步(您需要同時執行這兩項) http://support.microsoft.com/kb/816042

在 PDC w32tm /config /manualpeerlist:“0.pool.ntp.org,0x1” /syncfromflags:MANUAL /reliable:yes w32tm /config /update w32tm /resync w32tm /resync /rediscover 上執行它

隨時在任何伺服器上執行這 2 個命令以查看它們的源以及它們上次更新的時間,這些將在整個練習中使用,以確保您的 PDC 和其他伺服器從正確的位置獲取時間 w32tm /query /status w32tm /query /來源

然後在除 PDC 之外的所有 DC 上執行它,這將使他們查看 PDC 的時間並重新同步到它 w32tm /config /syncfromflags:DOMHIER /update net stop w32time net start w32time w32tm /resync /force

問題:當您執行狀態或源查詢時,在更改後給它們一兩分鐘,您不應該查看本地 CMOS 時鐘,也不應該使用 vm ic 時間同步提供程序作為源。

如果成功,PDC 應該讀取您設置的外部站點,並且其他伺服器應該說 PDC 作為源

希望這可以幫助人們好運!

我終於讓它工作了!這樣做的目的是幫助那些剛開始設置域時間的人。

在此範例中,所有伺服器、主域控制器 (PDC)、其他域控制器 (DC) 和其他伺服器都執行 Windows 2008 R2 並使用 Hyper-V 進行虛擬化。

首先,您將閱讀以禁用 Hyper-V 中任何虛擬機上的“時間同步集成服務”,但您應該從虛擬 DC 中操作 Windows 時間服務(w32tm 服務),您不應該禁用它,因為當虛擬機重啟這會導致問題,應該用 w32tm 來完成。MSDN 資訊

您將需要找出哪個伺服器是 PDC 並執行 FSMO 角色。執行以下命令: netdom query fsmo 結果應該是您的 PDC,這是您進行大部分更改的地方。

確保防火牆中有一個UDP123上的“出站”規則,程序是**%SystemRoot%\System32\w32tm.exe**只需瀏覽到windows目錄並找到exe時間

這是系統資料庫更改失敗的地方!

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time

確保上面註冊地址中config下的PDC設置為“ Type ”的****NTP ,其他所有伺服器都是NT5DS,這意味著NTP是爸爸!此處的最佳做法是讓 PDC 從外部查找時間並將所有內容同步到它。

在所有域控制器(包括 PDC)上執行它,它將部分禁用 Windows 時間,因此它不會查看主機時間,這很重要,因為我們是虛擬的。

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

你可以去ntp.org網站找到離你最近的伺服器來同步你的外部時間。我建議不要使用 Microsoft,因為它們被大量使用並且可能因此而滑出。

下面的命令將 PDC 設置為在外部查看,但還會檢查此處定義的系統資料庫設置以在外部同步(您需要同時執行這兩項操作)MS KB 816042

PDC上執行

w32tm /config /manualpeerlist:"0.pool.ntp.org,0x1" /syncfromflags:MANUAL /reliable:yes   
w32tm /config /update   
w32tm /resync 
w32tm /resync /rediscover

隨時在任何伺服器上執行這 2 個命令以查看其原始碼以及上次更新的時間,這些將在整個練習中使用,以確保您的 PDC 和其他伺服器從正確的位置獲取時間

w32tm /query /status  
w32tm /query /source

然後在除 PDC 之外的所有 DC上執行它,這將使他們查看 PDC 的時間並重新同步到它

w32tm /config /syncfromflags:DOMHIER /update 
net stop w32time 
net start w32time 
w32tm /resync /force

問題:當您執行狀態或源查詢時,在更改後給它們一兩分鐘,您不應該查看本地 CMOS 時鐘,也不應該使用VM IC 時間同步提供程序作為源。

如果成功,PDC 應該讀取您設置的外部站點,並且其他伺服器應該說 PDC 作為源

希望這可以幫助人們好運!

@PSaul 大部分是正確的。您不想使用time.microsofttime.windows.com作為您的域控制器的時間源,該域控制器持有 PDC 模擬器 FSMO 角色。預設情況下,它們被大量使用,由於缺乏局部性而通常很慢,有時甚至不可用。選擇一個離您較近的 NTP 池。

但是,不要禁用Hyper-V 時間同步集成。某些功能需要它,例如在重新啟動後或虛擬機從保存狀態恢復時重置時間。您要做的是告訴您的虛擬化域控制器忽略其 Hyper-V 主機作為時間源。

這可以按如下方式完成:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

此命令刪除 Hyper-V 時間源作為 W32Time 的可能源。

w32tm /config /syncfromflags:DOMHIER /update

現在告訴 W32Time 在域層次結構中搜尋最佳時間源。如果您想為兩個域控制器使用外部源,您可以使用@PSaul 發布的命令或從此處對其進行配置。一般來說,擔任 PDC 模擬器角色的域控制器應該從外部源同步,而您的其他域控制器應該從它同步。

net stop w32time & net start w32time
w32tm /resync /force

重新啟動時間服務並強制重新同步。

w32tm /query /source

最後,您應該確認您的域控制器具有正確的時間源。

有關更多詳細資訊,請參閱 Ben Armstrong 的優秀部落格文章

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