我刚刚升级了一个功能Ubuntu16.04主机到18.04,现在有问题的多路径。
软件包版本:* multipath-tools 0.7.4-2 ubuntu3* open-iscsi 2.0.874-5 ubuntu2.7
我有一个戴尔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应该这样做。在过去的几个小时里,我尝试重新启动multipath、设置iscsi和多路径从零开始信任主机等等。
我可以粘贴multipathd -k -> show config的全部输出,但我在其中看到的内容与我的multipath.conf文件一致。还有其他我能提供的信息吗?
发布于 2019-05-17 05:46:13
你是否真的测量过它的性能并发现它已经退化了?实际上,您可能会发现它有所改进,尽管差别可能不是很大。
戴尔PowerVault MD3860i似乎是一种主动/被动(也称为非对称,或ALUA)风格的存储系统:它有两个存储控制器,每个磁盘在任何给定的时间都被视为“拥有”其中一个控制器。如果通过当前不“拥有”磁盘的控制器访问磁盘,则会触发所有权切换,这会给磁盘I/O操作增加一些额外的延迟。
因此,最好只使用使用当前拥有正在访问的磁盘的控制器的路径。
您的新multipath -ll输出表明,dm-multipath正在使用rdac协议从存储系统接收ALUA信息。也就是说,存储控制器正在告诉dm-multipath当前应该使用哪些路径。rdac协议是LSI/Engenio/NetApp存储控制器和它们的原始设备制造商使用的一种较旧的协议,它得到了很好的理解。还有其他类似的特定于供应商的协议,SCSI-3 ALUA将成为传递这些信息的新的标准方式,尽管还不是所有的存储系统都使用它。
您将默认的path_grouping_policy设置为multibus,但它很可能被编译为multipath-tools的特定硬件默认值覆盖。(特定的节拍一般:适用的device或multipath节中的任何设置都将覆盖defaults节中设置的值。)
这些内置的默认设置是与存储设备制造商合作实现的;显然,Ubuntu16.04中的multipath-tools版本还没有为戴尔PowerVault MD3860i提供具体的默认设置,但在Ubuntu18.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
}multibus path_grouping_policy用于真正的active/active存储系统,允许您不受限制地使用任意和所有路径。这些往往是更大,更高层次的存储产品。
您可以在device { ... }中编写自己的multipath.conf或overrides { ... }块来覆盖这些设置,但只有在存储供应商提供了特定信息的情况下,或者有测试结果来证明您确实比供应商和dm-multipath开发人员更了解时,才应该在生产中这样做。
https://serverfault.com/questions/967687
复制相似问题