chrony를 이용한 로컬 네트웍 기기 간 시간 동기화

리눅스 시스템에서 시간 동기화를 위해 ntp를 많이 사용한다. ntp를 이용하여 기기간 시간 동기화를 할 수도 있고, 인터넷에 많은 방법이 나와 있다.

chrony는 ntp의 개선 버전이다. 사용 방법도 ntp와 유사하고, 심지어 ntp와 호환도 된다.

로봇 시스템의 특성상 인터넷에 연결되어 있지 않고, 로컬 네트웍 망만 구축되어 있는 경우, 하나의 PC를 기준으로 삼아 다른 기기의 시간을 동기화 할 수 있다.

작업 순서


기준 PC

chrony 설치

$ sudo apt install chrony

서버 설정

$ sudo vi /etc/chrony/chrony.conf 

pool <기준PC IP주소> iburst maxsources 1

keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift

local stratum 10
allow 192.168.0.0/16

logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3

chrony 데몬 서비스 시작

$ sudo systemctl restart chronyd.service

chrony 서비스 시작

$ sudo systemctl restart chrony.service

chrony 서비스 동작 확인

$ watch chronyc tracking

Every 2.0s: chronyc tracking

Reference ID    : C0A80B36 (byeongkyu-XPS-17-9700)
Stratum         : 11
Ref time (UTC)  : Wed Apr 14 06:19:50 2021
System time     : 0.000000000 seconds slow of NTP time
Last offset     : +0.000002941 seconds
RMS offset      : 0.000002941 seconds
Frequency       : 7.161 ppm slow
Residual freq   : -0.063 ppm
Skew            : 9.612 ppm
Root delay      : 0.000010132 seconds
Root dispersion : 0.000493094 seconds
Update interval : 0.0 seconds
Leap status     : Normal


슬레이브 PC

chrony 설치는 동일.

설정파일

$ sudo vi /etc/chrony/chrony.conf

pool <기준PC IP주소> iburst maxsources 1

keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift

logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3

chrony 데몬 서비스 시작

$ sudo systemctl restart chrony.service

chrony 동작 확인

$ watch chronyc tracking

Every 2.0s: chronyc tracking
 
Reference ID    : C0A80B36 (192.168.11.54)
Stratum         : 12
Ref time (UTC)  : Wed Apr 14 06:26:28 2021
System time     : 0.000805050 seconds fast of NTP time
Last offset     : +0.001296174 seconds
RMS offset      : 0.005739228 seconds
Frequency       : 2.246 ppm slow
Residual freq   : +0.130 ppm
Skew            : 2.884 ppm
Root delay      : 0.009987777 seconds
Root dispersion : 0.003204302 seconds
Update interval : 260.5 seconds
Leap status     : Normal

끝.!