저는 현재 시계 드리프트가 있는 서버를 관리하고 있으며 서버의 시간을 뒤로 이동시키지 않고 차이를 수정하고 싶습니다.
윤초 번짐 기술에 대해 읽었으며 ntp 수정을 번지는 비슷한 방법이 있는지 궁금합니다(특히 수정으로 인해 시스템 시계가 뒤로 설정되는 경우).
답변1
NTP는 잔인한 시계 점핑이나 다른 작업 없이 이를 자동으로 처리해야 합니다.
ntpd -q
동기화 시간을 한 번 실행하고 종료할 수 있습니다 .
시계 왜곡이 너무 크면(>1000초) NTP가 패닉 상태가 되어 종료됩니다. 이 경우에도 NTP 데몬을 실행하여 ntpd -g
시계를 강제로 조정하세요.
더 이상 사용되지 않는 것을 사용하지 마십시오 ntpdate
.
답변2
팁을 주신 dr01님 덕분에 메일링 리스트 답변에서 답변을 찾았습니다.여기. 가장 큰 차이점은 내가 사용하는 용어입니다. ntp는 "jump" 대신 "step"을 사용하고 "smear" 대신 "slew"를 사용합니다.
Step: 시간이 큰 단위로 빠르게 변경됩니다. "Step" 방법(settimeofday)을 사용하면 시간이 더 빠른 속도로 점진적으로 변경되거나 시간이 즉시 정확한 시간으로 변경됩니다.
단계 == 시계를 올바른 시간으로 재설정하나즉각적인 단계. 계단식 시계는 "뒤로 돌릴" 수 있습니다.
회전 == 속도를 높이거나 낮추어 시계를 조정합니다. 회전하는 시계는 결코 "돌아가지" 않습니다.
요약하면, ntp는 차이가 임계값(128ms) 미만이면 시간을 변경하고 차이가 해당 임계값을 초과하면 시간을 단계적으로 조정합니다.
내부에ntpd 문서-x
차이가 기본 임계값보다 높더라도 ntp가 항상 업데이트하도록 강제할 수 있는 옵션에 대해 자세히 설명합니다 .
-x 일반적으로 오프셋이 단계 임계값(기본값은 128밀리초)보다 작으면 시간이 변환되고, 임계값을 초과하면 시간이 단계적으로 변환됩니다. 이 옵션은 모든 경우에 시간을 강제로 변경합니다. 단계 임계값이 0으로 설정되면 값 및 -x 옵션에 관계없이 모든 오프셋이 단계적으로 수행됩니다. 일반적으로 이는 큰 시간 및 주파수 오류에 대처하도록 설계된 클럭 상태 머신을 우회하므로 좋은 생각이 아닙니다. 참고: 슬루율은 0.5ms/s로 제한되므로 매초 조정에는 2000초의 분할 상환 간격이 필요합니다. 따라서 초 조정을 상각하는 데 몇 시간 또는 며칠이 걸릴 수 있습니다. 이 옵션은 -q 옵션과 함께 사용할 수 있습니다.
하지만 최대 전환율은 500ppm(백만분율)이므로 5분의 차이를 수정하는 데 약 7일이 소요됩니다.