Linux 多路径:如何配置单个多总线路径组

Linux 多路径:如何配置单个多总线路径组

我刚刚将功能正常的 Ubuntu 16.04 主机升级到 18.04,现在遇到了多路径问题。

软件包版本:* multipath-tools 0.7.4-2ubuntu3 * open-iscsi 2.0.874-5ubuntu2.7

我有一台 Dell PowerVault MD3860i,有四条通往主机的路径。升级前,multipath -ll它看起来像这样:

backupeng (3600a098000b5efae00000e9a5b9b58f5) dm-2 DELL,MD38xxi
size=8.0T features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 3:0:0:1 sdb 8:16 active ready running
  |- 4:0:0:1 sdc 8:32 active ready running
  |- 5:0:0:1 sdd 8:48 active ready running
  `- 6:0:0:1 sde 8:64 active ready running

现在看起来像这样:

backupeng (3600a098000b5efae00000e9a5b9b58f5) dm-2 DELL,MD38xxi
size=8.0T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=14 status=active
| |- 5:0:0:1 sdd 8:48 active ready running
| `- 6:0:0:1 sde 8:64 active ready running
`-+- policy='round-robin 0' prio=9 status=enabled
  |- 3:0:0:1 sdb 8:16 active ready running
  `- 4:0:0:1 sdc 8:32 active ready running

我的/etc/multipath.conf样子是这样的:

defaults {
    user_friendly_names yes
    path_selector "round-robin 0"
    path_grouping_policy multibus
}

multipaths {
    multipath {
        wwid 3600a098000b5efae00000e9a5b9b58f5
        alias backupeng
    }
}

出于性能原因,我需要将所有路径放在同一个路径组中,就像以前一样。我的理解是path_grouping_policy multibus应该这样做。在过去的几个小时里,我尝试过重新启动 multipathd、从头开始在主机上设置 iscsi 和多路径配置等等。

multipathd -k我可以粘贴->的完整输出show config,但我看到的内容与我的 multipath.conf 文件一致。我还能提供其他信息吗?

答案1

您是否实际测量过性能并发现性能下降了?您可能实际上发现性能有所改善,尽管差异可能不是很大。

Dell PowerVault MD3860i 似乎是一种主动/被动(也称为非对称或 ALUA)式存储系统:它有两个存储控制器,每个磁盘在任何时候都被视为“属于”其中一个控制器。如果通过当前不“拥有”磁盘的控制器访问磁盘,则会触发所有权切换,这会增加磁盘 I/O 操作的一些额外延迟。

因此,最好仅使用使用当前拥有正在访问的磁盘的控制器的路径。

您的新multipath -ll输出表明dm-multipath正在使用该rdac协议从存储系统接收 ALUA 信息。也就是说,存储控制器正在告知dm-multipath它当前应该使用哪些路径。该rdac协议是 LSI/Engenio/NetApp 存储控制器及其 OEM 使用的较旧的协议,并且很容易理解。还有其他类似的特定于供应商的协议,SCSI-3 ALUA 将成为传达此信息的新标准方式,尽管并非所有存储系统都使用它。

您正在设置默认path_grouping_policy 到multibus,但它很可能被编译到 中的硬件特定默认值所覆盖multipath-tools。(特定胜过一般:适用devicemultipath部分中的任何设置都将覆盖部分中设置的值defaults。)

这些内置默认值是与存储设备制造商合作实现的;显然multipath-toolsUbuntu 16.04 中的版本还没有针对 Dell PowerVault MD3860i 的特定默认值,但在 Ubuntu 18.04 中有了。

您可以使用 查看这些内置默认值sudo multipath -t。对于您的存储系统,相关的设置组可能如下所示:

    device {
            vendor "DELL"
            product "(MD34xx|MD38xx)"
            product_blacklist "Universal Xport"
            path_grouping_policy "group_by_prio"
            path_checker "rdac"
            features "2 pg_init_retries 50"
            hardware_handler "1 rdac"
            prio "rdac"
            failback "immediate"
            no_path_retry 30
    }

path_grouping_policymultibus适用于真正的主动/主动存储系统,它允许您无限制地使用任何路径。这些往往是更大、更高级别的存储产品。

您可以编写自己的设置device { ... }overrides { ... }阻止multipath.conf覆盖这些设置,但只有当您拥有存储供应商提供的特定信息,或者您有测试结果证明您实际上比供应商和开发人员更了解时,您才应该在生产中这样做dm-multipath

相关内容