11 novembre 2009

Linux ALUA Multipath with EMC CX 4-120

First, on EMC CX 4-120, Check that storage groups on EMC CX 4-120 are configured for ALUA (Assymetric Logical Unit Access): failovermode should be 4

Note: if no agent is running on server side, arraycommpath should be set to 0.
Then, on server side (linux OS is RHEL5.3) we are using following /etc/multipath.conf file:


blacklist {
device {
vendor ".*"
model  ".*"
}
}
blacklist_exceptions {
device {
vendor  "DGC.*"
model  "RAID.*"
}
}
devices {
device {
vendor  "DGC.*"
product ".*"
path_grouping_policy    failover
getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
prio_callout            "/sbin/mpath_prio_alua /dev/%n"
no_path_retry           fail
path_checker            alua
failback                immediate
}
}
Note: blacklist and blacklist_exceptions should use the same kind of definitions: If some devices are blacklisted by devnode regexp, exceptions for these devices have to be defined by devnode keyword too.
Here, we only want to apply multipath on EMC devices. So we use
blacklist (by default, all devices will be blacklisted) and blacklist exception (EMC vendor TAG is DGC...) based on device keyword (with vendor/model fields).
So, for all EMC devices, multipath is applied using ALUA rules (priority, checker, ...).

Now, there's an issue with multipath tools (device-mapper-multipath package for RHEL5) and internal settings (hardcoded in tools) are overriding our settings from /etc/multipath.conf.
These internal settings will lead multipath to use default EMC multipath based on tresspass technology, and ALUA won't be used:
multipath errors are generated, tresspass commands are sent to the storage processors, and multipath devices won't work.
The solution suggested is to remove internal settings for EMC from multipath tools. These settings are located in libmultipath/hwtable.c file. Ask for someone who know how to modify/patch/rebuild/ RPMs if you don't know.

At last, here is an example of multipath failover based on ALUA for EMC CX 4-120:


[root@XXXXXX ~]# multipath -ll
3600601609fa02200007deb7d0881de11 dm-7 DGC,RAID 5 [size=1.2T][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=10][enabled]
\_ 7:0:0:0 sdb 8:16  [active][ready]
\_ round-robin 0 [prio=50][active]
\_ 9:0:0:0 sdc 8:32  [active][ready]

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.