azeqjz OpenStack: 红帽OSP10 NFV配置指南: 4.5. 配置OVS-DPDK可组合角色
原文:
NETWORK FUNCTIONS VIRTUALIZATION CONFIGURATION GUIDE > Chapter 4. Configure DPDK Accelerated Open vSwitch (OVS) for Networking
4.5. 配置OVS-DPDK可组合角色
创建与部署一个可组合的角色,需要:
- 在
role_data.yaml
文件的本地副本中定义新角色。 - 创建OpenStack flavor,关联新角色,分配flavor给节点。
- 修改
network_environment.yaml
文件以包含新角色。 - 以更新后的这些角色部署overcloud。
在例子中,ComputeOvsDpdk是计算节点的可组合角色,用来在有OVS-DPDK兼容网卡的主机上启用DPDK。Red Hat OpenStack Platform提供的已有默认角色存储在/home/stack/roles_data.yaml
文件中。
4.5.1. 修改roles_data.yaml
以创建可组合角色
复制roles_data.yaml
文件到/home/stack/templates
路径下,增加新角色ComputeOvsDpdk。
- name: ComputeOvsDpdk
CountDefault: 1
HostnameFormatDefault: compute-ovs-dpdk-%index%
disable_upgrade_deployment: True
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephClient
- OS::TripleO::Services::CephExternal
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::Ntp
- OS::TripleO::Services::Snmp
- OS::TripleO::Services::Sshd
- OS::TripleO::Services::NovaCompute
- OS::TripleO::Services::NovaLibvirt
- OS::TripleO::Services::Kernel
- OS::TripleO::Services::ComputeNeutronCorePlugin
- OS::TripleO::Services::ComputeNeutronOvsDpdkAgent
- OS::TripleO::Services::ComputeCeilometerAgent
- OS::TripleO::Services::ComputeNeutronL3Agent
- OS::TripleO::Services::ComputeNeutronMetadataAgent
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::OpenDaylightOvs
- OS::TripleO::Services::SensuClient
- OS::TripleO::Services::FluentdClient
- OS::TripleO::Services::AuditD
- OS::TripleO::Services::Collectd
在这个例子中,除ComputeNeutronOvsAgent
外,新角色ComputeOvsDpdk的其他所有服务都和常规的计算角色一样。这里使用ComputeNeutronOvsDpdkAgent
代替ComputeNeutronOvsAgent
来映射OVS-DPDK服务。
为OVS-DPDK可组合角色准备计算节点
可组合角色允许给节点分配新角色,并将此新角色建立在该节点的特定支持上。
- 创建OpenStack flavor来标记OVS-DPDK节点。
# openstack flavor create --id auto --ram 4096 --disk 40 --vcpus 4 computeovsdpdkFlavor
# openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="ComputeOvsDpdk" computeovsdpdkFlavor
此例子创建computeovsdpdkFlavor,并使该flavor可以使用ComputeOvsDpdk可组合角色。
注意:
OVS-DPDK flavor还需要设置其他属性,参考Section 4.9, “Create a Flavor and Deploy an Instance for OVS-DPDK” 。
- 设置裸金属节点使用computeovsdpdkFlavor。
# ironic node-update compute-1 add properties/capabilities='profile:computeovsdpdkFlavor,boot_option:local'
此例子基于computeovsdpdkFlavor设置,配置裸金属节点compute-1使用OVS-DPDK可组合角色。
4.5.3. 为OVS-DPDK可组合角色修改network-environment.yaml
- 在该节点的网络配置
network-environment.yaml
文件添加OVS-DPDK服务的资源映射
resource_registry:
# Specify the relative/absolute path to the config files you want to use for override the default.
OS::TripleO::ComputeSriov::Net::SoftwareConfig: nic-configs/compute-ovs-dpdk.yaml
OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
OS::TripleO::Services::ComputeNeutronOvsDpdkAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-ovs-dpdk-agent.yaml
- 更改OpenStack flavor以使用关联可组合角色的flavor。
# Nova flavor to use.
OvercloudControlFlavor: control
OvercloudComputeFlavor: computeovsdpdkFlavor
- 根据OpenStack部署需要,配置
network-environment.yaml
文件的剩余部分,覆盖来自neutron-ovs-dpdk-agent.yaml
的默认参数。
4.5.4 执行overcloud_deploy.sh
脚本
以下例子定义使用可组合角色的openstack overcloud deploy
Bash脚本。
# #!/bin/bash
openstack overcloud deploy --templates \
-r /home/stack/templates/roles_data.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /home/stack/ospd-10-vlan-dpdk-single-port-composable-roles/network-environment.yaml
/home/stack/templates/roles_data.yaml
是更新后的roles_data.yaml
位置,这个文件定义了OVS-DPDK与可组合角色。
注意:
overcloud部署后,需要重启计算节点以执行tuned文本。