Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / SUSE Linux Enterprise Server-Dokumentation / Verwaltungshandbuch / Services / Zeitsynchronisierung mit NTP
Gilt für SUSE Linux Enterprise Server 15 SP6

38 Zeitsynchronisierung mit NTP

Der NTP-(Network Time Protocol-)Mechanismus ist ein Protokoll für die Synchronisierung der Systemzeit über das Netzwerk. Erstens kann ein Computer die Zeit von einem Server abrufen, der als zuverlässige Zeitquelle gilt. Zweitens kann ein Computer selbst für andere Computer im Netzwerk als Zeitquelle fungieren. Es gibt zwei Ziele – das Aufrechterhalten der absoluten Zeit und das Synchronisieren der Systemzeit aller Computer im Netzwerk.

Das Aufrechterhalten der genauen Systemzeit ist in vielen Situationen wichtig. Die integrierte Hardware-Uhr erfüllt häufig nicht die Anforderungen bestimmter Anwendungen, beispielsweise Datenbanken oder Cluster. Die manuelle Korrektur der Systemzeit würde schwerwiegende Probleme nach sich ziehen; das Zurückstellen kann beispielsweise zu Fehlfunktionen wichtiger Anwendungen führen. Die Systemzeiten der in einem Netzwerk zusammengeschlossenen Computer müssen in der Regel synchronisiert werden. Es empfiehlt sich aber nicht, die Zeiten manuell anzugleichen. Vielmehr sollten Sie dazu NTP verwenden. Der NTP-Dienst passt die Systemzeit ständig anhand zuverlässiger Zeitserver im Netzwerk an. Zudem ermöglicht er die Verwaltung lokaler Referenzuhren, beispielsweise funkgesteuerter Uhren.

Ab SUSE Linux Enterprise Server 15 ist chrony Standardimplementation von NTP. chrony besteht aus zwei Teilen: chronyd ist ein Daemon, der beim Booten gestartet werden kann, und mit dem Befehlszeilenschnittstellenprogramm chronyc ist es möglich, die Leistung von chronydzu überwachen und Betriebsparameter zur Laufzeit zu ändern.

Ab SUSE Linux Enterprise Server 15.2 konfiguriert das YaST-Modul für die NTP-Client-Konfiguration den systemd-timer anstelle des cron daemon, um chrony auszuführen, wenn es nicht zur Ausführung als Daemon konfiguriert ist.

38.1 Konfigurieren eines NTP-Clients mit YaST

Der NTP-Daemon (chronyd) im chrony-Paket ist so voreingestellt, dass die Hardware-Uhr des lokalen Computers als Zeitreferenz verwendet wird. Die Präzision einer Hardware-Uhr ist stark von der Zeitquelle abhängig. Eine Atomuhr oder ein GPS-Empfänger ist beispielsweise eine genaue Zeitquelle, ein normaler RTC-Chip ist dagegen keine zuverlässige Zeitquelle. YaST erleichtert die Konfiguration von NTP-Clients.

Im Fenster für die YaST-NTP-Client-Konfiguration (Netzwerkdienste › NTP-Konfiguration) können Sie den Zeitpunkt für den Start des NTP-Daemons sowie den Typ der Konfigurationsquelle angeben und benutzerdefinierte Zeitserver einfügen.

Fenster „NTP-Konfiguration“
Abbildung 38.1: Fenster „NTP-Konfiguration“

38.1.1 Start des NTP-Daemons

Zum Starten des NTP-Daemons stehen drei Optionen zur Auswahl:

Nur manuell

Wählen Sie Nur manuell, um den chrony-Daemon manuell zu starten.

Ohne Daemon synchronisieren

Wählen Sie Ohne Daemon synchronisieren aus, um die Systemzeit regelmäßig festzulegen, ohne dass chrony ständig ausgeführt wird. Sie können das Synchronisierungsintervall in Minuten festlegen.

Jetzt und beim Booten

Wählen Sie Jetzt und beim Booten aus, um chronyd automatisch beim Booten des Systems zu starten. Diese Einstellung wird empfohlen.

38.1.2 Typ der Konfigurationsquelle

Wählen Sie im Dropdown-Feld Konfigurationsquelle entweder die Option Dynamisch oder Statisch. Verwenden Sie Statisch, wenn Ihr Server nur mit einer bestimmten Gruppe (öffentlicher) NTP-Server arbeitet, und Dynamisch, wenn Ihr internes Netzwerk NTP-Server über DHCP anbietet.

38.1.3 Konfigurieren von Zeitservern

Im unteren Bereich des Fensters NTP-Konfiguration werden die Zeitserver aufgelistet, die der Client abfragen kann. Bearbeiten Sie diese Liste nach Bedarf mithilfe der Optionen Hinzufügen, Bearbeiten und Löschen.

Klicken Sie auf Hinzufügen, um einen neuen Zeitserver hinzuzufügen:

Hinzufügen eines Zeitservers
Abbildung 38.2: Hinzufügen eines Zeitservers
  1. Geben Sie in das Feld Adresse die URL des Zeitservers oder des Zeitserver-Pools ein, mit dem die Computerzeit synchronisiert werden soll. Prüfen Sie mit Test, ob die eingegebene URL auf eine gültige Zeitquelle verweist.

  2. Mit Schnelle erste Synchronisierung wird eine größere Anzahl von Anfragen beim Start des chronyd-Daemons gesendet, sodass die Zeitsynchronisierung beschleunigt wird.

  3. Mit Offline starten beschleunigen Sie den Bootvorgang auf Systemen, auf denen der chronyd-Daemon automatisch gestartet wird und die beim Booten keine Internetverbindung besitzen. Diese Option eignet sich beispielsweise für Laptops, deren Netzwerkverbindungen über NetworkManager verwaltet werden.

  4. Bestätigen Sie Ihre Auswahl mit OK.

38.2 Manuelle Konfiguration von NTP im Netzwerk

chrony liest die Konfiguration aus der Datei /etc/chrony.conf aus. Damit die Computeruhr synchronisiert bleibt, müssen Sie die zu verwendenden Zeitserver in chrony festlegen. Hierbei können Sie spezielle Servernamen oder IP-Adressen angeben, beispielsweise:

0.suse.pool.ntp.org
1.suse.pool.ntp.org
2.suse.pool.ntp.org
3.suse.pool.ntp.org

Sie können auch den Namen für einen Pool angeben. Der Poolname wird in mehrere IP-Adressen aufgelöst:

pool pool.ntp.org
Tipp
Tipp: Computer im selben Netzwerk

Soll die Zeit auf mehreren Computern in demselben Netzwerk synchronisiert werden, sollten Sie nicht alle Computer mit einem externen Server synchronisieren. Ein bewährtes Verfahren besteht darin, einen Computer als Zeitserver, der mit einem externen Zeitserver synchronisiert wird, und die anderen Computer als die Clients dieses Computers festzulegen. Fügen Sie eine local-Direktive zur Datei /etc/chrony.conf des Servers hinzu, sodass dieser Server von einem autoritativen Zeitserver unterschieden wird:

local stratum 10

Starten Sie chrony mit dem folgenden Befehl:

systemctl start chronyd.service

Nach der Initialisierung von chronyd dauert es eine gewisse Zeit, bis die Zeit sich stabilisiert und die Drift-Datei zum Korrigieren der lokalen Computeruhr erstellt wird. Mithilfe der Drift-Datei kann der systematische Fehler der Hardware-Uhr berechnet werden, wenn der Computer eingeschaltet wird. Die Korrektur kommt umgehend zum Einsatz und führt zu einer größeren Stabilität der Systemzeit.

Aktivieren Sie den Dienst, sodass chrony automatisch beim Booten gestartet wird, mit dem folgenden Befehl:

systemctl enable chronyd.service
Warnung
Warnung: Konflikt mit dem Dienst yast-timesync.service

Neben dem Dienst chronyd.service umfasst SLES auch den Dienst yast-timesync.service. yast-timesync.service wird alle 5 Minuten durch einen Zeitgeber ausgelöst und führt chronyd mit der Option -q aus, um die Systemzeit festzulegen, und wird beendet. Da immer nur eine Instanz von chronyd ausgeführt werden kann, sollten Sie nicht beide chronyd-bezogenen Dienste gleichzeitig aktivieren oder starten.

38.3 Konfigurieren von chronyd zur Laufzeit mit chronyc

Mit chronyc können Sie das Verhalten von chronyd zur Laufzeit verändern. Hiermit werden außerdem Statusberichte zum Betrieb von chronyd erzeugt.

Sie können chronyc wahlweise im interaktiven oder im nicht interaktiven Modus ausführen. Soll chronyc interaktiv ausgeführt werden, geben Sie chronyc in die Befehlszeile ein. Eine Eingabeaufforderung wird angezeigt und das System wartet auf Ihre Befehlseingabe. Mit dem folgenden Befehl prüfen Sie beispielsweise, wie viele NTP-Quellen online oder offline sind:

# chronyc
chronyc> activity
200 OK
4 sources online
2 sources offline
1 sources doing burst (return to online)
1 sources doing burst (return to offline)
0 sources with unknown address

Mit quit oder exit schließen Sie die chronyc-Eingabeaufforderung.

Falls Sie keine interaktive Eingabeaufforderung benötigen, geben Sie den Befehl direkt ein:

# chronyc activity
Anmerkung
Anmerkung: Temporäre Änderungen

Die mit chronyc vorgenommenen Änderungen sind nicht dauerhaft. Sie gehen nach dem nächsten Neustart von chronyd verloren. Sollen dauerhafte Änderungen erfolgen, bearbeiten Sie /etc/chrony.conf.

Eine vollständige Liste der chronyc-Befehle finden Sie auf der Man-Seite (man 1 chronyc).

38.4 Dynamische Zeitsynchronisierung während der Laufzeit

chronyd wird zwar auf einem System, das ohne Netzwerkverbindung bootet, normal ausgeführt, kann jedoch nicht die DNS-Namen der in der Konfigurationsdatei angegebenen Zeitserver auflösen.

chronyd versucht in immer größeren Zeitabständen, die in den server-, pool- und peer-Direktiven angegebenen Zeitservernamen aufzulösen, bis die Auflösung erfolgreich ist.

Falls der Zeitserver beim Starten von chronyd nicht erreichbar sein wird, können Sie die Option offline angeben:

server server_address offline

Hiermit ruft chronyd den Server erst nach Aktivierung mit dem folgenden Befehl ab:

# chronyc online server_address

Wenn die Option auto_offline eingestellt ist, nimmt chronyd an, dass der Zeitserver offline geschaltet wurde, sobald zwei Anfragen ohne Antwort gesendet wurden. Mit dieser Option müssen Sie nicht mehr den Befehl offline über chronyc ausführen, wenn Sie die Netzwerkverbindung trennen.

38.5 Einrichten einer lokalen Referenzuhr

Das Software-Paket chrony greift auf andere Programme (z. B. gpsd) zurück, die die Zeitgebungsdaten über den SHM- oder SOCK-Treiber abrufen. Geben Sie mit der refclock-Direktive in /etc/chrony.conf eine Hardware-Referenzuhr als Zeitquelle an. Hierbei sind zwei Parameter obligatorisch, zum einen der Treibername und zum anderen ein treiberspezifischer Parameter. Nach den beiden Parameter können bei Bedarf noch refclock-Optionen angegeben werden. chronyd umfasst folgende Treiber:

  • PPS – Treiber für die Kernel-API pulse per second. Beispiel:

    refclock PPS /dev/pps0 lock NMEA refid GPS
  • SHM – Treiber für den gemeinsam genutzten NTP-Speicher. Beispiel:

    refclock SHM 0 poll 3 refid GPS1
    refclock SHM 1:perm=0644 refid GPS2
  • SOCK – Treiber für den Unix-Domänen-Socket. Beispiel:

    refclock SOCK /var/run/chrony.ttyS0.sock
  • PHC – Treiber für die PTP-Hardware-Uhr. Beispiel:

    refclock PHC /dev/ptp0 poll 0 dpoll -2 offset -37
    refclock PHC /dev/ptp1:nocrossts poll 3 pps

Weitere Informationen zu den Optionen der einzelnen Treiber finden Sie auf der man-Seite man 8 chrony.conf.

38.6 Uhrensynchronisierung mit einer externen Zeitreferenz (ETR)

Unterstützung für Uhrensynchronisierung mit einer externen Zeitreferenz (ETR) ist verfügbar. Die externe Zeitreferenz sendet alle 2**20 (2 hoch 20) Millisekunden ein Oszillatorsignal und ein Synchronisierungssignal, um die Tageszeit-Uhren aller angeschlossenen Server synchron zu halten.

Zur Verfügbarkeit können zwei ETR-Einheiten an einen Computer angeschlossen werden. Wenn die Uhr um mehr als die Toleranz zum Prüfen der Synchronisierung abweicht, erhalten alle CPUs eine Rechnerprüfung, die darauf hinweist, dass die Uhr nicht synchronisiert ist. In diesem Fall werden sämtliche DASD-E/A an XRC-fähige Geräte gestoppt, bis die Uhr wieder synchron ist.

Die ETR-Unterstützung wird mithilfe von zwei sysfs-Attributen aktiviert; führen Sie die folgenden Befehle als root aus:

echo 1 > /sys/devices/system/etr/etr0/online
echo 1 > /sys/devices/system/etr/etr1/online