Virtualisierung und die Zeit-Synchronisation

Bei der Virtualisierung von Computern ticken die Uhren etwas anders. Diese Aussage kann durchaus wörtlich genommen werden und zeigt bereits ein grundlegendes Problem auf.

Virtualisiert man Computer, so sollte sichergestellt werden, das diese virtuellen Maschinen oder Gäste regelmäßig ihre Systemzeit überprüfen und ggf. anpassen. Gesetzt den Fall das die Systemzeit einer virtuellen Maschine nicht mit dem Rest des Netzwerkes übereinstimmt, so können Probleme bei der Kommunikation auftreten. Beispielsweise kann bei zu großer Differenz eine Anmeldung verweigert werden.

Windows versucht per Standard mittels NTP einen Abgleich mit dem Server “time.windows.com” einmal pro Woche. In einem Domänen-Netzwerk übernimmt das der Domänencontroller, der die FSMO-Rolle “PDC-Emulator” inne hat und gilt als Zeitgeber für alle Domänen-Mitglieder.

Unter Hyper-V wird per Standard über die Integrationsdienste die Zeit mit dem Host-System synchronisiert. Zu erkennen ist das unter anderem an dem gestarteten Dienst “Hyper-V-Dienst für Zeitsynchronisation”, als auch im Hyper-V-Manager in den Einstellungen des virtuellen Computers unter “Integrationsdienste” als auch in der Eingabeaufforderung mit dem Befehl

w32tm /query /source

Dieser Befehl gibt unter Windows Server 2008 R2 als Ergebnis

Local CMOS Clock

aus, sofern die interne Uhr verwendet wird oder eine entsprechend konfigurierte andere Zeitquelle. So sieht sie Ausgabe bei einem virtualisierten Windows Server 2012 R2 wie folgt aus:

VM IC Time Synchronization Provider

Unter VMware ist per Standard die Zeitsynchronisation über die VMware Tools deaktiviert, so das eine Abfrage “Local CMOS Clock” ergibt und Windows wiederum per NTP die Zeit abgleicht.

Ein sofortiges Aktualisieren lässt sich mit folgenden Befehl auslösen:

w32tm /resync /nowait

Dies kann notwendig sein, wenn man die Zeitquelle geändert hat oder im Fehlerfall möglichst schnell die Zeit wieder synchron haben möchte.

Hilfreiche Links

Faq-O-Matic: Virtuelle DCs – Zeitprobleme vermeiden

Faq-O-Matic: Zeitsynchronisation in virtuellen Umgebungen

TechNet: Ausführen von Domänencontrollern in Hyper-V (Abschnitt “Zeitdienst”)

TechNet: Konfigurieren des Windows-Zeitdiensts

TechNet: Time Services for a Domain Controller on Hyper-V

TechNet: W32tm

Synchronize time with external NTP server on Windows Server 2008 (R2)

TecChannel: Windows Server 2008 R2 mit einer externen Zeitquelle synchronisieren

SBS2011 Zeit in Virtueller Maschine

Persönliche Erfahrungen

Bislang sind an uns Zeit-Synchronisations-Probleme weitestgehend vorübergegangen. Aktuell kam es kurz vor Weihnachten bei einem Kunden zu der Situation, das die Integrationsdienste eines unter Hyper-V virtualisierten Windows Server 2008 R2 die Systemzeit nicht mehr abglichen und damit nicht nur die Uhrzeit dieses Servers, sondern auch der gesamten Arbeitsplätze (es handelte sich um den einzigen Domänencontroller im gesamten Netzwerk) um exakt 30 Minuten vorgingen.

Abhilfe schaffte das Neustarten des Dienstes “Hyper-V-Dienst für Zeitsynchronisation” im betroffenen virtuellen Computer als auch das De-/Aktivieren von “Zeitsynchronisation” in den Einstellungen des betroffenen virtuellen Computers im Hyper-V Manager.

Die einzige sonst falsch laufende Uhr an die ich mich entsinnen kann, war vor längerer Zeit mal unter ArchivistaVM, aber das ist schon lange her.

Update 07.01.2014

Kleiner Tipp am Rande: Server-Eye bietet einen Sensor zur Überwachung der Systemzeit inkl. Korrektur bei zu großer Abweichung an:

Server-Eye - Sensor "Zeitdienstüberwachung"Server-Eye - Sensor "Zeitdienstüberwachung"Update 11.02.2014

Beim gleichen Kunden war die Zeit nun wieder ca. 20 Minuten voraus. Diesmal genügte das Neustarten des Dienstes “Hyper-V-Dienst für Zeitsynchronisation”. Da uns die Sache aber nun (in diesem Fall) zu instabil schien, haben wir die Zeit-Synchronisation dieses virtuellen Computers deaktiviert (sowohl in den Einstellungen des virtuellen Computers, als auch den entsprechenden Dienst deaktiviert) und eine externe Zeitquelle konfiguriert.

Update 21.03.2014

Gestern war’s bei besagtem Kunden wieder so weit und wieder waren es 20 Minuten. Diesmal war der Windows Server der Meinung, er akzeptiere eine Securepoint UTM nicht mehr als Zeitquelle. Ironischerweise erhält man bei folgender Abfrage eine positive Antwort:

C:\Windows\system32>w32tm /query /status

Sprungindikator: 0(keine Warnung)
Stratum: 5 (Sekundärreferenz - synchr. über (S)NTP)
Präzision: -6 (15.625ms pro Tick)
Stammverzögerung: 0.0689392s
Stammabweichung: 0.0819944s
Referenz-ID: 0x0A000001 (Quell-IP:  IP-DER-SECUREPOINT-UTM)
Letzte erfolgr. Synchronisierungszeit: 19.03.2014 16:32:31
Quelle: 10.0.0.1
Abrufintervall: 10 (1024s)

Im Ereignisprotokoll findet man dann aber wieder den Hinweis, dass das Peer nicht erreichbar wäre und als Zeitquelle verworfen wird. Nun ja, jetzt (mal wieder) “ptbtime1.ptb.de” als Quelle gesetzt und plötzlich war’s wieder synchron. Als workaround wurde nun als Skript bzw. Aufgabe folgendes hinterlegt und dies wird einmal täglich ausgeführt:

@echo off

w32tm /config /manualpeerlist:ptbtime1.ptb.de /syncfromflags:manual /reliable:yes

w32tm /config /update

net stop w32time && net start w32time

w32tm /resync /rediscover

Mal sehen, wie lange es diesmal gut geht. Und so ganz nebenbei: Der Kunde hat aktuell kein Server-Eye (Wartungsvereinbarung ist ausgelaufen und wurde bis dato nicht verlängert), von daher konnten wir das nicht “proaktiv” mitbekommen.

5 Kommentare

  1. Adrian Reinhard

    hi Andy, kurze frage wie machst Du dies bei Hyper-V.

    Ist hier der Zeitgeber der HyperVisor (Physisch) oder der virtuelle DC? – die Zeitsynchronisierung in HyperV (Einstellungen) habe ich überall rausgenommen.

    Vielen Dank für Dein Feedback!
    Viele Grüsse, Adrian

  2. andy

    In dem Fall würde der DC die Zeit stellen, allerdings sollte man sicherstellen, das dieser wiederrum mit einer adäquaten Quelle synchronisiert, das sonst unter Umständen die Uhrzeit in der Domäne nicht stimmt bzw. mit der Zeit abweicht.

  3. Marc

    Ich empfehle die Netzwerkingracszruktur als Ntp-Basis zu nehmen, denn:

    Diese ist bei einem Ausfall das erste was wieder da ist..

    Durch das interne WAN auch bei Ausfall des Internets schneller wieder in Syn mit einem Standort, der nicht von einem Ausfall betroffen war.

    Geräte wie zB Cisco eine intelligente Auswahl des besten Stratum-NTP-Servers haben, gleichzeitig aber auch andere Netzwerk-Devices zum puffern verwenden können.

    Man kann dann den AD-Servern immer noch einen externen und einen eigenen NTP angeben

    Grundsätzlich empfehle ich aber grundsätzlich alle NTP-Verbindungen auf der Firewall zu blocken, Requests an pool oder windows per dotted-Hostnames auf die Internen zu biegen. Nur die beabsichtigen NTP Verbindungen sollen noch durch die FW.

    Mit einem abschliessenden Punkt wird das verbiegen mit den dottet-Hostnames übersteuert:

    Time.windows.com. <<< Punkt macht es zu einer FQDN!

  4. Hanna

    Hi, ich teste gerade in der Virtualbox. Das interne Netz ist geschlossen (kein Internet, um Zeit zu synchronisieren). Der eine Member-Server hatte mehrer Peers definiert gehabt und synchronisiert die Zeit jetzt nicht (kein Internet). Dafür steht unter W32t /query /status Quelle Cmos Clock.
    Bei dem PC (ist auch der PDC Emulator) geht die Zeit falsch (nicht wie bei dem Member-Server, obwohl dort auch als Quelle Cmos steht. Holt es sich die Cmos Uhrzeit von der Virtual-Box? Die Urzeit auf dem lokalen PC, wo Virtual-Box selber läuft ist richtig. Ich möchte nur erreichen, das der PDC für Testzwecke die Uhrzeit von dem Member-Server als Peer übernimmt. 32tm /config /manualpeerlist:”IP-Adresse des Servers” /syncfromflags:manual /reliable:yes /update
    Es kommt leider die Fehlermeldung Ereignisanzeige , dass Der Zeitanbieter “NtpClient” keine Verbindung zu dem Peer mit der Adresse aufbauen kann. Von einem Windows10 PC geht es auch nicht.
    Der Tim32 Dienst is auch auf dem Member-Server gestartet.
    Können reine PCs auch als Zeitgeber dienen? Es geht nur um eine Testumgebung. In der Produktion sollte nur der DC der Zeitgeber sein und externe Zeitquellen als Peer definiert haben.

    VG

  5. Andy

    Bei VirtualBox bin ich nicht up-to-date, d.h. lange nicht mehr verwendet.
    Wenn der CD seine Zeit per CMOS RTC kriegt, sollte er diese den Clients und Membern in der Domänen zur Verfügung stellen.
    Bei den Domänenmitgliedern muss man i.d.R. nicht extra den Zeitserver konfigurieren, da der DC der die PDC-Rolle inne hat automatisch als Quelle verwendet wird.

    Ob Clients einen Zeitserver stellen können ist mir nicht bekannt.

    Ggf. mal die Zeit auf dem DC (PDC) manuell setzen und schauen ob die halbwegs stabil bleibt, bei Virtualisierung ist das immer so eine Sache.
    Evtl. auch prüfen, ob der Zeitabgleich in VirtualBox deaktiviert ist:

    VirtualBox: Zeit-Synchronisation deaktivieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑