Стандарты синхронизации времени на рабочих станциях ИКИР.

26.03.2009
Последняя модификация: 07.12.2010

Иванов Аркадий

 

 

 

Данный документ описывает основные настройки, которые следует сделать для рабочих станций сети ИКИР, чтобы время на них было максимально точным.



Максимально точное единое время для рабочих станций в сети ИКИР является важной задачей не только для офисных работ, но в первую очередь для автоматизированных систем сбора данных. Технологии синхронизации для Linux и Windows описаны в Бюллетене от 02.09.2002. Этот документ кратко повторяет оттуда основные данные и уточняет необходимые настройки непосредственно для нашей сети.



Основные идеи синхронизации

  • Для синхронизации времени компьютеров через сеть Интернет и через локальную сеть созданы программы, которые реализуют NTP (Network Time Protocol).
  • В нашей локальной сети есть сервера, которые используются другими компьютерами для синхронизации времени.
  • Настройка времени делается по данным с этих серверов скачком при первом запуске программы управления синхронизацией на рабочей станции.
  • После начальной синхронизации никаких подстроек времени скачком не делается. В дальнейшем программа синхронизации регулярно опрашивает сервера и подстраивает системный таймер так, чтобы идти в ногу со временем серверов.
  • Сами сервера времени получают время из Интернет и/или с GPS, используя тот же NTP-протокол, что и рабочие станции, стараются максимально точно быть синхронизированными с единым мировым временем.
  • Сервера времени ИКИР имеют названия ntp0.ikir.ru и ntp1.pt.ikir.ru. В бюллетене я далее буду использовать номера, а не имена: 192.168.100.11 и 192.168.100.220.

Программы синхронизации.

 

Программы управления временем и их конфиги в Linux и Windows очень близки (для Windows, к счастью, нашёлся сторонний разработчик, который полноценно реализовал ntpd).
В AltLinux должны быть установлены пакет ntp. Он входит в состав дистрибутивов Linux.
Установка делается так:
apt-get install ntp

 

Чтобы сервис ntpd стартовал при перезагрузке:
chkconfig ntpd on


Чтобы стартовать сервис:
service ntpd restart

 

В Windows должны быть установлены программы ntp-4.2.4p6@vegas-v2-o-win32-setup.exe и ntp-time-server-monitor-104.exe. Эти программы можно взять с сайта http://www.meinberg.de или с нашего внутреннего NFS-ресурса arc:/CDs/Windows/CD1/INSTALL/NTP. При установке автоматически сервис стартует и в дальнейшем будет делать это после перезагрузки.


В конфигурацонном файле ntp.conf (в Linux он находится в каталоге /etc, а в Windows в C:\Program Files\NTP\etc), должны быть следующие строки:
server 192.168.100.130 minpoll 4 maxpoll 10 iburst
server 192.168.100.11 minpoll 4 maxpoll 10 iburst
server 192.168.100.220 minpoll 4 maxpoll 10 iburst
restrict 192.168.0.0 mask 255.255.0.0

В конфигурацонном файле /etc/ntp/step-tickers должны быть строки
192.168.100.130
192.168.100.11
192.168.100.220

Это сервера, с которыми клиентская программа при старте разово синхронизует время.
 


Наблюдение за синхронизацией.


В Windows у вас есть визуальная программа-монитор (NTP Time Server Monitor).
В Linux вы можете увидеть состояние синхронизации с помощью программы ntpq.
Запуск на вашем компьютере
ntpq -p

выдаст что-то такое:
remote           refid                       st t when poll reach   delay   offset  jitter
 =====================================================
*server.ikir.kam 195.2.64.5          2 u   41   64   377    0.221   -3.714  12.459
arc.pt.ikir.ru       85.28.195.129    4 u   44   64   377    0.243   45.660  17.622


Что означают колонки в этом выводе?

  • remote -   NTP-сервер, с которым наш хост синхронизуется. Ключ -n при запуске ntpq показывает IP-адрес вместо имёни.
  • refid - откуда сервер сам получает время. Это может быть другой хост или запись .GPS., говорящая о том, что на хосте время берётся из GPS-приёмника
  • st - Stratum (уровень). Число от 1 до 16, указывающее на точность сервера.
    Единица означает максимальную точность, 16 -- сервер недоступен.
    Уровень вашего компьютера при использовании кем-то другим будет равен уровню наименее точного удаленного сервера плюс 1.
  • when -Секунда после последнего обращения к сервреру.
  • poll -Интервал между опросами в секундах. Значение будет изменяться между минимальной и максимальной частотой опросов.
    Вначале интервал будет минимальным (параметр minpoll при запуске ntpd), чтобы синхронизация происходила побыстрее.
    После того, как часы синхронизируются, интервал начинает увеличиваться, чтобы уменьшить трафик и нагрузку на другие сервера времени.
  • reach - Восьмеричное значение 8-ми бит. Каждый бит - это результат одной попытки соединения с сервером.
    Представлен результат последних 8-ми попыток (по числу битов).
    Бит равен 1, если был получен ответ от удаленного сервера.
  • delay - Количество миллисекунд для получения ответа на запрос времени.
  • offset - Разница между временем локального и удаленного серверов в миллисекундах. В ходе синхронизации это значение должно понижаться, указывая на то, что часы локальной машины идут все точнее.
  • jitter Дисперсия (Jitter) -- дисперсия отклонений от значения смещения (поле offset) по нескольким успешным запросам времени. Меньшее значение дисперсии предпочтительнее.



Знаки перед именами(номерами) серверов означают:
-  наш NTP не предпочитает этот сервер.
+  наш NTP предпочитает этот сервер.
x  хост не подходит для синхронизации.
*  cамый предпочтительный сервер на данный момент.

 



Устройства для синхронизации.


На момент написания бюллетеня 2 сервера времени получают время из Internet-а, а  1 сервер имеет stratum 1 - получает время от GPS-приёмника.
 

 

Примитивная разовая синхронизация в Windows.

 

Для того, чтобы рабочая станция под Windows при загрузке системы синхронизовала свои часы с сервером времени без использования протокола ntpd, можно использовать возможности SMB-протокола. Следующая команда в Windows синхронизует время с нашим внутренним сервером времени:

net time \\commserv /set /yes

 

Эту строчку стоит написать в BAT-файле и сам BAT-файл запихнуть в каталог автозагрузки.