Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


В стандартные дистрибутивы и репозитории ОС ОН Орёл 2.12 до версии 2.12.10 был включены две службы точного времени:

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

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

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

  • ptp4l - служба протокола времени высокой точности;
  • phc2sys - служба синхронизации часов;
  • timemaster - служба координации, обеспечивающая совместную работу традиционной службы времени ntp и сверхточной службы времени ptp.


Информация

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

  • Орёл 2.12.10


Предупреждение
Службы Служба ntp и ptp несовместимы несовместима со службой timedatectl.


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

Пакет ориентирован на использование аппаратных средств точного времени, в частности, аппаратных возможностей сетевых карт (аппаратные отметки времени

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

Пакет linuxphp доступен в репозитории Орёл (начиная с версии 2.12.10) и может быть установлен с помощью графического менеджера пакетов или из командной строки командой

Command
sudo apt install linuxptp

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

Конфигурация службы timemaster находится в файле /etc/linuxptp/timemmaster.conf.

Подробно настройки описаны в электронной справочной системе:

Command

man timemaster

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

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

Информация

[ptp_domain 0]
interfaces eth0
delay 10e-6

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

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

В этом файле в секции [timemaster] нужно указать службу ntpd вместо cronyd:

Информация

[timemaster]
ntp_program chronyd
ntp_program ntpd

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

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

Command
sudo systemctl enable timemaster

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

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

Command

sudo systemctl mask ntp

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

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

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

Command

sudo apt install ethtool
sudo ethtool -T eth0

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

Раскрыть
$ sudo ethtool -T enp0s25eth0
Time stamping parameters for enp0s25eth0:
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)

или с помощью команды hwstamp_ctl , входящей в состав пакета linuxptp:


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

Пакет linuxphp доступен в репозитории Орёл (начиная с версии 2.12.10) и может быть установлен с помощью графического менеджера пакетов или из командной строки командой

Command
sudo apt install linuxptp

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

Конфигурация службы timemaster находится в файле /etc/linuxptp/timemmaster.conf.

Подробно настройки описаны в электронной справочной системе:


Command

man timemaster

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

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


Информация

[ptp_domain 0]
interfaces eth0
delay 10e-6

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

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

В этом файле в секции [timemaster] нужно указать службу ntpd вместо cronyd:

Информация

[timemaster]
ntp_program chronyd
ntp_program ntpd

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

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

Command
sudo systemctl enable timemaster

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

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

Command

sudo systemctl mask ntp

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

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

Command

sudo apt install ethtool
sudo ethtool -T

Информация
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, запустится автоматически с нужными параметрами.

Запуск служб

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

Command

sudo systemctl start timemaster


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


Раскрыть

$ sudo 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 enp0s25
└─2511 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.0.socket -n 0 -E ntpshm -M 0
.....