![이 서버가 시간 소스로 사용되지 않을 때 Local(0)과 동기화하도록 ntpd를 구성해야 하는 이유가 있습니까?](https://linux55.com/image/24102/%EC%9D%B4%20%EC%84%9C%EB%B2%84%EA%B0%80%20%EC%8B%9C%EA%B0%84%20%EC%86%8C%EC%8A%A4%EB%A1%9C%20%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%84%20%EB%95%8C%20Local(0)%EA%B3%BC%20%EB%8F%99%EA%B8%B0%ED%99%94%ED%95%98%EB%8F%84%EB%A1%9D%20ntpd%EB%A5%BC%20%EA%B5%AC%EC%84%B1%ED%95%B4%EC%95%BC%20%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
CentOS 버전 5.8 실행
서버의 시간 드리프트 문제를 해결했습니다. hwclock을 동기화하지 않았기 때문에 재부팅 시 ntp가 1000초 이상 꺼지고 시간이 동기화되지 않았습니다.
문제를 조사하는 동안 ntpd가 주기적으로 Local(0)과 동기화하는 것을 발견했습니다.
이 서버가 시간 소스로 사용되지 않을 때 Local(0)과 동기화하도록 ntpd를 구성해야 하는 이유가 있습니까?
"답변" - 다른 시간 서버에 연결이 실패할 때 이 서버를 로컬 시간 서버로 사용하려는 경우가 아니면 Undisciplined Local Clock을 사용할 필요가 없습니다.
ntpd의 로그 메시지:
Jul 20 03:47:49 localhost ntpd[5441]: synchronized to 110.14.8.1, stratum 3
Jul 20 04:21:06 localhost ntpd[5441]: synchronized to LOCAL(0), stratum 10
Jul 20 04:38:09 localhost ntpd[5441]: synchronized to 110.14.8.1, stratum 3
Jul 20 04:55:26 localhost ntpd[5441]: synchronized to LOCAL(0), stratum 10
ntpd.conf:
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.4.58.21
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
로컬 동기화를 비활성화하지만 로컬 동기화가 발생하는 이유가 여전히 궁금합니다. 동일한 서브넷에 임시 시간 서버를 배치하고 ntpd는 여전히 현지 시간과 동기화됩니다. (*가능한 답변: ntpdc -c sysinfo stats는 ntp 서버가 11의 값으로 시작했음을 보여줍니다. 이는 우리가 ntpd에 로컬로 사용하라고 지시한 10보다 더 나쁩니다. ntpd 소스 코드를 살펴볼 시간입니다*)
Jul 24 17:11:32 localhost ntpdate[5432]: step time server 227.220.222.220 offset 1629.764734 sec
Jul 24 17:11:32 localhost ntpd[5434]: ntpd [email protected] Fri Nov 18 13:21:21 UTC 2011 (1)
Jul 24 17:11:32 localhost ntpd[5435]: precision = 1.000 usec
Jul 24 17:11:32 localhost ntpd[5435]: Listening on interface wildcard, 0.0.0.0#123 Disabled
Jul 24 17:11:32 localhost ntpd[5435]: Listening on interface wildcard, ::#123 Disabled
Jul 24 17:11:32 localhost ntpd[5435]: Listening on interface eth0 Enabled
Jul 24 17:11:32 localhost ntpd[5435]: Listening on interface lo, ::1#123 Enabled
Jul 24 17:11:32 localhost ntpd[5435]: Listening on interface lo, 127.0.0.1#123 Enabled
Jul 24 17:11:32 localhost ntpd[5435]: Listening on interface eth0, 192.12.140.55#123 Enabled
Jul 24 17:11:32 localhost ntpd[5435]: kernel time sync status 0040
Jul 24 17:11:32 localhost ntpd[5435]: frequency initialized 0.000 PPM from /var/lib/ntp/drift
Jul 24 17:14:48 localhost ntpd[5435]: synchronized to LOCAL(0), stratum 10
Jul 24 17:16:55 localhost ntpd[5435]: synchronized to 192.12.140.200, stratum 3
Jul 24 20:11:06 localhost ntpd[5435]: synchronized to LOCAL(0), stratum 10
Jul 24 20:20:50 localhost ntpd[5435]: synchronized to 192.12.140.200, stratum 3
답변1
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
이는 공식 서버에 액세스할 수 없는 경우 대체 시간 소스로 사용됩니다(자세한 내용). 드리프트 파일이 로컬 시계에 대한 실시간 수정 사항을 포함해야 하므로 드리프트 파일을 활성화한 경우 시간을 동기화 상태로 유지할 수도 있습니다.
답변2
ntpd
로컬 하드웨어 시계 동기화를 담당하지 않습니다. 일반적으로 이를 수행하기 위한 프로그램이 제공됩니다. Ubuntu에서 이 프로그램은 hwclock
시작 시 시스템 날짜를 설정하고 종료 시 업데이트하는 데 사용됩니다.
나는 보통 하드웨어 시계를 로컬 NTP 시간 서버의 시간 소스로 구성합니다. 클라이언트에서 이를 구성하는 경우 시간 서버가 액세스 가능한 경우 시간 권한을 유지하도록 더 높은 계층으로 설정합니다.
로컬 시계와 동기화 하려면 ntpd
하드웨어 시계를 UTC로 설정하고 부팅 시 시계가 UTC가 되도록 시스템을 구성합니다. 안타깝게도 이 방법은 Windows로 이중 부팅하는 경우 제대로 작동하지 않습니다. 이 경우 현지 시계를 시간 소스로 사용하지 마십시오.
출력 결과에 따르면 간헐적인 외부 시간 소스로 인해 하드웨어 시계가 앞뒤로 바뀌는 것으로 나타났습니다. 액세스할 수 있더라도 외부 시간 원본은 자체 동기화가 손실되어 시간 원본으로 간주되지 않을 수 있습니다. 인터넷 연결이 안정적이라면 시간 소스를 더 추가하세요. 네트워크 연결이 간헐적으로 끊기는 경우 하드웨어 시계 설정을 수정하거나 소스인 하드웨어 시계를 제거하세요.
부팅 시 하드웨어 시계가 1000초 이상 어긋난다는 사실은 다음 두 가지 문제 중 하나가 있을 수 있음을 나타냅니다.
- 하드웨어 시계는 부팅 시퀀스 중에 시스템 시간을 설정하는 소프트웨어에서 예상하는 시간대로 설정되지 않습니다.
- 시스템 전원이 꺼졌을 때 CMOS를 계속 실행하는 데 사용되는 배터리가 소진되었거나 거의 소진되었습니다.
-g
이 옵션을 명령에 추가하면 시작 시 동기화 문제를 해결할 수 있습니다 ntpd
.
답변3
현지 시간 원본과 동기화하는 것은 현지 시간 원본이 실제로 존재하지 않을 때 시계를 제어할 수 없게 만드는 좋은 방법입니다. 당신은 이것을 어려운 방법으로 알아냅니다(제가 얼마 전에 그랬던 것처럼). 이는 GPS, 원자시계 또는 관련 장치가 기계에 물리적으로 연결된 경우에 적용됩니다. 해당 하드웨어가 없으면 비활성화하십시오.
답변4
동일한 하드웨어에서 실행되는 다른 시스템이 로컬 시계를 동기화하는 경우 로컬 시계와 동기화하는 것이 좋습니다. 예: Host1에서 VM1은 ntp를 실행하고 일부 공용 ntp 서버(예: 계층 3)와 동기화합니다. Host1, VM2, VM3, VM4...에서 ntp를 실행하고 로컬 시계에 동기화합니다.
VM1이 실행되는 한 모든 것이 괜찮을 것입니다. 그렇죠?
IMHO, 보통 ntp동기화 여부하드웨어 시계는 "단계"로, "연속적으로" 생각하므로 종료할 때 "hwclock -wu"는 필요하지 않습니다.