[dm-devel] Clariion CX600 automatic failback support

Phil Lowden (plowden) plowden at cisco.com
Wed Oct 26 19:37:50 UTC 2005


I'm using LVM2 with device-mapper-multipath 0.4.5 on GA RHEL 4 update 2 
release, kernel version 2.6.9-22.ELsmp.  Storage is 4 Clariion CX600
LUNs, 
2 with a primary path on SP A and 2 on SP B.  HBAs are QLA3240 with
firmware 3.03.15 IPX and the RedHat-distributed driver version
8.01.00b5-rh2.

When I disrupt one path by disabling a host or SP switch port,
failover works great but failback doesn't happen automatically
with the current config (below).  By this I mean
when the connection to e.g. SP B is restored, all
4 LUNs stay trespassed to SP A.  Is this by design?
Or is there support for automatic failback, i.e.
I/O is paused and a trespass is issued to restore
the 2 SP B LUNs to their primary paths?

Of course manual failback is possible, but without
quiescing I/O I found I was able to munge my LVM2
objects up quite nicely.  Manual failback with quiesced 
I/O is fine.

Here's the /etc/multipath.conf:

defaults {
       multipath_tool  "/sbin/multipath -v0"
       udev_dir        /dev
       polling_interval 10
       default_selector        "round-robin 0"
       default_path_grouping_policy    multibus
       default_getuid_callout  "/sbin/scsi_id -g -u -s /block/%n"
       default_prio_callout    "/bin/true"
       default_features        "0"
       rr_wmin_io              100
       failback                immediate
}
devices {
    device {
        vendor "DGC     "
        product "RAID 5        "
        #path_grouping_policy group_by_serial
        path_grouping_policy failover
        getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
        path_checker    emc_clariion
        path_selector   "round-robin 0"
        features        "0"
        hardware_handler        "1 emc"
    }
}

Here's the multipath -l output (with both paths up)
and a few commands to help make sense of it:

[root at sandbox ~]# multipath -l
3600601604b600d00743e69d8862fda11
[size=1 GB][features="0"][hwhandler="1 emc"]
\_ round-robin 0 [active]
  \_ 1:0:0:3 sdd  8:48    [active]
\_ round-robin 0 [enabled]
  \_ 0:0:0:3 sdh  8:112   [active]

3600601604b600d00773e69d8862fda11
[size=4 GB][features="0"][hwhandler="1 emc"]
\_ round-robin 0 [active]
  \_ 1:0:0:0 sda  8:0     [active]
\_ round-robin 0 [enabled]
  \_ 0:0:0:0 sde  8:64    [active]

3600601604b600d00763e69d8862fda11
[size=3 GB][features="0"][hwhandler="1 emc"]
\_ round-robin 0 [active]
  \_ 1:0:0:1 sdb  8:16    [active]
\_ round-robin 0 [enabled]
  \_ 0:0:0:1 sdf  8:80    [active]

3600601604b600d00753e69d8862fda11
[size=2 GB][features="0"][hwhandler="1 emc"]
\_ round-robin 0 [active]
  \_ 1:0:0:2 sdc  8:32    [active]
\_ round-robin 0 [enabled]
  \_ 0:0:0:2 sdg  8:96    [active]

# ls -l /dev/mpath
total 0
lrwxrwxrwx  1 root root 7 Oct 21 12:56 3600601604b600d00743e69d8862fda11
-> ../dm-3
lrwxrwxrwx  1 root root 7 Oct 21 12:56 3600601604b600d00753e69d8862fda11
-> ../dm-2
lrwxrwxrwx  1 root root 7 Oct 21 12:56 3600601604b600d00763e69d8862fda11
-> ../dm-1
lrwxrwxrwx  1 root root 7 Oct 21 12:56 3600601604b600d00773e69d8862fda11
-> ../dm-0

# pvs
  PV         VG      Fmt  Attr PSize    PFree  
  /dev/dm-0  vgtest2 lvm2 a-      4.00G   3.90G
  /dev/dm-1  vgtest2 lvm2 a-      3.00G   2.90G
  /dev/dm-2  vgtest2 lvm2 a-      2.00G   1.90G
  /dev/dm-3  vgtest2 lvm2 a-   1020.00M 920.00M

Thanks in advance,
Phil Lowden




More information about the dm-devel mailing list