20달러 SFP 모듈로 나노초 단위의 NTP 서버 구축 성공!

by DD
1개월 전
조회수 8

저렴한 SFP 모듈(OSA-5401)을 활용하여 기존 NTP 서버의 정확도를 획기적으로 개선, 26나노초(nanoseconds)의 정확도를 달성함

PTP(Precision Time Protocol)를 활용, 하드웨어 타임스탬핑(Hardware Timestamping)을 통해 정확한 시간 동기화 구현

chrony 설정GPSDO(GPS Disciplined Oscillator) 사용 과정에서 발생한 문제점과 해결 과정을 상세히 설명

PPS(Pulse Per Second) 신호의 오프셋(Offset) 측정 및 보정을 통해 시간 동기화 정확도 향상

저가형 SFP 모듈(OSA-5401)의 성능 분석

저자는 20달러의 OSA-5401 SFP 모듈을 사용하여 기존 NTP 서버의 정확도를 획기적으로 개선했다. 이 모듈은 GPS 수신기(GPS Receiver), OCXO(Oven-Controlled Crystal Oscillator), 그리고 FPGA(Field-Programmable Gate Array)를 내장하여 하드웨어 기반의 PTP 타임스탬핑을 지원한다. 특히, FPGA를 통한 하드웨어 타임스탬핑은 지연 시간(Latency)을 줄여 정확도를 높이는 핵심 요소로 작용한다.

PTP 및 chrony 설정 상세 분석

저자는 PTP를 사용하기 위해 ptp4l을 설정하고, chrony를 사용하여 시스템 시계를 동기화했다. ptp4l은 OSA-5401로부터 PTP 동기화 메시지를 수신하여 Pi의 PTP 하드웨어 클럭(/dev/ptp0)을 제어한다. chrony는 이 하드웨어 클럭을 refclock으로 사용하여 시스템 시계를 동기화한다. 특히, `tai` 옵션을 통해 chrony가 TAI-UTC 오프셋을 자동으로 적용하도록 설정한 점이 주목할 만하다.

GPSDO(GPS Disciplined Oscillator)의 오프셋 문제와 해결

저자는 GPSDO를 PPS(Pulse Per Second) 신호 소스로 사용했지만, chrony가 PPS를 신뢰하는 설정으로 인해 PTP 소스를 제대로 활용하지 못하는 문제를 겪었다. trust 플래그를 제거하고, PPS 신호의 58.3 마이크로초(microseconds) 오프셋을 측정하여 chrony 설정에 반영함으로써 문제를 해결했다. 이는 정확한 시간 동기화(Time Synchronization)를 위해 오프셋 보정이 얼마나 중요한지를 보여주는 사례이다.

성능 측정 및 결과 분석

최종적으로, 저자는 PTP refclock 매개변수를 조정하여 RMS 오프셋 11.8 ns, 최대 오프셋 17 ns의 성능을 달성했다. raw measurement data 분석 결과, ptp4l은 안정적인 성능을 보였지만, chrony의 raw readings는 39 ns의 표준 편차를 보였다. 최종적으로 ±26 ns의 정확도를 달성했으며, 이는 기존 Pi 3B NTP 서버 대비 45배 향상된 성능이다.

하드웨어 타임스탬핑(Hardware Timestamping)의 중요성

본 게시글은 하드웨어 타임스탬핑의 중요성을 강조한다. OSA-5401의 FPGA를 통한 하드웨어 타임스탬핑은 지연 시간(Latency)을 최소화하여 정확도를 높이는 데 기여했다. 이는 소프트웨어 기반의 타임스탬핑 방식과 비교하여 훨씬 더 정확한 시간 동기화를 가능하게 한다. 또한, PTP(Precision Time Protocol)를 사용함으로써 네트워크 환경에서도 정확한 시간 정보를 유지할 수 있었다.

From Milliseconds to 26 Nanoseconds: How a $20 eBay SFP Module Beat My Entire NTP Setup