md3200i 上的多路径负载平衡

md3200i 上的多路径负载平衡

我正在使用 iSCSI MD3200i SAN 设置一组服务器,用于共享存储。一切运行良好,但有一个小细节似乎无法正常工作。多路径似乎只想对 SAN 的 iSCSI 连接进行故障转移。我想让它在负载平衡模式下工作,以便它使用每条路径,而不仅仅是一条或另一条路径。

这里总有一个显示为鬼,这意味着它没有被使用。

[root@kvm-01]~# multipath -ll
mpath2 (36842b2b0006b9d87000004383bf558d9) dm-5 DELL,MD32xxi
[size=2.2T][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac][rw]
\_ round-robin 0 [prio=100][active]
 \_ 8:0:0:0   sdb 8:16  [active][ready]
  \_ 7:0:0:0  sdc 8:32  [active][ghost]

我的多路径配置:

[root@kvm-01]~# egrep -v '(#|^$)' /etc/multipath.conf
blacklist {
        device {
                vendor  "*"
                product "Universal Xport"
        }
        device {
                vendor  "*"
                product "MD3000"
        }
        device {
                vendor  "*"
                product "MD3000i"
        }
        device {
                vendor  "*"
                product "Virtual Disk"
        }
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z][[0-9]*]"
devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
devnode "^sda$"
}
defaults {
        user_friendly_names   yes
        polling_interval      5
        selector              "round-robin 0"
        path_checker          rdac
        path_grouping_policy  multibus
        rr_weight             uniform
        no_path_retry         30
        failback              immediate
        rr_min_io             100
        prio_callout          "/sbin/mpath_prio_rdac /dev/%n"
        max_fds               8192
}
devices {
        device {
                vendor                "DELL"
                product               "MD32xxi"
                hardware_handler      "1 rdac"
                features              "2 pg_init_retries 50"
        }
        device {
                vendor                "DELL"
                product               "MD32xx"
                hardware_handler      "1 rdac"
                features              "2 pg_init_retries 50"
        }
        device {
                vendor                "DELL"
                product               "MD36xxi"
                hardware_handler      "1 rdac"
                features              "2 pg_init_retries 50"
        }
}

我尝试了多种 group_by 和 rr_weight 设置,结果都相同。

[root@kvm-01]~# lsmod | grep rdac
dm_rdac                41673  1
dm_multipath           58457  3 dm_round_robin,dm_rdac
scsi_mod              199001  14 dm_rdac,be2iscsi,ib_iser,iscsi_tcp,bnx2i,cxgb3i,libiscsi2,scsi_transport_iscsi2,scsi_dh,sr_mod,sg,libata,megaraid_sas,sd_mod

我也尝试过加载 scsi_dh_rdac,但没有什么区别。

[root@kvm-01]~# egrep -v '(#|^$)' /etc/iscsi/iscsid.conf
node.startup = automatic
node.session.timeo.replacement_timeout = 30
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 15
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 20
node.session.initial_login_retry_max = 8
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
node.conn[0].iscsi.HeaderDigest = None
node.session.iscsi.FastAbort = No
node.session.xmit_thread_priority = -20
node.conn[0].iscsi.MaxXmitDataSegmentLength = 0

我已经研究这个问题一段时间了,我发现很多人将此设置与 MD3000i 配合使用,但没有人确认 3200i 是否支持。我发现一个人说它不支持它,因为辅助控制器在设计上是被动的,但我无法在戴尔的文档中证实这一点。

[root@kvm-01]~# uname -a
Linux kvm-01 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

答案1

概括

您唯一可以实现的负载平衡是将 LUN 分散到控制器之间。虽然它宣称自己是主动-主动,但实际上它是一个双主动 SAN。因此,一个 LUN 一次最多只能与一个存储处理器相关联,但两个控制器都可以处于活动状态并驱动专用于每个控制器的 LUN。这就是本例中主动/主动的含义,即 SAN 可以得到充分利用,而不是单个 LUN 可以同时由两个控制器进行负载平衡。

细节

你的 sdc 路径状态说明了一切,鬼魂==被动,因此您的所有多路径配置都适用于故障转移。根据定义,您的配置是主动/被动的。

http://sourceware.org/lvm2/wiki/MultipathUsageGuide

该备用存储控制器需要配置为主动/主动模式才能完成您的要求;这可能是 SAN 的限制。

确认

在使用同一 SAN 回答另一个问题时,我在网上发现了有关 SAN 的文档,并验证了此品牌和型号实际上是双主动的。请参阅:

Dell PowerVault MD3200i dm-多路径配置和 Debian 6.0 中的性能障碍(squeeze)

答案2

MD3200i(以及所有其他 LSI 品牌)使用 RDAC。这是一种 a/p 算法。

相关内容