Sample Configuration for Citrix XenServer
All versions of Citrix XenServer use a DM-Multipath configuration file, but there might be slight variations in the file based on which Citrix update you have installed. You can replace your current file with sample file and change the values to the ones that are appropriate for your system.
Citrix XenServer, SAN boot LUNs, and user_friendly_names parameter
You can use the sample Citrix XenServer configuration files shown here to create your own multipath.conf file.
When you create your file, keep the following in mind:
Citrix XenServer 6 series | Parameter notes |
---|---|
Blacklist section | You must provide information of your system in the blacklist section. Any names shown in the sample files are examples and will not work with your system. |
wwid <Dev ID> | Use the actual device ID. Run the /sbin/scsi_id -g -u -s /block/%n command on the SCSI drive to be blacklisted. |
SAN boot support | SAN booting is supported only with Citrix XenServer 6 series and the FC/FCoE protocol. |
SAN boot LUNs and the user_friendly_names parameter | NetApp recommends that you set the user_friendly_names parameter to no. There have been reports of problems when this parameter is set to yes. |
The recommended value for the user_friendly_names parameter is no. There have been reports of problems when this parameter is set to yes.
If you create a SAN boot LUN and the installer sets the user_friendly_names parameter to yes, you must perform the following steps.
Change the user_friendly_names parameter to no.
Make a backup of initrd-p_w_picpath.
Place the above multipath.conf file in the /etc directory.
Run the following command:
service multipathd reload
multipath -v3.
Note: multipath -llshould reflect the changes on the SAN Boot LUN as per the changed multipath.conf file.
Re-create the initrd-p_w_picpath using the command mkinitrd.
You could use the following command line:
mkinitrd -f /boot/initrd-"`uname -r`".img `uname -r`
Reboot the host.
Note: Currently SAN Boot LUN does not reflect queue_if_no_path feature. To overcome this limitation, perform the step mentioned below:
Run multipath command after boot.
Note: To avoid running multipath command on every boot, add /sbin/multipath to /etc/rc.d/rc.local file.
Running multipath forces the unused LUNs (on which there is no Storage Repository) to get added to the XAPI Layer.
To remove the scsi_device ID of those unused LUNs from mpathutil use the following command: # /opt/xensource/sm/mpathutil.py remove <scsi_device-id>.
Skip this step if you have no unused LUNs (where no SR is created).
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.0 with ALUA enabled.
Remember: If you use the blacklist section, you must replace the sample information with the information from your system.
defaults{ user_friendly_names no max_fds max flush_on_last_del no queue_without_daemon no}# All data under blacklist must be specific to your system.blacklist {devnode "^hd[a-z]"wwid ""devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "1 queue_if_no_path" prio_callout "/sbin/mpath_prio_alua /dev/%n" path_checker directio failback immediate hardware_handler "1 alua" rr_weight uniform rr_min_io 128 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.0 and ALUA is not enabled.
Remember: If you use the blacklist section, you must replace the sample information with information for your system.
defaults { user_friendly_names no max_fds max flush_on_last_del no queue_without_daemon no}# All data under blacklist must be specific to your system.blacklist {devnode "^hd[a-z]"wwid ""devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "1 queue_if_no_path" prio callout "/sbin/mpath_prio_ontap /dev/%n" path_checker directio failback immediate hardware_handler "0" rr_weight uniform rr_min_io 128 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.0.2 with ALUA enabled.
defaults { user_friendly_names no max_fds max flush_on_last_del no queue_without_daemon no}# All data under blacklist must be specific to your system.blacklist {devnode "^hd[a-z]"wwid ""devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "1 queue_if_no_path" prio callout "/sbin/mpath_prio_alua /dev/%n" path_checker tur failback immediate hardware_handler "1 alua" rr_weight uniform rr_min_io 128 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenXerver 6.0.2 and ALUA is not enabled.
Note: Unless you are running the iSCSI protocol and Data ONTAP operating in 7-Mode, you should have ALUA enabled.
defaults { user_friendly_names no max_fds max flush_on_last_del no queue_without_daemon no}# All data under blacklist must be specific to your system.blacklist {devnode "^hd[a-z]"wwid ""devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "1 queue_if_no_path" prio callout "/sbin/mpath_prio_ontap /dev/%n" path_checker tur failback immediate hardware_handler "0" rr_weight uniform rr_min_io 128 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.1 with ALUA enabled.
Note: Remember, if you use the blacklist section, you must replace the sample information with information from your system.
defaults { user_friendly_names no queue_without_daemon no flush_on_last_del no max_fds max}blacklist {devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^hd[a-z]"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "1 queue_if_no_path" prio_callout "/sbin/mpath_prio_alua /dev/%n" path_checker tur failback immediate hardware_handler "1 alua" rr_weight uniform rr_min_io 128 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.1 without ALUA enabled.
Note: Remember: If you use the blacklist section, you must replace the sample information with information for your system.
defaults { user_friendly_names no queue_without_daemon no flush_on_last_del no max_fds max}blacklist {devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^hd[a-z]"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "1 queue_if_no_path" prio_callout "/sbin/mpath_prio_ontap /dev/%n" path_checker tur failback immediate hardware_handler "0" rr_weight uniform rr_min_io 128 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.2 with ALUA enabled.
Note: Remember: If you use the blacklist section, you must replace the sample information with information from your system.
defaults { flush_on_last_del no dev_loss_tmo 30 fast_io_fail_tmo off}blacklist { wwid device_id_of the_device_to_be_blacklisted devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN.*" prio "alua" hardware_handler "1 alua" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.2 without ALUA enabled.
defaults { flush_on_last_del no dev_loss_tmo 30 fast_io_fail_tmo off}blacklist { wwid device_id_of the_device_to_be_blacklisted devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN.*" prio "ontap" hardware_handler "0" }}
The following file provides an example of the values you need to supply when your host is running Citrix XenServer 6.5 without ALUA enabled.
Note: If you use the blacklist section, you must replace the sample information with information from your system.
blacklist {wwid device_id_of the_device_to_be_blacklisteddevnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^hd[a-z]"devnode "^cciss.*"}devices { device { vendor "NETAPP" product "LUN.*" dev_loss_tmo 30 fast_io_fail_tmo off flush_on_last_del no }}