NTP-Server, der mit anderen NTP-Servern synchronisiert wird, aber eine geänderte UTC liefert

NTP-Server, der mit anderen NTP-Servern synchronisiert wird, aber eine geänderte UTC liefert

Frage

Wir müssen einen NTP-Server erstellen, der mit anderen NTP-Servern synchronisiert wird, seinem Client aber eine geänderte UTC gibt.

Beispielsweise wird UTC 17:17 Uhr empfangen, seine Clients empfangen jedoch UTC 19:17 Uhr.

Aktuelle Situation/Problematik

Ich werde die aktuelle Situation beschreiben, damit Sie den Grund für diesen Bedarf verstehen. Einige der Begriffe, die ich verwenden werde, stammen aus der Mainframe-Welt, daher werde ich versuchen, sie zu erklären.

Wir haben eine Reihe von LPARS (ähnlich wie VM-Gäste) auf einer einzigen physischen Maschine. Die LPARS sind in einer Reihe von Sysplexen gruppiert (ähnlich wie Cluster). Die LPARS in jedem Sysplex werden mithilfe eines ETS synchronisiert, das mit der Maschine verbunden ist und die Uhr jedes LPAR direkt ändert.

Vor Jahren dachte jemand, es wäre eine tolle Idee, die ETS-Uhr auf die Ortszeit einzustellen (die Site ist nicht in UTC±00:00). Die LPARs erhalten die UTC von der ETS-Uhr. Wir können die ETS-Uhr nicht auf die echte UTC umstellen, ohne die gesamte Maschine zu beeinflussen. Wir möchten die Änderung zunächst in Testumgebungen testen. Wir können die Synchronisierungsmethode auf STP (Sysplex Time Protocol) umstellen, das jeden Sysplex separat verwaltet. Diese Methode verwendet einen externen NTP-Server.

Also wollen wir zuerst einen Sysplex so ändern, dass er STP verwendet, das eine falsche UTC erhält, und testen, ob wir das STP richtig eingestellt haben. Und dann ändern wir die UTC und testen, ob das System mit der echten UTC arbeiten kann.

Danke, Wolf

Antwort1

Zunächst einmal ein dreifaches Hoch auf Sie, WolfThreeFeet, für die Erklärung, was Sie versuchen zu tun; ohne diese Erklärung ist es in der Tat eine seltsame Frage.

Wenn ich das richtig verstehe, möchten Sie sicherstellen, dass beim Umstellen der Uhr eines Sysplex von der Ortszeit auf UTC nicht alle LPARs abstürzen und einen schrecklichen Tod erleiden. Und Sie möchten dies in einem Entwicklungs-Sysplex testen, bevor Sie es auf der gesamten Maschine einführen.

Ich glaube nicht, dass es möglich ist, das zu tun, was Sie beschreibenin der Art wie du es beschreibst, aber ich denke, Sie können etwas Gleichwertiges tun. Richten Sie eine Testmaschine ein, deren einzige Aufgabe darin besteht, ein NTP-Server mit einer falschen Uhr zu sein; es ist durchaus möglich, einem NTP-Server zu sagen, dass er seine eigene Motherboard-Uhr als maßgebend betrachten und NTP-Clients erlauben soll, sich an ihn zu binden und diese Zeit bekannt zu geben. Lassen Sie dann den betreffenden Sysplex über STP (von dem Sie sagen, dass es NTP ist) mit diesem Server mit der falschen Uhr synchronisieren.

Antwort2

Vorbehalt zuerst (keine Sorge, ich habe drei Vorschläge):

Ich bin mir nicht sicher bei:

Wir müssen einen NTP-Server erstellen, der mit anderen NTP-Servern synchronisiert wird, seinem Client aber eine geänderte UTC gibt.

Warum muss es mit externen Uhren synchronisiert werden? Sie müssen eine falsche Zeit angeben und sicherstellen, dass die Zeit nicht abweicht?

Mir fallen drei Möglichkeiten ein/kenne sie. Die erste ist die einfachste und kann mit Drift/Wandern umgehen, wenn Sie eine PPS-Quelle anschließen.

  • ntpd-Referenzimplementierung mit undisziplinierter lokaler Uhr (empfohlen/am einfachsten):

    Wenn Sie möchten, dass ein NTP-Server eine falsche Zeit liefert, ist das ganz einfach. Stellen Sie die Hardware-/Kerneluhr auf die gewünschte falsche Zeit ein. Konfigurieren Sie dann ntpd so, dass der Treiber für die undisziplinierte lokale Uhr (127.127.1.x) und keine externen Uhren verwendet werden. Der NTP-Server läuft dann munter weiter und liefert die lokale Uhr. Das einzige Problem ist, dass die Zeit, da Sie den Treiber für die lokale Uhr verwenden, nicht stabil ist und in die eine oder andere Richtung um Millisekunden abweicht, da dieser Quarzkristall kein Rubidium-Referenzwert ist. Wenn Sie die falsche Zeit und Stabilität benötigen, müssen Sie die ULC verwenden und eine PPS-Quelle hinzufügen. Sobald Sie die PPS-Quelle hinzugefügt haben, müssen Sie das Schlüsselwort „prefer“ für den ULC-Eintrag in ntp.conf hinzufügen.

  • ntpd-Referenzimplementierung mit externer Taktdisziplin und dem lokalen Takttreiber (kompliziert):

    Dies ist immer noch eine Lösung, die auf der Verwendung der ntpd-Referenzimplementierung basiert, aber ich bin damit nicht sehr vertraut. Ich kann Ihnen nur den Link zu weiteren Details geben: http://www.eecis.udel.edu/~mills/ntp/html/extern.html

  • Jans - NTP-Testtool eines Drittanbieters

    Ich habe keine Erfahrung mit diesem Produkt, kenne es aber aus der NTP-Mailingliste. Es ermöglicht Ihnen, Faketime zu servern, aber es führt keine Uhrenfunktionen wie die Referenzimplementierung aus. Weitere Informationen:http://www.vanheusden.com/time/jans/

verwandte Informationen