Для нашего проекта мы хотели бы, чтобы все серверы и системы были синхронизированы по линейной временной привязке (без второй прыжок).
Поэтому мы бы отказались от UTC, но очень заинтересованы в рекламе. Время TAI (или Время GPS).
Наш сервер времени будет подключен к атомным часам (или, возможно, к приемнику GPS).
Подходит ли NTP для рекламы времени TAI или GPS? Если да, то как это настроить?
Должны ли мы использовать другой протокол для рекламы такого времени?
Последнее замечание: AFAIK нет настраиваемого времени TAI или GPS для ядра Linux. Я думаю, что наш лучший вариант - это "подделать" его, настроив время ядра на UTC и вместо этого предоставив время TAI или GPS. Или есть альтернатива лучше?
В соответствии с страница проекта NTP по теме-А ты ошибаешься. UTC довольно сильно встроено в NTP как предположение, но файлы с «правильным» часовым поясом обычно доступны - на моем рабочем столе Fedora 20 они являются стандартной частью tzdata
пакет, в /usr/share/zoneinfo/right/
.
Вместо того, чтобы пытаться заставить NTP поддерживать синхронизацию часов по стандарту, отличному от UTC, позвольте NTP поддерживать синхронизацию часов в UTC и пусть система берет свой стандартный часовой пояс из файла часовых поясов, совместимого с TAI, чтобы выразить это время в TAI для всех запрашивающих приложений.
Вы можете создать свой собственный стандарт времени в изолированной сети, которую вы контролируете. Это немного глупо. Для того, чтобы это работало, вы должны настроить все свои машины для синхронизации только с серверами времени, которые вы контролируете. Я предложил четыре возможности. Я думаю, ваш лучший выбор - первый или второй, в зависимости от того, насколько строги ваши временные ограничения.
Помните, что для всех следующих параметров вам необходимо убедиться, что на сервере нет файла прыжка и что ни один из компьютеров не запрашивает время у внешнего мира.
Эталонная реализация ntpd с нестандартными локальными часами (рекомендуется / проще всего):
Если вы хотите, чтобы ntp-сервер обслуживал время, отличное от UTC, это довольно просто. Установите аппаратные часы / часы ядра на любое нужное вам ложное время. Затем настройте ntpd на использование драйвера недисциплинированных локальных часов (127.127.1.x) и без внешних часов. Сервер ntp с радостью будет работать и обслуживать местные часы. Одна проблема заключается в том, что, поскольку вы используете локальный драйвер часов, время не будет стабильным и будет дрейфовать на миллисекунды в ту или иную сторону, потому что кристалл кварца не является эталоном рубидия. Если вам нужна фиктивность и стабильность; вам нужно использовать вариант №2.
Эталонная реализация ntpd с источником ULC и PPS (рекомендуется / стабильность):
Используйте ULC, описанный выше, и добавьте источник PPS. После того, как вы добавите источник PPS, вам нужно будет добавить ключевое слово preference для записи 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/