I'm in the process of setting up a MD3000i to be used a shared storage for 4 PowerEdge 1950 servers running Citrix Xenserver 5 and am having trouble getting multipath working correctly.
I follow the instructions here: http://www.performancemagic.com/Dell1950_MD3000i_Xen_Debian_iSCSI_RDAC/
but Xenserver 5 is only seeing 2 of 2 paths to the MD3000i when there should be 4 of 4 paths to the shared LUN(s).
[root@xenserver01 ~]# multipath -ll
\_ round-robin 0 [prio=0][active]
\_ 63:0:0:1 sdd 8:48 [active][ghost]
\_ 58:0:0:1 sdr 65:16 [active][ghost]
36002219000b05b400000000000000000dm-2 DELL,Universal Xport
\_ round-robin 0 [prio=1][active]
\_ 63:0:0:31 sdm 8:192 [active][ready]
\_ round-robin 0 [prio=1][enabled]
\_ 58:0:0:31 sds 65:32 [active][ready]
\_ round-robin 0 [prio=200][active]
\_ 63:0:0:0 sdb 8:16 [active][ready]
\_ 58:0:0:0 sdp 8:240 [active][ready]
I can ping all of the iSCSI interfaces on the MD3000i from the server, but can only map LUNs through the interfaces on the first MD3000 controller. I can ping the second controller, but can not map LUNs to it. This also has the side effect of causing the MD3000 to change virtual disks on the second controller over to the first controller. What am I missing here to make the second controller available to the Xenserver 5 servers?
The MD3000i isn't compatible with Linux native MPIO. It surprises me it sees any paths at all.
If you check the MD3000i support matrix (here) you'll see on page 6: "Citrix XenServer Dell edition 5.0 Single-path support only,
no RAID controller failover".
For Linux there's the RDAC driver, but that driver is compatible only with Red Hat Enterprise Linux (check support matrix for exactly which versions as it doesn't support all of them) and SuSE linux. The drivers won't properly install/work under other linux distros (e.g. CentOS, openSuSE, Ubuntu, etc).
Member since 2003
According to this thread over at the Citrix Forums it does work:
Also, it seems odd that there would be this entry in the multipath.conf if it was unsupported:
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout "/sbin/mpath_prio_rdac /dev/%n"
hardware_handler "1 rdac"
Am I missing something here?
So you're accepting someone's (non-Dell I'd say) findings over the Dell documentation that says that it's not supported?
If DM-MPIO would work (actually do load balancing and failover in case of a failure), why would Dell not list it in the support matrix as an option?
Have you tested your setup by generating IO and then pulling a cable and see if failover occurs (on this array it can take more than a minute, so be patient)?
Member since 2003
As we know docs are always 100% accurate and updated the minute anything changes emoticon.Wink.title , but yes I see your point.
I have tested pulling a cable from the host which works fine. However pulling a cable from the array does not.
Also, I am seeing load balancing on the links to one controller, however I can not get any LUNs mapped to the second controller, they just switch over to the first controller.
Anyway, I've got an appointment on Monday with a Dell support engineer, so hopefully we can get to the bottom of this as I doubt I'm the only one with this issue.
Problem solved! emoticon.BigSmile.title
An update to the latest controller firmware on the MD3000i did the trick. I now have 4 of 4 paths on Xenserver and failover/multipath is working properly. Not sure why this made a difference, I didn't make any other config changes and it just started working.
So, although unofficial Multipath with Xenserver 5.0 and the MD3000i works just fine.
Just because DM-MPIO sees the paths, have you been able to confirm it's really doing MPIO? And have you tested failover to see if that maybe works too?
Member since 2003
Yes, I have deactivated iSCSI interfaces on both the server and the MD3000i and it fails over. Additionally I'm seeing load balanced iSCSI traffic on both of the interfaces on the server.