Калибровка локальных эталонных часов в ntpd

Вопрос или проблема

(Это продвинутая тема)

У меня есть эталонные часы DCF-77, подключенные через последовательный кабель к ПК, на котором работает ntpd под Linux.
Один из пиров — это локальный сервер NTP с использованием локальных GPS-часов.
Кроме того, я настроил три внешних сервера уровня stratum-1.

Хотя локальный GPS-сервер, вероятно, является самым точным, я не уверен в его фактическом смещении, так как длина кабеля между GPS-приемником и антенной точно неизвестна (кабель устанавливался кем-то другим).
Поэтому, когда напрямую подключенные эталонные часы DCF-77 и локальный GPS-сервер расходятся во мнениях о смещении, трудно решить, какой из них более корректен, особенно с учетом сетевых задержек.
Поэтому я добавил три внешних сервера уровня stratum-1, но у них значительные (превышающие смещение) сетевые задержки.

Поэтому я задаюсь вопросом: если я хочу “моделировать” смещение эталонных часов DCF-77, как мне вычислить “правильное” значение?
Текущее состояние показано ниже:

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*127.127.8.0     .DCFp.           0 l   14   64  377    0.000   -0.197   0.065
+172.20.2.25     .GPS.            1 u   17   64  377    1.487   +0.228   0.745
-192.53.103.108  .PTP0.           1 u   30   64  377   15.842   +1.387   0.105
-192.53.103.104  .PTP0.           1 u   10   64  377   15.720   +1.233   0.147
+192.53.103.103  .PTP0.           1 u   64   64  377   15.900   +1.077   0.987

Итак, у GPS и DCF-77 разные знаки, а внешние серверы ориентированы в направлении GPS.
Я бы хотел, чтобы было как можно меньше переключений часов, если какой-либо сервер уровня stratum-2 переключается между GPS и DCF-77.
Как вы видите, дрожание DCF-77 практически меньше, чем у GPS, поэтому клиенты уровня stratum-2 время от времени меняют источник.

В прошлом я внимательно откалибровал часы, используя другое оборудование и версию Linux, но после недавних изменений дрожание стало хуже, как видно на графике статистики:

NTP Statistics showing Offset and Jitter

Здесь дрожание и смещение являются комбинированными соответствующими значениями.
Начиная с мая, смещение стало хуже; возможно, был введен какой-то новый сетевой компонент, и после перебоев, вызванных заменой оборудования, смещение изменяется больше, чем раньше (программное обеспечение было обновлено с SLES12 SP5 до SLES15 SP6, также используется пакет ntp, который не является частью основной дистрибуции).
Тем не менее, проблема может быть связана с оборудованием, так как последовательные порты сейчас считаются несущественными.

Итак, как мне рассчитать значение подстройки для эталонных часов DCFp?

Ответ или решение

Калибровка локального эталонного часов в ntpd – это довольно сложная задача, требующая глубокого понимания работы сетевых протоколов времени и факторов, влияющих на точность синхронизации. В данном случае у вас имеется несколько источников времени: DCF-77 через последовательный кабель, локальный GPS-сервер и три внешних сервера stratum-1.

Теория

ntpd (Network Time Protocol daemon) – это сервис, работающий в операционной системе для синхронизации часов компьютера с внешними источниками времени. Каждый источник времени (peer) в ntpd имеет разные атрибуты, такие как задержка (delay), смещение (offset) и джиттер (jitter), которые показывают, насколько данный источник точно синхронизирован.

  • Смещение (Offset): показывает разницу в миллисекундах между локальными часами и часами сервера.
  • Задержка (Delay): время, необходимое для передачи пакета времени от сервера до клиента и обратно.
  • Джиттер (Jitter): вариабельность в задержке, показывающая стабильность соединения.

Одним из важных элементов настройки ntpd является функция "фадж" (fudge), с помощью которой вы можете искусственно исправить показания локального часов источника времени.

Пример

Из выходных данных команды ntpq -pn видно, что:

  • DCF-77 (127.127.8.0) показывает смещение -0.197 мс.
  • Локальный GPS сервер показывает смещение +0.228 мс.
  • Внешние stratum-1 серверы имеют положительное смещение и значительно большую задержку из-за сетевых факторов.

Хотелось бы минимизировать переключение источников времени (clock hopping) на вашем stratum-2 сервере, поскольку джиттер DCF-77 меньше, и по идее его логично сделать эталоном. Однако проблема в том, что сначала нужно решить, какой из источников более правдоподобен, так как GPS и внешний сервер сходятся больше, чем с DCF-77.

Применение

  1. Анализ данных: Исходя из ваших данных, DCF-77 имеет наименьший джиттер. Это говорит о его стабильности, но не обязательно о точности. Вам нужно оценить верность данных от GPS и DCF-77 с помощью дополнительных измерений или аналитики.

  2. Определение задержки кабеля для GPS: Поскольку длина кабеля между GPS-приемником и антенной неизвестна, это может добавлять неучтенную задержку. Физически измерьте или предоставьте информацию о задержке передача от антенны до вашего сервера.

  3. Вычисление fudge-фактора: После определения возможной задержки используйте fudge-команду для коррекции DCF-77:

    fudge 127.127.8.0 time1 <ваше скорректированное значение смещения>

    Значение <ваше скорректированное значение смещения> будет разницей между измеренными (или доверительными) значениями GPS и DCF-77 с учетом сетевых задержек и задержки кабеля.

  4. Мониторинг изменений: После применения изменений необходимо вести статистическую оценку и графизацию данных для мониторинга, считая среднеквадратичные ошибки (root mean square error, RMSE) для устойчивости оценок.

  5. Тестирование устойчивости: Переключайте источники с проводящей временной NTP-сети и следите за jitter и offset после калибровки.

Вывод

Подход нацелен на минимизацию ошибок и отклонений, путем тщательной калибровки эталонного часов через изучение показателей сети и индивидуальных характеристик оборудования. Убедитесь в точности введённых данных, проверяя другими источниками, например, радиочасы. Это сможет снизить переключение источников и повысит точность работы вашего ntpd. Если проблема сохраняется, возможна аппаратная неисправность, которую стоит вовремя диагностировать и устранять совместно с сетевыми и аппаратными инженерами.

Мониторинг и результативность должны стать ключевыми аспектами в вашем дальнейшем управлении конфигурацией ntpd.

Оцените материал
Добавить комментарий

Капча загружается...