3.2. Red Hat OpenStack 部署配置
查看以下 Red Hat OpenStack Platform (RHOSP)部署配置的建议列表:
- 使用较小的部署验证 heat 模板
- 部署由至少三个控制器、一个计算备注和三个 Ceph Storage 节点组成的小型环境。您可以使用此配置来确保所有 heat 模板都正确。
- 改进跨计算的实例分布
在创建大量实例期间,计算调度程序不知道 Compute 节点的资源,直到为 Compute 节点确认了之前实例的资源分配为止。为了避免生成 Compute 节点的不均匀,您可以执行以下操作之一:
将
NovaSchedulerShuffleBestSameWeighedHosts参数的值设置为true:parameter_defaults: NovaSchedulerShuffleBestSameWeighedHosts: `True`
parameter_defaults: NovaSchedulerShuffleBestSameWeighedHosts: `True`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为确保 Compute 节点没有与实例过载,请将
max_instances_per_host设置为任何 Compute 节点可以生成的最大实例数量,并确保启用了NumInstancesFilter参数。当 Compute 节点达到这个实例计数时,调度程序将不再选择它以进行进一步的实例生成调度。注意NumInstancesFilter参数默认启用。但是,如果您在环境文件中修改了NovaSchedulerEnabledFilters参数,请确保启用NumInstancesFilter参数。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<maximum_number_of_instances> 替换为任何 Compute 节点可生成的最大实例数。
-
将
- Networking 服务(neutron)的扩展配置
表 3.1 中的设置经过测试和认证,以提高大规模 openstack 环境中的性能和扩展稳定性。
服务器端探测控制
ovsdb-server发送的探测的超时时间:neutron、ovn-controller和ovn-metadata-agent。如果它们在超时前没有从客户端获得回复,它们将与客户端断开连接,强制它重新连接。客户端到超时的最常见场景是,当客户端将数据库的副本加载到内存中时,与ovsdb-server进行初始连接。当超时太低时,ovsdb-server会在下载数据库时断开客户端,从而导致客户端重新连接并再次尝试,并且此周期会永久重复。因此,如果最大超时间隔不工作,则将探测间隔值设置为 0 以禁用探测。如果客户端探测器间隔被禁用,则使用 TCP keepalive 消息来监控与
ovsdb-server的连接。注意如果可用,始终使用 tripleo heat 模板(THT)参数来配置所需的设置。由于手动配置的设置将被配置下载运行覆盖,因此在 THT 或 Puppet 中定义默认值时。另外,您只能为现有环境手动配置设置,因此修改后的设置不会应用到任何新的或替换的节点。
Expand 表 3.1. 为网络服务推荐的扩展配置 设置 描述 手动配置 THT 参数 Compute 节点上的 OVS 服务器端不活跃探测
将这个探测间隔从 5 秒增加到 30 秒。
ovs-vsctl set Manager . inactivity_probe=30000
ovs-vsctl set Manager . inactivity_probe=30000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Controller 节点上的 OVN 北向服务器端不活跃探测
将这个探测间隔增加到 180000 ms,或将其设置为 0 以禁用它。
podman exec -u root ovn_controller ovn-nbctl --no-leader-only set Connection . inactivity_probe=180000
podman exec -u root ovn_controller ovn-nbctl --no-leader-only set Connection . inactivity_probe=180000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Controller 节点上的 OVN 南向服务器端不活跃探测
将这个探测间隔增加到 180000 ms,或将其设置为 0 以禁用它。
podman exec -u root ovn_controller ovn-sbctl --no-leader-only set Connection . inactivity_probe=180000
podman exec -u root ovn_controller ovn-sbctl --no-leader-only set Connection . inactivity_probe=180000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compute 节点上的 OVN 控制器远程探测间隔
将这个探测间隔增加到 180000 ms,或将其设置为 0 以禁用它。
podman exec -u root ovn_controller ovs-vsctl --no-leader-only set Open_vSwitch . external_ids:ovn-remote-probe-interval=180000
podman exec -u root ovn_controller ovs-vsctl --no-leader-only set Open_vSwitch . external_ids:ovn-remote-probe-interval=180000Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVNRemoteProbeInterval: 180000
Controller 节点上的网络服务客户端探测间隔
将这个探测间隔增加到 180000 ms,或将其设置为 0 以禁用它。
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2/ml2_conf.ini ovn ovsdb_probe_interval 180000
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2/ml2_conf.ini ovn ovsdb_probe_interval 180000Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVNOvsdbProbeInterval: 180000
Controller 节点上的网络服务
api_workers根据
neutron-server的负载,将默认独立的 API worker 进程从 12 增加到 16 或更多。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT api_workers 16
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT api_workers 16Copy to Clipboard Copied! Toggle word wrap Toggle overflow NeutronWorkers: 16
Controller 节点上的网络服务
agent_down_time将
agent_down_time设置为非常大型集群的最大允许数量。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT agent_down_time 2147483
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT agent_down_time 2147483Copy to Clipboard Copied! Toggle word wrap Toggle overflow NeutronAgentDownTime: 2147483
Compute 节点上的 OVN 元数据
report_agent在大型安装中禁用
report_agent。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini agent report_agent false
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini agent report_agent falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow Compute 节点上的 OVN
metadata_workers将
metadata_workers降低到所有 Compute 节点上的最小值,以减少到 OVN 南向数据库的连接。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini DEFAULT metadata_workers 1
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini DEFAULT metadata_workers 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow NeutronMetadataWorkers: 1
Compute 节点上的 OVN 元数据
rpc_workers将
rpc_workers降低到所有 Compute 节点上的最小值。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini DEFAULT rpc_workers 0
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini DEFAULT rpc_workers 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow NeutronRpcWorkers: 0
Compute 节点上的 OVN 元数据客户端探测间隔
将这个探测间隔增加到 180000 ms,或将其设置为 0 以禁用它。
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini ovn ovsdb_probe_interval 180000
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini ovn ovsdb_probe_interval 180000Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVNOvsdbProbeInterval: 180000
- 限制同时置备的节点数量
fifty 是可在一个企业级机架单元中适合的典型服务器数量,因此您可以一次部署一个机架节点。
为最大程度减少诊断部署问题所需的调试,请一次部署最多 50 个节点。如果要部署更多节点,红帽已同时测试了最多 100 个节点。
要批量扩展 Compute 节点,请使用
openstack overcloud deploy命令和--limit选项。这可能导致 undercloud 上节省的时间并降低资源消耗。- 禁用未使用的 NIC
如果 overcloud 部署期间有任何未使用的 NIC,您必须在 NIC 配置模板中定义未使用的接口,并将接口设置为
use_dhcp: false和defroute: false。如果您没有定义未使用的接口,则内省和扩展操作过程中可能会有路由问题和 IP 分配问题。默认情况下,NIC 设置
BOOTPROTO=dhcp,这意味着未使用的 overcloud NIC 使用 PXE 调配所需的 IP 地址。这可以减少节点的可用 IP 地址池。- 关闭未使用的裸机置备(ironic)节点
- 确保您以维护模式关闭任何未使用的裸机置备(ironic)节点。裸机置备不会跟踪处于维护模式的节点电源状态,并错误地报告之前部署中处于维护模式的节点电源状态为 off。如果未使用的节点具有过时的配置的操作系统,这可能会导致持续部署出现问题,例如来自 overcloud 网络的 IP 地址。当您在部署失败后重新部署时,请确保关闭所有未使用的节点。