Bundesamt für Sicherheit in der Informationstechnik

M 4.348 Zeitsynchronisation in virtuellen IT-Systemen

Verantwortlich für Initiierung: Leiter IT

Verantwortlich für Umsetzung: Administrator

Viele Anwendungen benötigen eine korrekte Systemzeit, um einwandfrei zu funktionieren. Dies beginnt schon bei Dateiservern damit, dass die auf ihm gespeicherten Dateien mit einem Zeitstempel versehen werden. Andere Systeme verwenden die Systemzeit auf unterschiedliche Weise. Bestimmte Authentisierungssysteme wie Kerberos oder auch tokenbasierte Systeme benötigen eine korrekte Systemzeit, um störungsfrei zu arbeiten. Monitoringsysteme wie beispielsweise mrtg nutzen die Systemzeit üblicherweise als Index für ihre in einer Datenbank abgelegten Aufzeichnungen.

Aus diesen Gründen muss darauf geachtet werden, dass auch die Systemzeit eines virtuellen IT-Systems stets korrekt voranschreitet. Bei Virtualisierungsprodukten, die auf einer vollständigen Servervirtualisierung beruhen, ist dies häufig nicht ohne Weiteres gewährleistet.

Die Berechnung der Systemzeit durch Taktzählung

Moderne Betriebssysteme ermitteln die Systemzeit nicht, indem die Systemuhr ständig ausgelesen wird, sondern indem Prozessorzyklen gezählt und diese Zyklen mit einer externen Zeitquelle verglichen werden. Diese externe Zeitquelle kann ein Zeitserver oder auch eine Hardware-Uhr sein. Der Grund für diese auf den ersten Blick umständliche Zeitermittlungsmethode ist, dass für moderne Prozessoren eine Zeitquelle benötigt wird, die eine höhere Auflösung als die meisten Uhren besitzt. Diese Auflösung muss im Bereich des Taktes eines modernen Prozessors liegen. Durch ständigen Vergleich der Prozessorzyklen mit der verlässlichen Zeitquelle wird ein Umrechungsfaktor gebildet, der es erlaubt, die Prozessorzyklen in die Zeit umzuwandeln. In bestimmten Zeitabständen wird dieser Umrechnungsfaktor durch Vergleich der vergangenen Zyklen mit der Zeitquelle korrigiert, um eine etwaige Ungenauigkeit in der Berechnung auszugleichen.

Die meisten Produkte für eine Servervirtualisierung ordnen den virtuellen IT-Systemen und damit den virtuellen Prozessoren abhängig von deren Last dynamisch Prozessorzyklen zu. Daher läuft der Zähler für die Prozessorzyklen aus Sicht der virtuellen Maschine mit unterschiedlichen Geschwindigkeiten. Der Algorithmus zur Zeitbestimmung und -korrektur ermittelt damit bei jedem Durchlauf andere Werte, was dazu führt, dass auch die Systemzeit in einem virtuellen IT-System scheinbar mit unterschiedlichen Geschwindigkeiten voranschreitet. Dadurch kann es in virtuellen IT-Systemen durchaus zu Abweichungen von mehreren Minuten kommen, sodass in Extremfällen die Zähler überkorrigiert werden und die Systemzeit des virtuellen IT-Systems zum Teil scheinbar rückwärts läuft.

Normalerweise läuft die Systemuhr in virtuellen IT-Systemen, die eine gleichmäßige Prozessorauslastung haben, mit ausreichender Genauigkeit. Hierbei ist es belanglos, ob die Auslastung hoch oder niedrig ist, entscheidend ist die Gleichmäßigkeit. Bei Systemen mit zeitweise hoher und zeitweise niedriger Auslastung kommt es zu den bereits beschriebenen Effekten. Hierbei verhalten sich die Betriebssysteme abhängig von ihrer Konfiguration sehr unterschiedlich.

Korrekturmethoden und deren Grenzen

Die meisten Virtualisierungsprodukte besitzen einen Mechanismus, um die Systemzeit in den virtuellen IT-Systemen zu korrigieren. Dies wird häufig über eine Funktion der Gastwerkzeuge realisiert. Die Produkte der Hersteller Citrix und VMware beispielsweise beinhalten eine Funktion zur Synchronisierung der Systemzeit der virtuellen IT-Systeme mit der Systemzeit des Virtualisierungsservers.

Diese Mechanismen sind allerdings nicht immer für die in einem virtuellen IT-System betriebenen Anwendungen ausreichend, da sie in der Regel nicht auf alle Timer eines Betriebssystems wirken, sondern nur auf die so genannte Time of Day Clock. Zudem erfolgt die Synchronisierung nicht ständig, sondern in bestimmten Abständen. Diese Abstände liegen meist im Bereich von einigen wenigen Bruchteilen von Sekunden, sind aber für eine genaue Zeitanpassung häufig zu groß.

Dieser Aspekt ist beim Betrieb von Anwendungen in virtuellen IT-Systemen zu beachten. Die Anwendungen müssen entweder mit einer ungleichmäßig laufenden Systemuhr auskommen können oder es müssen Konfigurationsänderungen am Virtualisierungsserver oder dem virtuellen IT-System vorgenommen werden, die die Genauigkeit der Systemuhr der virtuellen IT-Systeme steigern.

Solche Konfigurationsänderungen bestehen darin, die Abfrage einer externen Zeitquelle häufiger durchzuführen, als dies standardmäßig der Fall ist. Dies kann über die Gastwerkzeuge geschehen, wenn diese eine entsprechende Konfigurationsmöglichkeit besitzen. Es ist aber auch möglich, dass betreffende virtuelle IT-System so einzurichten, dass es beispielsweise öfter einen NTP-Server abfragt und dadurch seine Systemuhr korrigiert. Hierdurch werden die Intervalle kleiner, in denen die Uhr mit einer falschen Geschwindigkeit läuft und der Umrechnungsfaktor für die Prozessorzyklen wird schneller angepasst. In der Regel ist es nicht sinnvoll, diese beiden Möglichkeiten miteinander zu kombinieren, da ansonsten mit geringen Performanceverlusten gerechnet werden muss. Für Unix-Betriebssysteme müssen häufig auf die Virtualisierung abgestimmte Kernel verwendet werden. Hier sind in Abhängigkeit von den eingesetzten Unix-Derivaten z. B. im Bootloader entsprechende Parameter zu setzen. Unter Umständen muss ein solcher Kernel auch dediziert erzeugt (selbst kompiliert) werden.

Prinzipiell sollte ein Vorgehen etabliert werden, welches sicherstellt, dass Probleme mit der Synchronizität der Systemzeit erkannt und beseitigt werden können, bevor die virtuellen Systeme ausgerollt werden. Während des Pilotbetriebs eines neuen virtuellen IT-Systems ist die Systemzeit des Systems verstärkt zu überwachen. Dabei ist zu ermitteln, ob die interne Uhr des virtuellen IT-Systems von der tatsächlichen Zeit abweicht. In diesem Fall muss geprüft werden, ob sich dies nachteilig auf die im virtuellen IT-System betriebene Applikation auswirkt, gegebenenfalls sind Korrekturmaßnahmen durchzuführen. Der Erfolg der Korrekturmaßnahmen ist im weiteren Pilotbetrieb und auch nach der Überführung in den Produktivbetrieb zu prüfen.

Prüffragen:

  • Sind die Einflüsse der Virtualisierung auf die Systemzeit bei der Virtualisierung eines bestimmten IT -Systems oder einer bestimmten Anwendung hinreichend bedacht worden?

  • Wurden die Anwendungen der virtuellen IT -Systeme auf Probleme mit unregelmäßig laufender Systemzeit geprüft?

  • Ist ein allgemeines Konzept entwickelt worden, wie eine ausreichende Synchronizität der Systemzeit in den virtuellen IT -Systemen gewährleistet wird?

Stand: 12. EL Stand 2011

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK