Unterstützung für Schaltsekunden in FreeBSD

2016-02-23 14:22:54 von wblock.

[ einzelne Abschnitte / komplettes Dokument ]

1. Einleitung

Eine Schaltsekunde ist eine eigens dazu eingerichtete Korrektur, um die atomaren Zeitskalen mit der Erdrotation zu synchronisieren. Dieser Artikel beschreibt wie FreeBSD mit Schaltsekunden umgeht.

Zum Zeitpunkt der Erstellung dieses Dokuments wird die nächste Schaltsekunde am 30. Juni 2015 um 23:59:60 UTC auftreten. Diese Schaltsekunde wird während eines Arbeitstages für Nord- und Südamerika, sowie die Asien/Pazifik-Region stattfinden.

Schaltsekunden werden durch den IERS im Bulletin C angekündigt.

Das normale Verhalten für Schaltsekunden wird in RFC 7164 beschrieben. Lesen Sie auch time2posix(3).

2. Handhabung von gewöhnlichen Schaltsekunden in FreeBD

Die einfachste Art, mit Schaltsekunden umzugehen, ist, die POSIX Zeitregeln, welche FreeBSD standardmässig verwendet, sowie NTP zu benutzen. Wenn ntpd(8) läuft und die Uhrzeit mit einem vorgeschalteten NTP-Server, welcher Schaltsekunden richtig handhabt, abgeglichen wird, passt das System die Uhrzeit automatisch so an, dass die letzte Sekunde des Tages wiederholt wird. Es sind keine weiteren Anpassungen nötig.

Sollte der vorgeschaltete NTP-Server Schaltsekunden nicht korrekt handhaben, wird ntpd(8) die Uhrzeit um eine Sekunde anpassen nachdem der fehlerhafte Server dies bemerkt hat und seine Uhr selbst neu einstellt.

Wenn NTP nicht verwendet wird muss die Systemuhr manuell eingestellt werden, nachdem die Schaltsekunde vorbei ist.

3. Vorsichtshinweise

Schaltsekunden werden im gleichen Augenblick weltweit eingestellt: Mitternacht UTC. In Japan ist das in der Morgenmitte, im Pazifik am Mittag, in Nord-, Mittel- und Südamerika am späten Nachmittag und in Europa nachts.

Wir glauben und erwarten dass FreeBSD, sofern es mit einem korrekten und stabilen NTP-Dienst versorgt wird, wie erwartet funktionieren wird, genauso wie es das während der bisherigen Schaltsekunden auch getan hat.

Jedoch weisen wir darauf hin, dass praktisch keine Anwendung jemals den Kernel zu Schaltsekunden angefragt hat. Unsere Erfahrung ist, dass Schaltsekunden, so wie sie entwickelt wurden, einfach nur eine Wiederholung der Sekunde vor der Schaltsekunde sind und dies eine Überraschung für die meisten Anwendungsentwickler darstellt.

Andere Betriebssysteme und andere Computer behandeln die Schaltsekunde wie FreeBSD oder auch nicht und Systeme ohne einen korrekten und stabilen NTP-Dienst werden gar nichts über Schaltsekunden wissen.

Es ist kein ungewöhnlicher Zustand, wenn Computer wegen Schaltsekunden abstürzen und die Erfahrung hat gezeigt, dass eine grosse Menge von allen öffentlichen NTP-Servern die Schaltsekunde falsch behandeln oder ankündigen.

Bitte stellen Sie sicher, dass nichts schreckliches wegen der Schaltsekunde passieren kann.

4. Überprüfen

Es ist möglich, zu überprüfen, ob eine Schaltsekunde verwendet wird. Aufgrund der Art und Weise wie NTP arbeitet, funktioniert der Test möglicherweise bis zu 24 Stunden vor der Schaltsekunde. Manche Hauptreferenzuhrzeitquellen kündigen Schaltsekunden erst eine Stunde vor dem Ereignis an. Fragen Sie den NTP-Dienst ab:

% ntpq -c 'rv 0 leap'

Ausgaben, die leap_add_sec beinhalten zeigen die korrekte Unterstützung für Schaltsekunden an. Vor den 24 Stunden, welche vor der Schaltsekunde liegen oder wenn diese vorüber ist, wird leap_none angezeigt.

5. Fazit

In der Praxis sind Schaltsekunden kein Problem für FreeBSD. Wir hoffen, dass dieser Überblick dabei geholfen hat, zu klären, was zu erwarten ist und wie das Ereignis der Schaltsekunde einfacher gehandhabt werden kann.