
In der Vergangenheit habe ich festgestellt, dass die Uhrzeit bei den meisten Computern in meinem lokalen Netzwerk mit einer Abweichung von ungefähr einer Sekunde nicht wirklich gleich ist.
Ich wollte also sicherstellen, dass ein Stapel von Servern (sagen wir 48 1U-Computer) alle genau dieselbe Uhr haben können. Ich weiß, dass ich dafür NTP verwenden kann, und ich weiß, dass ich einen Server die Zeit von einer Atomuhr beziehen lassen kann und die anderen mit diesem einen Server synchronisieren können.
Ich habe jedoch eine große Sorge bezüglich dieser Technik: Wenn dieser eine Server ausfällt, stoppt meine Zeitsynchronisierung ... überhaupt nicht gut.
Gibt es eine geeignete Methode, um sicherzustellen, dass die Uhren aller 48 Computer mit einer Genauigkeit von etwa 0,5 µs synchronisiert sind? Wenn nicht 0,5 µs, was können wir dann erwarten? (D. h. 0,5 ms?)
Antwort1
NTP kann einen Pool von Servern nutzen (z. B.http://www.pool.ntp.org/en/Sie können aber auch Ihr eigenes System erstellen), um den Fall zu vermeiden, dass ein Server ausfällt. Außerdem können die Server eine lokale Uhr verwalten, wenn aus irgendeinem Grund alle ihre übergeordneten Server nicht verfügbar sind.
Antwort2
Ich fand tatsächlich eineBlogeintragmit den Informationen, nach denen ich gesucht habe. Sie erwähnen, dass ihr Cluster Computer hat, die mit NTP bei 1 ms ordnungsgemäß synchronisiert sind.
Es sieht aus wiePTP, wie von Michael Hampton vorgeschlagen, folgt der gleichen Strategie wie in: Es wird ein Computer verwendet,der Großmeisterals Quelle für die Zeitsynchronisierung, im Gegensatz zum Versuch, auf allen Computern die richtige absolute Zeit zu erhalten (was zur Folge hat, dass, wennder Großmeisterist um 10 ms von dem entfernt, was die Welt alsabsolute Echtzeit, alle Knoten werden um 10 ms verschoben sein).
Die in diesem Dokument vorgeschlagene Lösung besteht darin:
1)Richten Sie einen Computer ein, um die absolute Zeit mit NTP abzurufen. Wenn dieser Computer ausfällt, können die Uhren anfangen zu driften, aber sie werden untereinander nicht ungenau, sie driften im Vergleich zurabsolute Echtzeitnur.
In diesem Fall verwenden Sie server
Definitionen (der Großmeister):
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
...
Richten Sie diesen Computer auch als NTP-Server ein, beispielsweiselocal.ntp
2)Richten Sie die anderen Computer als Peers ein
server local.ntp # only on a few other (3 to 5) computers
peer c0 iburst
peer c1 iburst
peer c2 iburst
Es ist nicht notwendig, dass alle 48 Computer miteinander verbunden sind. Stattdessen sollten es zwischen 3 und 5 sein, wobei jeder Computer ein leicht anderes Setup verwendet (c1, c2, c3, dann c2, c3, c4 usw.). Als Ergebnis erhalten Sie ein Peer-to-Peer-Netzwerk, das sich gegenseitig so eng wie möglich synchronisiert, wobei einige Computer (3 bis 5) mit dem in (1) definierten Knoten verbunden sind, local.ntp
um so eine Zeit zu erreichen, die so nah wie möglich an der Echtzeit liegt.
Die local.ntp
Referenz kann selbst als Peer betrachtet werden (vielleicht können Sie sie sogar zu einem Peer machen?)
PS: Die Verwendung von restrict
wird dringend empfohlen, wenn Sie peer
ein halb-öffentliches Netzwerk verwenden, um zu verhindern, dass andere auf Ihr NTP-Netzwerk zugreifen.