搜索

2.12. 多路径配置

download PDF

使用多路径将服务器节点和存储阵列间的多个 I/O 路径配置为单一设备,以创建冗余并提高性能。

2.12.1. 使用 director 配置多路径

您可以在 Red Hat OpenStack Platform (RHOSP) overcloud 部署中配置多路径,以实现更大的带宽和网络弹性。

重要

当您在现有部署中配置多路径时,新的工作负载会识别多路径。如果您有任何已存在的工作负载,您必须检查并取消缩小实例以便在这些实例上启用多路径。

先决条件

  • 已安装 undercloud。如需更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的安装 director

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  3. 使用覆盖环境文件或创建新文件,如 multipath_overrides.yaml。添加并设置以下参数:

    parameter_defaults:
      ExtraConfig:
        cinder::config::cinder_config:
          backend_defaults/use_multipath_for_image_xfer:
            value: true
    注意

    默认设置将生成适用于大多数环境的基本多路径配置。但是,检查您的存储供应商以获得建议,因为有些供应商有特定于硬件的优化配置。有关多路径的更多信息,请参阅配置设备映射器多路径

  4. 可选:如果您有用于 overcloud 部署的多路径配置文件,您可以使用 MultipathdCustomConfigFile 参数指定此文件的位置:

    parameter_defaults:
      MultipathdCustomConfigFile: <config_file_directory>/<config_file_name>

    在以下示例中,/home/stack 是多路径配置文件的目录,multipath.conf 是此文件的名称:

    parameter_defaults:
      MultipathdCustomConfigFile: /home/stack/multipath.conf
    注意

    其他 TripleO 多路径参数会覆盖本地自定义配置文件中的任何对应的值。例如,如果 MultipathdEnableUserFriendlyNamesFalse,则 overcloud 节点上的文件会更新以匹配,即使本地自定义文件中启用了该设置。

    有关多路径参数的更多信息,请参阅 多路径 heat 模板参数

  5. 将更新保存到覆盖的环境文件。
  6. 将覆盖环境文件添加到带有其他环境文件的堆栈中,例如:

    ----
    /usr/share/openstack-tripleo-heat-templates/environments/multipathd.yaml
    ----
  7. 部署 overcloud。

2.12.1.1. 多路径 heat 模板参数

使用它来了解启用多路径的以下参数。

参数描述默认值

MultipathdEnable

定义是否启用多路径守护进程。通过 multipathd.yaml 文件中包含的配置,此参数默认为 True

true

MultipathdEnableUserFriendlyNames

定义是否启用为每个路径分配用户友好的名称。

False

MultipathdEnableFindMultipaths

定义是否为每个路径自动创建多路径设备。

true

MultipathdSkipKpartx

定义是否跳过设备中自动创建分区。

true

MultipathdCustomConfigFile

包括 overcloud 节点上的本地自定义多路径配置文件。默认情况下会安装一个最小 multipath.conf 文件。

注意: 其他 TripleO 多路径参数覆盖您添加的任何本地自定义配置文件中任何对应的值。例如,如果 MultipathdEnableUserFriendlyNamesFalse,则 overcloud 节点上的文件会更新以匹配,即使在本地、自定义文件中启用了该设置。

 

2.12.2. 验证多路径配置

您可以在新的或现有 overcloud 部署中验证多路径配置。

流程

  1. 创建一个实例。
  2. 将非加密卷附加到实例。
  3. 获取包含实例的 Compute 节点的名称:

    $ nova show <instance> | grep OS-EXT-SRV-ATTR:host

    <instance > 替换为您创建的实例的名称。

  4. 检索实例的 virsh 名称:

    $ nova show <instance> | grep instance_name
  5. 获取 Compute 节点的 IP 地址:

    $ . stackrc
    $ metalsmith list | grep <compute_name>

    <compute_name > 替换为 nova show <instance > 命令的输出中的 name,从六个列表中显示两行。

    找到在第四列中的 & lt;compute_name > 的行。< compute_name&gt; 的 IP 地址位于此行的最后一列中。

    在以下示例中,compute-0 的 IP 地址是 192.02.24.15,因为 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.02.24.49 |
    | 72a24883-25f9-435c-bf71-a20e66be172d | compute-1    | a59f79f7-006e-4f38-a9ad-8164da47d58e | compute-0    | ACTIVE | ctlplane=192.02.24.15 |
  6. SSH 到运行实例的 Compute 节点:

    $ ssh tripleo-admin@<compute_node_ip>

    <compute_node_ip > 替换为 Compute 节点的 IP 地址。

  7. 登录到运行 virsh 的容器:

    $ podman exec -it nova_libvirt /bin/bash
  8. 在 Compute 节点实例中输入以下命令,以验证它是否在 cinder 卷主机位置中使用多路径:

    virsh domblklist <virsh_instance_name> | grep /dev/dm

    <virsh_instance_name > 替换为 nova show <instance> | grep instance_name 命令的输出。

    如果实例显示 /dev/dm- 以外的值,则连接是非多路径,您需要使用 nova shelvenova unshelve 命令刷新连接信息:

    $ nova shelve <instance>
    $ nova unshelve <instance>
    注意

    如果您有多种后端,您必须验证所有后端上的实例和卷,因为每个后端返回的连接信息可能有所不同。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.