23.2. 为 ML2/OVS 配置网络服务可用区
您可以在用户创建网络和路由器时,设置由 Red Hat OpenStack Platform (RHOSP)网络服务(neutron)自动分配的一个或多个默认可用区(AZ)。另外,您还可以设置网络服务用来为对应的 AZ 调度这些资源的网络和路由器驱动程序。
在分布式计算节点(DCN)环境中使用网络服务 AZ 时,建议将网络服务 AZ 名称与计算服务(nova) AZ 名称匹配。
本主题中包含的信息是运行 RHOSP 网络服务的部署,该服务使用带有 Open vSwitch 机制驱动程序(ML2/OVS)的 Module Layer 2 插件。
先决条件
- 部署的 RHOSP 16.2 或更高版本。
运行使用 ML2/OVS 机制驱动程序的 RHOSP 网络服务。
如需更多信息,请参阅 部署分布式计算节点架构指南。
流程
以
stack
用户身份登录 undercloud,再提供stackrc
文件,以启用 director 命令行工具。示例
$ source ~/stackrc
创建自定义 YAML 环境文件。
示例
$ vi /home/stack/templates/my-neutron-environment.yaml
提示Red Hat OpenStack Platform Orchestration 服务(heat)使 用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件 自定义 overcloud 的各个方面,这是为 heat 模板 提供自定义 的特殊模板。
在 YAML 环境文件中,在
parameter_defaults
下输入NeutronDefaultAvailabilityZones
参数以及一个或多个 AZ。如果用户在创建网络或路由器时通过-availability-zone-hint
选项指定 AZ,网络服务会分配这些 AZ。重要在 DCN 环境中,您必须将网络服务 AZ 名称与 Compute 服务 AZ 名称匹配。
示例
parameter_defaults: NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1'
通过分别输入参数(
NeutronDhcpAgentAvailabilityZone
和NeutronL3AgentAvailabilityZone
)的值来确定 DHCP 和 L3 代理的 AZ。示例
parameter_defaults: NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1' NeutronL3AgentAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1' NeutronDhcpAgentAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1'
重要在 DCN 环境中,为
NeutronDhcpAgentAvailabilityZone
定义单个 AZ,以便在与特定边缘站点相关的 AZ 中调度端口。默认情况下,网络和路由器调度程序分别是
AZAwareWeightScheduler
和AZLeastRoutersScheduler
。如果要更改其中任何一个或两个,请分别使用NeutronNetworkSchedulerDriver
和NeutronRouterSchedulerDriver
参数输入新的调度程序。示例
parameter_defaults: NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1' NeutronL3AgentAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1' NeutronDhcpAgentAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1' NeutronNetworkSchedulerDriver: 'neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler' NeutronRouterSchedulerDriver: 'neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler'
运行
openstack overcloud deploy
命令,并包含核心 heat 模板、环境文件以及新的自定义环境文件。重要但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。
示例
$ openstack overcloud deploy --templates \ -e <your-environment-files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/\ my-neutron-environment.yaml
验证
运行
availability zone list
命令,确认可用区是否已正确定义。示例
$ openstack availability zone list
输出示例
+----------------+-------------+ | Zone Name | Zone Status | +----------------+-------------+ | az-central | available | | az-datacenter1 | available | | az-datacenter2 | available | +----------------+-------------+