XenServer Multipathing with IBM DS4800

I was recently tasked with configuring multipathing in Citrix XenServer 5.5 for use with an IBM DS4800 SAN.  At first glance I thought, piece of cake, I’ve done quite a few setups like this with Dell, EMC, and HP storage gear so the IBM should be the same right?  WRONG!

There are two multipathing drivers that have been available since XenServer 5.0 SP2.  They are the DMP (dynamic multipath) and MPP (multipath proxy).  DMP is the one that is used by default.  In fact when you go into XenCenter and enable the check box for ‘multipathing’ you are essentially turning on DMP.  Normally this works well but the IBM DS4800 and other storage controllers that use RDAC (redundant disk array controller) need a little more.

If you just go through and enable the DMP driver you’ll be able to see, format, and use the storage from the DS4800… but what you’ll eventually notice is that the LUN will continually failover to another path using a different storage controller.  This is called thrashing and its not a good thing.

To stop the thrashing you’ll need to do one of two things:  1) tell the DS4800 to disallow AVT (automatic volume transfer) or 2) tell the XenServer to pick a path and stick with it until a failover is necessary (i.e. STOP THE ROUND ROBIN)

The first option of disabling AVT is actually the easier of the two and is done on the storage controller itself.  Don’t worry you can set this by LUN or even by host so you won’t be in danger of tampering with your other SAN attached systems.  The way to do this in the IBM DS4800 is to change the host type to something that doesn’t perform AVT.  The host type of Linux VMware Cluster or LNXCLUVMWARE should do the trick.

The second method of chaning the driver over from DMP to MPP is not as easy.  If you go out and do some searches on the matter you’ll find that Citrix states in CTX121364 “This is the real RDAC driver supported by IBM and other vendors” about the MPP driver.  What you won’t find in that article are steps to enable and actually use the MPP driver.  Your searching might even land you at CTX118791 where you might find specific reference to the IBM DS4xxx.  But once again you’ll be hard pressed to actually find out how to get this thing working.

I recently spoke with the XenServer support team and got some instructios on how to enable the MPP driver in place of the DMP driver.  Its not an official CTX article yet but my understanding is that they are working on it.  Even when it does get released it won’t be for the faint of heart.  I should also point out that the cute little “4 of 4 paths active’ notification that you see in XenCenter ONLY works with DMP so once you switch over to MPP you’ll lose that information.

Changing the host type on the storage controller is definately the easiest and it will allow you to continue to see the multipathing information in XenCenter.  But it definately seems to struggle with performance.  I think this is largely due to the fact that XenServer is still trying to use round robin multipathing but the IBM DS4800 is not allowing access to the LUN through one of the controllers… meaning up to 50% of your I/O requests from XenServer will not be fullfilled.

Leave a Reply