NTPD가 예기치 않게 종료되는 원인 및 해결 방법


9

실제 문서 저장에 s3을 사용하는 웹 응용 프로그램에서 NTP가 계속 죽는 문제가 발생합니다. 이것은 하루에 한두 번 정도 발생하는 것 같습니다. PID 파일이 존재하는 것 외에는 이런 일이 발생했을 때 제공되는 정보가 거의 없지만 상태를 확인할 때 서비스가 종료되었습니다.

NTPD 사망 원인을 제안 할 수있는 사람이 있습니까? 클럭 드리프트로 인해 죽을 것이라고 가정하고 있지만 그 원인이 무엇인지 잘 모르겠습니다. 충분한 메모리와 사용 가능한 디스크 공간이 있습니다.

서비스가 마지막으로 사망했을 때의 결과는 다음과 같습니다.

Sep  6 06:15:25 vm02 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="988" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep  6 06:17:06 vm02 ntpd[10803]: 0.0.0.0 0618 08 no_sys_peer
Sep  6 08:01:10 vm02 ntpd[10803]: 0.0.0.0 0617 07 panic_stop -28101 s; set clock manually within 1000 s.

어떤 OS와 버전? 숨어있는 달리기가 있습니까? 얼마나 많은 ntp 서버가 구성되어 있습니까? 어떤 ntpd 옵션이 중요합니까?
Nils

당신은 ntp.drift 파일을 제거하려고 시도 할 수 있습니다, 그 가치가 너무 높아서 왜곡을 일으킬 수 있습니다
Rqomey

답변:


6

정확한 이유를 찾는 데 1 분의 방법이 없다고 말할 수 있습니다.

ESXi 환경에서도 비슷한 문제가있었습니다. 이야기를 짧게 줄이기 위해 ESXi 호스트의 시계가 많이 표류하고 게스트 VM이 ESXi 호스트와 업스트림 NTP 서버에서 시간을 동기화하고 있음을 발견했습니다. 이로 인해 VM의 NTPd가 혼동되어 매우 자주 사망했습니다.

또한 드물기는하지만 서버와 업스트림 NTPd 서버 간의 왕복 시간이 드리프트 시간을 계산하는 데 사용되기 때문에 임의의 패킷 손실로 인해 NTPd가 종료 된 것으로 나타났습니다.

위의 두 경우에서 NTPd가 예를 들어 1000 초보다 큰 시간 편차를 발견하면 기본적으로 종료됩니다. -g 옵션은 약간 도움이 될 것입니다.

   -g      Normally,  ntpd  exits  with  a  message to the system log if the offset exceeds the panic threshold,
           which is 1000 s by default. This option allows the time to be set to any value  without  restriction;
           however,  this  can  happen only once. If the threshold is exceeded after that, ntpd will exit with a
           message to the system log. This option can be used with the -q and -x options. See the tinker command
           for other options.

당신은 할 수 있습니다 시스템 로그를 살펴이 당신에게 힌트를 줄 수있는 몇 가지 단어를해야한다. 당신은 또한 수 있습니다 "으로, ntpq -p"모니터 출력 (가) 개발 오프셋 방법을 거친 아이디어를 가지고.


VM에서 ntpd를 실행할 때는 호스트와 시간을 동기화하지 않아야하며 로컬 시계를 참조로 포함하지 않아야합니다.
Paul Gear

3

로그 메시지는 클럭 드리프트가 종료 이유임을 분명히 나타냅니다. 가능한 해결책:

  • -g 플래그로 ntpd를 시작하십시오. 그러나 이로 인해 근본 원인이 해결되지는 않습니다 (시계 불균형).
  • ntpd를 시작하기 전에 ntpdate를 실행하십시오. 아마 같은 경고입니다.
  • 더 많은 시간 소스를 추가하십시오. NTP는 좋은 정확도를 유지하기 위해 4-6 개의 소스가 필요합니다. 이를 수행하는 간단한 방법은 구성에 [0-3] .YOURREGION.pool.ntp.org에 대한 반복 참조를 포함시키는 것입니다.

    server 0.au.pool.ntp.org iburst
    server 1.au.pool.ntp.org iburst
    server 2.au.pool.ntp.org iburst
    server 3.au.pool.ntp.org iburst
    
    server 0.au.pool.ntp.org iburst
    server 1.au.pool.ntp.org iburst
    server 2.au.pool.ntp.org iburst
    server 3.au.pool.ntp.org iburst
    

1

시도 할 수있는 또 다른 옵션은 chrony입니다. 테스트에서 ntpd보다 안정적으로 수행되며 가상 환경에서 경험 한 시간 차이를 더 잘 처리합니다.

http://chrony.tuxfamily.org/

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