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

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


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



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

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

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

     

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

    apt-get install ntp

    timedatectl set-ntp no

     

    Чтобы сервис ntp стартовал при перезагрузке:
    systemctl enable ntp


    Чтобы стартовать сервис:
    systemctl restart ntp

     

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


    В конфигурацонном файле ntp.conf (в Linux он находится в каталоге /etc, а в Windows в C:\Program Files\NTP\etc), должны быть следующие строки:
    server ntp0.pt.ikir.ru minpoll 4 maxpoll 10
    server ntp1.pt.ikir.ru minpoll 4 maxpoll 10

     


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


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

    выдаст что-то такое:
     
     remote           refid st t  when poll reach delay offset   jitter
    ====================================================================
     commserv.pt.iki .GPS.   1 u  10   16   41    0.171 -351.04  313.317
    *ckp1.pt.ikir.ru .GPS.   1 u  10   16   77    0.279   -8.493   1.903
    


    Что означают колонки в этом выводе?
    • 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-файл запихнуть в каталог автозагрузки.