Синхронизация времени машин в локальной сети с сервером GPS NTP в локальной сети

Синхронизация времени машин в локальной сети с сервером GPS NTP в локальной сети

У меня есть 4 компьютера в локальной сети, которым нужно, чтобы их системные часы были точно синхронизированы в течение мс или около того, если это возможно. Я только что установил сервер времени на основе GPS (ESE-104A) в локальной сети. На данный момент локальная сеть подключена к маршрутизатору и Интернету, но маршрутизатор не будет подключен к Интернету во время работы.

В процессе эксплуатации вся система будет запущена при подаче питания на машины, NTP-сервер и маршрутизатор.

  1. Как настроить Ubuntu на синхронизацию каждые несколько минут и рассчитать, каким должен быть этот период?

  2. Как я могу получить представление о том, сколько времени потребуется, чтобы прийти в себя, и каково качество учета времени?

  3. Я нашел ссылку, возможно, около 2000 года, в которой говорится, что hwclock следует синхронизировать с системным временем только при выключении. Стоит ли мне это делать и как?

  4. Какие файлы журналов мне следует хранить?

Вот результаты "ntpq -

    remote   refid       st t when poll reach   delay   offset  jitter
    *nts   .M-@M-(^AM-R.  1 u  29  128   377    38.912  -7.739   7.195

Вот мой ntp.conf (я использую только IPv4)

    driftfile /etc/ntp.drift

    statistics loopstats peerstats clockstats
    filegen loopstats file loopstats type day enable
    filegen peerstats file peerstats type day enable
    filegen clockstats file clockstats type day enable

    server 192.168.1.210

    restrict -4 default kod notrap nomodify nopeer noquery
    restrict -6 default kod notrap nomodify nopeer noquery

    restrict 127.0.0.1
    restrict ::1

решение1

Запустить ntpdна всех машинах. Установитьсервертак что он получает свое время от GPS-приемника и указывает другим машинам на сервер. Сiburstклиенты будут синхронизироваться достаточно быстро для ваших целей.

решение2

Я обычно настраивал системы так, чтобы в рамках процедуры их включения они изначально запускались ntpdateи получали время, загруженное с локального сервера времени, просто чтобы они изначально не были сильно сбиты. Затем просто запустите ntpd, используя его параметры по умолчанию.

Например, в конце файла /etc/rc.localдобавьте следующую строку:

/etc/init.d/ntpd stop
ntpdate <local time server>
/etc/init.d/ntpd start

Это хакерство, но делает свою работу. Я нашелэта тема на Server faultв котором обсуждаются причины, по которым не следует превращать NTP в монстра Франкенштейна, заставляя его делать то, для чего он никогда не предназначался, а именно — отслеживать точное время.

Если вы действительно хотите узнать точное время, то, думаю, вам лучше подойдет вот это:Протокол точного времени. Существует проект с открытым исходным кодом, который реализовал протокол PTP, метко названныйПроект Linux PTP.

Связанный контент