Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оглавление


Информация
titleДанная статья применима к:
  • Astra Linux



Информация

В стандартные дистрибутивы и репозитории

ОС ОН Орёл 2.12 до версии 2.12.10 был включены две

Astra Linux включены следующие службы точного времени:

Серверная
  • серверная служба NTP (ntpd) (
представлена пакетами ntp и ntpdate
  • пакетами ntp);
  • серверная служба chrony (chronyd) (пакет chrony);
  • серверная служба OpenNTP (openntpd) (пакет openntp);
Клиентская
  • клиентская системная служба timedatectl / systemd-timesyncd.service.

Подробнее про

них

эти службы можно прочитать

по ссылке. Кроме того, по той же ссылке

в статье  Службы синхронизации времени в Astra Linux. В статье также можно ознакомиться с  базовыми терминами, связанными с организацией служб времени в

компьюетрах

компьютерах.


Начиная с

версии

обновлений Astra Linux Common Edition 2.12.10, Astra Linux Special Edition x.7 помимо указанных выше служб в

репозитории

репозиториях стал доступен пакет linuxptp, содержащий следующие службы:

  • ptp4l - служба протокола времени высокой точности, реализующая работу по протоколу времени высокой точности PTP (Precision Time Protocol) в соответствии со стандартом  IEEE 1588. Точность протокола зависит от того, как устанавливаются метки времени в пакетах IEEE 1588. При установке отметок времени программным путём, когда на точность влияют прерывания, загрузка процессора, и иные факторы, обеспечивается точность 1-100 микросекунд. Аппаратная поддержка обеспечивает точность до единиц микросекунд;
  • phc2sys - служба синхронизации часов;
  • timemaster - служба координации, обеспечивающая совместную работу традиционной службы времени ntp и
сверхточной
  • службы времени
ptp. Информация

Данная статья применима к:

Орёл 2.12.10
  • высокой точности ptp.
Предупреждение
Службы
ntp
ntpd, chronyd и
ptp
PTP несовместимы со службой timedatectl.


Проверка оборудования

Пакет ориентирован на использование аппаратных средств точного времени, в частности, аппаратных возможностей сетевых карт (аппаратные отметки времени).
Пакет можно настроить и запустить и без сетевых карт, поддерживающих аппаратные возможности, что повлечет некоторое снижение точности. Настройка пакета для работы без аппаратной поддержки описана ниже.
Проверить, поддерживает ли сетевая карта аппаратные отметки времени можно из командной строки с помощью команды ethtool из пакета ethtool (пакет ethtool необходимо установить, если он не был установлен ранее):

Command

sudo apt install ethtool
sudo ethtool -T eth0

Примерный вывод команды для сетевой карты, поддерживающей аппаратные отметки:

Раскрыть
$ sudo ethtool -T eth0
Time stamping parameters for eth0:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)
ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)
ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)
ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC)
ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)

Установка пакета

Пакет linuxphp linuxptp доступен в репозитории Орёл (Astra Linux Common Edition начиная с версии 2.12.10 ) и может быть установлен с помощью графического менеджера пакетов или пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:

Command
sudo apt install linuxptp

Настройка службы timemaster

Конфигурация службы timemaster находится в файле /etc/linuxptp/timemmastertimemaster.conf.
Подробно возможные параметры настройки описаны в электронной справочной системе:

Command

man timemaster

Включение службы домена точного времени (ptp_

dpomain

domain)

Для включения службы точного времени раскомментироватьв файле конфигурации высокой точности ptp4l раскомментировать в файле настроек /etc/linuxptp/timemaster.conf секцию [ptp_domain 0] (в примере - настройка домена точного времени, использующего интерфейс eth0):

Информация

[ptp_domain 0]
interfaces eth0
delay 10e-6

Домен точного времени обслуживается сервисом ptp4l, его настройка этого сервиса описана ниже.

Включение службы ntp

В этом

Настройка работы со службой chronyd

Информация
Данный раздел применим для всех обновлений Astra Linux, в которых доступна служба chronyd (пакет chrony). Служба chronyd рекомендуется для использования во всех обновлениях.

Для включения работы со службой chronyd:

  1. Установить пакет chrony, если он не был ранее установлен.
  2. Остановить службу chronyd и запретить её запуск:

    Command
    sudo systemctl stop chronyd
    sudo systemctl mask chronyd


  3. В файле настроек /etc/linuxptp/timemaster.conf:

    1. Убедиться, что

файле
    1. в секции [timemaster]

нужно указать службу ntpd вместо
    1. параметр ntp_program имеет значение cronyd:

info
    1. Блок кода
      [timemaster]

    1. 
      ntp_program chronyd


    2. В секции [chrony.conf] указать значение параметра include равным /etc/chrony/chrony.conf:

      Блок кода
      [chrony.conf]
      include /etc/chrony/chrony.conf



  1. Запустить (перезапустить) службу timemaster:

    Command

    sudo systemctl restart timemaster


Настройка работы со службой ntp

Информация
Данный раздел применим для всех обновлений Astra Linux, но не актуален так как в настоящее время рекомендуется использовать службу chronyd.

Для включения работы со службой ntp:

  1. Установить пакет ntp, если он не был ранее установлен.
  2. Остановить службу ntp и запретить её запуск:

    Command
    sudo systemctl stop ntp
    sudo systemctl mask ntp


  3. В файле настроек /etc/linuxptp/timemaster.conf в секции [timemaster] значение параметра ntp_program нужно заменить на ntpd

После внесения этих изменений служба timemaster сможет самостоятельно запускать службу ntpd под своим контролем, поэтому самостоятельный запуск службы ntpd следует отключить (см. ниже).
  1. вместо cronyd:

    Блок кода
    [timemaster]
    ntp_program ntpd


  2. Запустить (перезапустить) службу timemaster:

    Command

    sudo systemctl restart timemaster


Настройка автоматического запуска timemaster

Кроме настройки конфигурационного файла нужно разрешить автоматический запуск службы timemaster при старте системы:

Command
sudo systemctl enable timemaster

Настройка службы ntp

Так как служба timemaster самостоятельно запускает службу ntpd под своим контролем,самостоятельный запуск службы ntpd следует отключить и запретить:

command

sudo systemctl mask ntp

Настройка службы ptp4l

Служба ptp4l представляет собой реализацию протокола времени высокой точности , и, в первую очередь ориентирована на сетевые карты, поддерживающие и по умолчанию настроена на работу с сетевыми картами, поддерживающими аппаратные отметки времени (time stamping).
Проверить, поддерживает ли карта аппаратные отметки можно из командной строки с помощью команды hwstamp_ctl , входящей в состав пакета linuxptp:

Информация
sudo hwstamp_ctl -i eth0

Как проверить наличие в сетевой карте аппаратной поддержки описано выше.
Конфигурация службы ptp4l хранится в файле /etc/linuxptp/ptp4l.conf, описание которого доступно в справочной системе:

Command
man pdp4l


Если используются Для написания статьи использовались сетевые карты без аппаратной поддержки отметок времени, поэтому то в конфигурации службы ptp4l (файл /etc/linuxptp/ptp4l.conf) пришлось нужно заменить аппаратную поддержку на программную:

Информация

time_stamping hardware

time_stamping software

Настройка службы phc2sys

Служба phc2sys настроек не требует, и если в системе имеется с чем синхронизировать системные часы RTC (имеется сетевая карта с аппаратными часами), phc2sys запустится автоматически с нужными параметрами. При работе с сетевыми картами, не поддерживающими аппаратные отметки времени служба phc2sys не запускается.

Запуск всех служб

После завершения настройки запуск всех служб осуществляется командой

Command

sudo systemctl start timemaster


Служба timemaster сама запустит запустит все остальные сервисы, в итоге статус нормально и полностью запущенной службы при наличии аппаратной поддержки выглядит примерно так:

Раскрыть

$ systemctl status timemaster
timemaster.service - Synchronize system clock to NTP and PTP time sources
Loaded: loaded (/lib/systemd/system/timemaster.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2019-04-22 15:51:02 MSK; 2s ago
Docs: man:timemaster
Main PID: 2508 (timemaster)
Tasks: 5 (limit: 4608)
CGroup: /system.slice/timemaster.service
├─2508 /usr/sbin/timemaster -f /etc/linuxptp/timemaster.conf
├─2509 /usr/sbin/ntpd -u ntp:ntp -g -n -c /var/run/timemaster/ntp.conf
├─2510 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.0.conf -H -i eth0
└─2511 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.0.socket -n 0 -E ntpshm -M 0
.....