第 9 章 使用 PTP 硬件
9.1. 关于 OpenShift 集群节点中的 PTP 复制链接链接已复制到粘贴板!
精度时间协议(PTP)用于同步网络中的时钟。与硬件支持一起使用时,PTP 能够达到微秒级的准确性,比网络时间协议 (NTP) 更加准确。
如果您的带有 PTP 的 openshift-sdn 集群使用 User Datagram Protocol (UDP) 进行硬件时间戳,且迁移到 OVN-Kubernetes 插件,则硬件时间戳无法应用到主接口设备,如 Open vSwitch (OVS) 网桥。因此,UDP 版本 4 配置无法使用 br-ex 接口。
您可以配置 linuxptp 服务,并在 OpenShift Container Platform 集群节点中使用具有 PTP 功能的硬件。
通过部署 PTP Operator,使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc)安装 PTP。PTP Operator 会创建和管理 linuxptp 服务,并提供以下功能:
- 在集群中发现具有 PTP 功能的设备。
-
管理
linuxptp服务的配置。 -
PTP 时钟事件通知会使用 PTP Operator
cloud-event-proxysidecar 会对应用程序的性能和可靠性造成负面影响。
PTP Operator 只适用于仅在裸机基础架构上置备的集群上具有 PTP 功能的设备。
9.1.1. PTP 域的元素 复制链接链接已复制到粘贴板!
PTP 使用 grandmaster、边界和普通时钟的领导顺序层次结构,将时间与网络节点的高精度同步。
PTP 同步时钟以领导层次结构进行组织。层次结构由最佳 master 时钟 (BMC) 算法自动创建和更新,该算法在每个时钟上运行。后续时钟与领导时钟同步,后续时钟本身可以是其他下游时钟的来源。
图 9.1. 网络中的 PTP 节点
以下部分描述了三种 PTP 时钟类型。
- Grandmaster 时钟
- grandmaster 时钟向网络上的其他时钟提供标准时间信息,并确保准确和稳定的同步。它写入时间戳并响应来自其他时钟的时间间隔。grandmaster 时钟与全局导航 satellite 系统(GNSS)时间源同步。grandmaster 时钟是网络中的权威时间来源,负责向所有其他设备提供时间同步。
- Boundary 时钟
- Boundary(边界)时钟在两个或更多个通信路径中具有端口,并且可以是指向其他目标时钟的源和目标。边界时钟作为上游目标时钟工作。目标时钟接收计时消息,针对延迟进行调整,然后创建一个新的源时间信号来传递网络。边界时钟生成一个新的计时数据包,它仍然与源时钟正确同步,并可减少直接报告到源时钟的连接设备数量。
- Ordinary 时钟
- Ordinary(普通)时钟具有一个端口连接,可根据其在网络中的位置扮演源或目标时钟的角色。普通时钟可以读取和写入时间戳。
9.1.1.1. PTP 优于 NTP 的优点 复制链接链接已复制到粘贴板!
PTP 与 NTP 相比有一个主要优势,即各种网络接口控制器 (NIC) 和网络交换机中存在的硬件支持。特殊硬件允许 PTP 考虑消息传输的延迟,并提高时间同步的准确性。为了获得最佳准确性,建议启用 PTP 时钟间的所有网络组件。
基于硬件的 PTP 提供最佳准确性,因为 NIC 可以在准确发送和接收时对 PTP 数据包进行时间戳。这与基于软件的 PTP 进行比较,这需要操作系统对 PTP 数据包进行额外的处理。
在启用 PTP 前,请确保为所需节点禁用 NTP。您可以使用 MachineConfig 自定义资源禁用 chrony 时间服务 (chronyd)。
虽然 PTP 比 NTP 提供了卓越的准确性,但您可以将 NTP 配置为 PTP Grandmaster (T-GM)时钟的备份时间源。在 GNSS-to-NTP 故障转移配置中,系统通过 PTP 使用 GNSS 作为主时间源,但如果 GNSS 信号丢失或降级,则会自动切换到 NTP (chronyd)。这提供了弹性计时,即使主 GNSS 时间源暂时不可用。有关配置 GNSS-to-NTP 故障转移的更多信息,请参阅配置 GNSS/NTP 故障转移。
OpenShift Container Platform 使用带有 linuxptp 和 gpsd 软件包的 PTP Operator 进行高精度网络同步。linuxptp 软件包为网络中的 PTP 时间提供工具和守护进程。带有 Global Navigation Satellite System (GNSS)功能 NIC 的集群主机使用 gpsd 来与 GNSS 时钟源进行接口。
linuxptp 软件包包括用于系统时钟同步的 ts2phc、pmc、ptp4l 和 phc2sys 程序。
- ts2phc
ts2phc将 PTP 设备中的 PTP 硬件时钟(PHC)与高度精确度同步。ts2phc用于 grandmaster 时钟配置。它收到精度计时信号,这是一个高度精确时钟源,如 Global Navigation Satellite System (GNSS)。GNSS 提供准确可靠的同步时间源,用于大型分布式网络。GNSS 时钟通常提供时间信息,其精度为几个纳秒。ts2phc系统守护进程通过读取 grandmaster 时钟中的时间信息,将时间信息从 grandmaster 时钟发送到网络中的其他 PTP 设备,并将其转换为 PHC 格式。PHC 时间供网络中的其他设备用来将其时钟与 grandmaster 时钟同步。- pmc
-
pmc根据 IEEE 标准 1588.1588 实现 PTP 管理客户端 (pmc)。pmc为ptp4l系统守护进程提供基本的管理访问权限。pmc从标准输入读取,并通过所选传输发送输出,打印它收到的任何回复。 - ptp4l
ptp4l实现 PTP 边界时钟和普通时钟,并作为系统守护进程运行。ptp4l执行以下操作:- 将 PHC 同步到源时钟与硬件时间戳
- 将系统时钟与源时钟与软件时间戳同步
- phc2sys
-
phc2sys将系统时钟与网络接口控制器 (NIC) 上的 PHC 同步。phc2sys系统守护进程持续监控 PHC 以获取计时信息。当检测到计时错误时,LareC 会更正系统时钟。
gpsd 软件包包括 ubxtool、gspipe、gpsd、GNSS 时钟与主机时钟同步的程序。
- ubxtool
-
ubxtoolCLI 可让您与 u-blox GPS 系统通信。ubxtoolCLI 使用 u-blox 二进制协议与 GPS 通信。 - gpspipe
-
gpspipe连接到gpsd输出并将其传送到stdout。 - gpsd
-
gpsd是一个服务守护进程,它监控一个或多个连接到主机的 GPS 或 AIS 接收器。
9.1.3. PTP grandmaster 时钟的 GNSS 时间概述 复制链接链接已复制到粘贴板!
OpenShift Container Platform 支持从集群中的 Global Navigation Satellite 系统(GNSS)源和 grandmaster 时钟(T-GM)接收精度 PTP 时间。
OpenShift Container Platform 仅支持 Intel E810 Westport Channel NIC 的 GNSS 源中的 PTP 时间。
图 9.2. 使用 GNSS 和 T-GM 同步概述
- 全局导航 Satellite 系统(GNSS)
GNSS 是一个基于 satellite 的系统,用来为全球范围内接收器提供定位、导航和计时信息。在 PTP 中,GNSS 接收器通常用作高度准确且稳定的参考时钟源。这些接收器从多个 GNSS satellites 接收信号,允许它们计算精确的时间信息。从 GNSS 获取的时间信息被 PTP grandmaster 时钟参考。
通过将 GNSS 用作参考,PTP 网络中的 grandmaster 时钟可以为其他设备提供高度准确的时间戳,从而在整个网络中启用精确同步。
- Digital Phase-Locked Loop (DPLL)
- DPLL 在网络中的不同 PTP 节点之间提供时钟同步。DPLL 将本地系统时钟信号的阶段与传入同步信号的阶段进行比较,例如,来自 PTP grandmaster 时钟的 PTP 信息。DPLL 持续调整本地时钟频率和阶段,以最大程度降低本地时钟和参考时钟之间的阶段差异。
9.1.3.1. 在 GNSS-synced PTP grandmaster 时钟中处理 leap 秒事件 复制链接链接已复制到粘贴板!
Leap second(闰秒)是一秒的调整,偶尔会被应用于 Coordinated Universal Time (UTC),使其与国际原子时间 (TAI) 同步。UTC 秒是无法预计的。在国际范围内认可的闰秒信息包括在 leap-seconds.list 中。此文件通过国际 Earth Rotation 和 Reference Systems Service (IERS)定期更新。一个未处理的闰秒对边缘 RAN 网络有严重影响。可能会导致边缘 RAN 应用程序立即断开语音调用和数据会话。
9.1.4. 关于 PTP 和时钟同步错误事件 复制链接链接已复制到粘贴板!
虚拟 RAN (vRAN) 等云原生应用需要访问对整个网络运行至关重要的硬件计时事件通知。PTP 时钟同步错误可能会对低延迟应用程序的性能和可靠性造成负面影响,例如:在一个分布式单元 (DU) 中运行的 vRAN 应用程序。
丢失 PTP 同步是 RAN 网络的一个关键错误。如果在节点上丢失同步,则可能会关闭无线广播,并且网络 Over the Air (OTA) 流量可能会转移到无线网络中的另一个节点。快速事件通知允许集群节点与 DU 中运行的 vRAN 应用程序通信 PTP 时钟同步状态,从而缓解工作负载错误。
事件通知可用于在同一 DU 节点上运行的 vRAN 应用。发布/订阅 REST API 将事件通知传递到消息传递总线。发布-订阅消息传递或发布-订阅消息传递是服务通信架构的异步服务,通过服务通信架构,所有订阅者会立即收到发布到某一主题的消息。
PTP Operator 为每个支持 PTP 的网络接口生成快速事件通知。消费者应用程序可以使用 PTP 事件 REST API v2 订阅 PTP 事件。
PTP 快速事件通知可用于配置为使用 PTP 普通时钟、PTP grandmaster 时钟或 PTP 边界时钟。
9.1.5. 2-card E810 NIC 配置参考 复制链接链接已复制到粘贴板!
OpenShift Container Platform 支持用于 grandmaster 时钟(T-GM) 和边界时钟(T-BC) 的 PTP 时间的单和双 NIC Intel E810 硬件。
- 双 NIC grandmaster 时钟
您可以使用具有双 NIC 硬件作为 PTP grandmaster 时钟的集群主机。一个 NIC 从全局导航 Satellite 系统(GNSS)接收计时信息。第二个 NIC 在第一次使用 E810 NIC 上的 SMA1 Tx/Rx 连接接收时间信息。集群主机上的系统时钟从连接到 GNSS satellite 的 NIC 同步。
双 NIC grandmaster 时钟是分布式 RAN (D-RAN)配置的功能,其中远程 Radio 单元(RRU)和 Baseband 单元(BBU)位于相同的无线单元站点。d-RAN 在多个站点间分发无线功能,带有将它们链接到核心网络的连接。
图 9.3. 双 NIC grandmaster 时钟
注意在双 NIC T-GM 配置中,单个
ts2phc程序在两个 PTP 硬件时钟 (PHC)上运行,每个 NIC 对应一个。- 双 NIC 边界时钟
对于提供中等范围的 5G 电信网络,每个虚拟分布式单元(vDU)需要连接到 6 个无线电单元(RU)。要使这些连接,每个 vDU 主机都需要 2 个 NIC 被配置为边界时钟。
双 NIC 硬件允许您将每个 NIC 连接到相同的上游领导时钟,并将每个 NIC 的
ptp4l实例连接给下游时钟。- 带有双 NIC 边界时钟的高可用性系统时钟
您可以将 Intel E810-XXVDA4 Salem 频道双 NIC 硬件配置为双 PTP 边界时钟,为高可用性系统时钟提供计时。如果您在不同的 NIC 上有多个时间源,此配置很有用。高可用性可确保如果两个计时源丢失或断开连接,则节点不会丢失计时同步。
每个 NIC 都连接到同一上游领导时钟。高可用性边界时钟使用多个 PTP 域与目标系统时钟同步。当 T-BC 高度可用时,主机系统时钟可以维护正确的偏移,即使一个或多个
ptp4l实例同步 NIC PHC 时钟失败。如果发生任何单一 SFP 端口或电缆失败,则边界时钟会与领导时钟保持同步。边界时钟领导源选择使用 A-BMCA 算法完成。如需更多信息,请参阅 ITU-T 建议 G.8275.1。
9.1.6. 使用双端口 NIC 来提高 PTP 普通时钟的冗余 复制链接链接已复制到粘贴板!
OpenShift Container Platform 支持单端口网络接口卡(NIC)作为 PTP 时间的普通时钟。要提高冗余,您可以使用一个端口作为活跃端口配置双端口 NIC,另一个端口作为待机。
在这个配置中,双端口 NIC 中的端口按如下方式操作:
-
活动端口作为常规时钟在
Following端口状态下运行。 -
待机端口保持在
Listening端口状态。 - 如果活跃端口失败,待机端口转换为 active,以确保持续 PTP 时间同步。
-
如果两个端口都出现故障,时钟状态将移至
HOLDOVER状态,然后在保存超时过期时FREERUN状态,然后再重新同步到领导时钟。
9.1.6.1. 硬件要求 复制链接链接已复制到粘贴板!
您可以在使用 x86_64 或 AArch64 架构节点上配置添加了带有冗余功能的 PTP 普通时钟。
对于 x86_64 架构节点,节点需要具有支持 PTP 的双端口 NIC,并为每个 NIC(如 Intel E810)公开单个 PTP 硬件时钟 (PHC)。
对于 AArch64 架构节点,您只能使用以下双端口 NIC:
- NVIDIA ConnectX-7 系列
NVIDIA BlueField-3 系列,在 NIC 模式中
- 在将接口配置为具有改进的冗余功能的普通时钟之前,您必须将 NVIDIA BlueField-3 系列 DPU 配置为 NIC 模式。有关配置 NIC 模式的更多信息,请参阅 BlueField-3 的 NIC 模式 (NVIDIA 文档)、BlueField Management (NVIDIA)文档,以及 从主机 BIOS HII UEFI 菜单中配置 NIC 模式(NVIDIA 文档)。
- 在改为 NIC 模式后,您必须重启卡。有关重启卡的更多信息,请参阅 NVIDIA BlueField Reset 和 Reboot procedures (NVIDIA 文档)。
- 使用最新支持的 NVIDIA 驱动程序和固件来确保正确 PTP 支持,并为每个 NIC 公开一个 PHC。
9.1.7. 3-card Intel E810 PTP grandmaster 时钟 复制链接链接已复制到粘贴板!
OpenShift Container Platform 支持使用 3 个 Intel E810 NIC 作为 PTP grandmaster 时钟 (T-GM) 的集群主机。
- 3-card grandmaster 时钟
您可以使用具有 3 个 NIC 作为 PTP grandmaster 时钟的集群主机。一个 NIC 从全局导航 Satellite 系统(GNSS)接收计时信息。第二个和第三个 NIC 接收来自第一个 NIC 的时间信息,使用 E810 NIC faceplate 上的 SMA1 Tx/Rx 连接。集群主机上的系统时钟从连接到 GNSS satellite 的 NIC 同步。
3-card NIC grandmaster 时钟可用于分布式 RAN (D-RAN) 配置,其中 Radio Unit (RU) 可以在没有前传(front haul)交换机的情况下直接连接到 distributed unit (DU)。分布式单元(DU),例如,如果 RU 和 DU 位于相同的 radio cell 站点。d-RAN 在多个站点间分发无线功能,带有将它们链接到核心网络的连接。
图 9.4. 3-card Intel E810 PTP grandmaster 时钟
注意在 3-card T-GM 配置中,单个
ts2phc进程报告为系统中的 3 个ts2phc实例。