J'ai deux machines Linux (A et B) sur un réseau isolé. Ils doivent être synchronisés dans le temps. La machine A est alimentée par intermittence et doit servir l'heure, car elle est connectée à une source de temps faisant autorité (GPS). La machine B n'est alimentée que si la machine A est alimentée, mais il s'agit d'un périphérique Linux intégré et son état d'alimentation changera fréquemment. Aucune des deux machines n'a accès à d'autres systèmes. C'est un réseau fermé.
Je comprends que c'est une tâche assez difficile pour NTP, car NTP s'attend généralement à avoir des contacts avec plusieurs serveurs. J'ai du mal à faire fonctionner cela correctement sur la machine B.La machine A se synchronise très bien avec le GPS, et la machine B peut atteindre la machine A et même faire des requêtes de temps, mais la machine A n'est pas fiable (peut-être en soi?). Après une bonne heure de fonctionnement de la machine A, cela a soudainement changé et la machine B a fonctionné. Cependant, lorsque la machine A est tombée en panne (et donc la machine B), la machine B est de nouveau incapable de trouver une bonne synchronisation de l'heure.
Voici quelques informations sur ntpdate. Veuillez noter que même lorsque la strate de la machine A est 1, l'opération échoue avec la même sortie à la fin.
10.10.10.1: serveur abandonné: strates trop hautes serveur 10.10.10.1, port 123 strate 16, précision -19, saut 11, confiance 000 refid [10.10.10.1], retard 0,02614, dispersion 0,00000 transmis 4, dans le filtre 4 heure de référence: 00000000.00000000 jeu., 7 février 2036 6: 28: 16.000 horodatage d'origine: d3a9bdc4.27ebb350 jeu 12 juil 2012 21: 19: 00.155 horodatage de transmission: bc17c803.b42dfffe sam. 1 janvier 2000 0: 25: 39.703 retard de filtre: 0,02625 0,02614 0,02618 0,02625 0,00000 0,00000 0,00000 0,00000 décalage du filtre: 39544160 39544160 39544160 39544160 0.000000 0.000000 0.000000 0.000000 retard 0,02614, dispersion 0,00000 offset 395441600.451568 1 janvier 00:25:39 ntpdate [677]: aucun serveur adapté à la synchronisation n'a été trouvé
Je suppose que la machine A ne se fait tout simplement pas confiance pour purger sa peine. Après 51 minutes (peut-être arrivé plus tôt, je ne sais pas) de disponibilité et ayant son horloge synchronisée avec le GPS, la machine A a commencé à fonctionner correctement, et la machine B l'a récupérée. J'ai besoin que cela se produise plus tôt. Comme, en quelques secondes si possible.
Avec les configurations suivantes (et beaucoup d'attente), cela réussit finalement.
Machine A ntp.conf:
serveur 127.127.28.0 préfère true minpoll 4 maxpoll 4 fudge 127.127.28.0 strate 1 time1 0.420 refid GPS
Machine B ntp.conf:
serveur 10.10.10.1 préfère true minpoll 4 maxpoll 4
ntpq -c pairs sur la machine B sans correction du bon moment:
refid à distance st t lorsque le sondage atteint le retard décalage de la gigue ================================================== ============================ 10.10.10.1. ÉTAPE. 16 u 9 16 0 0,000 0,000 0,000
ntp1 -c pairs sur la machine B avec une bonne correction de temps:
refid à distance st t lorsque le sondage atteint le retard décalage de la gigue ================================================== ============================ * 10.10.10.1 SHM (0) 2 u 7 16 17 0,669 2,597 1,808
Donc, maintenant la question devient: comment puis-je faire confiance à Machine A rapidement?
Une sortie de débogage de la machine A avant et après la machine B décide que la machine A est assez bonne à utiliser.
avant..
~ # ntpq -c rv associd = 0 status = c418 leap_alarm, sync_uhf_radio, 1 événement, no_sys_peer, version = "ntpd 4.2.6p4@1.2324 ven.24 février 15:01:45 UTC 2012 (1)", processeur = "armv7l", système = "Linux / 2.6.35.14", saut = 11, strate = 2, précision = -19, rootdelay = 0,000, rootdisp = 44,537, refid = SHM (0), reftime = d3ab0053.43b44780 ven.13 juil.2012 20: 15: 15.264, clock = d3ab0062.e7e03154 ven.13 juil.2012 20: 15: 30.905, pair = 34819, tc = 4, mintc = 3, offset = 0,000, fréquence = 0,000, sys_jitter = 3,853, clk_jitter = 36,492, clk_wander = 0,000
après...
~ # ntpq -c rv associd = 0 status = 0415 leap_none, sync_uhf_radio, 1 événement, clock_sync, version = "ntpd 4.2.6p4@1.2324 ven.24 février 15:01:45 UTC 2012 (1)", processeur = "armv7l", système = "Linux / 2.6.35.14", saut = 00, strate = 2, précision = -19, rootdelay = 0,000, rootdisp = 41,278, refid = SHM (0), reftime = d3ab0063.43b37856 ven.13 juil 2012 20: 15: 31.264, clock = d3ab006d.9ee53ec2 ven.13 juil.2012 20: 15: 41.620, pair = 34819, tc = 4, mintc = 3, offset = 0,000, fréquence = 43,896, sys_jitter = 0,762, clk_jitter = 36,953, clk_wander = 0,000
ntp.conf
fichiers et la sortientpq -p
lorsque la machine B ne reçoit PAS le bon temps de la machine A? Il pourrait s'agir de marquer la machine A comme un faux ticker ou quelque chose. Lorsque la machine B ne fait pas confiance à la machine A, la machine A est-elle synchronisée avec le GPS? (Sortie dentpstat
sur la machine A.)