2.12. 多路径配置
使用多路径将服务器节点和存储阵列之间的多个 I/O 路径配置为单一设备,以创建冗余并提高性能。
2.12.1. 使用 director 配置多路径 复制链接链接已复制到粘贴板!
您可以在 Red Hat OpenStack Platform (RHOSP) overcloud 部署中配置多路径,以实现更大的带宽和网络弹性。
当您在现有部署中配置多路径时,新的工作负载会了解。如果您有任何已存在的工作负载,则必须删除实例并取消连接这些实例以便在这些实例上启用多路径。
先决条件
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用覆盖环境文件或创建新文件,如
multipath_overrides.yaml
。添加并设置以下参数:parameter_defaults: ExtraConfig: cinder::config::cinder_config: backend_defaults/use_multipath_for_image_xfer: value: true
parameter_defaults: ExtraConfig: cinder::config::cinder_config: backend_defaults/use_multipath_for_image_xfer: value: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认设置将生成适用于大多数环境的基本多路径配置。但是,检查您的存储厂商以了解建议,因为有些供应商具有特定于硬件的优化配置。有关多路径的更多信息,请参阅配置设备映射器多路径。
可选: 如果您的 overcloud 部署有多路径配置文件,您可以使用
MultipathdCustomConfigFile
参数指定此文件的位置:parameter_defaults: MultipathdCustomConfigFile: <config_file_directory>/<config_file_name>
parameter_defaults: MultipathdCustomConfigFile: <config_file_directory>/<config_file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在以下示例中,
/home/stack
是多路径配置文件的目录,multipath.conf
是此文件的名称:parameter_defaults: MultipathdCustomConfigFile: /home/stack/multipath.conf
parameter_defaults: MultipathdCustomConfigFile: /home/stack/multipath.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意其他 TripleO 多路径参数覆盖本地自定义配置文件中任何对应的值。例如,如果
MultipathdEnableUserFriendlyNames
为False
,则 overcloud 节点上的文件会被更新以匹配,即使本地自定义文件中启用了该设置。有关多路径参数的更多信息,请参阅 多路径 heat 模板参数。
- 将更新保存到覆盖环境文件中。
使用其他环境文件,将您的环境文件添加到堆栈中,例如:
---- /usr/share/openstack-tripleo-heat-templates/environments/multipathd.yaml ----
---- /usr/share/openstack-tripleo-heat-templates/environments/multipathd.yaml ----
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 部署 overcloud。
其他资源
2.12.1.1. 多路径 heat 模板参数 复制链接链接已复制到粘贴板!
使用此选项了解启用多路径的以下参数。
参数 | 描述 | 默认值 |
---|---|---|
|
定义是否启用多路径守护进程。这个参数通过 |
|
| 定义是否启用对每个路径的用户友好名称分配。 |
|
| 定义是否为每个路径自动创建多路径设备。 |
|
| 定义是否跳过该设备中自动创建分区。 |
|
|
在 overcloud 节点上包括本地的自定义多路径配置文件。默认情况下会安装最小的
注意: 其他 TripleO 多路径参数覆盖您添加的任何本地自定义配置文件中对应的值。例如,如果 |
2.12.2. 验证多路径配置 复制链接链接已复制到粘贴板!
您可以在新的或现有 overcloud 部署中验证多路径配置。
流程
- 创建实例。
- 将非加密卷连接到实例。
获取包含实例的 Compute 节点的名称:
nova show <instance> | grep OS-EXT-SRV-ATTR:host
$ nova show <instance> | grep OS-EXT-SRV-ATTR:host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<instance
> 替换为您创建的实例的名称。检索实例的 virsh 名称:
nova show <instance> | grep instance_name
$ nova show <instance> | grep instance_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取 Compute 节点的 IP 地址:
. stackrc metalsmith list | grep <compute_name>
$ . stackrc $ metalsmith list | grep <compute_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<compute_name
> 替换为nova show <instance>
; 命令的输出中的名称,以显示两个行,来自六个列。在第四列中找到 <
;compute_name
> 所在的行。<compute_name>
; 的 IP 地址位于此行的最后一列中。在以下示例中,compute-0 的 IP 地址为 192.168.24.15,因为 compute-0 位于第二行的第四列中:
. stackrc metalsmith list | grep compute-0
$ . stackrc $ metalsmith list | grep compute-0 | 3b1bf72e-c425-494c-9717-d0b89bb66580 | compute-0 | 95b21d3e-36be-470d-ba5c-70d5dcd6d0b3 | compute-1 | ACTIVE | ctlplane=192.168.24.49 | | 72a24883-25f9-435c-bf71-a20e66be172d | compute-1 | a59f79f7-006e-4f38-a9ad-8164da47d58e | compute-0 | ACTIVE | ctlplane=192.168.24.15 |
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH 到运行实例的 Compute 节点:
ssh tripleo-admin@<compute_node_ip>
$ ssh tripleo-admin@<compute_node_ip>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<compute_node_ip
> 替换为 Compute 节点的 IP 地址。登录到运行 virsh 的容器:
podman exec -it nova_libvirt /bin/bash
$ podman exec -it nova_libvirt /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Compute 节点实例上输入以下命令,以验证它是否在 cinder 卷主机位置中使用多路径:
virsh domblklist <virsh_instance_name> | grep /dev/dm
virsh domblklist <virsh_instance_name> | grep /dev/dm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<virsh_instance_name
> 替换为nova show <instance> | grep instance_name
命令的输出。如果实例显示
/dev/dm-
以外的值,则连接是非多路径,您需要使用nova shelve
和nova unshelve
命令刷新连接信息:nova shelve <instance> nova unshelve <instance>
$ nova shelve <instance> $ nova unshelve <instance>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您有多个后端类型,您必须验证所有后端上的实例和卷,因为每个后端返回的连接信息可能会有所不同。