1. Prerequisites
First of all, create at least one Storage Repository (SR) and one Virtual Disk (VD) in the Intel Management Module GUI where you will install the Citrix Xenserver Dom0 host. The VD needs to be more than 16Gb in size. Whether you install the host on sas or ssd makes no difference in performance for the guests. I installed my hosts to sas and saved valuable ssd space for guests. Assign your VD to the server you will install Xen to. Set affinity to SCM1 for all VD-s you create. Open the KVM session for the appropriate Compute Module and attach Xenserver installation iso. Power on the Compute Module.
2. Install Citrix Xenserver 6.0.2
Type ‘multipath’ on initial install prompt to begin installation with multipath support.
Choose the VD you just assigned to the Compute Module as installation target.
After installation is complete, you may see disk access errors during bootup, this is normal.
3. Install patched driver and change multipath.conf file
Original driver included with XenServer 6.0.2 is unstable wth multipathing.
I compiled a stable driver rpm with Citrix XenServer Driver Development Kit (DDK) from RedHat driver available on Intel site.
Note that this has been compiled against 6.0.2 and you may need to recompile if you use a more recent XenServer version.
Download the driver and multipath.conf file: scsi_dh_alua_intelmodular_cbvtrak.i386.tar.gz
Unpack the file:
tar -zxvf scsi_dh_alua_intelmodular_cbvtrak.i386.tar.gz
Install scsi_dh_alua driver rpm patched for Intel Modular Server.
The driver already exists so we have to force in order to replace it.
rpm -ivh --force scsi_dh_alua_intelmodular_cbvtrak.i386.rpm
Backup your current /etc/multipath.conf to /etc/multipath.conf.originalxs602:
cp /etc/multipath.conf /etc/multipath.conf.originalxs602
Move the multipath.conf file from the unpacked tar to the /etc folder:
mv multipath.conf /etc/multipath.conf
Warning: do not copy and paste the file contents as it can make the config file corrupt and thus failing server multipath setup.
Reboot
You may still see disk access errors during bootup, this is normal.
At this point you should already see both paths active, see my sample:
multipath -ll
Response:
2223700015563b1df dm-0 Intel,Multi-Flex [size=16G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=50][active] \_ 0:0:0:0 sda 8:0 [active][ready] \_ round-robin 0 [prio=1][enabled] \_ 0:0:1:0 sdb 8:16 [active][ready]
4. Make a new initial ramdisk
Backup your current initrd.img and initrd.kdump
mv initrd-$(uname -r).img initrd-$(uname -r).img.old mv initrd-2.6.32.12-0.7.1.xs6.0.2.542.170665kdump.img initrd-2.6.32.12-0.7.1.xs6.0.2.542.170665kdump.img.old
Make new initial ramdisk by running both mkinitrd commands found in
cat initrd-$(uname -r).img.cmd cat initrd-2.6.32.12-0.7.1.xs6.0.2.542.170665kdump.img.cmd
Reboot
You should see no more errors during bootup
Check your paths
multipath -ll
With one VD attached you shold see something like this:
22202000155fdb615 dm-0 Intel,Multi-Flex [size=100G][features=1 queue_if_no_path][hwhandler=1 alua][rw] \_ round-robin 0 [prio=50][active] \_ 0:0:0:0 sda 8:0 [active][ready] \_ round-robin 0 [prio=1][enabled] \_ 0:0:1:0 sdb 8:16 [active][ready]
As you can see, sda is in use (active) and sdb is on standby (enabled).
4. Create and link other VD-s to the Compute Module
From Intel Intel GUI link VD-s to Compute Module.
In XenCenter right click on Pool – New SR – Hardware HBA.
Check your paths:
multipath -ll
Here is a sample response from my setup:
22202000155fdb615 dm-0 Intel,Multi-Flex [size=100G][features=1 queue_if_no_path][hwhandler=1 alua][rw] \_ round-robin 0 [prio=50][active] \_ 0:0:2:0 sda 8:0 [active][ready] \_ round-robin 0 [prio=1][enabled] \_ 0:0:1:0 sdc 8:32 [active][ready] 222ac00015543fe63 dm-5 Intel,Multi-Flex [size=420G][features=1 queue_if_no_path][hwhandler=1 alua][rw] \_ round-robin 0 [prio=50][enabled] \_ 0:0:2:10 sde 8:64 [active][ready] \_ round-robin 0 [prio=1][enabled] \_ 0:0:1:10 sdd 8:48 [active][ready]
5. Modify your lvm.conf to filter out /dev/sd* when running commands: pvs, vgs, lvs
Find the line starting with ‘filter’ in /etc/lvm/lvm.conf
Edit it as follows:
filter = [ "r|/dev/sd.*|", "r|/dev/xvd.|", "r|/dev/VG_Xen.*/*|"]
6. Updating, patching, hotfixes
Running hotfix XS602E004 is safe (kernel is not updated).
Running hotfix XS602E005 is safe as update process will rebuild your initrd as well.
7. Failover testing on Intel Modular Server with multipathing
See my other post with successful filover tests with this configuration
ahh! I was almost there but the force option was the key I was missing.
Awesome post ! really helped me. Thanks a lot.
A new kernel is included in XS605E005. Do you still have you ddk environment to recompile a new driver.
http://support.citrix.com//article/CTX133814
Here’s my new post about the updated driver for the new XS6.0.2.552 kernel:
http://www.xenlens.com/compile-an-intel-modular-server-multipath-driver-for-xenserver-6-0-2-xs602e005-kernel-with-xenserver-ddk/
Yes! Thanks a lot, works great. I could not upgrade to XS6 due to this multipathing issue, so problem solved.