×

精确时间协议 (PTP) 用于同步网络中的时钟。当与硬件支持结合使用时,PTP 能够达到亚微秒精度,比网络时间协议 (NTP) 更精确。

您可以配置linuxptp服务并在 OpenShift Container Platform 集群节点中使用支持 PTP 的硬件。

使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc) 通过部署 PTP 运算符来安装 PTP。PTP 运算符创建和管理linuxptp服务并提供以下功能:

  • 发现集群中支持 PTP 的设备。

  • 管理linuxptp服务的配置。

  • 使用 PTP 运算符cloud-event-proxy sidecar 通知会对应用程序的性能和可靠性产生负面影响的 PTP 时钟事件。

PTP 运算符仅适用于在裸机基础架构上配置的集群上的支持 PTP 的设备。

PTP 域的组成部分

PTP 用于同步连接在网络中的多个节点,每个节点都有时钟。PTP 同步的时钟以领导者-跟随者层次结构组织。层次结构由最佳主时钟 (BMC) 算法自动创建和更新,该算法在每个时钟上运行。跟随者时钟与领导者时钟同步,跟随者时钟本身也可以是其他下游时钟的源。

Diagram showing a PTP grandmaster clock
图 1. 网络中的 PTP 节点

下面描述了三种主要的 PTP 时钟类型。

主时钟

主时钟向网络中的其他时钟提供标准时间信息,并确保准确和稳定的同步。它写入时间戳并响应其他时钟的时间请求。主时钟与全球导航卫星系统 (GNSS) 时间源同步。主时钟是网络中权威的时间源,负责向所有其他设备提供时间同步。

边界时钟

边界时钟在两个或多个通信路径中具有端口,并且可以同时作为其他目标时钟的源和目标。边界时钟向上游充当目标时钟。目标时钟接收计时消息,调整延迟,然后创建一个新的源时间信号向下传递网络。边界时钟产生一个新的计时数据包,该数据包仍然与源时钟正确同步,并且可以减少直接向源时钟报告的已连接设备的数量。

普通时钟

普通时钟具有单个端口连接,可以根据其在网络中的位置充当源时钟或目标时钟。普通时钟可以读取和写入时间戳。

PTP 相对于 NTP 的优势

PTP 相对于 NTP 的主要优势之一是各种网络接口控制器 (NIC) 和网络交换机中存在的硬件支持。专用硬件允许 PTP 考虑消息传输中的延迟并提高时间同步的精度。为了获得最佳精度,建议 PTP 时钟之间的所有网络组件都启用 PTP 硬件。

基于硬件的 PTP 提供最佳精度,因为 NIC 可以在发送和接收 PTP 数据包的确切时刻对其进行时间戳记。将其与基于软件的 PTP 进行比较,后者需要操作系统对 PTP 数据包进行额外处理。

在启用 PTP 之前,请确保已为所需的节点禁用 NTP。您可以使用MachineConfig自定义资源禁用 chrony 时间服务 (chronyd)。有关更多信息,请参见禁用 chrony 时间服务

在 PTP 中使用双网卡英特尔 E810 硬件

OpenShift容器平台支持使用单双网卡英特尔E810硬件,在主时钟(T-GM)和边界时钟(T-BC)中实现精确的PTP定时。

双网卡主时钟

您可以使用具有双网卡硬件的集群主机作为PTP主时钟。一个网卡接收来自全球导航卫星系统(GNSS)的定时信息。第二个网卡使用E810网卡面板上的SMA1 Tx/Rx连接从第一个网卡接收定时信息。集群主机上的系统时钟与连接到GNSS卫星的网卡同步。

双网卡主时钟是分布式RAN (D-RAN)配置的一项功能,其中远程无线单元(RRU)和基带单元(BBU)位于同一个无线小区站点。D-RAN将无线功能分布在多个站点,回程连接将它们连接到核心网络。

Dual NIC PTP grandmaster clock connected to GNSS timing source and downstream PTP boundary and ordinary clocks
图2. 双网卡主时钟

在双网卡T-GM配置中,单个ts2phc进程在系统中显示为两个ts2phc实例。

双网卡边界时钟

对于提供中频频谱覆盖的5G电信网络,每个虚拟分布式单元(vDU)都需要连接到6个无线单元(RU)。为了建立这些连接,每个vDU主机需要2个配置为边界时钟的网卡。

双网卡硬件允许您将每个网卡连接到相同的上游主时钟,并为每个网卡提供独立的ptp4l实例来馈送下游时钟。

具有双网卡边界时钟的高可用性系统时钟

您可以将英特尔E810-XXVDA4 Salem通道双网卡硬件配置为双PTP边界时钟,为高可用性系统时钟提供定时。当您在不同的网卡上有多个时间源时,这非常有用。高可用性确保如果两个定时源之一丢失或断开连接,节点不会丢失定时同步。

每个网卡都连接到相同的上游主时钟。高可用性边界时钟使用多个PTP域与目标系统时钟同步。当T-BC具有高可用性时,即使同步网卡PHC时钟的一个或多个ptp4l实例失败,主机系统时钟也能保持正确的偏移量。如果任何单个SFP端口或电缆发生故障,边界时钟仍与主时钟保持同步。

边界时钟主源选择使用A-BMCA算法进行。更多信息,请参见ITU-T建议G.8275.1

OpenShift容器平台节点中linuxptp和gpsd概述

OpenShift容器平台使用PTP Operator以及linuxptpgpsd软件包实现高精度网络同步。linuxptp软件包提供用于网络PTP定时的工具和守护进程。具有全球导航卫星系统(GNSS)功能网卡的集群主机使用gpsd与GNSS时钟源接口。

linuxptp软件包包括ts2phcpmcptp4lphc2sys程序,用于系统时钟同步。

ts2phc

ts2phc以高精度同步PTP硬件时钟(PHC)跨PTP设备。ts2phc用于主时钟配置。它接收来自高精度时钟源(例如全球导航卫星系统(GNSS))的精确定时信号。GNSS提供准确可靠的同步时间源,用于大型分布式网络。GNSS时钟通常以几纳秒的精度提供时间信息。

ts2phc系统守护进程通过读取主时钟的时间信息并将其转换为PHC格式,将定时信息从主时钟发送到网络中的其他PTP设备。网络中的其他设备使用PHC时间将其时钟与主时钟同步。

pmc

pmc根据IEEE标准1588.1588实现PTP管理客户端(pmc)。pmcptp4l系统守护进程提供基本的管理访问。pmc从标准输入读取并通过选定的传输发送输出,打印它接收到的任何回复。

ptp4l

ptp4l实现PTP边界时钟和普通时钟,并作为系统守护进程运行。ptp4l执行以下操作:

  • 使用硬件时间戳将PHC同步到源时钟

  • 使用软件时间戳将系统时钟同步到源时钟

phc2sys

phc2sys将系统时钟同步到网络接口控制器(NIC)上的PHC。phc2sys系统守护进程持续监控PHC的定时信息。当它检测到定时错误时,PHC会校正系统时钟。

gpsd软件包包括ubxtoolgspipegpsd程序,用于将GNSS时钟与主机时钟同步。

ubxtool

ubxtool CLI允许您与u-blox GPS系统通信。ubxtool CLI使用u-blox二进制协议与GPS通信。

gpspipe

gpspipe连接到gpsd输出并将其管道传输到stdout

gpsd

gpsd是一个服务守护进程,监控连接到主机的多个GPS或AIS接收器。

GNSS定时用于PTP主时钟概述

OpenShift容器平台支持接收来自全球导航卫星系统(GNSS)源和集群中的主时钟(T-GM)的精确PTP定时。

OpenShift容器平台仅支持使用英特尔E810 Westport通道网卡从GNSS源进行PTP定时。

GNSS and T-GM system architecture
图3. 与GNSS和T-GM同步概述
全球导航卫星系统(GNSS)

GNSS是一个基于卫星的系统,用于向全球各地的接收器提供定位、导航和定时信息。在PTP中,GNSS接收器通常用作高度精确和稳定的参考时钟源。这些接收器接收来自多个GNSS卫星的信号,从而能够计算精确的时间信息。从GNSS获得的定时信息被PTP主时钟用作参考。

通过使用GNSS作为参考,PTP网络中的主时钟可以为其他设备提供高度精确的时间戳,从而实现整个网络的精确同步。

数字锁相环(DPLL)

DPLL提供网络中不同PTP节点之间的时钟同步。DPLL将本地系统时钟信号的相位与传入同步信号的相位进行比较,例如来自PTP主时钟的PTP消息。DPLL持续调整本地时钟频率和相位,以最小化本地时钟和参考时钟之间的相位差。

处理GNSS同步PTP主时钟中的闰秒事件

闰秒是指偶尔应用于协调世界时 (UTC) 的一秒钟调整,以使其与国际原子时 (TAI) 保持同步。UTC 闰秒是不可预测的。国际商定的闰秒列在 leap-seconds.list 中。此文件由国际地球自转和参考系服务 (IERS) 定期更新。未处理的闰秒会对远端 RAN 网络产生重大影响。它可能导致远端 RAN 应用立即断开语音呼叫和数据会话。

关于 PTP 和时钟同步错误事件

云原生应用,例如虚拟 RAN (vRAN),需要访问有关硬件计时事件的通知,这些事件对于整个网络的运行至关重要。PTP 时钟同步错误会对低延迟应用的性能和可靠性产生负面影响,例如在分布式单元 (DU) 中运行的 vRAN 应用。

对于 RAN 网络,PTP 同步丢失是一个严重错误。如果节点上的同步丢失,则无线电可能会关闭,并且网络空中 (OTA) 通信量可能会转移到无线网络中的另一个节点。快速事件通知通过允许集群节点将 PTP 时钟同步状态告知在 DU 中运行的 vRAN 应用来减轻工作负载错误。

事件通知可用于在同一 DU 节点上运行的 vRAN 应用。发布/订阅 REST API 将事件通知传递到消息总线。发布/订阅消息传递或发布-订阅消息传递是一种异步的服务到服务通信架构,其中发布到主题的任何消息都会立即被该主题的所有订阅者接收。

PTP 运营商会为每个支持 PTP 的网络接口生成快速事件通知。您可以通过使用cloud-event-proxy 侧车容器通过 HTTP 消息总线访问这些事件。

PTP 快速事件通知适用于配置为使用 PTP 普通时钟、PTP 主时钟或 PTP 边界时钟的网络接口。