Что можно сделать для улучшения синхронизации времени в сетях со спорадическим доступом в Интернет?

14

Я ищу совет по настройке серверов времени для очень нестандартной сети. Я поддерживаю множество закрытых сетей, которые время от времени имеют доступ к Интернету. Сеть получала доступ в течение большинства дней в течение нескольких часов, но часто отключалась в течение 1-3 недель. Компьютеры / серверы в этой сети в основном основаны на * nix, но не всегда одинаковы. Вся сеть является мобильной, поэтому при подключении она будет сильно отличаться по времени и времени ожидания от серверов времени в Интернете. Серверы в закрытой сети часто отключаются (по крайней мере, ежедневно). Прямо сейчас моя интуиция говорит мне использовать NTP (потому что я ненавижу переучивать все вещи, которые кто-то другой уже работал довольно хорошо). Но у меня есть несколько проблем, и я ищу кого-то с опытом в такой странной ситуации. В настоящее время у меня нет решения, я м просто позволяя внутренним часам дрейфовать. Это приводит к ошибкам ~ 600 с в большинстве сетей. Я видел несоответствие хуже, чем 10000.

  1. Есть ли что-то "лучше", чем NTP в этой ситуации? Я знаю, что NTP нравится иметь очень частый, последовательный доступ к серверам, которые дают почти идентичные ответы. У меня не будет этого.
  2. Сколько внутренних NTP-серверов я должен настроить, чтобы во время периодов отключения Интернета у меня было внутреннее время, согласованное в закрытой сети?
  3. Там нет доступа человека. Независимо от того, насколько велико несоответствие, сервер (ы) должен попытаться исправить себя.
  4. Дискретные шаги очень плохие. Независимо от того, насколько велико несоответствие, коррекция должна быть «поворотной», а не «ступенчатой». Я понимаю, что это может занять много часов, чтобы исправить.
anregen
источник
7
Звучит так, будто тебе нужно отключить GPS.
Майкл Хэмптон
Я думаю, что у вышек сотовой связи может быть какая-то система тайм-кода, которую вы, возможно, могли бы использовать. Или просто мобильная точка доступа.
Sobrique
@Sobrique По моему опыту, время, которое вы получаете от вышек сотовой связи, обычно на несколько секунд меньше времени, которое вы получаете от NTP. Иногда это может быть даже на пару минут. Я склонен думать, что когда они не согласны, это NTP, что правильно. Я бы доверял GPS в сохранении точного времени, потому что я знаю, что точное время является необходимым условием для работы GPS в первую очередь.
Касперд

Ответы:

23

В старые времена настройка NTP-сервера stratum-1 была очень трудной, потому что источники stratum-0 были очень дорогими, чрезвычайно деликатными и обычно радиоактивными.

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

Выполните одно из этих действий, и в вашей сети будет один сервер stratum-1, с которым каждый может синхронизироваться. Одного достаточно; все будут синхронизированы с ним, пока он работает, и если он выйдет из строя, все клиенты, вероятно, получат хорошее представление о своих скоростях дрейфа, поэтому им не следует слишком дрейфовать, прежде чем он вернется, и тогда они буду аккуратно синхронизироваться с ним.

Я не вижу причин, чтобы не хорошо проводить время, даже с прерывистым доступом в Интернет.

Безумный Шляпник
источник
Мне очень нравится этот план, и я собираюсь привести его в движение. У нас даже есть GPS-приемники, так что нам просто нужно запустить NTP и подключить выход GPS к серверу.
anregen
Анреген, прости, что упомянул об этом, если ты уже это знаешь: местный этикет таков, что когда ты доволен ответом на свой вопрос, ты принимаешь его, нажимая на схему «галочка» рядом с ним. Это и управляет системой репутации SF как для вас, так и для автора ответа, и предотвращает вечный вопрос, похожий на жуткого альбатроса.
MadHatter
1
Единственная причина, по которой я сдерживаюсь, это то, что я хочу убедиться, что смогу обойти время запуска по GPS. Во время запуска системы будет время, в течение которого GPS получает спутники и не сообщает точную информацию о времени. Если я смогу обойти это эффективно, я обязательно выберу этот ответ. Еще раз спасибо!
anregen
1
Отметка времени до сбора данных составляет 0/0/0 0: 0: 0, поэтому ее очень легко идентифицировать. Мне просто нужно закончить писать код, чтобы отфильтровать его, и тогда у меня будет отличная система. Еще раз спасибо!
anregen
0

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

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

Их можно купить в наборах или сделать очень дешево самостоятельно в зависимости от вашего бюджета. Они должны быть более точными, чем GPS, поскольку GPS может быть отключен на срок до 12 секунд: http://www.gpsinformation.net/main/gpstime.htm .

Вот руководство по созданию атомного радиоприемника с малиновым пи: http://www.rs-online.com/designspark/electronics/blog/atomic-time-for-the-raspberry-pi

И еще одна тема для создания очень дешевых радиочасов: http://www.micro-examples.com/public/microex-navig/doc/100-p16f84-led-dcf-clock.html

Просто идея;)

JensB
источник
1
Видите ли, я нервничал, когда вы говорили «дешевые атомные часы», потому что ... ну, в принципе, вы измеряете атомные вибрации, что нетривиально. Однако тот, который получил сигнал времени атомных часов, - это другой чайник с рыбой, и это неплохая идея. Единственным недостатком этого является то, что он имеет тенденцию быть плохим приемом в течение дня.
Sobrique
Сделал несколько модификаций, чтобы сделать то, что я имел в виду, более понятным :)
JensB