Hyper-V-Zeitsynchronisierung für VM Domain Controller

13

Wir haben 2 physische Hyper-V-Server, auf denen 8 VMs ausgeführt werden. Auf jedem physischen Server befindet sich ein Domänencontroller, auf dem eine VM ausgeführt wird, und alle Server sind 2008R2

Der VM-PDC ist auf NTP eingestellt und wird mit time.microsoft.com synchronisiert. Der Rest einschließlich der physischen Server ist NT5DS. Dieser Haupt-VM-PDC enthält definitiv den FSMO und ist UDP 123 aktiv

wenn ich w32tm / query / status starte

Wenn ich VM IC Time Synchronization Provider auf beiden VM-Domänencontrollern erhalte, weiß ich, dass dies die Synchronisierung mit dem Host bedeutet.

Wenn ich w32tm / resync / rediscover laufen lasse

Ich habe "keine erneute Synchronisierung durchgeführt, da keine Zeitdaten verfügbar waren" und eine Ereignis-ID 134 in den Protokollen erhalten.

Ich habe auch die Logs durchgesehen und Event 144 & 12 bekommen

Ich habe MS KB-Details zum Einrichten einer externen Zeitquelle befolgt und alle Registrierungsänderungen vorgenommen, aber ich denke, der DNS holt mich?

Aber wenn ich die Zeit auf einer der physischen Maschinen ändere, wird hier die Zeit eingestellt. Vielleicht, wenn ich sie alle abmelde und registriere und aktualisiere und synchronisiere, aber ich fürchte, ich schaffe ein größeres Problem!

Ich versuche, die Zeitsynchronisierung zwischen der VM und dem Hyper-V-Host aktiviert zu lassen, da ich glaube, dass dies nach dem, was ich gelesen habe, die beste Vorgehensweise ist.

Danke für Ihre Hilfe



Ich habe es endlich geschafft! Das Ziel ist es, Leuten zu helfen, die am Anfang des Einstellens einer Domains-Zeit stehen.

In diesem Beispiel werden alle Server, der primäre Domänencontroller (PDC), andere Domänencontroller (DC) und andere Server unter Windows 2008 R2 ausgeführt und mit Hyper-V virtualisiert.

Als Erstes lesen Sie, wie Sie den 'Time Synchronization Integration Service' auf einer virtuellen Maschine in Hyper-V deaktivieren. Stattdessen sollten Sie den Windows-Zeitdienst (w32tm-Dienst) über den virtuellen Domänencontroller manipulieren. Sie sollten dies nicht deaktivieren, wenn a Ein Neustart der VM führt zu Problemen. Dies sollte mit w32tm erfolgen. http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

Sie müssen herausfinden, welcher Server der PDC ist und welche FSMO-Rollen ausgeführt werden. Führen Sie Folgendes aus: netdom query fsmo Das Ergebnis sollte Ihr PDC sein. Hier nehmen Sie die meisten Änderungen vor.

Vergewissern Sie sich, dass in der Firewall eine "Outbound" -Regel für UDP123 vorhanden ist und das Programm "% SystemRoot% \ System32 \ w32tm.exe" lautet. Navigieren Sie zum Windows-Verzeichnis und suchen Sie nach der exe für die Zeit

Hier werden die Registrierungsänderungen gespeichert! HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Stellen Sie sicher, dass der PDC unter config in der obigen Registrierungsadresse für „type“ auf NTP eingestellt ist und alle anderen Server NT5DS sind. Dies bedeutet, dass NTP der Daddy ist! Hier empfiehlt es sich, den PDC extern auf Zeit und Synchronisation zu überprüfen.

Führen Sie dies auf allen Domänencontrollern (einschließlich PDC) aus. Dadurch wird die Windows-Zeit teilweise deaktiviert, sodass der Hostcomputer nicht rechtzeitig angezeigt wird. Dies ist wichtig, da wir virtualisiert sind. reg HKLM \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ VMICTimeProvider hinzufügen / v Aktiviert / t reg_dword / d 0

Sie können die Website ntp.org http://support.ntp.org/bin/view/Servers/WebHome aufrufen , um einen Server in Ihrer Nähe zu finden, der Ihre externe Zeit synchronisiert. Ich empfehle, Microsoft nicht zu verwenden, da diese häufig verwendet werden und daher herausrutschen können.

Mit dem folgenden Befehl wird der PDC so eingestellt, dass er extern aussieht. Überprüfen Sie jedoch auch die hier definierten Registrierungseinstellungen, um eine externe Synchronisierung durchzuführen (beides ist erforderlich): http://support.microsoft.com/kb/816042

Führen Sie dies auf dem PDC aus: w32tm / config /manualpeerlist: „0.pool.ntp.org,0x1“ / syncfromflags: MANUAL / Zuverlässig: Ja w32tm / config / update w32tm / resync w32tm / resync / rediscover

Führen Sie diese beiden Befehle jederzeit auf einem beliebigen Server aus, um ihre Quelle anzuzeigen. Wenn sie zuletzt aktualisiert wurden, werden sie in dieser Übung verwendet, um sicherzustellen, dass Ihr PDC und andere Server Zeit vom richtigen Ort erhalten. W32tm / query / status w32tm / query /Quelle

Führen Sie dies dann auf allen DCs mit Ausnahme des PDC aus. Dadurch wird der PDC nach Zeit durchsucht und erneut synchronisiert. W32tm / config / syncfromflags: DOMHIER / update net stop w32time net start w32time w32tm / resync / force

Probleme: Wenn Sie die Status- oder Quellabfrage ausführen, geben Sie ihnen eine Minute oder 2 nach den Änderungen. Sie sollten nicht auf die lokale CMOS-Uhr schauen und auch nicht den Anbieter für die vm ic-Zeitsynchronisierung als Quelle verwenden.

Bei Erfolg sollte der PDC die von Ihnen festgelegte externe Site lesen und die anderen Server sollten den PDC als Quelle angeben

Hoffe das hilft den Leuten viel Glück!

Karl
quelle
Hallo, Antworten gehen in den Abschnitt Antworten, nicht als Änderungen an der Frage.
Michael Hampton
2
Dies funktioniert in der neueren Version von Hyper-V 2012R2 mit den neuesten Integrationsaktualisierungen nicht vollständig, da die Zeit sofort auf den zugrunde liegenden Host zurückspringt, nachdem sie vom NTP-Server festgelegt wurde. Sogar nach einer Weile saß es zur falschen Zeit fest. Ich stellte fest, dass der Server durch Ändern des Registrierungsschlüssels TimeProviders / VMICTimeProvider / InputProvider = 0 nicht mehr so ​​schnell auf den zugrunde liegenden Host zurückfuhr.
Brain2000
1
Ich habe Ihre Antwort unten zur besseren Lesbarkeit formatiert . Möglicherweise möchten Sie die Antwort aus Ihrer Frage entfernen und nur auf Ihre Antwort verweisen.
Tilo

Antworten:

12

@PSaul ist meistens richtig. Sie möchten time.microsoftoder nicht time.windows.comals Zeitquelle für Ihren Domänencontroller verwenden, der die FSMO-Rolle "PDC-Emulator" innehat. Standardmäßig werden sie häufig verwendet, sind häufig aufgrund fehlender Lokalität langsam und manchmal nicht verfügbar. Wählen Sie einen NTP-Pool aus, der näher an Ihnen liegt.

Deaktivieren Sie jedoch nicht die Integration von Hyper-V Time Synchronization. Dies ist für bestimmte Funktionen erforderlich, z. B. das Zurücksetzen der Zeit nach einem Neustart oder wenn die virtuelle Maschine aus einem gespeicherten Zustand zurückkehrt. Sie möchten Ihre virtualisierten Domänencontroller anweisen, ihren Hyper-V-Host als Zeitquelle zu ignorieren.

Dies kann wie folgt erfolgen:

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

Dieser Befehl entfernt die Hyper-V-Zeitquelle als mögliche Quelle für W32Time.

w32tm /config /syncfromflags:DOMHIER /update

Weisen Sie W32Time jetzt an, nach der bestmöglichen Zeitquelle in der Domänenhierarchie zu suchen. Wenn Sie für beide Domänencontroller eine externe Quelle verwenden möchten, können Sie diese mit den Befehlen @PSaul posted oder from here konfigurieren . Im Allgemeinen sollte der Domänencontroller, der die Rolle des PDC-Emulators innehat, von der externen Quelle aus synchronisiert werden, und Ihre anderen Domänencontroller sollten von dieser Quelle aus synchronisiert werden.

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

Starten Sie den Zeitdienst neu und erzwingen Sie eine Resynchronisation.

w32tm /query /source

Zuletzt sollten Sie bestätigen, dass Ihre Domain Controller die richtige Zeitquelle haben.

Weitere Informationen finden Sie in Ben Armstrongs ausgezeichnetem Blogbeitrag .


quelle
Vielen Dank für die Info, ich hatte Ben Armstrongs Blog gelesen und wollte mich an Best Practices halten. Auf der VM, die heute der PDC ist, habe ich ausgeführt: w32tm / config /manualpeerlist: "0.pool.ntp.org,0x1" / syncfromflags: MANUAL / Zuverlässig: Ja w32tm / config / update w32tm / resync w32tm / resync / rediscover
Karl
In der Registrierung 0.pool.ntp.org ist 0x1 jetzt der Wert für NTP Server. Ich kann 0.pool.ntp.org von der PDC aus anpingen, kann aber trotzdem time.windows.com nicht anpingen, was ich seltsam fand! Die Zeit wird von einem der Hosts eingestellt, da bin ich mir sicher, aber es ist auf NT5DS eingestellt und es / query / status teilt mir mit, dass es den PDC verwendet. Muss ich einige Befehle auf dem Host ausführen, um ihn erneut zu synchronisieren? zum VM PDC? Ich habe den Befehl reg add gesehen und gehe davon aus, dass dies auf allen DCs durchgeführt werden muss. Ich frage mich, ob die w32tm / config / syncfromflags: DOMHIER / update auch auf dem PDC oder nur auf allen anderen DCs ausgeführt werden müssen.
Karl
Ich denke, das Ende des ersten Kommentars fehlt, nachdem ich die folgenden Befehle auf dem PDC ausgeführt habe. Alles sagte erfolgreich, aber als ich w32tm / query / status ausführte, hatte ich immer noch eine Quelle von "vm ic time synchronization provider" w32tm / config /manualpeerlist: "0.pool.ntp.org,0x1" / syncfromflags: MANUAL /iable: yes w32tm / config / update w32tm / resync w32tm / resync / neu entdecken und starten und stoppen
Karl
Vielen Dank für all die Ratschläge, von denen ich denke, dass ich sie endlich habe, aber ich werde für ein paar Tage gehen, um sie zu bestätigen, und dann werde ich aktualisieren, was ich getan habe, um sie zu beheben
Karl
5

Ich habe es endlich geschafft! Das Ziel ist es, Leuten zu helfen, die am Anfang des Einstellens einer Domains-Zeit stehen.

In diesem Beispiel werden alle Server, der primäre Domänencontroller (PDC), andere Domänencontroller (DC) und andere Server unter Windows 2008 R2 ausgeführt und mit Hyper-V virtualisiert.

Als Erstes lesen Sie, wie Sie den 'Time Synchronization Integration Service' auf einer virtuellen Maschine in Hyper-V deaktivieren. Stattdessen sollten Sie den Windows-Zeitdienst (w32tm-Dienst) über den virtuellen Domänencontroller manipulieren. Sie sollten dies nicht deaktivieren, wenn a Ein Neustart der VM führt zu Problemen. Dies sollte mit w32tm erfolgen. MSDN-Info

Sie müssen herausfinden, welcher Server der PDC ist und welche FSMO-Rollen ausgeführt werden. Führen Sie Folgendes aus: netdom query fsmo Das Ergebnis sollte Ihr PDC sein. Hier nehmen Sie die meisten Änderungen vor.

Vergewissern Sie sich, dass in der Firewall eine "Outbound" -Regel für UDP123 vorhanden ist und das Programm " % SystemRoot% \ System32 \ w32tm.exe" lautet. Navigieren Sie zum Windows-Verzeichnis und suchen Sie nach der exe für die Zeit

Hier werden die Registrierungsänderungen gespeichert!

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Stellen Sie sicher, dass der PDC unter config in der obigen Registrierungsadresse für „ Type “ auf NTP eingestellt ist und alle anderen Server NT5DS sind. Dies bedeutet, dass NTP der Daddy ist! Hier empfiehlt es sich, den PDC extern auf Zeit und Synchronisation zu überprüfen.

Führen Sie dies auf allen Domänencontrollern (einschließlich PDC) aus. Dadurch wird die Windows-Zeit teilweise deaktiviert, sodass der Hostcomputer nicht nach Zeit durchsucht wird. Dies ist wichtig, da wir virtuell sind.

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

Sie können zur Website ntp.org gehen, um einen Server in Ihrer Nähe zu finden, der Ihre externe Zeit synchronisiert. Ich empfehle, Microsoft nicht zu verwenden, da diese häufig verwendet werden und daher herausrutschen können.

Mit dem folgenden Befehl wird der PDC so eingestellt, dass er extern aussieht. Überprüfen Sie jedoch auch die hier definierten Registrierungseinstellungen, um eine externe Synchronisierung durchzuführen (beides ist erforderlich). MS KB 816042

Führen Sie dies auf PDC aus

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

Führen Sie diese beiden Befehle jederzeit auf einem beliebigen Server aus, um ihre Quelle anzuzeigen. Wenn sie zuletzt aktualisiert wurden, werden sie in dieser Übung verwendet, um sicherzustellen, dass Ihr PDC und andere Server die Zeit an der richtigen Stelle abrufen

w32tm /query /status  
w32tm /query /source

Führen Sie dies dann auf allen DCs mit Ausnahme des PDC aus. Dadurch wird der PDC nach Zeit durchsucht und erneut synchronisiert

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

Probleme : Wenn Sie die Status- oder Quellabfrage ausführen, geben Sie ihnen eine Minute oder 2 nach den Änderungen. Sie sollten nicht auf die lokale CMOS-Uhr schauen und auch nicht VM IC Time Synchronization Provider als Quelle verwenden.

Bei Erfolg sollte der PDC die von Ihnen festgelegte externe Site lesen und die anderen Server sollten den PDC als Quelle angeben

Hoffe das hilft den Leuten viel Glück!

Karl
quelle
Zwei weitere Dinge: Verwenden Sie ein Gruppenrichtlinienobjekt, um die NTP-Zeit auf der PDCE zu konfigurieren. Dies bedeutet, dass es automatisch konfiguriert wird, wenn die PDCE-Rolle verschoben wird: www.sysadminlab.net/windows/configuring-ntp-on-windows-using-gpo.
Trix
Erwägen Sie zum Setzen der Flags im NTP-Dienst die Verwendung von 0x8 - dies bedeutet, dass es sich um eine zuverlässige Zeitquelle handelt, die irgendwo mit einer Hardware-Uhr synchronisiert wird. Sehen Sie sich auch nicht die 0x1 für „spezielles Zeitintervall“ kann. Wenn Sie Ihre Uhr nicht in festgelegten Intervallen synchronisieren müssen, ist dies heutzutage unnötig. Wenn der DC seine Zeit nicht direkt nach dem Start erhält (z. B. Netzwerk nicht bereit), wartet er das gesamte Intervall. Oder wenn Sie 0x1 / 0x9 verwenden, legen Sie eine andere Quelle mit 0xa - Fallback - Quelle fest. Wird sofort abgefragt, wenn die primäre (n) Quelle (n) nicht antworten.
Trix
1

Ich würde vorschlagen:

  • NICHT die Zeitsynchronisierung zwischen dem HyperV-Host und den Gast-VMs aktivieren - insbesondere für DCs. Der PDC-Rolleninhaber sollte über NTP aus mehreren guten Zeitquellen aktualisieren. Die Uhr des Hosts kann auch über NTP aktualisiert werden, Sie möchten jedoch, dass der PDC der "Master" für andere DCs und Mitgliedsserver ist. (Zumindest bei VMwre gehe ich davon aus, dasselbe bei HyperV)
  • Stellen Sie sicher, dass der UDP-Port 123 für ausgehenden Datenverkehr geöffnet ist.
  • Dass Sie den vollqualifizierten Domänennamen der NTP-Server auflösen können (können Sie PING an sie senden?)
  • Alle anderen Domänencontroller und Mitgliedscomputer sollten automatisch aktualisiert werden.

Verwenden Sie nicht NUR time.windows.com oder time.microsoft.com, sondern einen der * .pool.ntp.org-Server. Ich benutze north-america.pool.ntp.org oder ca.north-america.pool.ntp.org - je näher desto besser. Sie können unter http://www.pool.ntp.org/ nach Servern in Ihrer Nähe suchen.

Dann führe etwas aus wie:

w32tm /config /manualpeerlist:"north-america.pool.ntp.org 0.pool.ntp.org" /syncfromflags:MANUAL /update /reliable:YES

(Fügen Sie die gewünschten NTP-Server hinzu. In Kanada verwende ich time.nrc.ca ebenfalls.)

Gefolgt von:

net stop w32time
net start w32time

Sie können die Peers überprüfen mit:

w32tm /query /peers

Überprüfen Sie das Systemprotokoll, um festzustellen, ob es aktualisiert wird. Sie sollten in der Lage sein, die Uhrzeit 1 Minute vorzustellen, den w32time-Dienst neu zu starten und ihn innerhalb von 30 Sekunden zu aktualisieren. [In einer AD-Domain ist ein Zeitversatz von weniger als 5 Minuten zulässig.]

PSaul
quelle
0

Wie von anderen empfohlen, sollten Sie auf keinen Fall die Synchronisierung der Hardwarezeit vom Host zum Gast durchführen. Sie sollten auch nur von dem Domänencontroller, der die Rolle des Gesamtstruktur-Stamm-PDC-Emulators innehat, mit externen NTP-Servern synchronisieren. Wenn der Domänencontroller Ihrer Gesamtstruktur-Stamm-PDC-Emulatorrolle nicht synchronisiert wird, treten bei den DCs, die darauf angewiesen sind, Probleme auf.

Möglicherweise möchten Sie auch den folgenden Hotfix versuchen:

Die Zeitsynchronisierung wird nicht ausgeführt, obwohl der W32Time-Dienst in Windows Server 2008 oder Windows Server 2008 R2 erfolgreich gestartet wurde

http://support.microsoft.com/kb/2493006

Sie finden es möglicherweise hilfreicher, wenn Sie das Flag / verbose für w32tm verwenden:

w32tm /query /status /verbose /computer:dcname

Zusätzliche Information:

https://technet.microsoft.com/en-us/library/virtual_active_directory_domain_controller_virtualization_hyperv%28WS.10%29.aspx

"Für virtuelle Maschinen, die als Domänencontroller konfiguriert sind, wird empfohlen, die Zeitsynchronisierung zwischen dem Hostsystem und dem Gastbetriebssystem, das als Domänencontroller fungiert, zu deaktivieren. Dadurch kann Ihr Gastdomänencontroller die Zeit aus der Domänenhierarchie synchronisieren."

"Um den Hyper-V-Zeitsynchronisationsanbieter zu deaktivieren, fahren Sie die VM herunter und deaktivieren Sie das Kontrollkästchen Zeitsynchronisation unter Integration Services."

Greg Askew
quelle