Logo faq-o-matic.net
Logo faq-o-matic.net

Zeitsynchronisation in virtuellen Umgebungen

von veröffentlicht am16. Mai 2012, 06:06 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Virtualisierung   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 5. Mai 2014

Alle Virtualisierungslösungen bieten die Möglichkeit, die Systemzeit virtueller Maschinen mit der lokalen Zeit des VM-Hostservers zu synchronisieren. Während dies in Test- und Entwicklungsumgebungen als praktisch erscheint, stellt sich die Frage, ob es in produktiven Umgebungen auch sinnvoll ist.

Meistens ist es das nicht – oder um es deutlicher zu sagen: Im Regelfall sollte man in produktiven Umgebungen die Systemzeit virtueller Maschinen nicht mit dem Host synchronisieren, sondern mit externen Zeitquellen – in Windows-Netzwerken also tunlichst mit den Zeitdiensten des Active Directory.

Warum dies?

Die grundsätzliche technische Problematik der Zeitsynchronisation virtueller Maschinen erläutert VMware sehr gut in einem eigenen Whitepaper (die Hintergründe gelten durchaus unabhängig von der eingesetzten Virtualisierungstechnik):

[Timekeeping in VMware Virtual Machines]
http://www.vmware.com/vmtn/resources/238
(direkter Download hier)

Da die Systemzeit in vielen Systemen ein wichtiger oder sogar kritischer Faktor ist, sollte man diesbezüglich keine unnötigen Risiken eingehen. Besonders in Active-Directory-Domänen etwa darf die Zeit aller beteiligten Systeme (also aller Server und Clients, die der Domäne angehören) nicht mehr als fünf Minuten auseinanderlaufen, denn sonst sind die Anmeldedaten nicht mehr gültig (genauer: das Kerberos-Ticket). Typisches Symptom in einem solchen Fall: Plötzlich funktioniert für einzelne Anwender der Zugriff auf bestimmte Daten oder Dienste nicht mehr.

Wie stellt man es aber richtig an?

Eine sinnvolle Empfehlung lautet, alle Rechner im Netzwerk mit einer zentralen, einheitlichen Zeitquelle zu synchronisieren. Dafür eignet sich das NTP-Protokoll, das genau für solche Zwecke entworfen wurde. Windows enthält NTP-Clients und NTP-Serverfunktionen, dasselbe gilt für alle anderen wichtigen Betriebssysteme.

Im Fall von Active Directory lautet die Best-Practice-Empfehlung, dass der Domänencontroller mit der Rolle “PDC-Emulator” (auch “PDCe” genannt) als zentraler Zeitserver dienen sollte. Er gibt seine Zeit an die anderen Domänencontroller weiter, die ihrerseits die Clients mit der Zeit versorgen. Um hier Probleme zu vermeiden, sollte der DC mit der PDCe-Rolle nicht virtualisiert sein, sondern auf Hardware laufen (alle anderen DCs können prinzipiell auch virtualisiert sein). Nur dieser Server sollte seine Zeit von einer externen Quelle holen, also einem NTP-Server im Internet oder einer lokalen Uhr.

Folgender Artikel beschreibt eine gute und flexible Technik, die AD-Zeitsynchronisation den Empfehlungen gemäß für alle Windows-Rechner sicherzustellen:

[Zeitserver – w32time – ueber Gruppenrichtlinien konfigurieren]
http://www.gruppenrichtlinien.de/artikel/zeitsynchronisation-der-domaene-w32time-zeitserver-per-gpo/

Damit nun der NTP-Client in einer VM ordnungsgemäß funktioniert, sollte es keine Konflikte mit anderen Zeitabgleichs-Methoden geben. Insbesondere bedeutet das: Die Zeitsynchronisation mit dem Host sollte man abschalten und nur mit der Zeitsynchronisation des Betriebssystems arbeiten (also NTP oder AD-Abgleich).

VMware beispielsweise äußert sich in dem genannten Whitepaper recht eindeutig dazu (Seite 20):

Generally, it is best to use only one clock synchronization service at a time in a given virtual machine to ensure that multiple services do not attempt to make conflicting changes to the clock. So if you are using native synchronization software, we suggest turning VMware Tools periodic clock synchronization off.

Stolperfallen und Tipps

Natürlich gibt es da einige Dinge zu berücksichtigen. Eine unvollständige Auswahl:

  • Wer Hyper-V einsetzt und seine Umgebung mit dem Virtual Machine Manager 2008 R2 verwaltet, darf die Zeitsynchronisation der Integrationsdienste nicht über den VMM abschalten. Es gibt einen bekannten Bug im VMM 2008 R2, der diese Einstellung nicht an die VM weiterreicht. Man entfernt also das Häkchen, und beim nächsten Nachsehen ist es wieder da. Erst VMM 2012 handhabt das korrekt.
    Abhilfe: Diese Einstellung (Abschalten der Zeitsynchronisation über die Integrationsdienste) muss über den Hyper-V-Manager erfolgen (also das bordeigene Verwaltungstool).
  • Die VMware-Tools erlauben zwar das Abschalten der Zeitsynchronisation, allerdings bezieht sich das nur auf den periodischen Abgleich. In bestimmten Situationen setzen die VMware Tools die Zeit einer VM trotzdem auf die des Hosts (z.B. beim Neustart der Tools). Das kann zu unerwünschten Situationen führen, daher sollte man darauf achten, dass auch die ESX(i)-Hosts per NTP ihre Zeit von den Domänencontrollern beziehen.
    Dies trifft auf alle Versionen der VMware-Tools zu, siehe auch das obige Whitepaper auf Seite 19 unten:

    Note that all versions of VMware Tools make one-shot corrections of the virtual machine clock in certain cases […], independently of whether the periodic synchronization feature is on or off.

  • Um ESX(i)-Server auf ausfallsichere Weise per NTP mit der Zeit der AD-Domäne zu versorgen, gibt es einen Trick: Als NTP-Server für den Host trägt man nicht den Namen oder die IP-Adresse eines bestimmten Servers ein, sondern den DNS-Namen der Domäne. Dieser Name wird nämlich auf alle DCs aufgelöst, sodass in jedem Fall ein NTP-Server erreicht wird, auch wenn ein bestimmter DC mal nicht antwortet.

© 2005-2017 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!