OVH Cloud OVH Cloud

[ntp] Écart de l'heure constaté sur 2 machines avec la même configuration

26 réponses
Avatar
Francois Lafont
Bonjour à tous,

J'ai deux machines, une Squeeze et l'autre une Ubuntu Precise. Ce sont des OS différents mais je pense que, dans le cas présent, ça n'a pas d'importance. Sur les deux machines, j'ai installé le paquet ntp et j'ai mis la même configuration dans le fichier /etc/ntp.conf à savoir :

------------------------------------------------------------------
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
server ntp1.proxad.net


# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
------------------------------------------------------------------

J'ai redémarré le service ntp sur les deux machines après modification de la configuration.

Au départ, juste après le redémarrage des services ntp, j'ai bien mes deux machines qui ont la même heure (à une dizaine de secondes près). Mais au bout d'un certain temps (pas très longtemps, à peine une heure ou deux), je me retrouve avec un décalage de l'heure entre les deux machines qui peut atteindre 20s voire 30s.

J'ai tenté aussi de mettre dans la configuration de ntp (des deux machines) 4 serveurs de temps (par exemple avec les {0,1,2,3}.fr.pool.ntp.org) mais j'ai aussi le même phénomène qui finit par se produire.

Dans mon esprit, ntp est un truc assez précis et je pensais que j'aurais deux machines à la même heure à la seconde près les doigts dans le nez.

Est-ce que j'en demande trop ?
Ou bien je ne fais pas ce qu'il faut au niveau de la configuration ?

Pour info, sur la Squeeze j'ai :

~# ntpd --version
ntpd - NTP daemon program - Ver. 4.2.6p2

et sur la Precise j'ai :
~# ntpd --version
ntpd - NTP daemon program - Ver. 4.2.6p3
ntpd 4.2.6p3@1.2290-o Tue Jun 5 20:12:08 UTC 2012 (1)

Merci d'avance pour votre aide.

--
François Lafont

6 réponses

1 2 3
Avatar
Damien Wyart
* Lucas Levrel
in fr.comp.os.linux.configuration:
delay trop grand ? As-tu essayé différents serveurs ? (Dans ma conf
j'ai fr.pool.ntp.org, et ntpq donne comme refid ntp-p1.obspm.fr, avec
un « delay » 2.404).



Bizarre, normalement fr.pool.ntp.org est un pool de stratum 2, donc
ntp-p1.obspm.fr, qui est de stratum 1, ne devrait pas apparaître. Et
fr.pool.ntp.org correspond à 4 IP en round robin, mais aucune ne pointe
vers obspm. N'as-tu pas un ntp-p1.obspm.fr en dur qui traîne dans ta
config ?

--
DW
Avatar
Damien Wyart
En très résumé, ce qui pose problème c'est qu'il s'agit de machines
virtuelles ; parfois on n'a pas de problème (ça dépend notamment de
l'outil utilisé pour virtualiser, par exemple avec Xen ça se passe
bien en général, et ça dépend aussi du matériel), mais il est assez
fréquent que NTP ne soit pas utilisable dans ce contexte.



Lors des premiers échanges, le message de départ n'indiquait pas qu'il
y avait de la virtualisation, et j'avais du rater le message postérieur,
qui le mentionnait.

> ~# cat /var/lib/ntp/ntp.drift
> 500.000

> Et il signifie quoi ce 500.000 exactement ?

Il s'agit du décalage de fréquence entre la machine surveillée par
ntpd et la source de référence ; c'est exprimé en PPM, voir les
détails ici : http://www.ntp.org/ntpfaq/NTP-s-sw-clocks-quality.htm



Et si je ne me trompe pas, 500 est la valeur maximale, qui fait que ntpd
va refuser de superviser l'horloge de la machine.

Avec les liens cités plus haut, on pourrait être tenté de "bidouiller"
(voir par exemple
http://0x657573.wordpress.com/2010/12/09/setting-up-an-ntp-gateway/
qui est assez gratiné :-)

- soit sur la clocksource du noyau invité
- soit sur le paramétrage fin de l'outil de virtualisation (VirtualBox
dans ton cas)
- soit sur la config ntpd ("tinker panic 0", élimination de "fudge
127.127.1.0 stratum 10" mais en debian ça n'est pas par défaut, "tos
maxdist" --- là ça devient très pifométrique) -> tout ça pouvant être combiné

-> idem, les items de cette liste peuvent être combinés.



J'ajoute une 4e bidouille qui est parfois mentionnée : effacer ntp.drift
(qui sera recréé au démarrage suivant de ntpd) ; comme l'horloge de
l'invité est instable, la valeur est parfois relativement faible et
n'empêche plus ntpd de démarrer, mais ça ne garantit rien sur les
démarrages suivants.

--
DW
Avatar
Damien Wyart
> filtoffset= 11619.9 10333.7 9086.15 7838.51 6551.21 5244.38 3937.53 2689.17,

Les valeurs sont plutôt mauvais signe (même si je n'ai pas cherché les
détails pour les interpréter) :
https://lists.ntp.org/pipermail/questions/2011-March/028759.html



Ce sont les 8 valeurs les plus récentes du décalage (en millisecondes)
entre l'horloge locale et l'horloge de référence. Avec un tel décalage
(croissant, en plus), de l'ordre de plusieurs secondes, ntpd ne peut
rien faire pour redresser la barre ; il est prévu pour réaliser des
ajustements très faibles, afin de lisser l'horloge locale le plus
possible...

--
DW
Avatar
Erwan David
Damien Wyart écrivait :

* Lucas Levrel
in fr.comp.os.linux.configuration:
delay trop grand ? As-tu essayé différents serveurs ? (Dans ma conf
j'ai fr.pool.ntp.org, et ntpq donne comme refid ntp-p1.obspm.fr, avec
un « delay » 2.404).



Bizarre, normalement fr.pool.ntp.org est un pool de stratum 2, donc
ntp-p1.obspm.fr, qui est de stratum 1, ne devrait pas apparaître. Et
fr.pool.ntp.org correspond à 4 IP en round robin, mais aucune ne pointe
vers obspm. N'as-tu pas un ntp-p1.obspm.fr en dur qui traîne dans ta
config ?



Non *.pool.ntp.org n'est *pas* un pool de strate 2.

cf http://www.pool.ntp.org/fr/join.html

« Notez qu'il n'est pas requis que votre serveur soit de strate 1 ou 2 :
comme le projet se concentre plus sur la distribution de la charge, il
n'y a aucune raison qu'un strate 3 ou même un strate 4 ne puisse pas
joindre le projet. »

En plus lucas indique que ntp-p1.obspm.fr est en "refid" il est dnc sur
un serveur lui même synchronisé sur ntp-p1.obspm.fr, dont je ne suis pas
sûr qu'il soit de strate 1

--
Les simplifications c'est trop compliqué
Avatar
Damien Wyart
* Erwan David in fr.comp.os.linux.configuration:
Non *.pool.ntp.org n'est *pas* un pool de strate 2.

cf http://www.pool.ntp.org/fr/join.html



Ok, je n'avais pas vérifié.

En plus lucas indique que ntp-p1.obspm.fr est en "refid" il est dnc
sur un serveur lui même synchronisé sur ntp-p1.obspm.fr, dont je ne
suis pas sûr qu'il soit de strate 1



En effet.

--
DW
Avatar
Damien Wyart
> Avec les liens cités plus haut, on pourrait être tenté de
> "bidouiller" (voir par exemple
> http://0x657573.wordpress.com/2010/12/09/setting-up-an-ntp-gateway/
> qui est assez gratiné :-)

> - soit sur la clocksource du noyau invité
> - soit sur le paramétrage fin de l'outil de virtualisation (VirtualBox
> dans ton cas)
> - soit sur la config ntpd ("tinker panic 0", élimination de "fudge
> 127.127.1.0 stratum 10" mais en debian ça n'est pas par défaut, "tos
> maxdist" --- là ça devient très pifométrique) -> tout ça pouvant être combiné

> -> idem, les items de cette liste peuvent être combinés.

J'ajoute une 4e bidouille qui est parfois mentionnée : effacer
ntp.drift (qui sera recréé au démarrage suivant de ntpd) ; comme
l'horloge de l'invité est instable, la valeur est parfois relativement
faible et n'empêche plus ntpd de démarrer, mais ça ne garantit rien
sur les démarrages suivants.



Une dernière bidouille pour la route, les outils tickadj et adjtimex.
Mais là aussi, c'est de l'ordre du pansement sur une jambe de bois...

--
DW
1 2 3