Correct setup for multipath on RHEL 5.7 with EMC Clariion SAN / ALUA mode

Latest response

Hi,

I'm building a set of RHEL 5.7 servers on Cisco UCS hardware with an EMC SAN (ALUA/type 4 mode).

 

With default multipathd config I experience I/O errors when accessing the passive/low prirority paths directly.

However if I disable the "healthy" paths access to the multipath device works as expected.

I have tried various configuration settings based on the following documents:

https://bugzilla.redhat.com/show_bug.cgi?id=482737

https://access.redhat.com/kb/docs/DOC-47889

https://access.redhat.com/kb/docs/DOC-48959

 

This is my current configuration:

 

  device {
       vendor                 "DGC "
       product                ".*"
       path_grouping_policy   group_by_prio
       getuid_callout         "/sbin/scsi_id -g -u -s /block/%n"
       prio_callout           "/sbin/mpath_prio_emc /dev/%n"
       path_checker           emc_clariion
       path_selector          "round-robin 0"
       features               "1 queue_if_no_path"
       no_path_retry          300
       hardware_handler       "1 alua"
       failback               immediate
  }
  device {
       vendor                 "DGC "
       product                ".*"
       path_grouping_policy   group_by_prio
       getuid_callout         "/sbin/scsi_id -g -u -s /block/%n"
       prio_callout           "/sbin/mpath_prio_emc /dev/%n"
       path_checker           emc_clariion
       path_selector          "round-robin 0"
       features               "1 queue_if_no_path"
       no_path_retry          300
       hardware_handler       "1 alua"
       failback               immediate
  }
  device {
       vendor                 "DGC "
       product                ".*"
       path_grouping_policy   group_by_prio
       getuid_callout         "/sbin/scsi_id -g -u -s /block/%n"
       prio_callout           "/sbin/mpath_prio_emc /dev/%n"
       path_checker           emc_clariion
       path_selector          "round-robin 0"
       features               "1 queue_if_no_path"
       no_path_retry          300
       hardware_handler       "1 alua"
       failback               immediate
  }
  device {
       vendor                 "DGC "
       product                ".*"
       path_grouping_policy   group_by_prio
       getuid_callout         "/sbin/scsi_id -g -u -s /block/%n"
       prio_callout           "/sbin/mpath_prio_emc /dev/%n"
       path_checker           emc_clariion
       path_selector          "round-robin 0"
       features               "1 queue_if_no_path"
       no_path_retry          300
       hardware_handler       "1 alua"
       failback               immediate
  }
 
My multipath devices show up as this:
mpath2 (36006016085102d00be0d0344ebdde011) dm-2 DGC,VRAID
[size=20G][features=1 queue_if_no_path][hwhandler=1 emc][rw]
\_ round-robin 0 [prio=2][active]
 \_ 0:0:1:16 sdi 8:128 [active][ready]
 \_ 1:0:1:16 sdo 8:224 [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 0:0:0:16 sdd 8:48  [active][ready]
 \_ 1:0:0:16 sdk 8:160 [active][ready]
mpath2 (36006016085102d00be0d0344ebdde011) dm-2 DGC,VRAID
[size=20G][features=1 queue_if_no_path][hwhandler=1 emc][rw]
\_ round-robin 0 [prio=2][active]
 \_ 0:0:1:16 sdi 8:128 [active][ready]
 \_ 1:0:1:16 sdo 8:224 [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 0:0:0:16 sdd 8:48  [active][ready]
 \_ 1:0:0:16 sdk 8:160 [active][ready]
 
(I get I/O errors reported on boot time, also if I try to do I/O to the pri 0 group devices I get I/O errors - but they work OK if I disable the pri 2 devices).
 
Are the I/O errors I see real or can they be ignored? What would a correct multipath configuration for this setup be?
 
Martin

Responses