Skip to main content
ONTAP SAN Host Utilities

Configure RHEL 7.0 for FCP and iSCSI with ONTAP storage

Contributors netapp-pcarriga netapp-ranuk netapp-sdaffy netapp-aherbin netapp-reenu netapp-sarajane

The Linux Host Utilities software provides management and diagnostic tools for Linux hosts that are connected to ONTAP storage. When you install the Linux Host Utilities on a Red Hat Enterprise Linux (RHEL) 7.0 host, you can use the Host Utilities to help you manage FCP and iSCSI protocol operations with ONTAP LUNs.

Note You don't need to manually configure Kernel-based Virtual Machine (KVM) settings because ONTAP LUNs are automatically mapped to the hypervisor.

Step 1: Optionally, enable SAN booting

You can configure your host to use SAN booting to simplify deployment and improve scalability.

Before you begin

Use the Interoperability Matrix Tool to verify that your Linux OS, host bus adapter (HBA), HBA firmware, HBA boot BIOS, and ONTAP version support SAN booting.

Steps
  1. Create a SAN boot LUN and map it to the host.

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

  3. Verify that the configuration was successful by rebooting the host and verifying that the OS is up and running.

Step 2: Install the Linux Host Utilities

NetApp strongly recommends installing the Linux Host Utilities to support ONTAP LUN management and assist technical support with gathering configuration data.

Note Installing the Linux Host Utilities doesn't change any host timeout settings on your Linux host.

Step 3: Confirm the multipath configuration for your host

You can use multipathing with RHEL 7.0 to manage ONTAP LUNs.

To ensure that multipathing is configured correctly for your host, verify that the /etc/multipath.conf file is defined and that you have the NetApp recommended settings configured for your ONTAP LUNs.

Steps
  1. Verify that the /etc/multipath.conf file exists:

    ls /etc/multipath.conf

    If the file doesn't exist, create an empty, zero-byte file:

    touch /etc/multipath.conf
  2. The first time the multipath.conf file is created, you might need to enable and start the multipath services to load the recommended settings:

    systemctl enable multipathd
    systemctl start multipathd
  3. Each time you boot the host, the empty /etc/multipath.conf zero-byte file automatically loads the NetApp recommended host multipath parameters as the default settings. You shouldn't need to make changes to the /etc/multipath.conf file for your host because the host operating system is compiled with the multipath parameters that recognize and manage ONTAP LUNs correctly.

    The following table shows the native Linux OS compiled multipath parameter settings for ONTAP LUNs.

    Show parameter settings
    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"

    no_path_retry

    queue

    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

  4. Verify the parameter settings and path status for your ONTAP LUNs:

    multipath -ll

    The default multipath parameters support ASA, AFF, and FAS configurations. In these configurations, a single ONTAP LUN shouldn't require more than four paths. If there are more than four paths, it might cause issues with the paths during a storage failure.

    The following example outputs show the correct parameter settings and path status for ONTAP LUNs in an ASA, AFF, or FAS configuration.

    ASA configuration

    An ASA configuration optimizes all paths to a given LUN, keeping them active. This improves performance by serving I/O operations through all paths at the same time.

    # multipath -ll
    3600a09803831347657244e527766394e dm-5 NETAPP,LUN C-Mode
    size=80G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    `-+- policy='service-time 0' prio=50 status=active
      |- 3:0:7:9    sdco 69:192  active ready running
      |- 3:0:8:9    sddi 71:0    active ready running
      |- 14:0:8:9   sdjq 65:320  active ready running
      `- 14:0:7:9   sdiw 8:256   active ready running
    AFF or FAS configuration

    An AFF or FAS configuration should have two groups of paths with higher and lower priorities. Higher priority Active/Optimized paths are served by the controller where the aggregate is located. Lower priority paths are active but non-optimized because they are served by a different controller. Non-optimized paths are only used when optimized paths aren’t available.

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

    # multipath -ll
    3600a09803831347657244e527766394e dm-5 NETAPP,LUN C-Mode
    size=80G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    |-+- policy='service-time 0' prio=50 status=active
    | |- 3:0:3:0    sdd  8:48    active ready running
    | |- 3:0:4:0    sdx  65:112  active ready running
    `-+- policy='service-time 0' prio=10 status=enabled
      |- 14:0:2:0   sdfk 130:96  active ready running
      `- 14:0:5:0   sdgz 132:240 active ready running

Step 4: Optionally, exclude a device from multipathing

If required, you can exclude a device from multipathing by adding the WWID for the unwanted device to the "blacklist" stanza for the multipath.conf file.

Steps
  1. Determine the WWID:

    /lib/udev/scsi_id -gud /dev/sda

    "sda" is the local SCSI disk that you want to add to the blacklist.

    An example WWID is 360030057024d0730239134810c0cb833.

  2. Add the WWID to the "blacklist" stanza:

    blacklist {
    	     wwid   360030057024d0730239134810c0cb833
            devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
            devnode "^hd[a-z]"
            devnode "^cciss.*"
    }

Step 5: Customize multipath parameters for ONTAP LUNs

If your host is connected to LUNs from other vendors and any of the multipath parameter settings are overridden, you need to correct them by adding stanzas later in the multipath.conf file that apply specifically to ONTAP LUNs. If you don't do this, the ONTAP LUNs might not work as expected.

Check your /etc/multipath.conf file, especially in the defaults section, for settings that might be overriding the default settings for multipath parameters.

Caution You shouldn't override the recommended parameter settings for ONTAP LUNs. These settings are required for optimal performance of your host configuration. Contact NetApp support, your OS vendor, or both for more information.

The following example shows how to correct an overridden default. In this example, the multipath.conf file defines values for path_checker and no_path_retry that aren't compatible with ONTAP LUNs, and you can't remove these parameters because ONTAP storage arrays are still attached to the host. Instead, you correct the values for path_checker and no_path_retry by adding a device stanza to the multipath.conf file that applies specifically to the ONTAP LUNs.

Show example
defaults {
   path_checker      readsector0
   no_path_retry     fail
}

devices {
   device {
      vendor          "NETAPP"
      product         "LUN"
      no_path_retry   queue
      path_checker    tur
   }
}

Step 6: Review the known issues

The RHEL 7.0 with ONTAP storage release has the following known issues:

NetApp Bug ID Title Description

844417

Emulex 16G FC (LPe16002B-M6) host crashes during I/O with storage failover operations

You might observe a 16G FC Emulex (LPe16002B-M6) host crash during I/O with storage failover operations.

811587

Emulex 16G FC (LPe16002B-M6) host crashes during I/O with storage failover operations

You might observe a 16G FC Emulex (LPe16002B-M6) host crash during I/O with storage failover operations.

803071

Emulex 16G FC (LPe16002B-M6) host crashes during I/O with storage failover operations

You might observe a 16G FC Emulex (LPe16002B-M6) host crash during I/O with storage failover operations.

820163

QLogic host hang or path failures observed during I/O with storage failover operations

You might observe a host hang or path failures on QLogic host during I/O with storage failover operations. In such scenarios, you might see the following message: "Mailbox cmd timeout occurred, cmd=0x54, mb[0]=0x54 and Firmware dump saved to temp buffer" messages which leads to host hung/path failure.

799323

Emulex FCoE (OCe10102-FX-D) host hang or path failures observed during I/O with storage failover operations

You might observe a host hang or path failures on Emulex 10G FCoE host (OCe10102-FX-D) during I/O with storage failover operations. In such scenarios, you might see the following message: "driver's buffer pool is empty, IO busied and SCSI Layer I/O Abort Request Status" messages which leads to host hung/path failures.

849212

Emulex 16G FC (LPe16002B-M6) host hang or path failures are observed during I/O with storage failover operations

You might observe a host hang or path failures on Emulex 16G FC (LPe16002B-M6) host during I/O with storage failover operations. In such scenarios, you might see the following message: "RSCN timeout Data and iotag x1301 is out of range: max iotag" messages which leads to host hung/path failures.

836800

Anaconda displays an iSCSI login failure message although logins are successful during RHEL 7.0 OS installation

When you install the root(/) on a iSCSI multipath’d LUN, the IP address for the Ethernet interfaces are specified in the kernel command line so that the IP addresses are assigned before the iSCSI service starts. However, dracut cannot assign IP addresses to all the Ethernet ports during the boot, before the iSCSI service starts. This causes the iSCSI login to fail on interfaces without IP addresses. You will see the iSCSI service attempt to login numerous times, which will cause a delay in the OS boot time.

836875

IP addresses are not always assigned during the boot of a RHEL 7.0 OS installed on an iSCSI multipath'd LUN

When you are installing RHEL 7.0, the anaconda installation screen displays that iSCSI login to multiple target IPs have failed though the iSCSI logins are successful. Anaconda displays following error message: “Node Login Failed” You will observe this error only when you select multiple target IPs for iSCSI login. You can continue the OS installation by clicking the "ok" button. This bug does not hamper either the iSCSI or the RHEL 7.0 OS installation.

836657

Anaconda does not add bootdev argument in kernel cmd line to set IP address for RHEL 7.0 OS installed on iSCSI multipath'd LUN

Anaconda does not add a bootdev argument in the kernel command line where you set the IPv4 address during the RHEL 7.0 OS installation on an iSCSI multipath'd LUN. This prevents assigning of IP addresses to any of the Ethernet interfaces that were configured to establish iSCSI sessions with the storage subsystem during the RHEL 7.0 boot. Since iSCSI sessions are not established, the root LUN is not discovered when the OS boots and hence the OS boot fails.

What's next?

  • Learn about using the Linux Host Utilities tool.

  • Learn about ASM mirroring.

    Automatic Storage Management (ASM) mirroring might require changes to the Linux multipath settings to allow ASM to recognize a problem and switch over to an alternate failure group. Most ASM configurations on ONTAP use external redundancy, which means that data protection is provided by the external array and ASM doesn't mirror data. Some sites use ASM with normal redundancy to provide two-way mirroring, normally across different sites. See Oracle databases on ONTAP for further information.