Сохраните время в синхронизации среди серверов без интернет-соединения

У меня есть 5 серверов на LAN без Интернет-соединения. Мне нужны они для хранения часов в синхронизации среди них.

Я мог настроить их, поскольку NTP взаимодействует и установил высокий слой для локальных часов одного из них. Таким образом другие четыре синхронизировали бы с теми часами.

То, что я на самом деле хочу, является ими для достижения соглашения о времени с помощью всех 5 локальных часов (т.е. делая некоторое среднее число) по причинам устойчивости и точности. Действительно ли это возможно с NTP?

PS: Я не хочу использовать источник внешнего таймера.

Править: и никакие сценарии вне функций NTP, которые могли только сделать точность хуже :)

8
задан cavedon 28 June 2010 в 18:29
поделиться

4 ответа

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

Настройте две системы в качестве NTP-серверов, одну - в качестве основной, а в случае необходимости - в качестве резервной. Сделайте так, чтобы все другие системы синхронизировались с ними. Это будет значительно проще настроить, чем решение для усреднения часов, и вам не придется разрабатывать какие-либо сумасшедшие скрипты.

6
ответ дан 5 December 2019 в 21:16
поделиться

вы можете настроить один из них как ntp-сервер, который будет транслировать свое время в локальной сети, а остальные - как подчиненные устройства для прослушивания в локальной сети

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

0
ответ дан 5 December 2019 в 21:16
поделиться

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

1
ответ дан 5 December 2019 в 21:16
поделиться

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

Если это unix / linux, я бы настроил всех с авторизованными ключами SSH для опроса команды date +% s друг друга (чтобы узнать эпоху), усреднить это время с помощью awk или чего-то еще, а затем установить собственную местную дату машины.

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

В Windows вы, вероятно, будете искать VBScript и WMI.

РЕДАКТИРОВАТЬ: Вы можете столкнуться с некоторыми странными проблемами, если чьи-то часы отклонятся от среднего значения, а я предполагаю, что примерно половина из них будет;). Временные метки будущего могут быть довольно странными. Вам решать, как часто нужно будет выполнять эту синхронизацию.

0
ответ дан 5 December 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: