4.4. 配置多路径
您可以在 OpenShift (RHOSO)上的 Red Hat OpenStack Services 中配置多路径,以创建冗余或提高性能。
您必须通过创建一个
MachineConfig
CR 在 control plane 节点上配置多路径。注意在 RHOSO 部署中,默认启用
use_multipath_for_image_xfer
配置选项,该选项仅影响 control plane 而不是数据平面。此设置可让块存储服务(cinder)使用多路径(当它可用时)在从镜像创建卷时附加卷,并在块存储备份和恢复过程中附加卷。- data plane 节点上的多路径默认配置在 RHOSO 中,它配置默认的多路径参数。您必须添加并配置生产环境所需的任何特定于供应商的多路径参数。
4.4.1. 在 control plane 节点上配置多路径 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift Container Platform (RHOCP) control plane 节点上配置多路径需要 MachineConfig
自定义资源(CR)来创建多路径配置文件并启动服务。
在 OpenShift (RHOSO)部署的 Red Hat OpenStack Services 中,默认启用 use_multipath_for_image_xfer
配置选项,这只会影响 control plane 而不是 data plane。此设置可让块存储服务(cinder)使用多路径(当它可用时)在从镜像创建卷时附加卷,并在块存储备份和恢复过程中附加卷。
此流程中提供的示例实现了最小多路径配置文件,该文件配置默认的多路径参数。但是,您的生产部署可能还需要特定于供应商的多路径参数。在这种情况下,您必须咨询适当的系统管理员来获取部署所需的值。
流程
创建
MachineConfig
CR 以创建多路径配置文件,并在所有 control plane 节点上启动multipathd
模块。以下示例创建一个名为
99-worker-cinder-enable-multipathd
的MachineConfig
CR,它实现了名为multipath.conf
的多路径配置文件:重要向内容中添加特定于厂商的多路径参数时,请确保不要更改以下默认多路径参数的指定值
:
user_friendly_names
,recheck_wwid
,skip_kpartx
, 和find_multipaths
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意上面的
内容:
数据,表示以下字面上的multipath.conf
文件内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
MachineConfig
CR 文件,例如99-worker-cinder-enable-multipathd.yaml
。 应用
MachineConfig
CR 文件。oc apply -f 99-worker-cinder-enable-multipathd.yaml -n openstack
$ oc apply -f 99-worker-cinder-enable-multipathd.yaml -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. 在 data plane 节点上配置自定义多路径参数 复制链接链接已复制到粘贴板!
默认多路径参数在所有数据平面节点上配置。您必须添加并配置任何特定于供应商的多路径参数。在这种情况下,您必须咨询适当的系统管理员来获取部署所需的值,以创建自定义多路径配置文件。
确保您没有添加以下默认多路径参数并覆盖其值: user_friendly_names
、recheck_wwid
、skip_kpartx
、find_multipaths
。
您必须修改相关的 OpenStackDataPlaneNodeSet
自定义资源(CR),以更新 data plane 节点配置使其包含特定于供应商的多路径参数。您可以创建一个 OpenStackDataPlaneDeployment
CR,用于部署并将修改后的 OpenStackDataPlaneNodeSet
CR 应用到数据平面。
先决条件
- 您已创建了自定义多路径配置文件,该文件只包含特定于供应商的多路径参数和部署特定值。
流程
创建 secret 来存储自定义多路径配置文件:
oc create secret generic <secret_name> \ --from-file=<configuration_file_name>
$ oc create secret generic <secret_name> \ --from-file=<configuration_file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<secret_name
> 替换为您要分配给 secret 的名称,如custom-multipath-file
。 -
将 <
configuration_file_name
> 替换为您创建的自定义多路径配置文件的名称,如custom_multipath.conf
。
-
将
-
为您要更新的节点集打开
OpenStackDataPlaneNodeSet
CR 文件,如openstack_data_plane.yaml
。 在
OpenStackDataPlaneNodeSet
CR 文件中添加extraMounts
属性,使其包含特定于供应商的多路径参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
可选:将 <
optional_volume_type_description
> 替换为挂载卷类型的描述,如multipath-config-file
。 将
<mounted_volume_name
> 替换为挂载卷的名称,如custom-multipath
。注意不要从
"/runner/multipath"
更改mountPath:
参数的值。
-
可选:将 <
-
保存
OpenStackDataPlaneNodeSet
CR 文件。 应用更新的
OpenStackDataPlaneNodeSet
CR 配置:oc apply -f openstack_data_plane.yaml
$ oc apply -f openstack_data_plane.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过确认状态为
SetupReady
来验证 data plane 资源是否已更新:oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m
$ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当状态是
SetupReady
时,命令会返回一个condition met
消息,否则会返回超时错误。如需有关 data plane 条件和状态的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件 和状态。
在工作站上创建一个文件来定义
OpenStackDataPlaneDeployment
CR:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: <node_set_deployment_name>
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: <node_set_deployment_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node_set_deployment_name
> 替换为OpenStackDataPlaneDeployment
CR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或.
(period),且必须以字母数字字符开头和结尾,如openstack_data_plane_deploy
。
-
将
添加您修改的
OpenStackDataPlaneNodeSet
CR:spec: nodeSets: - <nodeSet_name>
spec: nodeSets: - <nodeSet_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
OpenStackDataPlaneDeployment
CR 部署文件,如openstack_data_plane_deploy.yaml
。 部署修改后的
OpenStackDataPlaneNodeSet
CR:oc create -f openstack_data_plane_deploy.yaml -n openstack
$ oc create -f openstack_data_plane_deploy.yaml -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在部署执行时查看 Ansible 日志:
oc get pod -l app=openstackansibleee -w oc logs -l app=openstackansibleee -f --max-log-requests 10
$ oc get pod -l app=openstackansibleee -w $ oc logs -l app=openstackansibleee -f --max-log-requests 10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
oc logs
命令返回类似以下错误的错误,请提高--max-log-requests
值:error: you are attempting to follow 19 log streams, but maximum allowed concurrency is 10, use --max-log-requests to increase the limit
error: you are attempting to follow 19 log streams, but maximum allowed concurrency is 10, use --max-log-requests to increase the limit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证修改后的
OpenStackDataPlaneNodeSet
CR 是否已部署:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件和状态。
如果状态表示 data plane 尚未部署,则对部署进行故障排除。如需有关对部署进行故障排除的信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的对 data plane 创建和部署进行故障排除。