Managing SAN Devices and Multipathing in Oracle® Solaris 11.2

Exit Print View

Updated: December 2014
 
 

Solaris I/O Multipathing Features

Solaris I/O multipathing is enabled by default for x86 based platforms and optional for SPARC based systems that run the Oracle Solaris OS. The software contains the following features:

  • Path management – Solaris I/O multipathing features dynamically manage the paths to any storage devices that the OS supports. The addition or removal of paths to a device is done automatically when a path is brought online or removed from a service. Even with multipathing enabled, you can add more controllers to increase bandwidth and RAS without changing device names or modifying applications. Oracle storage products do not require configuration files to manage or databases to keep current. For storage from vendors other than Oracle, contact the vendor for methods to enable support and to ensure it is qualified with Solaris I/O multipathing features.

  • Single device instances – Solaris I/O multipathing features are fully integrated with the Oracle Solaris OS. Multipathed devices are displayed as single device instances instead of as one device or device link per path. This feature reduces the cost of managing complex storage architectures with utilities such as the formatcommand or a volume management product to see one representation of a storage device instead of a separate device for each path.

  • Failover support – Implementing higher levels of RAS requires redundant host connectivity to storage devices. Solaris I/O multipathing features manage the failure of storage paths while maintaining host I/O connectivity through available secondary paths.

    You can determine the failover support for your devices by using the following command:

    # mpathadm show mpath-support libmpscsi_vhci.so
    mpath-support:  libmpscsi_vhci.so
            Vendor:  Sun Microsystems
            Driver Name:  scsi_vhci
            Default Load Balance:  round-robin
            Supported Load Balance Types:  
                    round-robin
                    logical-block
            Allows To Activate Target Port Group Access:  yes
            Allows Path Override:  no
            Supported Auto Failback Config:  1
            Auto Failback:  on
            Failback Polling Rate (current/max):  0/0
            Supported Auto Probing Config:  0
            Auto Probing:  NA
            Probing Polling Rate (current/max):  NA/NA
            Supported Devices:
    .
    .
    .
  • Symmetrical/asymmetrical device support – The following disk storage devices are supported:

    • All Oracle disk storage products, both symmetric and asymmetric.

    • All T10/T11 standards-compliant third-party symmetrical disk devices.

    • Many third-party asymmetrical disk arrays.

    • T10 Asymmetric Logical Unit Access (ALUA) support has been added for asymmetrical devices that support this T10 standard. Contact your storage vendor to see whether your device is supported.

      If your disk storage array uses the f_asym_lsi failover module, you will need to manually change the sequence of ddi-forceload section by moving the f_asym_lsi to end of the scsi_vhci.conf file, similar to the following:

      ddi-forceload =
              "misc/scsi_vhci/scsi_vhci_f_asym_sun",
              "misc/scsi_vhci/scsi_vhci_f_asym_emc",
              "misc/scsi_vhci/scsi_vhci_f_sym_emc",
              "misc/scsi_vhci/scsi_vhci_f_sym_hds",
              "misc/scsi_vhci/scsi_vhci_f_sym",
      #       "misc/scsi_vhci/scsi_vhci_f_tpgs_tape",
      #       "misc/scsi_vhci/scsi_vhci_f_tape",
              "misc/scsi_vhci/scsi_vhci_f_tpgs",
              "misc/scsi_vhci/scsi_vhci_f_asym_lsi"; 
  • I/O load balancing – In addition to providing simple failover support, Solaris multipathing features can use any active paths to a storage device to send and receive I/O. With I/O routed through multiple host connections, bandwidth can be increased by the addition of host controllers. The software uses a round-robin load-balancing algorithm by which individual I/O requests are routed to active host controllers in a series one after the other.

  • Queue depth – SCSI storage arrays present storage to a system in the form of a logical unit number (LUN). LUNs have a finite set of resources available, such as the amount of data that can be stored, as well as the number of active commands that a device or LUN can process at one time. The number of active commands that can be issued before a device blocks further I/O is known as queue depth. When Solaris I/O multipathing is enabled, a single queue is created for each LUN regardless of the number of distinct or separate paths it may have to the host. This feature enables the disk driver to maintain and balance one queue to the LUN, effectively managing queue depth. No other multipathing software available for the Oracle Solaris OS has this ability.

  • stmsboot command – The Oracle Solaris OS includes the stmsboot command, which enables you to enable or disable the Solaris multipathing features on your boot device after the OS installation has been completed. This command is available for both SPARC based and x86 based systems, and provides support for SAS multipathing.

    SAS multipathing is not enabled by default in the Oracle Solaris OS for either SPARC based or x86 based systems, so use of the stmsboot command is required as a post-installation step if you wish to enable multipathing.

    SPARC based systems do not enable multipathing for FC devices by default, so use of the stmsboot command is required as a post-installation step.

    X86 based systems do enable multipathing of FC devices by default, so the use of the stmsboot command is not mandatory as a post-installation step.

  • Dynamic reconfiguration – Solaris I/O multipathing features support dynamic reconfiguration (DR) operations.

  • Multipathed device names – After a system is installed with the Oracle Solaris OS and Solaris I/O multipathing is enabled, the multipathed device names begin with c0. For example:

    # mpathadm list lu
            /dev/rdsk/c0t600A0B800026D63A0000A4994E2342D4d0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800029065C00007CF54E234013d0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800026D63A0000A4984E234298d0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800029065C00007CF44E233FCFd0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800026D63A0000A4974E23424Ed0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800029065C00007CF34E233F89d0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800026D63A0000A4964E234212d0s2
                    Total Path Count: 4
                    Operational Path Count: 4
            /dev/rdsk/c0t600A0B800026D63A000099B94DE2DB34d0s2
    .
    .
    .
  • Displaying MPxIO path information – The prtconf and fmdump commands have both been updated to provide MPxIO path information.

    For example, the following output is from a system with multipathed devices.

    # prtconf -v | grep path | more
    Paths from multipath bus adapters:
        name='path-class' type=string items=1
        name='path-class' type=string items=1
        name='path-class' type=string items=1
        name='path-class' type=string items=1
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:a
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:a,raw
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:b
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:b,raw
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:c
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:c,raw
            dev_path=/scsi_vhci/disk@g600a0b800026d63a0000a4994e2342d4:d
    .
    .
    .

    The diskinfo command, which displays chassis, receptacle, and occupant information for disks or disk occupants of bay receptacles, can also be used to display multipathed device names. For example:

    # diskinfo -O occupant-compdev
    c0t50015179594B6F11d0
    c0t5000C500335F95E3d0
    c0t5000C500335F907Fd0
    c0t5000C500335BD117d0
    c0t5000C500335DC60Fd0
    c0t5000C500335E106Bd0
    c0t5000C500335BA8C3d0
    c0t5000C500335FC3E7d0
  • Device driver configuration – Driver customizations are made in the /etc/driver/drv directory rather than in the /kernel/drv directory as in previous releases. This improvement means that your driver customizations are not overwritten when the system is upgraded. The files in the /etc/driver/drv directory are preserved during the upgrade. Any modifications to fp.conf, mpt.conf, or scsi_vhci.conf should be made in the /etc/driver/drv directory.