Multipathing

The MD3000i uses RDAC to impliment failover. RDAC is not in the 2.6.18 kernel, and the tools do not support RDAC hardware. For this reason I have managed to acquire a backported source from the 2.6.22 kernel and nicely packaged it ready to be compiled and installed into the kernel modules directory. I have also back-ported the tools to etch from sid.

If you added my repository to your apt-soruces and installed the software as above, you will already have the new version of the multipath-tools. We can now move on to building the modules.

RDAC Modules

Lets get the source and put it in /usr/src, compile and install it.

eddie:~# cd /usr/src
eddie:/usr/src# wget http://www.performancemagic.com/~gregc/debian/dm-rdac.tar.bz2
eddie:/usr/src# tar -jxf dm-rdac.tar.bz2
eddie:/usr/src# cd ../dm-rdac
eddie:/usr/src/dm-rdac# make install

Multipath Configuration

Now that we have the modules compiled and installed, we need to setup a configuration file so that the multipath modules/daemon will choose the correct devices.

Insert the following into an empty /etc/multipath.conf file.

defaults {
        udev_dir                /dev
        user_friendly_names     yes
}
blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
        devnode "^sda"
        devnode "^sdb"
        devnode "^sda[0-9]"
        devnode "^sdb[0-9]"
        device {
                vendor DELL
                product "PERC|Universal"
        }
}
devices {
        device {
                vendor                  DELL
                product                 MD3000i
                hardware_handler        "1 rdac"
                path_checker            rdac
                path_grouping_policy    group_by_prio
                prio_callout            "/sbin/mpath_prio_rdac /dev/%n"
                failback                immediate
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        }
}
multipaths {
        mulitpath {
                device {
                        vendor DELL
                        product MD3000i
                }
        }
}

Multipath Discovery

Now we have a configuration and modules, lets clear multipath database and re-establish the paths.

To flush the database use -F and the restart the deamon.

eddie:~# multipath -F
eddie:~# /etc/init.d/multipath-tools restart

Now run multipath with the -ll option to see if you can see the 4 paths, and that the correct hardware-handler is being used. If everything is going well you should have something similar to the following.

eddie:~# multipath -ll
mpath1 (36001c23000c579e10000031047168fcd) dm-2 DELL    ,MD3000i
[size=558G][features=0][hwhandler=1 rdac]
\_ round-robin 0 [prio=6][enabled]
 \_ 5:0:0:1  sdi 8:128 [active][ready]
 \_ 4:0:0:1  sdf 8:80  [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 6:0:0:1  sdl 8:176 [active][ghost]
 \_ 3:0:0:1  sdc 8:32  [active][ghost]
Proudly sponsored by whatisxenhosting.com