Как настроить NTP имеет TAI или GPS отсчет времени?
Для нашего проекта мы хотели бы, чтобы все серверы и системы были синхронизированы с линейным отсчетом времени (без дополнительной секунды).
Поэтому мы отказались бы от UTC, но очень заинтересованы в рекламе времени TAI (или времени GPS).
Наш сервер времени будет подключен к атомным часам (или, возможно, к GPS-приемнику).
Подходит ли NTP для рекламы времени TAI или GPS? Если да, как это настроить?
Должны ли мы использовать другой протокол для рекламы такого времени?
Последнее замечание: AFAIK для ядра Linux не настраивается время TAI или GPS. Я думаю, что наш лучший вариант - "подделать" его, настроив время ядра в формате UTC и предоставив вместо него время TAI или GPS. Или есть лучшая альтернатива?
2 ответа
Вы можете создать свой собственный стандарт времени в изолированной сети, которой вы управляете. Это немного глупо. Чтобы это работало, все ваши машины должны быть настроены на синхронизацию только с серверами времени, которые вы контролируете. Я предоставил четыре возможности. Я думаю, что ваша лучшая ставка - первая или вторая, в зависимости от того, насколько жесткими являются ваши временные ограничения.
Помните обо всех следующих параметрах, которые вам нужны, чтобы убедиться, что на сервере нет файла скачка и что ни один из компьютеров не запрашивает время у внешнего мира.
Реализация эталонной ntpd с Undiciplined Local Clock (рекомендуется / проще всего):
Если вы хотите, чтобы NTP-сервер обслуживал время, отличное от UTC, это довольно просто. Установите аппаратные / ядерные часы на любое время, которое вам нужно. Затем настройте ntpd для использования драйвера Undisciplined Local Clock (127.127.1.x) и без внешних часов. Сервер ntp с радостью пойдет вперед и будет обслуживать местные часы. Одна проблема состоит в том, что, поскольку вы используете локальный драйвер часов, время не будет стабильным и будет дрейфовать миллисекунды в одну или другую сторону, потому что этот кристалл кварца не является эталоном рубидия. Если вам нужны подделка и стабильность; вам нужно использовать опцию № 2.
Ссылочная реализация ntpd с источником ULC и PPS (рекомендуется / стабильность):
Используйте ULC, описанный выше, и добавьте источник PPS. Как только вы добавите источник PPS, вам нужно будет добавить ключевое слово предпочитать для записи ULC в ntp.conf. Это будет означать, что часы сервера остаются стабильными, потому что источник PPS тикает каждую секунду для вас.
Реализация эталонной ntpd с внешней дисциплиной синхронизации и драйвером локальной синхронизации (сложная):
Это все еще решение, основанное на использовании эталонной реализации ntpd, но я не очень знаком с ним. Все, что я могу сделать, это дать вам ссылку на более подробную информацию: http://www.eecis.udel.edu/~mills/ntp/html/extern.html
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 для всех запрашивающих заявок.