Zapowiedź Systemd-timesyncd w Systemd pliku NEWS robi dobrą robotę wyjaśniając różnice pomiędzy tym programem w porównaniu z chrony i narzędzia podobnego. (moje podkreślenie):
Dodano nowego demona „systemd-timesyncd” do synchronizacji zegara systemowego w sieci. Implementuje klienta SNTP . W przeciwieństwie do implementacji NTP, takich jak chrony lub serwer referencyjny NTP, implementuje to tylko stronę klienta i nie przeszkadza w pełnej złożoności NTP, koncentrując się tylko na zapytaniach o czas z jednego zdalnego serwera i synchronizowanie z nim lokalnego zegara . O ile nie zamierzasz obsługiwać NTP klientom sieciowym lub chcesz łączyć się z lokalnymi zegarami sprzętowymi, ten prosty klient NTP powinien być bardziej niż odpowiedni dla większości instalacji. [...]
Ta konfiguracja jest częstym przypadkiem użycia większości hostów we flocie serwerów. Zwykle będą synchronizowane z lokalnymi serwerami NTP, które same są synchronizowane z wielu źródeł, w tym ewentualnie ze sprzętu. systemd-timesyncd próbuje zapewnić łatwe w użyciu rozwiązanie dla tego typowego przypadku użycia.
Próbujesz odpowiedzieć na twoje konkretne pytania:
Jakie są prawdziwe różnice między nimi pod względem dokładności?
Wierzę, że można uzyskać większą dokładność, uzyskując dane synchronizacji z wielu źródeł, co nie jest szczególnie obsługiwanym przypadkiem użycia dla systemd-timesyncd. Ale gdy używasz go do pobierania danych synchronizacji z centralnych serwerów NTP podłączonych do niezawodnej sieci wewnętrznej, używanie wielu źródeł nie jest tak istotne i uzyskujesz dobrą dokładność z jednego źródła.
Jeśli synchronizujesz swój serwer z zaufanym serwerem w sieci lokalnej i w tym samym centrum danych , różnica dokładności między NTP i SNTP będzie praktycznie nie istniała. NTP może brać pod uwagę RTT i dokonywać pomiaru czasu, ale nie jest to tak korzystne, gdy twój RTT jest naprawdę mały, jak w przypadku szybkiej sieci lokalnej i pobliskiej maszyny. Nie potrzebujesz również wielu źródeł, jeśli możesz zaufać temu, którego używasz.
Jakie są różnice w wydajności?
Uzyskiwanie synchronizacji z jednego źródła jest znacznie prostsze niż uzyskiwanie z wielu źródeł, ponieważ nie musisz podejmować decyzji, które źródła są lepsze od innych, i ewentualnie łączyć informacje z wielu źródeł. Algorytmy są znacznie prostsze i będą wymagały mniejszego obciążenia procesora w prostym przypadku.
Czego potrzebuje „nie prosta” synchronizacja czasu, czyli przypadki użycia dla chronicznego klienta NTP?
Zostało to rozwiązane w powyższym cytacie, ale w każdym razie są to przypadki użycia Chrony, które nie są objęte przez systemd-timesyncd:
- działający serwer NTP (aby inne hosty mogły używać tego hosta jako źródła synchronizacji);
- uzyskiwanie informacji o synchronizacji NTP z wielu źródeł (co jest ważne dla hostów otrzymujących te informacje z publicznych serwerów w Internecie); i
- uzyskiwanie informacji o synchronizacji z lokalnego zegara, który zwykle wymaga specjalistycznego sprzętu, takiego jak urządzenia GPS, które mogą uzyskać dokładne informacje o czasie z satelitów.
Te przypadki użycia wymagają Chrony, NTTP lub podobnego.
Jak druga odpowiedź poprawnie stwierdza,
chrony
implementuje NTP isystemd-timesyncd
SNTP.Z punktu widzenia klienta usług czasowych:
SNTP jest znacznie prostszym protokołem do wdrożenia;
NTP pozwala na stopniowe zwiększanie / poprawianie na czas. Jedną z głównych zalet NTP jest to, że bierze również pod uwagę RTT odpowiedzi, aby uzyskać dokładniejszy czas.
Od https://www.meinbergglobal.com/english/faq/faq_37.htm
Od https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp
Inną ważną kwestią, jaką widzę, są implementacje SNTP dające więcej problemów niż NTP w wirtualizacji, gdy zarówno hiperwizor, jak i demon NTP próbują zmienić czas VM. Zwłaszcza, że nie zgadzają się na czas z pewną błędną konfiguracją powoduje, że oba są aktywne, może to powodować duże problemy. (Chociaż kompetentni administratorzy systemu utrzymają aktywną tylko jedną metodę synchronizacji z czasem, może się zdarzyć, że obaj są aktywni przez błąd konfiguracji).
PS
systemd-timesyncd
nie powinien być zalecaną alternatywą, gdy nie jest używanysystemd
.źródło
systemd-timesyncd
program można uruchomić pod innym menedżerem usług. Dostarczam pakiet usług do uruchamiania go pod zestawem narzędzi noshservice-manager
od 2018 roku. Brakowało Ci tego, że ludzie systemowi (na błąd Debiana # 812522) zachęcają usługi gości VirtualBox i inne osoby do jawnego konfliktu zsystemd-timesyncd
usługą, aby uniemożliwić jej użycie w maszynach wirtualnych.systemd
.... Niemniej jednak vmtools timesync może i będzie wyłączone, i powinno być wyłączone na serwerach wykonujących usługi NTP (na przykład maszyny wirtualne serwerów NTP), a niektóre sysadminy synchronizują się z vmtools, inni podążają za dokumentami VmWare dotyczącymi wyłączania vmtools timesync (z których należy korzystać tylko wtedy, gdy wiesz, co robisz). Ten błąd nie jest liniowy do rozwiązania, a będzie to dodatkowy punkt konfiguracji, który będzie łatwo przeoczony przez osoby przestrzegające zaleceń VmWare dotyczących niestosowania vmtools timesync.vmware-toolbox-cmd timesync disable
na moich serwerach NTP, niezależnie od tego, czy faceci VmWare wyłączyli synchronizację czasu dla tych maszyn wirtualnych. (Ja też zazwyczaj wolę używać chrony jako klienta NTP)chrony
nie jest formą widelca,ntpd
ale jest implementowany od zera. Implementuje tryby klienta i serwera pełnego protokołu NTPv4 ( RFC5905 ). Użytkownicy klasy korporacyjnej widzą trend z tradycyjnegontpd
nachrony
podobny do Red Hat (RHEL 7 i nowsze) i SuSE (od SLES 15).systemd-timesyncd
implementuj tylko tryb klienta protokołu SNTP ( RFC4330 ) . Dlatego złożone przypadki użycia nie są objęte . Na przykład SNTP nie może zwiększyć dokładności, pobierając czas z wielu źródeł, jak domyślnie NTP. W rezultacie nie może zapewnić tak wysokiej precyzji czasu jak .systemd-timesyncd
systemd-timesyncd
chrony
źródło