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)使用多路径(当它可用时)在从镜像创建卷时附加卷,并在块存储备份和恢复过程中附加卷。

注意

此流程中提供的示例实现了最小多路径配置文件,该文件配置默认的多路径参数。但是,您的生产部署可能还需要特定于供应商的多路径参数。在这种情况下,您必须咨询适当的系统管理员来获取部署所需的值。

流程

  1. 创建 MachineConfig CR 以创建多路径配置文件,并在所有 control plane 节点上启动 multipathd 模块。

    以下示例创建一个名为 99-worker-cinder-enable-multipathdMachineConfig CR,它实现了名为 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.service
    Copy to Clipboard Toggle word wrap
    注意

    上面的 内容: 数据,表示以下字面上的 multipath.conf 文件内容:

    defaults {
      user_friendly_names no
      recheck_wwid yes
      skip_kpartx yes
      find_multipaths yes
    }
    
    blacklist {
    }
    Copy to Clipboard Toggle word wrap
  2. 保存 MachineConfig CR 文件,例如 99-worker-cinder-enable-multipathd.yaml
  3. 应用 MachineConfig CR 文件。

    $ oc apply -f 99-worker-cinder-enable-multipathd.yaml -n openstack
    Copy to Clipboard Toggle word wrap

默认多路径参数在所有数据平面节点上配置。您必须添加并配置任何特定于供应商的多路径参数。在这种情况下,您必须咨询适当的系统管理员来获取部署所需的值,以创建自定义多路径配置文件。

重要

确保您没有添加以下默认多路径参数并覆盖其值: user_friendly_namesrecheck_wwidskip_kpartxfind_multipaths

您必须修改相关的 OpenStackDataPlaneNodeSet 自定义资源(CR),以更新 data plane 节点配置使其包含特定于供应商的多路径参数。您可以创建一个 OpenStackDataPlaneDeployment CR,用于部署并将修改后的 OpenStackDataPlaneNodeSet CR 应用到数据平面。

先决条件

  • 您已创建了自定义多路径配置文件,该文件只包含特定于供应商的多路径参数和部署特定值。

流程

  1. 创建 secret 来存储自定义多路径配置文件:

    $ oc create secret generic <secret_name> \
    --from-file=<configuration_file_name>
    Copy to Clipboard Toggle word wrap
    • <secret_name > 替换为您要分配给 secret 的名称,如 custom-multipath-file
    • 将 < configuration_file_name > 替换为您创建的自定义多路径配置文件的名称,如 custom_multipath.conf
  2. 为您要更新的节点集打开 OpenStackDataPlaneNodeSet CR 文件,如 openstack_data_plane.yaml
  3. OpenStackDataPlaneNodeSet CR 文件中添加 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
    Copy to Clipboard Toggle word wrap
    • 可选:将 < optional_volume_type_description > 替换为挂载卷类型的描述,如 multipath-config-file
    • <mounted_volume_name > 替换为挂载卷的名称,如 custom-multipath

      注意

      不要从 "/runner/multipath" 更改 mountPath: 参数的值。

  4. 保存 OpenStackDataPlaneNodeSet CR 文件。
  5. 应用更新的 OpenStackDataPlaneNodeSet CR 配置:

    $ oc apply -f openstack_data_plane.yaml
    Copy to Clipboard Toggle word wrap
  6. 通过确认状态为 SetupReady 来验证 data plane 资源是否已更新:

    $ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m
    Copy to Clipboard Toggle word wrap

    当状态是 SetupReady 时,命令会返回一个 condition met 消息,否则会返回超时错误。

    如需有关 data plane 条件和状态的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件 和状态

  7. 在工作站上创建一个文件来定义 OpenStackDataPlaneDeployment CR:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
      name: <node_set_deployment_name>
    Copy to Clipboard Toggle word wrap
    • <node_set_deployment_name > 替换为 OpenStackDataPlaneDeployment CR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或 . (period),且必须以字母数字字符开头和结尾,如 openstack_data_plane_deploy
  8. 添加您修改的 OpenStackDataPlaneNodeSet CR:

    spec:
      nodeSets:
        - <nodeSet_name>
    Copy to Clipboard Toggle word wrap
  9. 保存 OpenStackDataPlaneDeployment CR 部署文件,如 openstack_data_plane_deploy.yaml
  10. 部署修改后的 OpenStackDataPlaneNodeSet CR:

    $ oc create -f openstack_data_plane_deploy.yaml -n openstack
    Copy to Clipboard Toggle word wrap

    您可以在部署执行时查看 Ansible 日志:

    $ oc get pod -l app=openstackansibleee -w
    $ oc logs -l app=openstackansibleee -f --max-log-requests 10
    Copy to Clipboard Toggle word wrap

    如果 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
    Copy to Clipboard Toggle word wrap

验证

  • 验证修改后的 OpenStackDataPlaneNodeSet CR 是否已部署:

    $ 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
    Copy to Clipboard Toggle word wrap

    有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件和状态

    如果状态表示 data plane 尚未部署,则对部署进行故障排除。如需有关对部署进行故障排除的信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的对 data plane 创建和部署进行故障排除

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat