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.
Before you configure third-party devices for multipathing, be aware of the following:
The device must support the REPORT_LUNS SCSI command, and SCSI-3 INQUIRY command VPD Device Identification Page (0x83).
You will need the vendor ID (VID) and product ID (PID) of the device. You can obtain them by using the format command followed by the inquiry option on your system. See the format(1M) man page.
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.
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.
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.
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";
Save and exit the scsi_vhci.conf file.
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.
If necessary, perform device name updates as described in Enabling and Disabling Multipathing.
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.
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";
Save and exit the scsi_vhci.conf file.
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.
If necessary, perform the device name updates as described in Enabling and Disabling Multipathing.
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 |