4.4. 配置多路径
在 OpenShift (RHOSO)上的 Red Hat OpenStack Services 中配置多路径,以创建冗余或提高性能。control plane 节点需要 MachineConfig CR。data plane 节点具有默认的多路径配置,但您必须为生产环境添加特定于供应商的参数。
4.4.1. 在 control plane 节点上配置多路径 复制链接链接已复制到粘贴板!
您可以通过创建创建多路径配置文件并启动服务的 MachineConfig 自定义资源(CR)在 Red Hat OpenShift Container Platform (RHOCP) control plane 节点上配置多路径。
在 OpenShift (RHOSO)部署的 Red Hat OpenStack Services 中,默认启用 use_multipath_for_image_xfer 配置选项,这只会影响 control plane 而不是 data plane。此设置可让块存储服务(cinder)使用多路径(当它可用时)在从镜像创建卷时附加卷,并在块存储备份和恢复过程中附加卷。
此流程中的示例实现了最小多路径配置文件,该文件配置默认的多路径参数。但是,您的生产部署可能还需要特定于供应商的多路径参数。在这种情况下,您必须咨询适当的系统管理员来获取部署所需的值。
如果您有复杂的多路径配置,您可以使用 Butane 命令行工具为您创建多路径配置文件。如需更多信息,请参阅 RHOCP 安装配置 中的 使用 Butane 创建机器配置。
流程
创建
MachineConfigCR 以创建多路径配置文件,并在所有 control plane 节点上启动multipathd模块。以下示例创建一个名为
99-worker-cinder-enable-multipathd的MachineConfigCR,它实现了名为multipath.conf的多路径配置文件:重要向内容中添加特定于厂商的多路径参数时,请确保不要更改以下默认多路径参数的指定值
:user_friendly_names,recheck_wwid,skip_kpartx, 和find_multipaths。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker service: cinder name: 99-worker-cinder-enable-multipathd spec: config: ignition: version: 3.2.0 storage: files: - path: /etc/multipath.conf overwrite: false mode: 384 user: name: root group: name: root contents: source: data:,defaults%20%7B%0A%20%20user_friendly_names%20no%0A%20%20recheck_wwid%20yes%0A%20%20skip_kpartx%20yes%0A%20%20find_multipaths%20yes%0A%7D%0A%0Ablacklist%20%7B%0A%7D systemd: units: - enabled: true name: multipathd.servicecontent
:data 代表以下字面的multipath.conf文件内容:defaults { user_friendly_names no recheck_wwid yes skip_kpartx yes find_multipaths yes } blacklist { }
-
保存
MachineConfigCR 文件,例如99-worker-cinder-enable-multipathd.yaml。 应用
MachineConfigCR 文件。$ oc apply -f 99-worker-cinder-enable-multipathd.yaml -n openstack
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>-
将
<secret_name> 替换为您要分配给 secret 的名称,如custom-multipath-file。 -
将 <
configuration_file_name> 替换为您创建的自定义多路径配置文件的名称,如custom_multipath.conf。
-
将
-
为您要更新的节点集打开
OpenStackDataPlaneNodeSetCR 文件,如openstack_data_plane.yaml。 在
OpenStackDataPlaneNodeSetCR 文件中添加extraMounts属性,使其包含特定于供应商的多路径参数:spec: ... nodeTemplate: ... extraMounts: - extraVolType: <optional_volume_type_description> volumes: - name: <mounted_volume_name> secret: secretName: <secret_name> mounts: - name: <mounted_volume_name> mountPath: "/runner/multipath" readOnly: true-
可选:将 <
optional_volume_type_description> 替换为挂载卷类型的描述,如multipath-config-file。 将
<mounted_volume_name> 替换为挂载卷的名称,如custom-multipath。注意不要从
"/runner/multipath"更改mountPath:参数的值。
-
可选:将 <
-
保存
OpenStackDataPlaneNodeSetCR 文件。 应用更新的
OpenStackDataPlaneNodeSetCR 配置:$ oc apply -f openstack_data_plane.yaml通过确认状态为
SetupReady来验证 data plane 资源是否已更新:$ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m当状态是
SetupReady时,命令会返回一个condition met消息,否则会返回超时错误。如需有关 data plane 条件和状态的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件 和状态。
在工作站上创建一个文件来定义
OpenStackDataPlaneDeploymentCR:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: <node_set_deployment_name>-
将
<node_set_deployment_name> 替换为OpenStackDataPlaneDeploymentCR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或.(period),且必须以字母数字字符开头和结尾,如openstack_data_plane_deploy。
-
将
添加您修改的
OpenStackDataPlaneNodeSetCR:spec: nodeSets: - <nodeSet_name>-
保存
OpenStackDataPlaneDeploymentCR 部署文件,如openstack_data_plane_deploy.yaml。 部署修改后的
OpenStackDataPlaneNodeSetCR:$ oc create -f openstack_data_plane_deploy.yaml -n openstack您可以在部署执行时查看 Ansible 日志:
$ oc get pod -l app=openstackansibleee -w $ oc logs -l app=openstackansibleee -f --max-log-requests 10如果
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
验证
验证修改后的
OpenStackDataPlaneNodeSetCR 是否已部署:$ oc get openstackdataplanedeployment -n openstack NAME STATUS MESSAGE openstack-data-plane True Setup Complete $ oc get openstackdataplanenodeset -n openstack NAME STATUS MESSAGE openstack-data-plane True NodeSet Ready有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件和状态。
如果状态表示 data plane 尚未部署,则对部署进行故障排除。如需有关对部署进行故障排除的信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的对 data plane 创建和部署进行故障排除。