Die Ankündigung von systemd-timesyncd in der Datei systemd NEWS sich die Unterschiede dieses Tools im Vergleich zu Chrony und ähnlichen Tools gut erklären. (Hervorhebung von mir):
Ein neuer Daemon "systemd-timesyncd" wurde hinzugefügt, um die Systemuhr über das Netzwerk zu synchronisieren. Es implementiert einen SNTP-Client . Im Gegensatz zu NTP-Implementierungen wie chrony oder dem NTP-Referenzserver wird hier nur eine Clientseite implementiert, und die volle NTP-Komplexität wird nicht beeinträchtigt. Es wird nur die Zeit von einem Remoteserver abgefragt und die lokale Uhr damit synchronisiert . Sofern Sie nicht beabsichtigen, NTP für Netzwerk-Clients bereitzustellen oder eine Verbindung zu lokalen Hardware-Uhren herzustellen, sollte dieser einfache NTP-Client für die meisten Installationen mehr als angemessen sein. [...]
Diese Konfiguration ist ein häufiger Anwendungsfall für die meisten Hosts in einer Serverflotte. Sie werden normalerweise von lokalen NTP-Servern synchronisiert, die wiederum von mehreren Quellen, möglicherweise einschließlich Hardware, synchronisiert werden. systemd-timesyncd versucht, eine benutzerfreundliche Lösung für diesen allgemeinen Anwendungsfall bereitzustellen.
Versuchen Sie, Ihre spezifischen Fragen zu beantworten:
Was sind die realen Unterschiede zwischen den beiden in Bezug auf die Genauigkeit?
Ich glaube, Sie können eine höhere Genauigkeit erzielen, indem Sie Synchronisationsdaten aus mehreren Quellen abrufen. Dies ist insbesondere kein unterstützter Anwendungsfall für systemd-timesyncd. Wenn Sie es jedoch verwenden, um Synchronisierungsdaten von zentralen NTP-Servern abzurufen, die mit Ihrem zuverlässigen internen Netzwerk verbunden sind, ist die Verwendung mehrerer Quellen nicht wirklich relevant und Sie erhalten eine gute Genauigkeit aus einer einzigen Quelle.
Wenn Sie Ihren Server von einem vertrauenswürdigen Server in einem lokalen Netzwerk und im selben Datencenter synchronisieren , ist der Unterschied in der Genauigkeit zwischen NTP und SNTP praktisch nicht vorhanden. NTP kann RTT berücksichtigen und Zeitmessungen durchführen, aber das ist nicht so vorteilhaft, wenn Ihre RTT sehr klein ist, was bei einem schnellen lokalen Netzwerk und einem nahe gelegenen Computer der Fall ist. Sie brauchen auch nicht mehrere Quellen, wenn Sie der von Ihnen verwendeten vertrauen können.
Was sind die Unterschiede in der Effizienz?
Das Abrufen der Synchronisierung von einer einzelnen Quelle ist viel einfacher als das Abrufen von mehreren Quellen, da Sie nicht entscheiden müssen, welche Quellen besser sind als andere, und möglicherweise Informationen aus mehreren Quellen kombinieren müssen. Die Algorithmen sind viel einfacher und erfordern im einfachen Fall weniger CPU-Last.
Was braucht eine "nicht einfache" Zeitsynchronisation, auch bekannt als "Use-Cases" für Chrony als NTP-Client?
Dies wird im obigen Zitat angesprochen, aber in jedem Fall handelt es sich um Anwendungsfälle für Chrony, die nicht von systemd-timesyncd abgedeckt werden:
- Ausführen eines NTP-Servers (damit andere Hosts diesen Host als Quelle für die Synchronisierung verwenden können);
- Abrufen von NTP-Synchronisierungsinformationen von mehreren Quellen (was wichtig ist, wenn Hosts diese Informationen von öffentlichen Servern im Internet abrufen); und
- Abrufen von Synchronisationsinformationen von der lokalen Uhr, wobei es sich normalerweise um spezielle Hardware wie GPS-Geräte handelt, die genaue Zeitinformationen von Satelliten abrufen können.
Diese Anwendungsfälle erfordern Chrony oder ntpd oder ähnliches.
chrony
Implementiert, wie in der anderen Antwort richtig angegeben, NTP undsystemd-timesyncd
SNTP.Aus Sicht eines Zeitdienstkunden:
SNTP ist ein viel einfacher zu implementierendes Protokoll.
NTP ermöglicht schrittweise Inkremente / Korrekturen auf Zeit. Ein Hauptvorteil von NTP ist, dass es auch die RTT der Antwort berücksichtigt, um eine genauere Zeit zu erhalten.
Von https://www.meinbergglobal.com/english/faq/faq_37.htm
Von https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp
Ein weiterer wichtiger Punkt, den ich sehe, sind SNTP-Implementierungen, die mehr Probleme bereiten als NTP, in der Virtualisierung, wenn sowohl der Hypervisor als auch der NTP-Dämon versuchen, die VM-Zeit zu ändern. Insbesondere wenn sie nicht rechtzeitig mit einer falschen Konfiguration einverstanden sind, sind sie beide aktiv, was zu großen Problemen führen kann. (Während kompetente Systemadministratoren nur eine Methode zur Synchronisation mit der Zeit aktiv lassen, kann es vorkommen, dass beide durch einen Konfigurationsfehler aktiv sind.)
PS
systemd-timesyncd
sollte keine empfohlene Alternative sein, wenn es nicht verwendet wirdsystemd
.quelle
systemd-timesyncd
Programm unter einem anderen Servicemanager ausführen . Ich habe ein Service-Bundle bereitgestellt, um esservice-manager
seit 2018 unter dem nosh-Toolkit auszuführen. Was Sie vermisst haben, ist, dass die System-Leute (gemäß Debian-Fehler # 812522) VirtualBox-Gastdienste und andere dazu anregen, explizit mit demsystemd-timesyncd
Service in Konflikt zu treten , um dessen Verwendung zu verhindern in virtuellen Maschinen.systemd
... Trotzdem kann und wird vmtools timesync in Servern deaktiviert sein, die NTP-Dienste ausführen (zum Beispiel die VMs der NTP-Server), und einige Sysadmins werden weiterhin von vmtools synchronisiert. Andere folgen den VmWare-Anweisungen zum Deaktivieren von vmtools timesync (diese sollten nur verwendet werden, wenn Sie wissen, was Sie tun). Dieser Fehler ist nicht linear zu beheben, und es wird ein zusätzlicher Konfigurationspunkt sein, der von Leuten leicht übersehen wird, die den VmWare-Empfehlungen folgen, vmtools timesync nicht zu verwenden.vmware-toolbox-cmd timesync disable
in meinem NTP - Server, ob die VmWare Jungs für diejenigen VMs deaktiviert timesync haben. (Ich bevorzuge auch normalerweise die Verwendung von chrony als NTP-Client)chrony
ist keine Gabelform,ntpd
sondern wird von Grund auf neu implementiert. Es implementiert sowohl Client und Server - Modi Voll NTPv4 Protokoll ( RFC5905 ). Bei Anwendern auf Unternehmensebene ist ein Trend zu beobachten, der von traditionellntpd
zuchrony
Red Hat (ab RHEL 7) und SuSE (ab SLES 15) wechselt.systemd-timesyncd
Implementieren Sie nur den Client- Modus mit SNTP- Protokoll ( RFC4330 ) . Komplexe Anwendungsfälle werden daher von nicht abgedeckt . Beispielsweise kann SNTP die Genauigkeit nicht verbessern, indem die Zeit aus mehreren Quellen abgerufen wird, wie dies bei NTP standardmäßig der Fall ist. Infolgedessen kann keine so genaue Zeit wie angegeben werden .systemd-timesyncd
systemd-timesyncd
chrony
quelle