Solaris Express SAN Configuration and Multipathing Guide

Configuring Third-Party Storage Devices


Note –

Before configuring any third-party device, ensure that they are supported. Refer to your third-party user documentation, or third-party vendor for information on proper vendor and product IDs, modes and various settings required for the device to work with multipathing software.


Third-Party Device Configuration Considerations

Before you configure third-party devices for multipathing, be aware of the following:

When multipathing is enabled, the multipath access still depends on a device specific scsi_vhci failover implementation accepting the device. The default way this occurs, automatically, is for the scsi_vhci code to call a probe function in each failover implementation, looking for the first probe result that indicates the device is supported.

A probe implementation determines support based on some combination of scsi_inquiry(9S) data. A device with INQUIRY data indicating T10 Target-Port-Group-Support (TPGS) compliance will use the standards-based TPGS failover implementation. For noncompliant devices, a failover implementation's probe will typically determine support based on VID/PID match against a private compiled-in table.

To override the probe process, the scsi_vhci.conf file supports a scsi-vhci-failover-override property. The value of scsi-vhci-failover-override can be used to establish support for a device not currently accepted by probe, override probe support, or disable multipath support for a device.

Configuring Third-Party Storage Devices: New Devices

Multipathing can be configured on third-party symmetric storage devices. A symmetric storage device is defined as a storage device in which all paths to the storage device are active and I/O commands can be issued through any path.

ProcedureTo Configure New Third-Party Devices

Perform the following steps to configure third-party devices if your system already has multipathing enabled. If your system has multipathing disabled, you can configure third-party devices while enabling multipathing as described earlier in this chapter.

  1. Add the vendor ID and product ID entries to the /kernel/drv/scsi_vhci.conf file.

    The vendor ID and product ID are the vendor and product identification strings that the device returns in SCSI INQUIRY data. The vendor ID must be eight characters long. You must specify all eight characters even if the trailing characters are spaces.

    The product ID can be up to 16 characters long.

    scsi-vhci-failover-override =
    "VendorID1ProductID1", "f_sym",
    "VendorID2ProductID2", "f_sym",
    ...
    "VendorIDnProductIDn", "f_sym";

    Note that the entries are separated by the ’,’ character and the last vendor/product entry is terminated by the ’;’ character.

    For example, to add a device from a “ACME” vendor with a product ID of “MSU”, and to add a device from vendor “XYZ” vendor with a product ID of “ABC”, you would add the following lines to file /kernel/drv/scsi_vhci.conf:

    To add a device from a “XYZ” vendor with a product ID of “ABC”, you would add:

    scsi-vhci-failover-override =
    "ACME    MSU", "f_sym",
    "XYZ     ABC", "f_sym";
  2. Save and exit the scsi_vhci.conf file.

  3. Type stmsboot -u to start the reboot and configuration process.

    You are prompted to reboot. During the reboot, the /etc/vfstab file and the dump configuration are updated to reflect the device name changes.

  4. If necessary, perform device name updates as described in Enabling and Disabling Multipathing.

Configuring Third-Party Storage Devices: Disabling Devices

Multipathing can be disabled for all devices of a certain Vendor ID/Product ID combination from Inquiry data. This exclusion is specified in the scsi_vhci.conf file.

ProcedureTo Disable Third-Party Devices

  1. Add the vendor ID and product ID entries to the /kernel/drv/scsi_vhci.conf file.

    The vendor ID and product ID are the vendor and product identification strings that the device returns in SCSI INQUIRY data. The vendor ID must be eight characters long. You must specify all eight characters even if the trailing characters are spaces. The product ID can be up to 16 characters long.

    scsi-vhci-failover-override =
    "VendorID1ProductID1", "NONE",
    "VendorID2ProductID2", "NONE",
    ...
    "VendorIDnProductIDn", "NONE";

    The entries in the preceding example are separated by the ’,’ character and the last vendor/product entry is terminated by the ’;’ character. For example, to add a device from vendor “ACME” with a product ID of “MSU,” and a vendor device from vendor “XYZ” with product ID “ABC,” you would add the following lines to the file /kernel/drv/scsi_vhci.conf:

    scsi-vhci-failover-override =
    "ACME    MSU", "NONE",
    "XYZ     ABC", "NONE";
  2. Save and exit the scsi_vhci.conf file.

  3. Type stmsboot -u to start the reboot and configuration process.

    You are prompted to reboot. During the reboot, the /etc/vfstab file and the dump configuration are updated to reflect the device name changes.

  4. If necessary, perform the device name updates as described in Enabling and Disabling Multipathing.

Displaying Device Name Changes

The stmsboot(1M) command, available on Solaris Express Developer's Edition OS SPARC, x86 and x64 platforms, can be used to display the mapping between non-multipathed and multipathed device names, after the changes made to the multipath configuration by invoking stmsboot with the -e, -d, or -u option. Both the non-multipathed and the multipathed device names must exist in order to show the mapping.

The -L option displays the mapping of devices on all controllers.


# stmsboot -L
non-STMS device name                    STMS device name
----------------------------------------------------------------
/dev/rdsk/c2t8d0     /dev/rdsk/c10t500000E01046DEE0d0
/dev/rdsk/c2t0d0     /dev/rdsk/c10t500000E01046B070d0
/dev/rdsk/c2t3d0     /dev/rdsk/c10t20000020372A40AFd0
/dev/rdsk/c2t12d0    /dev/rdsk/c10t500000E01046DEF0d0
/dev/rdsk/c2t11d0    /dev/rdsk/c10t500000E01046E390d0
/dev/rdsk/c3t8d0     /dev/rdsk/c10t500000E01046DEE0d0
/dev/rdsk/c3t0d0     /dev/rdsk/c10t500000E01046B070d0
/dev/rdsk/c3t3d0     /dev/rdsk/c10t20000020372A40AFd0
/dev/rdsk/c3t12d0    /dev/rdsk/c10t500000E01046DEF0d0
/dev/rdsk/c3t11d0    /dev/rdsk/c10t500000E01046E390d0

The -l option displays the mapping of devices on only the specified controller. The following example displays the mapping of controller 3.


# stmsboot -l3
non-STMS device name                    STMS device name
----------------------------------------------------------------
/dev/rdsk/c3t8d0    /dev/rdsk/c10t500000E01046DEE0d0
/dev/rdsk/c3t0d0    /dev/rdsk/c10t500000E01046B070d0
/dev/rdsk/c3t3d0    /dev/rdsk/c10t20000020372A40AFd0
/dev/rdsk/c3t12d0    /dev/rdsk/c10t500000E01046DEF0d0
/dev/rdsk/c3t11d0    /dev/rdsk/c10t500000E01046E390d0