scsi_vhci(7D) Devices scsi_vhci(7D)NAMEscsi_vhci - SCSI virtual host controller interconnect driver
DESCRIPTION
The scsi_vhci driver is a SCSA compliant pseudo nexus driver that sup‐
ports Solaris operating system I/O multipathing services for SCSI-3
devices. This driver introduces a fundamental restructuring of the
Solaris device tree to enable a multipath device to be represented as
single device instance rather than as an instance per physical path as
in earlier Solaris versions.
The logical units (LUNs) associated multipath SCSI target devices man‐
aged by this driver are identified and represented by using the SCSI-3
VPD page (0x83) LUN global unique identifier (GUID) represented as
hexadecimal number (64/128 bits).
Symbolic links in /dev/[r]dsk continue to adhere to the cNtNdNsN for‐
mat. cN is the logical controller number assigned to this driver
instance. tN is the GUID.
The following is an example of a system with an A5000 storage array:
...
/dev/rdsk/c4t200000203709C3F5d0s0 -> ../../devices/
scsi_vhci/ssd@g200000203709c3f5:a,raw
...
/dev/rdsk/c4t200000203709C3F5d0s7 -> ../../devices/
scsi_vhci/ssd@g200000203709c3f5:h,ra
...
The following is an example of a system with a T300 storage array:
...
/dev/rdsk/c1t60020F200000033939C2C2B60008D4AEd0s0 ->
../../devices/scsi_vhci/
ssd@g60020f200000033939a2c2b60008d4ae:a,raw
...
/dev/rdsk/c1t60020F200000033939A2C2B60008D4AEd0s7 ->
../../devices/scsi_vhci/
ssd@g60020f200000033939a2c2b60008d4ae:h,raw
The scsi_vhci driver receives naming and transport services from one or
more physical HBA (host bus adapter) devices. To support multi-pathing,
a physical HBA driver must have its multipathing enabled and comply
with the multipathing services provided by this driver.
The scsi_vhci driver supports the standard functions provided by the
SCSA interface.
Configuration
For each candidate SCSI target device, the scsi_vhci code must identify
a failover module to support the device. If a failover module cannot be
identified, the device will not function under scsi_vhci multipathing
control. For SCSI target devices that support the standard Target Port
Group Select, no special vendor/product knowledge is needed. For other
SCSI target devices, each failover module understands which devices it
supports.
When autoconfiguration does not result in the desired configuration, a
vendor/product specific override mechanism is available. This
scsi_vhci.conf base mechanism can be used to direct a device to a spe‐
cific failover module (or to indicate that a device should not be under
scsi_vhci multipathing control by way of "NONE"). In scsi_vhci.conf,
the property 'scsi-vhci-failover-override' defines overrides in
scsi_get_device_type_string(9F) form. To add a third-party (non-Sun)
symmetric storage device to run under scsi_vhci (and thereby take
advantage of scsi_vhci multipathing), you add the vendor ID and product
ID for the device, as those strings are returned by the SCSI Inquiry
command. For example, to add a device from a vendor with the ID of
"Acme" and a product ID of "MSU", you would add:
scsi-vhci-failover-override =
"Acme MSU", "f_sym",
In addition to "Acme", you also might want to add another entry, for
example, a device from "XYZ" vendor with a product ID of "ABC":
scsi-vhci-failover-override =
"Acme MSU", "f_sym",
"XYZ ABC", "f_sym";
Adding the following lines to /kernel/drv/scsi_vhci.conf ensure that
the direct attached mchanger (SL500 tape library) is no longer under
scsi_vhci multipathing control.
device-type-scsi-options-list =
"STK SL500", "disable-option";
disable-option = 0x7000000;
In every entry of scsi-vhci-failover-override, if the vendor ID is less
than 8 characters, it must be padded with spaces (ASCII 0x0a) to 8
characters. The product ID contains at most sixteen left-adjusted ASCII
characters. The product ID has an implicit wild card rule. The product
ID in the returned SCSI inquiry string is considered a match if that
has the specified product ID as its prefix. For example,
scsi-vhci-failover-override =
"XYZ ABC", "f_sym";
will match both product ID ABC3000 and ABC4500 below from vendor XYZ.
"XYZ ABC3000", "f_sym"
"XYZ ABC4500", "f_sym"
FILES
/kernel/drv/sparcv9/scsi_vhci
64-bit kernel module (SPARC).
/kernel/drv/scsi_vhci
32-bit kernel module (x86).
/kernel/drv/scsi_vhci.conf
Driver configuration file.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │PCI-based systems │
├─────────────────────────────┼─────────────────────────────┤
│Availability │SUNWckr │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOeeprom(1M), prtconf(1M), stmsboot(1M), attributes(5), fcp(7D),
fctl(7D), fp(7D), mpt(7D), ssd(7D), scsi_abort(9F),
scsi_get_device_type_scsi_options(9F), scsi_get_device_type_string(9F),
scsi_ifgetcap(9F), scsi_reset(9F), scsi_transport(9F),
scsi_inquiry(9S), scsi_extended_sense(9S), scsi_pkt(9S)
Writing Device Drivers
Small Computer System Interface-3 (SCSI-3)
NOTES
In previous releases, the scsi_vhci.conf file supported the mpxio-dis‐
able property, which allowed you to disable Solaris I/O multipathing
on a system-wide basis. This property is not present in the current
release of the Solaris operating system. Multipathing is always
enabled in scsi_vhci. If you want to disable multipathing, use the
mechanisms provided by the HBA drivers. See fp(7D) and mpt(7D).
In previous releases, the override mechanism was based on the
scsi_get_device_type_scsi_options(9F) defined "device-type-scsi-
options-list" property. During upgrade, scsi_vhci.conf is converted to
the new form. After upgrade, a scsi_vhci.conf modification based on the
old mechanism is silently ignored.
In previous releases, Solaris I/O multipathing was also known as MPxIO
and Sun StorEdge Traffic Manager (STMS).
SunOS 5.10 13 Jun 2012 scsi_vhci(7D)