12.2. 使用 RT-KVM 配置 OVS-DPDK
12.2.1. 为 Real-time Compute 设计节点 复制链接链接已复制到粘贴板!
要为 Real-time Compute 指定节点,请创建一个新的角色文件来配置 Real-time Compute 角色,并使用 Real-time Compute 资源类配置裸机节点,以标记实时的 Compute 节点。
以下流程适用于您尚未调配的新 overcloud 节点。要将资源类分配给已调配的现有 overcloud 节点,请缩减 overcloud 以取消置备节点,然后扩展 overcloud,以使用新的资源类分配来重新置备节点。有关更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 扩展 overcloud 节点。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:source ~/stackrc
[stack@director ~]$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
根据
/usr/share/openstack-tripleo-heat-templates/environments/compute-real-time-example.yaml
文件,创建一个compute-real-time.yaml
环境文件,为ComputeRealTime
角色设置参数。 生成一个名为
roles_data_rt.yaml
的新角色数据文件,其中包含ComputeRealTime
角色,以及 overcloud 所需的任何其他角色。以下示例生成角色数据文件roles_data_rt.yaml
,其中包括角色Controller
,Compute
, 和ComputeRealTime
:openstack overcloud roles generate \ -o /home/stack/templates/roles_data_rt.yaml \ ComputeRealTime Compute Controller
(undercloud)$ openstack overcloud roles generate \ -o /home/stack/templates/roles_data_rt.yaml \ ComputeRealTime Compute Controller
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 ComputeRealTime 角色更新 roles_data_rt.yaml 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 overcloud 注册 ComputeRealTime 节点,将它们添加到您的节点定义模板中:
node.json
或node.yaml
。有关更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 为 overcloud 注册节点。
检查节点硬件:
openstack overcloud node introspect --all-manageable --provide
(undercloud)$ openstack overcloud node introspect --all-manageable --provide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 创建裸机节点硬件清单。
使用自定义 ComputeRealTime 资源类标记您要为 ComputeRealTime 指定的每个裸机节点:
openstack baremetal node set \ --resource-class baremetal.RTCOMPUTE <node>
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.RTCOMPUTE <node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <node> 替换为裸机节点的名称或 UUID。
将 ComputeRealTime 角色添加到节点定义文件
overcloud-baremetal-deploy.yaml
中,并定义您要分配给节点的任何预先节点放置、资源类、网络拓扑或其他属性:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<role_topology_file
> 替换为用于ComputeRealTime
角色的拓扑文件的名称,如myRoleTopology.j2
。您可以重复使用现有网络拓扑,或为角色创建新的自定义网络接口模板。如需更多信息, 请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 定义自定义网络接口模板。要使用默认网络定义设置,请不要在角色定义中包含
network_config
。有关您可以在节点定义文件中配置节点属性的属性的更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 裸机节点置备属性。
有关节点定义文件的示例,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 节点定义文件示例。
创建以下 Ansible playbook 以在节点置备过程中配置内核,并将 playbook 保存为
/home/stack/templates/fix_rt_kernel.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在节点置备文件中的
ComputeOvsDpdkSriovRT
角色定义中包含/home/stack/templates/fix_rt_kernel.yaml
作为 playbook:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关您可以在节点定义文件中配置节点属性的属性的更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 裸机节点置备属性。
有关节点定义文件的示例,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 节点定义文件示例。
为您的角色置备新节点:
openstack overcloud node provision \ [--stack <stack> \ ]
(undercloud)$ openstack overcloud node provision \ [--stack <stack> \ ] [--network-config \] --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
可选:将
<stack>
替换为置备裸机节点的堆栈的名称。默认值为overcloud
。 -
可选:包含
--network-config
可选参数,为cli-overcloud-node-network-config.yaml
Ansible playbook 提供网络定义。如果您没有使用network_config
属性定义网络定义,则使用默认网络定义。 -
将
<deployment_file>
替换为用于部署命令生成的 heat 环境文件的名称,如/home/stack/templates/overcloud-baremetal-deployed.yaml
。
-
可选:将
在一个单独的终端中监控置备进度。当置备成功时,节点状态将从
available
变为active
:watch openstack baremetal node list
(undercloud)$ watch openstack baremetal node list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您在没有
--network-config
选项运行 provisioning 命令,请在network-environment.yaml
文件中配置<Role>NetworkConfigTemplate
参数以指向 NIC 模板文件:parameter_defaults: ComputeNetworkConfigTemplate: /home/stack/templates/nic-configs/compute.j2 ComputeAMDSEVNetworkConfigTemplate: /home/stack/templates/nic-configs/<rt_compute>.j2 ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2
parameter_defaults: ComputeNetworkConfigTemplate: /home/stack/templates/nic-configs/compute.j2 ComputeAMDSEVNetworkConfigTemplate: /home/stack/templates/nic-configs/<rt_compute>.j2 ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <
;rt_compute
> 替换为包含ComputeRealTime
角色的网络拓扑的文件的名称,如computert.yaml
以使用默认网络拓扑。使用其他环境文件将环境文件添加到堆栈中,并部署 overcloud:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.2.2. 配置 OVS-DPDK 参数 复制链接链接已复制到粘贴板!
在
parameter_defaults
下,将隧道类型设置为vxlan
,网络类型设置为vxlan,vlan
:NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan,vlan'
NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan,vlan'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
parameters_defaults
下,设置网桥映射:# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0
# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
parameter_defaults
下,为ComputeOvsDpdkSriov
角色设置特定于角色的参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要防止客户机创建过程中失败,在每个 NUMA 节点上至少分配一个带有同级线程的 CPU。在示例中,OvsPmd
CoreList
参数的值表示来自 NUMA 0 的内核 2 和 22,以及 NUMA 1 中的内核 3 和 23。注意这些大页面由虚拟机使用,以及 OVS-DPDK 使用
OvsDpdkSocketMemory
参数,如此流程中所示。虚拟机可用的巨页数量是引导参数
减去OvsDpdkSocketMemory
。您还必须将
hw:mem_page_size=1GB
添加到与 DPDK 实例关联的类别。注意OvsDpdkMemoryChannels
是此流程所需的设置。对于 optimum 操作,请确保使用适当的参数和值部署 DPDK。为 SR-IOV 配置特定于角色的参数:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow