Thomas Vogt’s IT Blog

knowledge is power …

Linux SAN Multipathing (HP Storage)

Instead of installing the original device-mapper-multipath package there is a simillar package from HP called HPDMmultipath-[version].tar.gz that has already a configuration for HP EVA and XP storage devices. The HPDMmultipath-[version].tar.gz can be downloaded from http://www.hp.com -> Software and Drivers -> Enter Linux as Search String.

 # tar -zxvf HPDMmultipath-3.0.0.tar.gz
 # cd HPDMmultipath-3.0.0/RPMS
 # rpm -ivh HPDMmultipath-tools[version]-[Linux-Version]-[ARCH].rpm

 # vim /etc/multipath.conf

defaults {
        udev_dir                /dev
        polling_interval        10
        selector                "round-robin 0"
        path_grouping_policy    failover
        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        prio_callout            "/bin/true"
        path_checker            tur
        rr_min_io               100
        rr_weight               uniform
        failback                immediate
        no_path_retry           12
        user_friendly_names     yes
}

devnode_blacklist {
        devnode         "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode         "^hd[a-z]"
        devnode         "^cciss!c[0-9]d[0-9]*"
}

devices {

device {
        vendor                  "HP|COMPAQ"
        product                 "HSV1[01]1 \(C\)COMPAQ|HSV2[01]0"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "/sbin/mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           12
}

device {
        vendor                  "HP"
        product                 "OPEN-.*"
        path_grouping_policy    multibus
        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        path_selector           "round-robin 0"
        rr_weight               uniform
        prio_callout            "/bin/true"
        path_checker            tur
        hardware_handler        "0"
        failback                immediate
        no_path_retry           12
}

}

Show paths to an EVA8000 storage array.

# multipath -ll
mpath0 (3600508b4001054a20001100001c70000)
[size=4.0G][features="1 queue_if_no_path"][hwhandler="0"]
\_ round-robin 0 [prio=200][active]
 \_ 0:0:1:1 sdd 8:48   [active][ready]
 \_ 0:0:3:1 sdj 8:144  [active][ready]
 \_ 1:0:2:1 sds 65:32  [active][ready]
 \_ 1:0:3:1 sdv 65:80  [active][ready]
\_ round-robin 0 [prio=40][enabled]
 \_ 0:0:0:1 sda 8:0    [active][ready]
 \_ 0:0:2:1 sdg 8:96   [active][ready]
 \_ 1:0:0:1 sdm 8:192  [active][ready]
 \_ 1:0:1:1 sdp 8:240  [active][ready]

ProLiant Support Pack (PSP)
While installing PSP from HP, unckeck the HBA failover driver in the installation screen, otherwise a new kernel will be installed and the above installed multipathing driver isn’t working correctly anomymore.

February 4, 2008 - Posted by | HP, Linux, SAN

2 Comments »

  1. Hi, I have this situation, but after install Proliant Support Pack (PSP) on my HP Blade 465c, it boots with the new initrd and only see one path for every disk, and with load on the server, the server freze if one HBA goes down. There is a way to see all the path again with the PSP installed?

    Comment by jorge | November 18, 2009 | Reply

    • Hi Jorge,

      please check weather “grep version /proc/scsi/qla2xxx/0” shows “Driver version x.x.x.x” without “-fo” appended to the version. Otherwise you have enabled the failover mechanism from the QLA-driver.
      You can change this setting while changeing “failover = 0” in “/etc/hp_qla2x00.conf” and running “hp_compile_qldriver”. You will of course have to reload the kernel-module – or even better reboot.

      Regards,

      Andreas

      Comment by Andreas | December 10, 2009 | Reply


Leave a comment