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


31

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 동기화 상태를 쿼리 할 때 어느 것을 신뢰해야합니까?

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


2
나는 페도라 실제로 사용하는 것으로 나타났습니다 chrony : 구성 NTP는 chrony 스위트를 사용
데이비드 Tonhofer

답변:


19

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

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

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


그러면 한 시스템에서 ntpd의 동기화가 실패하는 반면 다른 시스템에서는 동기화가 실패합니다 (systemd-timesyncd를 동시에 실행). 해당 설정을 확인 했으므로 이것이 방화벽 문제와 관련이 없음을 확신합니다. 지금은 두 가지 결과가 남았고 성공적인 것을 신뢰하고 싶지만 두 클라이언트가 동일한 NTP 프로토콜을 구현하지만 하나는 실패하기 때문에 의심의 여지가 있습니다. 실제로 나는 둘 다 작동 할 것으로 기대합니다.
a_guest

1
ntpd와 timesyncd는 다른 설정을 사용합니다. 둘 다 동일한 시간 서버를 설정 했습니까?
maxf

ntp와 같이 timesyncd를 사용하여 GPS와 시간을 동기화 할 수 있습니까?
bakalolo

Systemd-timesyncd는 NTP보다 덜 정확한 SNTP 클라이언트입니다. 독자들은 systemd-timesyncd가 가벼운 NTP 클라이언트라는 생각에 오해해서는 안됩니다.
Philip Couling

14

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.