11.9. 将您的计算节点与 Timemaster 同步


重要

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

使用时间协议在系统间保持一致的时间戳。

Red Hat OpenStack Platform (RHOSP)包括对 Precision Time Protocol (PTP)和网络时间协议(NTP)的支持。

您可以使用 NTP 在毫秒范围内同步网络中的时钟,您可以使用 PTP 将时钟同步到更高、子微秒的准确性。PTP 的用例示例是虚拟无线访问网络(vRAN),其中包含多个异常,它提供了更高的吞吐量,并带来更多干扰风险。

timemaster 是一个使用 ptp4lphc2sys 的程序,它结合 chronydntpd 将系统时钟与 NTP 和 PTP 时间源同步。phc2sysptp4l 程序使用共享内存驱动程序(SHM)参考时钟将 PTP 时间发送到 chronydntpd,这会比较时间源来同步系统时钟。

在 Red Hat Enterprise Linux (RHEL)内核中 PTPv2 协议的实现是 linuxptp

linuxptp 软件包包括 PTP 边界时钟和普通时钟同步的 ptp4l 程序,以及硬件时间戳的 phc2sys 程序。有关 PTP 的更多信息,请参阅 Red Hat Enterprise Linux 系统管理员指南中的 PTP 简介

Chrony 是 NTP 协议的实现。Chrony 的主要组件是 chronyd,它是 Chrony 守护进程,以及 Chrony 命令行界面的 chronyc

有关 Chrony 的更多信息,请参阅 Red Hat Enterprise Linux 系统管理员指南中的 使用 Chrony 套件配置 NTP

下图是 PTP 配置中数据包之旅的概述。

图 11.1. PTP 数据包之旅概述

下图是 PTP 配置中 Compute 节点的数据包之旅概述。

图 11.2. PTP 数据包之旅详情

11.9.1. Timemaster 硬件要求

确定您有以下硬件功能:

  • 您已配置了具有硬件时间戳功能的 NIC。
  • 您已将交换机配置为允许多播数据包。
  • 您已将交换机配置为也充当边界或透明时钟。

您可以使用 ethtool -T <device> 命令来验证硬件时间戳。

$ ethtool -T p5p1
Time stamping parameters for p5p1:
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: 6
Hardware Transmit Timestamp Modes:
        off                   (HWTSTAMP_TX_OFF)
        on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
        ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
        ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)
Copy to Clipboard Toggle word wrap

您可以使用透明或边界时钟交换机来更好地准确性和较少的延迟。您可以将 uplink 开关用于边界时钟。边界时钟交换机在 PTPv2 标头上使用 8 位 修正Field 来更正延迟差异,并确保对最终时钟的准确性更大。在透明时钟交换机中,结束时钟会计算延迟变化,而不是 更正Field

11.9.2. 配置 Timemaster

用于 overcloud 节点中时间同步的默认 Red Hat OpenStack Platform (RHOSP)服务是 OS::TripleO::Services::Timesync

已知限制

  • 为虚拟化控制器启用 NTP,并为裸机节点启用 PTP。
  • VirtIO 接口不兼容,因为 ptp4l 需要兼容的 PTP 设备。
  • 对带有 SR-IOV 的虚拟机使用物理功能(PF)。虚拟功能(VF)不会公开 PTP 所需的注册,虚拟机使用 kvm_ptp 计算时间。
  • 带有多个源和多个网络路径的高可用性(HA)接口不兼容。

流程

  1. 要在属于您选择的角色的节点上启用 Timemaster 服务,请将包含 OS::TripleO::Services::Timesync 的行替换为该角色的 roles_data.yaml 文件部分中的 OS::TripleO::Services::TimeMaster

    #- OS::TripleO::Services::Timesync
    - OS::TripleO::Services::TimeMaster
    Copy to Clipboard Toggle word wrap
  2. 为您使用的 compute 角色配置 heat 参数。

    #Example
    ComputeSriovParameters:
      PTPInterfaces: ‘0:eno1,1:eno2’
      PTPMessageTransport: ‘UDPv4’
    Copy to Clipboard Toggle word wrap
  3. openstack overcloud deploy 命令中包含新的环境文件,以及与您的环境相关的任何其他环境文件:

    $ openstack overcloud deploy \
    --templates \
    
    …
    -e <existing_overcloud_environment_files> \
    -e <new_environment_file1> \
    -e <new_environment_file2> \
    …
    Copy to Clipboard Toggle word wrap
    • 使用作为您现有部署一部分的环境文件列表替换 <existing_overcloud_environment_files>。
    • 将 <new_environment_file> 替换为您要包含在 overcloud 部署过程中的新环境文件或文件。

验证

  • 使用通过 ptp4linux 安装的命令 phc_ctl 来查询 NIC 硬件时钟。

    # phc_ctl <clock_name> get
    # phc_ctl <clock_name> cmp
    Copy to Clipboard Toggle word wrap

11.9.3. timemaster 配置示例

$ cat /etc/timemaster.conf
# Configuration file for timemaster

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

[ptp_domain 0]
interfaces eno1
#ptp4l_setting network_transport l2
#delay 10e-6

[timemaster]
ntp_program chronyd

[chrony.conf]
#include /etc/chrony.conf
server clock.redhat.com iburst minpoll 6 maxpoll 10

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

[ptp4l.conf]
#includefile /etc/ptp4l.conf
network_transport L2

[chronyd]
path /usr/sbin/chronyd

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

[phc2sys]
path /usr/sbin/phc2sys
#options -w

[ptp4l]
path /usr/sbin/ptp4l
#options -2 -i eno1
Copy to Clipboard Toggle word wrap

11.9.4. timemaster 操作示例

$ systemctl status timemaster
● timemaster.service - Synchronize system clock to NTP and PTP time sources
   Loaded: loaded (/usr/lib/systemd/system/timemaster.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-08-25 19:10:18 UTC; 2min 6s ago
 Main PID: 2573 (timemaster)
    Tasks: 6 (limit: 357097)
   Memory: 5.1M
   CGroup: /system.slice/timemaster.service
           ├─2573 /usr/sbin/timemaster -f /etc/timemaster.conf
           ├─2577 /usr/sbin/chronyd -n -f /var/run/timemaster/chrony.conf
           ├─2582 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.0.conf -H -i eno1
           ├─2583 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.0.socket -t [0:eno1] -n 0 -E ntpshm -M 0
           ├─2587 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.1.conf -H -i eno2
           └─2588 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.1.socket -t [0:eno2] -n 0 -E ntpshm -M 1

Aug 25 19:11:53 computesriov-0 ptp4l[2587]: [152.562] [0:eno2] selected local clock e4434b.fffe.4a0c24 as best master
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat