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.

  1. Change  the user_friendly_names parameter to no.

  2. Make a backup of initrd-p_w_picpath.

  3. Place the above multipath.conf file in the /etc directory.

  4. 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.

  5. 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`

  6. 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        }}