ntpd vs. systemd-timesyncd-안정적인 NTP 동기화를 달성하는 방법은 무엇입니까? 0.000000 s 이것은 NTP

NTP 데몬의 상태를 쿼리 ntpdc -c sysinfo하면 다음과 같은 결과가 나타납니다.

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      12.77106 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  7:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.000000 s
authdelay:            0.000000 s

이것은 NTP 동기화가 실패했음을 나타냅니다. 그러나 시스템 시간은 1 초 이내의 정확도입니다. 지금과 같은 기간 동안 네트워크 연결없이 시스템을 실행하면 시스템 시간이 ~ 10 초가됩니다.

이 동작은 시스템에 다른 시간 동기화 방법이 있음을 나타냅니다. 나는 systemd-timesyncd.service(구성 파일이 있음 /etc/systemd/timesyncd.conf)도 있고 timedatectl status올바른 시간을 준다는 것을 깨달았습니다 .

      Local time: Thu 2016-08-25 10:55:23 CEST
  Universal time: Thu 2016-08-25 08:55:23 UTC
        RTC time: Thu 2016-08-25 08:55:22
       Time zone: Europe/Berlin (CEST, +0200)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2016-03-27 01:59:59 CET
                  Sun 2016-03-27 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2016-10-30 02:59:59 CEST
                  Sun 2016-10-30 02:00:00 CET

내 질문은 두 메커니즘의 차이점은 무엇입니까? 그들 중 하나는 더 이상 사용되지 않습니까? 그것들을 동시에 사용할 수 있습니까? NTP 동기화 상태를 쿼리 할 때 어느 것을 신뢰해야합니까?

(두 방법 모두 성공을 표시하고 정확한 시간을 산출하는 다른 시스템 (다른 네트워크에 있음)이 있습니다.)



답변

systemd-timesyncd는 기본적으로 최신 시스템 릴리스와 함께 번들로 제공되는 소규모 클라이언트 전용 NTP 구현입니다. 전체 ntpd보다 가볍지 만 시간 동기화 만 지원합니다. 즉, 다른 시스템의 NTP 서버로 작동 할 수 없습니다. 클라이언트의 ntpd를 대체하기위한 것입니다.

이론적으로 그들은 서로 다른 시간 서버를 선택하여 시스템 클럭이 주기적으로 “점프”하게하는 다른 시간 서버를 선택할 수 있으므로 두 가지를 동시에 사용해서는 안됩니다.

상태를 얻으려면 불행히도 ntpdcntpd timedatectl를 사용하고 timesyncd를 사용하면 둘 다 읽을 수있는 유틸리티가 없다는 것을 알고 있어야합니다.


답변

systemd-timesyncd는 클럭 징계를 수행하지 않습니다. 클럭이 훈련되거나 보상되지 않으며 시간에 따른 내부 클럭 드리프트가 감소되지 않습니다. 폴링 간격을 조정하는 기본 논리가 있지만 규율이 없으면 시스템 시간 동기화가 단기 드리프트가 필요하다고 생각하는 간격으로 푸시 또는 풀링되므로 호스트가 불균일 한 시간으로 끝납니다. 또한 원격 시간 소스의 품질을 평가할 수 없습니다. 100ms보다 훨씬 큰 정확도를 얻을 수는 없습니다. 랩톱과 같은 단순한 최종 사용자 장치에는 충분하지만 시간 정밀도를 높이려는 분산 시스템에 문제가 발생할 수 있습니다.


답변