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 seriesParameter notes
Blacklist sectionYou 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 supportSAN 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    "<wwid_of_the_local_disk>"
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    "<wwid_of_the_local_disk>"
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    "<wwid_of_the_local_disk>"
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    "<wwid_of_the_local_disk>"
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_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.*"
                dev_loss_tmo            30
                fast_io_fail_tmo        off
                flush_on_last_del       no
        }
}