md3200i上的多path负载均衡

我正在设置一个具有iSCSI MD3200i SAN的服务器集群以用于共享存储。 一切正常,但我有一个小细节,我似乎无法工作。 多path似乎只想通过到SAN的iSCSI连接进行故障切换。 我想得到这个工作在负载均衡模式,以便它使用每个path,而不是一个或另一个。

一个人在这里总是performance为幽灵,这意味着它没有被使用。

[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] 

我的多pathconf:

 [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[az][[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。 我发现有一个人说它不支持它,因为辅助控制器是被动的devise,但我一直无法证实,在戴尔的文档。

 [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 

概要

唯一可以做的负载平衡是通过在控制器之间分配LUN。 虽然它宣称自己是主动 – 主动,它实际上是一个双主动SAN。 因此,一个LUN最多只能与一个存储处理器同时关联,但两个控制器都可以处于活动状态,并将LUN专用于每个控制器。 在这种情况下,主动/主动意味着可以充分利用SAN,而不是同一个LUN可以同时由两个控制器进行负载平衡。

细节

sdc的path状态说明了这一切, ghost == passive ,所以你所有的多pathconfiguration都适合故障切换。 根据定义,你的configuration是主动/被动的。

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

该备用存储控制器需要configuration为主动/主动模式来完成您所要做的事情; 这可能是SAN的限制。

validation

在使用同一个SAN回答不同的问题时,我在网上发现了SAN的文档,并证实这个模型和模型实际上是双重的。 看到:

戴尔PowerVault MD3200i dm-multipathconfiguration和性能在Debian 6.0(挤压)

MD3200i(以及其他所有LSI品牌)使用RDAC。 这是一个A / Palgorithm。