Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

20.10. 使用 timemaster 同步到 PTP 或者 NTP Time

如果网络上有多个 PTP 域,或者需要回退到 NTP,则 timemaster 程序可用于将系统时钟同步到所有可用的时间源。PTP 时间由 phc2sysptp4l 通过 共享内存驱动程序 提供(SHM 参考时钟到 chronydntpd (取决于系统上配置的 NTP 守护进程)。然后 NTP 守护进程可以比较所有时间源,包括 PTPNTP,并使用最佳源来同步系统时钟。

启动时,timemaster 会读取指定 NTPPTP 时间源的配置文件,检查哪些网络接口具有自己的或共享 PTP 硬件时钟(PHC),为 ptp4lchronydntpd 生成配置文件, 并根据需要启动 ptp4lphc2syschronydntpd 进程。它将在退出时删除生成的配置文件。它将 chronyd、ntpdptp4l 的配置文件写入 /var/run/timemaster/

20.10.1. 启动 timemaster 即服务

要启动 timemaster 作为服务,以 root 身份运行以下命令:

~]# systemctl start timemaster

这将读取 /etc/timemaster.conf 中的选项。有关在 Red Hat Enterprise Linux 7 中管理系统服务的详情请参考 第 10 章 使用 systemd 管理服务

20.10.2. 了解时间 master 配置文件

Red Hat Enterprise Linux 提供了一个默认的 /etc/timemaster.conf 文件,其中包含包含默认选项的多个部分。部分标题括在方括号中。

要查看默认配置,请使用以下命令:

~]$ less /etc/timemaster.conf
# Configuration file for timemaster

#[ntp_server ntp-server.local]
#minpoll 4
#maxpoll 4

#[ptp_domain 0]
#interfaces eth0

[timemaster]
ntp_program chronyd

[chrony.conf]
include /etc/chrony.conf

[ntp.conf]
includefile /etc/ntp.conf

[ptp4l.conf]

[chronyd]
path /usr/sbin/chronyd
options -u chrony

[ntpd]
path /usr/sbin/ntpd
options -u ntp:ntp -g

[phc2sys]
path /usr/sbin/phc2sys

[ptp4l]
path /usr/sbin/ptp4l

请注意如下部分:

[ntp_server address]

这是 NTP 服务器部分"ntp-server.local"的示例,是本地 LAN 上 NTP 服务器的主机名示例。根据需要添加更多部分,将主机名或 IP 地址 用作小节名称的一部分。请注意,示例中的简短轮询值不适合公共服务器,请参阅 第 19 章 使用 ntpd 配置 NTP 了解合适的 minpoll 和 maxpoll 值的说明。

请注意如下部分:

[ptp_domain number]

"PTP 域"是一个或多个 PTP 时钟的组,它们相互同步。它们不一定同步到另一个域中的时钟。使用相同域编号配置的时钟组成了域。这包括一个 PTP Pu master 时钟。每个"PTP 域"部分中的域编号需要与网络上配置的 PTP 域之一对应。

每个接口都启动 ptp4l 实例,该接口具有自己的 PTP 时钟,并且硬件时间戳会自动启用。支持硬件时间戳的接口附加了 PTP 时钟(PHC),但 NIC 上的一组接口可共享 PHC。将为共享同一 PHC 的每个接口以及仅支持软件时间戳的每个接口启动单独的 ptp4l 实例。所有 ptp4l 实例都配置为作为从设备运行。如果在多个 PTP 域中指定了硬件时间戳的接口,则只有创建的第一个 ptp4l 实例才会启用硬件时间戳。

请注意如下部分:

[timemaster]

默认 timemaster 配置包括系统 ntpd 和 chrony 配置(/etc/ntp.conf/etc/chronyd.conf),以包含访问限制和身份验证密钥的配置。这意味着,指定的所有 NTP 服务器都将与 timemaster 一起使用。

部分标题如下:

  • [ntp_server ntp-server.local] - 指定此服务器的轮询间隔。根据需要创建其他部分。在小节标题中包含主机名或 IP 地址
  • [ptp_domain 0] - 指定为此域配置了 PTP 时钟的接口。根据需要,使用相应的域号创建其他部分。
  • [timemaster] - 指定要使用的 NTP 守护进程。可能的值有 chronydntpd
  • [chrony.conf] - 指定要复制到为 chronyd 生成的配置文件的任何额外设置。
  • [NTP.conf] - 指定要复制到为 ntpd 生成的配置文件的任何其他设置。
  • [ptp4l.conf] - 指定要复制到为 ptp4l 生成的配置文件中的选项。
  • [chronyd] - 指定命令行上要传递给 chronyd 的任何其他设置。
  • [ntpd] - 指定命令行上要传递给 ntpd 的任何其他设置。
  • [phc2sys] - 指定要在命令行中传递给 phc2sys 的任何其他设置。
  • [ptp4l] - 指定命令行上要传递给所有 ptp4l 实例的任何其他设置。

部分标题和其内容在 timemaster(8)手册页 中详细讨论。

20.10.3. 配置 timemaster 选项

编辑 timemaster 配置文件

  1. 要更改默认配置,打开 /etc/timemaster.conf 文件以 root 用户身份编辑:

    ~]# vi /etc/timemaster.conf
  2. 对于您要使用 timemaster 控制的每个 NTP 服务器,创建 [ntp_server address] 部分。请注意,示例部分中的简短轮询值不适合公共服务器,请参阅 第 19 章 使用 ntpd 配置 NTP 了解合适的 minpoll 和 maxpo ll 值的说明。
  3. 要添加域中应该使用的接口,编辑 #[ptp_domain 0] 部分并添加接口。根据需要创建其他域。例如:

    [ptp_domain 0]
        interfaces eth0
    
        [ptp_domain 1]
        interfaces eth1
  4. 如果需要将 ntpd 用作系统上的 NTP 守护进程,请将 [timemaster] 部分中的默认条目从 chronyd 改为 ntpd。有关 ntpd 和 chronyd 之间的区别,请查看 第 18 章 使用 chrony 套件配置 NTP
  5. 如果在此系统上使用 chronyd 作为 NTP 服务器,请在默认选项下方添加任何附加选项,在 [ chrony.conf] 部分中包含 /etc/ chrony.conf 条目。如果已知到 /etc/chrony.conf 的路径已更改,请编辑默认 include 条目。
  6. 如果在此系统上使用 ntpd 作为 NTP 服务器,请在默认选项下方添加任何附加选项,在 [ ntp.conf] 部分中包含 /etc/ ntp.conf 条目。如果已知到 /etc/ntp.conf 的路径已更改,请编辑默认 include 条目。
  7. [ptp4l.conf] 部分中,添加要复制到为 ptp4l 生成的配置文件的任何选项。本章记录了常用选项和更多信息,请参见 ptp4l(8)手册页 面。
  8. [chronyd] 部分中,添加 时间master 调用时要传递给 chronyd 的任何命令行选项。有关使用 chronyd 的详情,请查看 第 18 章 使用 chrony 套件配置 NTP
  9. [ntpd] 部分中,添加 时间master 调用时要传递给 ntpd 的任何命令行选项。有关使用 ntpd 的详情,请查看 第 19 章 使用 ntpd 配置 NTP
  10. [phc2sys] 部分中,添加任何要传递给 phc2sys 的命令行选项(如果 时间master 调用 )。本章记录了常用选项和更多信息,请参见 phy2sys(8)手册页 面。
  11. [ptp4l] 部分中,添加任何要传递给 ptp4l 的命令行选项(如果被 timemaster 调用 )。本章记录了常用选项和更多信息,请参见 ptp4l(8)手册页 面。
  12. root 用户身份运行以下命令保存配置文件并重启 timemaster

    ~]# systemctl restart timemaster