Skip to content
PhilippeLeroux edited this page Jan 2, 2018 · 7 revisions

Configuration d'un serveur de temps

Synchronisation LEAP / Virtual Box

Si dès problèmes de synchronisation deviennent fréquent il suffit de redémarrer Virtual Box. Le script ~/plescripts/virtualbox/restart_vboxdrv.sh se charge de la faire correctement.

Désynchronisation fréquentes

Si les serveurs se désynchronisent trop souvent if faut stopper complètement Virtual Box et le redémarrer.

Utiliser le script ~/plescripts/virtualbox/restart_vboxdrv.sh, avant de lui confirmer de tout redémarrer être sur que plus aucun processus Virtual Box n'est actif.

Si le hardware le permet, activer le timer HPET sur le virtual-host, les désynchronisations disparaîtront presque.

Aide mémoire ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*K2.orcl         95.81.173.74     3 u    5   64   17    1.048   -0.081   0.206

Table headings :

  • remote – The remote peer or server being synced to. “LOCAL” is this local host (included in case there are no remote peers or servers available);
  • refid – Where or what the remote peer or server is itself synchronised to;
  • st – The remote peer or server Stratum
  • t – Type (u: unicast or manycast client, b: broadcast or multicast client, l: local reference clock, s: symmetric peer, A: manycast server, B: broadcast server, M: multicast server, see “Automatic Server Discovery“);
  • when – When last polled (seconds ago, “h” hours ago, or “d” days ago);
  • poll – Polling frequency: rfc5905 suggests this ranges in NTPv4 from 4 (16s) to 17 (36h) (log2 seconds), however observation suggests the actual displayed value is seconds for a much smaller range of 64 (26) to 1024 (210) seconds;
  • reach – An 8-bit left-shift shift register value recording polls (bit set = successful, bit reset = fail) displayed in octal;
  • delay – Round trip communication delay to the remote peer or server (milliseconds);
  • offset – Mean offset (phase) in the times reported between this local host and the remote peer or server (RMS, milliseconds);
  • jitter – Mean deviation (jitter) in the time reported for that remote peer or server (RMS of difference of multiple time samples, milliseconds);

Select Field tally code:

The first character displayed in the table (Select Field tally code) is a state flag (see Peer Status Word) that follows the sequence ” “, “x”, “-“, “#”, “+”, “*”, “o”:

  • ” ” – No state indicated for:

    non-communicating remote machines,

    “LOCAL” for this local host,

    (unutilised) high stratum servers,

    remote machines that are themselves using this host as their synchronisation reference;

  • “x” – Out of tolerance, do not use (discarded by intersection algorithm);

  • “–” – Out of tolerance, do not use (discarded by the cluster algorithm);

  • “#” – Good remote peer or server but not utilised (not among the first six peers sorted by synchronization distance, ready as a backup source);

  • “+” – Good and a preferred remote peer or server (included by the combine algorithm);

  • “*” – The remote peer or server presently used as the primary reference;

  • “o” – PPS peer (when the prefer peer is valid). The actual system synchronization is derived from a pulse-per-second (PPS) signal, either indirectly via the PPS reference clock driver or directly via kernel interface.

Problèmes rencontrés avec Linux 7

  • chrony

    À partir de Linux 7 chrony est installé par défaut, pour pouvoir utiliser le démon ntpd il faut désinstaller chronyd, sinon la configuration de ntp se déroule correctement mais au démarrage de l'OS il y aura conflit entre les 2 démons.

  • ntp

    Note : les problèmes avec ntp sont beaucoup plus fréquents quand le serveur de temps est une autre VM. Utiliser le virtual-host comme serveur de temps diminue les problèmes.

    Fonctionne très mal sur des VMs si le virtual-host est peu puissant, au démarrage de la VM l'OS a plus de 1 seconde d'avance et le temps fait des sauts brutaux de 3 à 10 secondes.

    force_sync_ntp.sh force la synchronisation ntp si la dérive atteint 1 ms.

    Désactiver kvmclock n'est pas vraiment utile.

  • Synchro par VBox

    Synchroniser par VBox n'est pas une bonne idée, l'ajustement de l'horloge est trop brutale.

    Par exemple :

     VBoxManage guestproperty set <VM NAME> "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1
    

    N'est pas une bonne idée, il y aura constamment des 'timeout'. De plus il est nécessaire de compiler les 'Guest Additions' à chaque mise à jour du noyau.

Description du problème du temps par RedHat

Description des scripts

  • configure_chrony.sh

    Configure le service chrony, utilisé sur le serveur d'infra et les VMs standalone.

  • configure_ntp.sh

    Configure le service ntp pour les VMs en RAC.

    Pour ne pas utiliser ntp mais chrony exporter la variable RAC_NTP=chrony avant d'exécuter les scripts clone_master.sh.

    Avec ntp les serveurs consomment plus de ressources CPU sur le virtual-host, mais certaines commandes de base de données sont plus performantes de 10 à 30 % de gains.

    Utiliser ocfs2 pour l'ORACLE_HOME augmentera les problèmes sur un virtual-host peut puissant, il faut davantage de ressources pour faire fonctionner le cluster ocfs2. Quand ocfs2 est utilisé il peut y avoir des sauts de 15 ms par minute alors que sans le maximum observé est de 1 ms.

    L'outil cluvfy d'Oracle retourne une erreur sur la synchro hardware. Je pense que c'est un bug Oracle, la doc Redhat précise un changement de comportement entre Linux 6 et 7. Avec Linux 7 le 'hardware clock' est synchronisé toutes les 11 mn par le kernel, avant c'était fait par des scripts d'init à l'arrêt et au démarrage du serveur.

Aide-mémoire

ntp

Documentation redhat

  • ntpq -p : pour visualiser la synchronisation.

  • clockdiff : permet de visualiser l'écart de temps entre 2 serveurs.

  • ntpdate K2 : permet de synchroniser manuellement le serveur si l'offset retourné par ntpq -p est trop important.

Chrony

  • chronyc sources : pour visualiser la synchro.
  • chronyc tracking
  • chronyc sourcestats : pour visualiser l'offset.

Clone this wiki locally