The scsi_vhci driver is a SCSA compliant pseudo nexus driver that supports multipath services for fibre channel attached 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 multipath SCSI target devices managed by this driver are identified and represented by using SCSI-3 VPD page (0x83) as the device's unit address.
Symbolic links in /dev/[r]dsk continue to adhere to the cNtNdNsN format. cN is the logical controller number assigned to this driver instance. tN is the global unique identifier (GUID) of the multipath target device (64/128 bits), represented as hexadecimal numbers.
The following is an example of a system with a 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 devices. To support multi-pathing, a physical HBA driver must comply with the multipathing services provided by this driver. Currently, the fcp(7D) fibre channel SCSI protocol driver is the only driver to comply with the services provided by the scsi_vhci driver.
Enabling this feature on an upgraded implementation may result in a new naming scheme for multipath devices under /dev and /devices. If this happens, older links will be invalid and existing file systems will be unusable.
The scsi_vhci driver supports the standard functions provided by the SCSA interface.
The scsi_vhci driver can be configured by defining properties in the scsi_vhci.conf file. The scsi_vhci.conf file overrides the default settings. (See driver.conf(4)).
The scsi_vhci driver supports the following properties:
|PROPERTY NAME||DEFAULT||POSSIBLE VALUES|
|mpxio-disable||no||yes or no|
|load-balance||round robin||none or round-robin|
The mpxio-disable property determines if the HBA driver instance is attached to the mpxio framework. By default, HBA drivers register themselves with the mpxio framework. If the mpxio-disable property is set to value “yes,” the device tree space continues to work in the current way, that is, SCSI target devices are created under the physical parent node. The mpxio-disable property comprises a system wide enable/disable. To coexist with other multipath solutions, certain SCSI HBA drivers must enable/disable the mpxio functionality on a HBA instance basis. The HBA driver implementation manages this using properties configurable through the driver.conf file. Please refer to the corresponding HBA driver man page for information on how to disable mpxio on a HBA driver instance basis.
By default, the load balance property is ON. You can globally disable it by setting the load balance string property to “none” through the driver.conf file. The scsi_vhci driver supports a simple round robin automatic path selection model.
Setting load balance to “round-robin” enables paths in ONLINE state to be selected for I/O in a round robin fashion.
A sample configuration file follows:
... # mpxio Global enable/disable configuration # possible values are mpxio-disable="no" or mpxio-disable="yes" # mpxio-disable="no"; # # Load Balancing global configuration # possible values are load-balance="none" or load-balance="round-robin" # load-balance="round-robin"; #
Sample prtconf(1M) (verbose option) output of scsi_vhci properties is shown below:
scsi_vhci, instance #0 System properties: ... name <mpxio disable> length <3> value 'no' name <load balance> length <12> value 'round-robin' ...
64-bit ELF kernel module
Access system console
Driver configuration file
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
|Availability||SUNWmdi, SUNWmdix (64 bit)|
eeprom(1M), prtconf(1M), attributes(5), fcp(7D), fctl(7D), fp(7D), ssd(7D), qlc(9F), scsi_abort(9F), scsi_ifgetcap(9F), scsi_pkt(9S), scsi_reset(9F), scsi_transport(9F), scsi_inquiry(9S), scsi_extended_sense(9S)
Writing Device Drivers
Small Computer System Interface-3 (SCSI-3)