Насколько точно можно синхронизировать компьютерные часы в локальной сети с любым количеством компьютеров?

Насколько точно можно синхронизировать компьютерные часы в локальной сети с любым количеством компьютеров?

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

Поэтому я хотел убедиться, что для стека серверов (скажем, 48 компьютеров 1U) будет возможно иметь одинаковые часы. Я знаю, что могу использовать NTP для этого вопроса, и я знаю, что могу заставить один сервер получать время от атомных часов, а другие синхронизироваться с этим сервером.

Однако у меня есть одно важное замечание по поводу этой техники: если этот сервер сломается, то и моя синхронизация времени прекратится... это совсем нехорошо.

Есть ли надлежащий способ убедиться, что все 48 компьютеров синхронизируют свои часы с точностью около 0,5 мкс? Если не 0,5 мкс, то на что мы можем надеяться? (т. е. 0,5 мс?)

решение1

NTP может использовать пул серверов (например,http://www.pool.ntp.org/en/но вы можете создать свой собственный), чтобы избежать ситуации, когда один сервер выходит из строя, а серверы также могут поддерживать локальные часы, если по какой-то причине все их родительские серверы недоступны.

решение2

Я на самом деле нашелСообщение блогас информацией, которую я искал. Они упоминают, что их кластер имеет компьютеры, правильно синхронизированные в 1 мс с использованием NTP.

Это выглядит какПТП, как предполагает Майкл Хэмптон, следует той же стратегии: он будет использовать один компьютер,гроссмейстер, как источник синхронизации времени, в отличие от попыток получить правильное абсолютное время на всех компьютерах (в результате, еслигроссмейстеротличается на 10 мс от того, что мир считалабсолютное реальное время, все узлы будут отключены на 10 мс).

Решение, предлагаемое в этом документе, заключается в следующем:

1)Настройте один компьютер для получения абсолютного времени с помощью NTP. Если этот компьютер выйдет из строя, часы могут начать сбиваться, но они не станут неточными между собой, они будут сбиваться по сравнению сабсолютное реальное времятолько.

В этом случае вы используете serverопределения (гроссмейстер):

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
...

Также настройте этот компьютер как NTP-сервер, скажемlocal.ntp

2)Настройте другие компьютеры как одноранговые

server local.ntp   # only on a few other (3 to 5) computers
peer c0 iburst
peer c1 iburst
peer c2 iburst

Вам не нужно подключать все 48 компьютеров друг к другу, вместо этого у вас будет от 3 до 5 компьютеров, каждый из которых будет использовать немного отличающуюся настройку (c1, c2, c3, затем c2, c3, c4 и т. д.). В результате вы получите одноранговую сеть, которая синхронизирует друг друга максимально точно, с несколькими компьютерами (от 3 до 5), подключенными к узлу, определенному в (1), т. е. local.ntpчтобы получить время как можно ближе к реальному времени.

Саму ссылку local.ntpможно рассматривать как равноправный узел (возможно, вы даже сможете сделать ее равноправным узлом?)

P.S. restrictНастоятельно рекомендуется использовать peerв полупубличной сети, чтобы предотвратить доступ других к вашей сети NTP.

Связанный контент