11.9. 将您的计算节点与 Timemaster 同步
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
使用时间协议在系统间保持一致的时间戳。
Red Hat OpenStack Platform (RHOSP)包括对 Precision Time Protocol (PTP)和网络时间协议(NTP)的支持。
您可以使用 NTP 在毫秒范围内同步网络中的时钟,您可以使用 PTP 将时钟同步到更高、子微秒的准确性。PTP 的用例示例是虚拟无线访问网络(vRAN),其中包含多个异常,它提供了更高的吞吐量,并带来更多干扰风险。
timemaster 是一个使用 ptp4l 和 phc2sys 的程序,它结合 chronyd 或 ntpd 将系统时钟与 NTP 和 PTP 时间源同步。phc2sys 和 ptp4l 程序使用共享内存驱动程序(SHM)参考时钟将 PTP 时间发送到 chronyd 或 ntpd,这会比较时间源来同步系统时钟。
在 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> 命令来验证硬件时间戳。
您可以使用透明或边界时钟交换机来更好地准确性和较少的延迟。您可以将 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)接口不兼容。
流程
要在属于您选择的角色的节点上启用 Timemaster 服务,请将包含
OS::TripleO::Services::Timesync的行替换为该角色的roles_data.yaml文件部分中的OS::TripleO::Services::TimeMaster。#- OS::TripleO::Services::Timesync - OS::TripleO::Services::TimeMaster
#- OS::TripleO::Services::Timesync - OS::TripleO::Services::TimeMasterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您使用的 compute 角色配置 heat 参数。
#Example ComputeSriovParameters: PTPInterfaces: ‘0:eno1,1:eno2’ PTPMessageTransport: ‘UDPv4’
#Example ComputeSriovParameters: PTPInterfaces: ‘0:eno1,1:eno2’ PTPMessageTransport: ‘UDPv4’Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openstack overcloud deploy命令中包含新的环境文件,以及与您的环境相关的任何其他环境文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用作为您现有部署一部分的环境文件列表替换 <existing_overcloud_environment_files>。
- 将 <new_environment_file> 替换为您要包含在 overcloud 部署过程中的新环境文件或文件。
验证
使用通过
ptp4linux安装的命令phc_ctl来查询 NIC 硬件时钟。phc_ctl <clock_name> get phc_ctl <clock_name> cmp
# phc_ctl <clock_name> get # phc_ctl <clock_name> cmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow