9.7. 使用 HCI 和 DPDK 部署 overcloud
您可以通过共同定位和配置 Compute 和 Ceph Storage 服务以优化资源使用量来部署 NFV 基础架构。
有关超融合基础架构(HCI)的更多信息,请参阅: Hyper Converged Infrastructure Guide
前提条件
- Red Hat OpenStack Platform 16.1.
- Red Hat Ceph Storage 4 的最新版本。
-
最新版本的 ceph-ansible 4,如
rhceph-4-tools-for-rhel-8-x86_64-rpms
存储库提供。
流程
在 undercloud 上安装
ceph-ansible
。sudo yum install ceph-ansible -y
$ sudo yum install ceph-ansible -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 ComputeHCI 角色生成
roles_data.yaml
文件。openstack overcloud roles generate -o ~/<templates>/roles_data.yaml Controller \ ComputeHCIOvsDpdk
$ openstack overcloud roles generate -o ~/<templates>/roles_data.yaml Controller \ ComputeHCIOvsDpdk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
openstack flavor create
和openstack flavor set
命令创建和配置一个新类别。有关创建类别的更多信息,请参阅高级 Overcloud 自定义指南中的创建新角色。 使用您生成的自定义
roles_data.yaml
文件部署 overcloud。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.1. NUMA 节点配置示例 复制链接链接已复制到粘贴板!
为提高性能,将租户网络和 Ceph 对象服务守护进程(OSD)放在一个 NUMA-0 中,如 NUMA-0,以及 VNF 和另一个 NUMA 节点上的任何非 NFV 虚拟机,如 NUMA-1。
CPU 分配:
NUMA-0 | NUMA-1 |
---|---|
Ceph OSD 数量 * 4 HT | 用于 VNF 和非NFV 虚拟机的客户机 vCPU |
DPDK lcore - 2 HT | DPDK lcore - 2 HT |
DPDK PMD - 2 HT | DPDK PMD - 2 HT |
CPU 分配示例:
NUMA-0 | NUMA-1 | |
---|---|---|
Ceph OSD | 32,34,36,38,40,42,76,78,80,82,84,86 | |
DPDK-lcore | 0,44 | 1,45 |
DPDK-pmd | 2,46 | 3,47 |
Nova | 5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87 |
9.7.2. ceph 配置文件示例 复制链接链接已复制到粘贴板!
使用下列参数,为 ceph OSD 进程分配 CPU 资源。根据此超融合环境中的工作负载和硬件调整值。
- 1
- ceph_osd_docker_cpuset_cpus:为 SSD 磁盘的每个 OSD 分配 4 个 CPU 线程,或者为 HDD 磁盘的每个 OSD 分配 1 个 CPU。包含与 ceph 关联的 NUMA 节点的内核数和同级线程列表,以及三个列表中未找到的 CPU:
NovaComputeCpuDedicatedSet
和OvsPmdCoreList
。 - 2
- ceph_osd_docker_cpu_limit:将此值设置为
0,
以将 ceph OSD 固定到ceph_osd_docker_cpuset_cpus
中的 CPU 列表。 - 3
- ceph_osd_numactl_opts:将此值设置为跨 NUMA 操作
的首选
值,作为 precaution。
9.7.3. DPDK 配置文件示例 复制链接链接已复制到粘贴板!
- 1
- KernelArgs:要计算
大页
,请从总内存中减去NovaReservedHostMemory
参数的值。 - 2
- IsolCpusList:分配您想要使用此参数与主机进程隔离的一组 CPU 核心。将
OvsPmdCoreList
参数的值添加到NovaComputeCpuDedicatedSet
参数的值,以计算IsolCpusList
参数的值。 - 3
- OvsDpdkSocketMemory:指定以 MB 为单位的内存大小,以预先从每个 NUMA 节点的巨页池中分配,使用
OvsDpdkSocketMemory
参数进行预先分配。有关计算 OVS-DPDK 参数的更多信息,请参阅: ovsdpdk 参数 - 4
- OvsPmdCoreList:指定用于 DPDK 轮询模式驱动程序(PMD)的 CPU 核心。选择与 DPDK 接口本地 NUMA 节点关联的 CPU 内核。为每个 NUMA 节点分配 2 HT 同级线程,以计算
OvsPmdCoreList
参数的值。
9.7.4. nova 配置文件示例 复制链接链接已复制到粘贴板!
- 1
- NovaReservedHugePages:从带有
NovaReservedHugePages
参数的巨页池中分配内存(以 MB 为单位)。它与OvsDpdkSocketMemory
参数的值总量相同。 - 2
- NovaReservedHostMemory:将内存(以 MB 为单位)用于带有
NovaReservedHostMemory
参数的主机上的任务。使用以下指南计算您必须保留的内存量:- 每个 OSD 5 GB。
- 每个虚拟机的 0.5 GB 开销.
- 4GB 用于常规主机处理。确保您分配足够的内存,以防止通过跨 NUMA OSD 操作导致潜在的性能下降。
- 3
- NovaComputeCpuDedicatedSet:使用
NovaComputeCpuDedicatedSet
参数列出OvsPmdCoreList
或Ceph_osd_cpus
中未找到的 CPU。CPU 必须与 DPDK NIC 位于同一个 NUMA 节点。
9.7.5. 建议配置 HCI-DPDK 部署 复制链接链接已复制到粘贴板!
块设备类型 | OSD、内存、vCPU 每个设备 |
---|---|
NVMe |
内存:5GB per OSD |
SSD |
内存:5GB per OSD |
HDD |
内存:5GB per OSD |
对以下功能使用相同的 NUMA 节点:
- 磁盘控制器
- 存储网络
- 存储 CPU 和内存
为 DPDK 提供商网络的以下功能分配另一个 NUMA 节点:
- NIC
- PMD CPU
- 套接字内存