4.6. Telco RAN DU 参考组件
以下小节描述了用于配置和部署集群来运行 RAN DU 工作负载的各种 OpenShift Container Platform 组件和配置。
图 4.2. Telco RAN DU 参考组件
确保没有在电信 RAN DU 配置集中指定的其他组件不会影响分配给工作负载应用程序的 CPU 资源。
不支持在树外驱动程序中。5g RAN 应用程序组件不包含在 RAN DU 配置集中,必须针对分配给应用程序的资源(CPU)进行设计。
4.6.1. 主机固件调整 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
在初始集群部署期间调优主机固件设置以获得最佳的性能。如需更多信息,请参阅"为 vDU 应用程序工作负载推荐单节点 OpenShift 集群配置"。在初始部署期间应用主机固件中的调优设置。如需更多信息,请参阅“使用 GitOps ZTP 管理主机固件设置”。受管集群主机固件设置在 hub 集群中作为使用
ClusterInstance
CR 和 GitOps ZTP 部署受管集群时创建的独立BareMetalHost
自定义资源(CR)提供。注意根据提供的参考
example-sno.yaml
CR 创建ClusterInstance
CR。- 限制和要求
- 您必须在主机固件设置中启用 Hyper-Threading
- 工程考虑
- 调优所有固件设置以获得最佳性能。
- 除非需要针对节能进行调优,否则所有设置都是针对实现最大性能而设计的。
- 如果需要,您可以针对实现节能目的而对主机固件进行调优,这会牺牲性能。
- 启用安全引导。启用安全引导后,内核只载入签名的内核模块。不支持树外驱动程序。
4.6.2. CPU 分区和性能调整 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
-
RAN DU 使用模型包括通过
PerformanceProfile
CR 进行集群性能调优,以实现低延迟性能。RAN DU 用例需要针对低延迟性能调整集群。Node Tuning Operator 协调PerformanceProfile
CR。有关使用PerformanceProfile
CR 进行节点调整的详情,请参阅"使用性能配置集为低延迟的节点"。 - 限制和要求
Node Tuning Operator 使用
PerformanceProfile
CR 来配置集群。您必须在 Tel RAN DU 配置集PerformanceProfile
CR 中配置以下设置:为以下任何一个 CPU 设置保留的
cpuset
为 4 个或更多线程,相当于 4 个超线程(2 个内核):- Intel 3rd Generation Xeon (IceLake) 2.20 GHz 或更好的 CPU,带有调整主机固件以获得最大性能
AMD EPYC Zen 4 CPU (Genoa、Bergamo)。
注意AMD EPYC Zen 4 CPU (Genoa、Bergamo)被完全支持。功耗评估正在进行。建议评估功能,如每个 pod 电源管理,以确定对性能的潜在影响。
-
将保留的
cpuset
设置为包括每个包含的内核的超线程同级功能。Unreserved 内核可作为可分配 CPU 用于调度工作负载。 - 确保超线程不会跨保留和隔离的内核进行分割。
- 确保保留和隔离的 CPU 包括 CPU 中所有内核的所有线程。
- 在保留 CPU 集中包含每个 NUMA 节点的 Core 0。
- 将巨页大小设置为 1G。
- 仅固定 OpenShift Container Platform pod,这些 pod 配置为管理工作负载分区的一部分到保留内核。
-
当硬件厂商建议时,使用
hardwareTuning
部分为保留和隔离的 CPU 设置最大 CPU 频率。
- 工程考虑
- 满足完整的性能指标需要使用 RT 内核。如果需要,您可以使用非 RT 内核,这会对集群性能产生相应的影响。
- 您配置的巨页数量取决于应用程序工作负载要求。这个参数中的变化是正常的,并允许。
- 根据所选硬件和系统中使用的其他组件,预计在保留和隔离的 CPU 集的配置中有变化。变体必须仍然符合指定的限制。
- 没有 IRQ 关联性支持的硬件会影响隔离的 CPU。为确保具有保证整个 CPU QoS 的 pod 完全使用分配的 CPU,服务器中的所有硬件都必须支持 IRQ 关联性。
-
如果您在部署过程中通过将
cpuPartitioningMode
设置为AllNodes
来启用工作负载分区,则必须使用PerformanceProfile
CR 来分配足够的 CPU 来支持操作系统、中断和 OpenShift Container Platform pod。 -
参考性能配置集包括
vfio_pci
的额外内核参数设置。包括这些参数以支持设备,如 FEC 加速器。如果您的工作负载不需要,可以省略它们。
4.6.3. PTP Operator 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 启用 PTP 普通时钟的双端口 NIC。
- PTP 事件 REST API v1 和事件消费者应用程序 sidecar 支持会被删除。
- T-GM 现在支持最多 3 Westport 频道 NIC 配置。
- 描述
-
在带有 RAN DU 的
PTPConfig
CR 的集群节点中使用 Grandmaster 时钟(T-GM)支持的功能通过 GPS、普通时钟(OC)、边界时钟(T-BC)、双边界时钟、高可用性(HA)和可选快速事件通知配置 PTP。PTP 在 RAN 环境中确保精确的时间和可靠性。 - 限制和要求
- 限制为具有双 NIC 和 HA 的节点的两个边界时钟
- 限制为 T-GM 的 3 个 Westport 频道 NIC 配置
- 工程考虑
- RAN DU RDS 配置是为普通时钟、边界时钟、P grandmaster 时钟和高可用性双 NIC 边界时钟提供的。
-
PTP 快速事件通知使用
ConfigMap
CR 来持久保留订阅者详情。 - PTP 事件不支持在 O-RAN 规格中所述的分级事件订阅。
- PTP fast 事件 REST API v1 是生命周期结束。
4.6.4. SR-IOV Operator 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 描述
-
SR-IOV Operator 置备并配置 SR-IOV CNI 和设备插件。
netdevice
(内核 VF)和vfio
(DPDK) 设备都被支持,并适用于 RAN DU 使用模型。 - 限制和要求
- 使用 OpenShift Container Platform 支持的设备。如需更多信息,请参阅"支持设备"。
- 主机固件设置中的 SR-IOV 和 IOMMU 启用 :SR-IOV Network Operator 会在内核命令行中自动启用 IOMMU。
- SR-IOV VF 不会从 PF 接收链路状态更新。如果需要链接检测,则必须在协议级别进行配置。
- 工程考虑
-
带有
vfio
驱动程序类型的 SR-IOV 接口通常用于为需要高吞吐量或低延迟的应用程序启用额外的二级网络。 -
期望客户对
SriovNetwork
和SriovNetworkNodePolicy
自定义资源 (CR) 的配置和数量变化。 -
IOMMU 内核命令行设置会在安装时使用
MachineConfig
CR 应用。这样可确保SriovOperator
CR 在添加节点时不会导致节点重启。 - SR-IOV 支持并行排空节点,不适用于单节点 OpenShift 集群。
-
您必须在部署中包含
SriovOperatorConfig
CR;不会自动创建 CR。此 CR 包含在初始部署期间应用的引用配置策略中。 - 如果您将工作负载固定到特定的节点,SR-IOV 并行节点排空功能不会重新调度 pod。在这些情况下,SR-IOV Operator 会禁用并行节点排空功能。
- 不支持使用安全引导或内核锁定进行固件更新的 NIC 必须预先配置足够的虚拟功能(VF),以支持应用程序工作负载所需的 VF 数量。对于 Mellanox NIC,您必须在 SR-IOV Network Operator 中禁用 Mellanox vendor 插件。如需更多信息,请参阅"启用安全引导时在 Mellanox 卡中配置 SR-IOV Network Operator"。
要在 pod 启动后更改虚拟功能的 MTU 值,请不要在
SriovNetworkNodePolicy
CR 中配置 MTU 字段。相反,请配置网络管理器,或使用自定义systemd
脚本将物理功能的 MTU 设置为适当的值。例如:ip link set dev <physical_function> mtu 9000
# ip link set dev <physical_function> mtu 9000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
带有
4.6.5. 日志记录 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
- 使用日志记录从最边缘节点收集日志进行远程分析。推荐的日志收集器是 Vector。
- 工程考虑
- 例如,处理基础架构和审计日志以外的日志,例如,应用程序工作负载会根据额外的日志记录率需要额外的 CPU 和网络带宽。
- 从 OpenShift Container Platform 4.14 开始,Vector 是引用日志收集器。在 RAN 使用模型中使用 fluentd 已被弃用。
4.6.6. SRIOV-FEC Operator 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
- SRIOV-FEC Operator 是一个可选的第三方认证 Operator,支持 FEC 加速器硬件。
- 限制和要求
从 FEC Operator v2.7.0 开始:
- 支持安全引导
-
PF 的
vfio
驱动程序需要使用注入 pod 的vfio-token
。pod 中的应用程序可以使用 EAL 参数--vfio-vf-token
将 VF 令牌传递给 DPDK。
- 工程考虑
- SRIOV-FEC Operator 使用隔离 CPU 集合的 CPU 内核。
- 您可以作为应用程序部署的预检查的一部分来验证 FEC 就绪,例如通过扩展验证策略。
4.6.7. 生命周期代理 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
- Lifecycle Agent 为基于单节点 OpenShift 集群的基于镜像的升级提供本地生命周期管理服务。基于镜像的升级是单节点 OpenShift 集群的建议升级方法。
- 限制和要求
- Lifecycle Agent 不适用于带有额外 worker 的多节点集群或单节点 OpenShift 集群。
- Lifecycle Agent 需要您在安装集群时创建的持久性卷。
有关分区要求的更多信息,请参阅"在使用 GitOps ZTP 时在 ostree stateroot 之间配置共享容器目录"。
4.6.8. Local Storage Operator 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
-
您可以使用 Local Storage Operator 创建可用作
PVC
资源的持久性卷。您创建的PV
资源的数量和类型取决于您的要求。 - 工程考虑
-
在创建
PV
之前,为PV
CR 创建后备存储。这可以是分区、本地卷、LVM 卷或完整磁盘。 -
请参阅
LocalVolume
CR 中的设备列表,访问每个设备以确保正确分配磁盘和分区,例如/dev/disk/by-path/<id>
。无法保证在节点重启后逻辑名称(例如/dev/sda
)一致。
-
在创建
4.6.9. 逻辑卷管理器存储 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
-
逻辑卷管理器 (LVM) 存储是一个可选组件。它通过从本地设备创建逻辑卷来提供块存储和文件存储的动态置备,这些逻辑卷可以被应用程序用作持久性卷声明(PVC)资源。也可以进行卷扩展和快照。RDS 中提供了带有
StorageLVMCluster.yaml
文件的示例配置。 - 限制和要求
- 在单节点 OpenShift 集群中,持久性存储必须由 LVM Storage 或本地存储提供,不能同时由这两个存储提供。
- 参考配置中排除卷快照。
- 工程考虑
- LVM 存储可用作 RAN DU 用例的本地存储实现。当 LVM 存储用作存储解决方案时,它会替换 Local Storage Operator,并将所需的 CPU 分配给管理分区作为平台开销。参考配置必须包含这些存储解决方案中的一个,但不能同时包含这两个解决方案。
- 确保有足够的磁盘或分区来满足存储要求。
4.6.10. 工作负载分区 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
-
工作负载分区将作为 DU 配置集一部分的 OpenShift Container Platform 和第 2 天 Operator pod 固定到保留的 CPU 集,并从节点核算中删除保留的 CPU。这会保留所有非保留 CPU 内核供用户工作负载使用。这会保留所有非保留 CPU 内核供用户工作负载使用。工作负载分区通过安装参数中设置的能力启用:
cpuPartitioningMode: AllNodes
。使用您在PerformanceProfile
CR 中配置的保留 CPU 集设置管理分区内核。 - 限制和要求
-
必须注解
Namespace
和Pod
CR,以允许将 pod 应用到管理分区 - 具有 CPU 限制的 Pod 无法分配给分区。这是因为 mutation 可以更改 pod QoS。
- 有关可分配给管理分区的最小 CPU 数量的更多信息,请参阅"Node Tuning Operator"。
-
必须注解
- 工程考虑
- 工作负载分区将所有管理 pod 固定到保留内核。必须将足够数量的内核分配给保留集以考虑操作系统、管理 pod,以及工作负载启动时发生 CPU 使用的预期激增、节点重启或其他系统事件。
4.6.11. 集群调整 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 描述
- 有关使用集群功能功能禁用的组件的完整列表,请参阅"集群功能"。
- 限制和要求
- 集群功能不适用于安装程序置备的安装方法。
下表列出了所需的平台调优配置:
功能 | 描述 |
---|---|
删除可选集群功能 | 通过在单节点 OpenShift 集群上禁用可选集群 Operator 来减少 OpenShift Container Platform 占用空间。
|
配置集群监控 | 通过执行以下操作配置监控堆栈以减少占用空间:
|
禁用网络诊断 | 为单节点 OpenShift 禁用网络诊断,因为它们不是必需的。 |
配置单个 OperatorHub 目录源 |
将集群配置为使用单个目录源,它只包含 RAN DU 部署所需的 Operator。每个目录源会增加集群中的 CPU 使用量。使用单个 |
禁用 Console Operator |
如果集群在禁用控制台的情况下部署,则不需要 |
- 工程考虑
- 从 OpenShift Container Platform 4.19 开始,cgroup v1 不再被支持并已被删除。现在,所有工作负载必须与 cgroup v2 兼容。如需更多信息,请参阅 Red Hat OpenShift 工作负载上下文中的 Red Hat Enterprise Linux 9 更改。
4.6.12. 机器配置 复制链接链接已复制到粘贴板!
- 这个版本中的新内容
- 这个版本没有参考设计更新
- 限制和要求
-
CRI-O 擦除禁用
MachineConfig
CR 假设磁盘上的镜像是静态的镜像,而不是在定义的维护窗口中调度的维护期间使用。为确保镜像是静态的,请不要将 podimagePullPolicy
字段设置为Always
。 - 此表中的配置 CR 是必需的组件,除非另有说明。
-
CRI-O 擦除禁用
功能 | 描述 |
---|---|
容器运行时 |
将所有节点角色的容器运行时设为 |
kubelet 配置和容器挂载命名空间隐藏 | 减少 kubelet 内务和驱除监控的频率,从而减少 CPU 用量 |
SCTP | 可选配置(默认为启用) |
Kdump | 可选配置(默认启用)启用 kdump 在内核 panic 发生时捕获调试信息。启用 kdump 的参考 CR 根据参考配置中包含的驱动程序和内核模块集合增加内存保留。 |
CRI-O 擦除禁用 | 在未清除关闭后禁用 CRI-O 镜像缓存的自动擦除。 |
与 SR-IOV 相关的内核参数 | 在内核命令行中包括额外的 SR-IOV 相关参数。 |
设置 RCU Normal |
在系统完成启动后设置 |
一次性时间同步 | 为 control plane 或 worker 节点运行一次性 NTP 系统时间同步作业。 |