Как настроить NTP имеет TAI или GPS отсчет времени?

Для нашего проекта мы хотели бы, чтобы все серверы и системы были синхронизированы с линейным отсчетом времени (без дополнительной секунды).

Поэтому мы отказались бы от UTC, но очень заинтересованы в рекламе времени TAI (или времени GPS).

Наш сервер времени будет подключен к атомным часам (или, возможно, к GPS-приемнику).

Подходит ли NTP для рекламы времени TAI или GPS? Если да, как это настроить?

Должны ли мы использовать другой протокол для рекламы такого времени?

Последнее замечание: AFAIK для ядра Linux не настраивается время TAI или GPS. Я думаю, что наш лучший вариант - "подделать" его, настроив время ядра в формате UTC и предоставив вместо него время TAI или GPS. Или есть лучшая альтернатива?

2 ответа

Решение

Вы можете создать свой собственный стандарт времени в изолированной сети, которой вы управляете. Это немного глупо. Чтобы это работало, все ваши машины должны быть настроены на синхронизацию только с серверами времени, которые вы контролируете. Я предоставил четыре возможности. Я думаю, что ваша лучшая ставка - первая или вторая, в зависимости от того, насколько жесткими являются ваши временные ограничения.

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

  1. Реализация эталонной ntpd с Undiciplined Local Clock (рекомендуется / проще всего):

    Если вы хотите, чтобы NTP-сервер обслуживал время, отличное от UTC, это довольно просто. Установите аппаратные / ядерные часы на любое время, которое вам нужно. Затем настройте ntpd для использования драйвера Undisciplined Local Clock (127.127.1.x) и без внешних часов. Сервер ntp с радостью пойдет вперед и будет обслуживать местные часы. Одна проблема состоит в том, что, поскольку вы используете локальный драйвер часов, время не будет стабильным и будет дрейфовать миллисекунды в одну или другую сторону, потому что этот кристалл кварца не является эталоном рубидия. Если вам нужны подделка и стабильность; вам нужно использовать опцию № 2.

  2. Ссылочная реализация ntpd с источником ULC и PPS (рекомендуется / стабильность):

    Используйте ULC, описанный выше, и добавьте источник PPS. Как только вы добавите источник PPS, вам нужно будет добавить ключевое слово предпочитать для записи ULC в ntp.conf. Это будет означать, что часы сервера остаются стабильными, потому что источник PPS тикает каждую секунду для вас.

  3. Реализация эталонной ntpd с внешней дисциплиной синхронизации и драйвером локальной синхронизации (сложная):

    Это все еще решение, основанное на использовании эталонной реализации ntpd, но я не очень знаком с ним. Все, что я могу сделать, это дать вам ссылку на более подробную информацию: http://www.eecis.udel.edu/~mills/ntp/html/extern.html

  4. Jans - сторонний инструмент для тестирования ntp (проще, чем №3, но неизвестный объект)

    У меня нет опыта работы с этим продуктом, но я знаю об этом из списка рассылки ntp. Это позволит вам подделать серверное время, но не использует такую ​​тактику, как эталонная реализация. Дополнительная информация: http://www.vanheusden.com/time/jans/

Согласно странице проекта NTP по теме, вы идете об этом неправильно. UTC довольно сильно встроен в качестве предположения в NTP, но "правильные" файлы часовых поясов, как правило, доступны - мой рабочий стол, который является Fedora 20, содержит их как стандартную часть tzdata пакет, в /usr/share/zoneinfo/right/,

Вместо того, чтобы пытаться заставить NTP поддерживать синхронизацию часов с не-UTC стандартом, пусть NTP поддерживает синхронизацию часов в UTC, и система берет свой стандартный часовой пояс из файла часового пояса, совместимого с TAI, чтобы выразить это время в TAI для всех запрашивающих заявок.

Другие вопросы по тегам