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.