Using Citrix Hypervisor with NetApp ONTAP

Contributors netapp-ranuk netapp-aoife

Introduction

This document provides guidance on ONTAP SAN host configuration settings for Citrix Hypervisor 8 series OS releases with FC, FCoE and iSCSi protocols.

SAN Booting

What you’ll need

If you decide to use SAN booting, it must be supported by your configuration. You can use the NetApp Interoperability Matrix Tool to verify that your OS, HBA, HBA firmware and the HBA boot BIOS, and ONTAP version are supported.

Steps
  1. Map the SAN boot LUN to the host.

  2. Verify multiple paths are available.

    Remember, multiple paths will only be available after the host OS is up and running on the paths.

  3. Enable SAN booting in the server BIOS for the ports to which the SAN boot LUN is mapped.

    For information on how to enable the HBA BIOS, see your vendor-specific documentation.

  4. Reboot the host to verify the boot is successful.

Multipathing

For Citrix Hypervisor (CH) 8.x the /etc/multipath.conf file must exist, but you do not need to make specific changes to the file. CH 8.x is compiled with all settings required to recognize and correctly manage ONTAP LUNs.
You can use the /sbin/mpathutil status command to verify the settings for your ONTAP LUNs.
The following sections provide sample multipath output for a LUN mapped to ASA personas.

All SAN Array (ASA) Configuration

For All SAN Array (ASA) configuration there should be one group of paths with single priorities. All the paths are Active/Optimized, meaning they are serviced by the controller and I/O is sent on all the active paths.

Example

The following example displays the correct output for an ONTAP LUN with four Active/Optimized paths:

# mpathutil status
3600a09803830344674244a357579386a dm-13 NETAPP  ,LUN C-Mode
size=30G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw
policy='service-time 0' prio=50 status=active
  |- 11:0:7:1    sdfi   130:64   active ready running
  |- 11:0:9:1    sdiy  8:288     active ready running
  |- 11:0:10:1  sdml 69:464   active ready running
  |- 11:0:11:1  sdpt  131:304  active ready running
Note Do not use an excessive number of paths to a single LUN. No more than 4 paths should be required. More than 8 paths might cause path issues during storage failures.

Non-ASA Configuration

For non-ASA configuration there should be two groups of paths with different priorities. The paths with the higher priorities are Active/Optimized, meaning they are serviced by the controller where the aggregate is located. The paths with the lower priorities are active but are non-optimized because they are served from a different controller. The non-optimized paths are only used when no optimized paths are available.

Example

The following example displays the correct output for an ONTAP LUN with two Active/Optimized paths and two Active/non-Optimized paths:

# mpathutil status
3600a09803830344674244a357579386a dm-13 NETAPP  ,LUN C-Mode
size=30G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
 |- 1:0:0:11   sde   8:64    active ready running
`- 12:0:8:11  sdua  66:544  active ready running
`-+- policy='service-time 0' prio=10 status=enabled
   |- 1:0:9:11   sddo  71:96   active ready running
   `- 12:0:26:11 sdyt  129:720 active ready running
Note Do not use an excessive number of paths to a single LUN. No more than 4 paths should be required. More than 8 paths might cause path issues during storage failures.

The Citrix Hypervisor 8.x OS is compiled with all settings required to recognize and correctly manage ONTAP LUNs. For Citrix Hypervisor 8.x, an empty zerobyte /etc/multipath.conf file must exist, but you do not need to make specific changes to the file.

Enable the host multipath service from the Xencenter Management Portal and verify that the multipath service is enabled and running.

# systemct1 status multipathd
multipathd.service - Device-Mapper Multipath Device Controller
  Loaded:  load (/usr/lib/systemd/system/multipathd.service; enabled; vendor preset: enabled)
 Drop-In:  /etc/systemd/system/multipathd.service.d
             slice.config
  Active:  active (running) since Fri YYYY-MM-DD 00:00:26 IST; 1 month 9 days ago
Main PID:  3789 (multipathd)
  CGroup:  /control.slice/multipathd.service
            3789  /sbin/multipathd

There is no requirement to append content to the /etc/multipath.conf file, unless you have devices that you do not want to be managed by multipath or you have existing settings that override defaults. You can add the following syntax to the multipath.conf file to exclude the unwanted devices.

# cat /etc/multipath.conf
blacklist {
     wwid    <DevId>
     devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
     devnode "^hd[a-z]"
     devnode "^cciss.*"
}
Note Replace the <DevID> with the WWID string of the device you want to exclude.
Example

In this example for Citrix Hypervisor 8.x, sda is the local SCSI disk that we need to the blacklist.

  1. Run the following command to determine the WWID:

    # lib/udev/scsi_id -gud /dev/sda
    3600a098038303458772450714535317a
  2. Add this WWID to the blacklist stanza in the /etc/multipath.conf:

    #cat /etc/multipath.conf
    blacklist {
      wwid    3600a098038303458772450714535317a
      devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9*]"
      devnode "^hd[a-z]"
      devnode "^cciss.*"
    }

Refer to the multipath parameter run time configuration by using the $multipathd show config command. You should always check your running configuration for legacy settings that might be overriding default settings, especially in the defaults section.

The following table shows the critical multipathd parameters for ONTAP LUNs and the required values. If a host is connected to LUNs from other vendors and any of these parameters are overridden, they need to be corrected by later stanzas in multipath.conf that apply specifically to ONTAP LUNs. If this is not done, the ONTAP LUNs might not work as expected. The following defaults should only be overridden in consultation with NetApp and/or the OS vendor and only when the impact is fully understood.

Parameter Setting

detect_prio

yes

dev_loss_tmo

"infinity"

failback

immediate

fast_io_fail_tmo

5

features

"3 queue_if_no_path pg_init_retries 50"

flush_on_last_del

"yes"

hardware_handler

"0"

path_checker

"tur"

path_grouping_policy

"group_by_prio"

path_selector

"service-time 0"

polling_interval

5

prio

"ontap"

product

LUN.*

retain_attached_hw_handler

yes

rr_weight

"uniform"

user_friendly_names

no

vendor

NETAPP

Example

The following example illustrates how to correct an overridden default. In this case, the multipath.conf file defines values for path_checker and detect_prio that are not compatible with ONTAP LUNs. If they cannot be removed because of other SAN arrays attached to the host, these parameters can be corrected specifically for ONTAP LUNs with a device stanza.

# cat /etc/multipath.conf
defaults {
  path_checker readsector0
  detect_prio no
}
devices{
        device{
                vendor "NETAPP "
                product "LUN.*"
                path_checker tur
                detect_prio yes
        }
}
Note Citrix Hypervisor recommends use of Citrix VM tools for all Linux and Windows based guest VMs for a supported configuration.

Known Problems and Limitations

NetApp Bug ID Title Description Citrix Tracker ID

1242343

Kernel disruption on Citrix Hypervisor 8.0 with QLogic QLE2742 32GB FC during storage failover operations

Kernel disruption might occur during storage failover operations on Citrix Hypervisor 8.0 kernel (4.19.0+1) with QLogic QLE2742 32GB HBA. This issue prompts a reboot of the operating system and causes application disruption. If kdump is configured, the kernel disruption generates a vmcore file under the /var/crash/ directory. You can use the vmcore file to understand the cause of the failure. After the kernel disruption, you can recover the operating system by rebooting the host operating system and restarting the application.

NETAPP-98