L' annonce de systemd-timesyncd dans le fichier systemd NEWS explique bien les différences de cet outil par rapport à Chrony et à des outils similaires. (c'est moi qui souligne):
Un nouveau démon "systemd-timesyncd" a été ajouté pour synchroniser l'horloge système sur le réseau. Il implémente un client SNTP . Contrairement aux implémentations NTP telles que chrony ou le serveur de référence NTP, cela implémente uniquement un côté client et ne dérange pas la complexité NTP complète, se concentrant uniquement sur l'interrogation de l'heure à partir d'un serveur distant et la synchronisation de l'horloge locale avec celui-ci . Sauf si vous avez l'intention de servir NTP à des clients en réseau ou si vous souhaitez vous connecter à des horloges matérielles locales, ce simple client NTP devrait être plus que approprié pour la plupart des installations. [...]
Cette configuration est un cas d'utilisation courant pour la plupart des hôtes d'un parc de serveurs. Ils seront généralement synchronisés à partir de serveurs NTP locaux, eux-mêmes synchronisés à partir de plusieurs sources, y compris éventuellement du matériel. systemd-timesyncd essaie de fournir une solution facile à utiliser pour ce cas d'utilisation courant.
Essayer de répondre à vos questions spécifiques:
Quelles sont les différences réelles entre les deux en termes de précision?
Je pense que vous pouvez obtenir une précision plus élevée en obtenant des données de synchronisation à partir de plusieurs sources, ce qui n'est spécifiquement pas un cas d'utilisation pris en charge pour systemd-timesyncd. Mais lorsque vous l'utilisez pour obtenir des données de synchronisation à partir de serveurs NTP centraux connectés à votre réseau interne fiable, l'utilisation de plusieurs sources n'est pas vraiment pertinente et vous obtenez une bonne précision d'une seule source.
Si vous synchronisez votre serveur à partir d'un serveur de confiance dans un réseau local et dans le même centre de données , la différence de précision entre NTP et SNTP sera pratiquement inexistante. NTP peut prendre en compte le RTT et faire du temps, mais ce n'est pas si avantageux lorsque votre RTT est vraiment petit, ce qui est le cas d'un réseau local rapide et d'une machine à proximité. Vous n'avez pas non plus besoin de plusieurs sources si vous pouvez faire confiance à celle que vous utilisez.
Quelles sont les différences d'efficacité?
Obtenir la synchronisation à partir d'une seule source est beaucoup plus simple que de l'obtenir à partir de plusieurs sources, car vous n'avez pas à décider quelles sources sont meilleures que d'autres et éventuellement à combiner des informations provenant de plusieurs sources. Les algorithmes sont beaucoup plus simples et nécessiteront moins de charge CPU pour le cas simple.
Quels sont les besoins de synchronisation temporelle "non simples" alias les cas d'utilisation de chrony en tant que client NTP?
Cela est abordé dans la citation ci-dessus, mais dans tous les cas, ce sont des cas d'utilisation de Chrony qui ne sont pas couverts par systemd-timesyncd:
- exécuter un serveur NTP (afin que d'autres hôtes puissent utiliser cet hôte comme source de synchronisation);
- obtenir des informations de synchronisation NTP à partir de plusieurs sources (ce qui est important pour les hôtes obtenant ces informations à partir de serveurs publics sur Internet); et
- obtenir des informations de synchronisation à partir de l'horloge locale, ce qui implique généralement du matériel spécialisé tel que des appareils GPS qui peuvent obtenir des informations précises sur l'heure des satellites.
Ces cas d'utilisation nécessitent Chrony ou ntpd ou similaire.
Comme l'autre réponse l'indique correctement,
chrony
implémente NTP etsystemd-timesyncd
SNTP.Du point de vue d'un client de service de temps:
SNTP est un protocole beaucoup plus simple à mettre en œuvre;
NTP permet des incréments / corrections étape par étape à temps. Un avantage majeur du NTP est qu'il prend également en compte le RTT de la réponse pour obtenir une heure plus précise.
Depuis https://www.meinbergglobal.com/english/faq/faq_37.htm
Depuis https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp
Un autre point majeur que je peux voir les implémentations SNTP donnant plus de problèmes que NTP est dans la virtualisation, lorsque vous avez à la fois l'hyperviseur et le démon NTP essayant de changer l'heure de la machine virtuelle. En particulier, le fait qu'ils ne soient pas d'accord sur l'heure avec une mauvaise configuration les rend tous les deux actifs, cela pourrait causer de gros problèmes. (Alors que les administrateurs système compétents ne garderont active qu'une seule méthode de synchronisation avec le temps, il peut arriver qu'ils soient tous deux actifs par une erreur de configuration).
PS
systemd-timesyncd
ne devrait pas être une alternative conseillée lorsqu'il n'est pas utilisésystemd
.la source
systemd-timesyncd
programme sous un autre gestionnaire de services. J'ai fourni un ensemble de services pour l'exécuter sous la boîte à outils noshservice-manager
depuis 2018. Ce que vous avez manqué, c'est que les personnes systemd (par le bogue Debian # 812522) encouragent les services invités VirtualBox et autres à entrer explicitement en conflit avec lesystemd-timesyncd
service afin d'empêcher son utilisation dans les machines virtuelles.systemd
.... Néanmoins, vmtools timesync peut et sera désactivé, et devrait être désactivé sur les serveurs faisant des services NTP (par exemple les serveurs virtuels NTP), et certains administrateurs système restent synchronisés par vmtools, d'autres suivent les articles VmWare de désactivation de vmtools timesync (qui ne doivent être utilisés que lorsque vous savez ce que vous faites). Ce bogue n'est pas linéaire à résoudre, et ce sera un point de configuration supplémentaire facilement manqué par les personnes suivant les recommandations de VmWare de ne pas utiliser vmtools timesync.vmware-toolbox-cmd timesync disable
dans mes serveurs NTP, que les gars de VmWare aient ou non désactivé la synchronisation temporelle pour ces VM. (Je préfère également utiliser chrony comme client NTP)chrony
n'est pas un forkntpd
mais il est implémenté à partir de zéro. Il implémente les modes client et serveur du protocole NTPv4 complet ( RFC5905 ). Chez les utilisateurs de niveau entreprise, nous constatons une tendance à passer du traditionnelntpd
auchrony
Red Hat (à partir de RHEL 7) et au SuSE (à partir de SLES 15).systemd-timesyncd
implémenter uniquement le mode client du protocole SNTP ( RFC4330 ) . Par conséquent, les cas d'utilisation complexes ne sont pas couverts par . Par exemple, SNTP ne peut pas le rendre plus précis en récupérant l'heure de plusieurs sources comme NTP le fait par défaut. En conséquence, il ne peut pas fournir un temps aussi précis que .systemd-timesyncd
systemd-timesyncd
chrony
la source