Используя NTP для синхронизации группы серверов Linux к общему источнику времени

Это - нелепо ограниченный по объему вопрос. Мы должны были бы знать намного больше о Вашей рабочей нагрузке и центре обработки данных для предоставления консультации, более полезной, чем бросание монетки.

Таким образом, это - мой совет. Бросьте монетку.

7
задан 19 November 2010 в 22:26
3 ответа

Я владею хостинговой компанией, и мы делаем точно это. Вот то, как мы выполняем это.

Прежде всего, Вам нужен ведущий источник NTP. Таким образом, один из Ваших серверов Linux станет ведущим устройством. Я создал бы DNS запись под названием time.example.com (предполагающий, что example.com является доменом). Таким образом, если Ваше ведущее устройство перемещает Вас, не должен обновлять другие 19 серверов.

На главном сервере у Вас должен быть соответственно настроенный ntp.conf файл.

Вот то, на что похож один из наших основных/etc/ntp.conf файлов. Отметьте, это - дата-центр с частным адресным пространством (RFC1918) использование 172.17.x.x, таким образом, необходимо будет корректироваться соответственно. Если Вы хотите больше чем одно ведущее устройство, создаете больше чем один DNS запись каждый с различным IP для получения небольшого количества отказоустойчивости, раз так желаемой.

server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

server 0.north-america.pool.ntp.org
server 1.north-america.pool.ntp.org
server 2.north-america.pool.ntp.org
server 3.north-america.pool.ntp.org


# Logging & Stats
statistics loopstats
statsdir /var/log/ntp/
filegen peerstats file peers type day link enable
filegen loopstats file loops type day link enable

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
#
driftfile /etc/ntp/drift
broadcastdelay  0.008

restrict default noquery nomodify

restrict 0.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 3.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery

# Allow LAN to query us
restrict 172.17.0.0 mask 255.255.0.0 nomodify notrap

# Trust ourselves.  :-)
restrict 127.0.0.1

Теперь на каждом клиенте, у нас есть/etc/ntp.conf файл, который похож на это:

server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
server time.example.com

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.

driftfile /etc/ntp/drift
multicastclient                 # listen on default 224.0.1.1
broadcastdelay  0.008

# Don't serve time or stats to anyone else by default (more secure)

restrict default noquery nomodify

restrict time.example.com mask 255.255.255.255 nomodify notrap noquery

# Allow LAN to query us
restrict 172.17.0.0 mask 255.255.0.0 nomodify notrap

# Trust ourselves.  :-)
restrict 127.0.0.1

Используйте команду ntpq для наблюдения серверов, с которыми Вы синхронизируетесь. Это предоставило Вам список настроенных серверов времени и задержки, смещения и дрожания, которое Ваш сервер испытывает с ними. Для корректной синхронизации задержка и значения смещения должны быть ненулевыми, и значение дрожания должно находиться под 100.

Также на наших клиентских узлах, у нас есть емкостно-резистивный сценарий (/etc/rc.d/rc.local), который синхронизирует часы прежде, чем запустить демона NTPD. Вот важные части... Они - зависимый порядка.

Синхронизируйте часы клиента с основным источником времени/usr/sbin/ntpdate-b time.example.com

Запустите демона NTPD, допускающего большие временные регулировки во время запуска./usr/sbin/ntpd-g-x

Наконец, в зависимости от Вашего набора, необходимо будет перфорировать правило брандмауэра позволить ведущему устройству time.example.com достигать порта Public Internet over UDP. Вот типичное и соответственно помещенное правило IPTables

iptables-t туземный-A POSTROUTING-o $PUB_IF-p udp - ПОДМЕНА dport 123-j

Где PUB_IF является открытым интерфейсом (eth0, eth1, безотносительно)

12
ответ дан 2 December 2019 в 23:21

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

Использовать ntpq -p для контроля состояния - это должно дать некоторый признак, почему Вы не синхронизация улучшения.

3
ответ дан 2 December 2019 в 23:21

Я не уверен погода, можно достигнуть настолько синхронизации меньшего количества времени, но корректная конфигурация сервера ntp сделает синхронизацию серверов почти 10-20ms, который я сделал на своих серверах. Минимизируйте время дрейфа. Не невозможный получить это, но после установки сервера NTP и точек все серверы к тому, что сервер NTP и синхронизирует время впервые вручную, уменьшат разность времени черно-белые серверы.

0
ответ дан 2 December 2019 в 23:21

Теги

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