Discovering SCSI Tape Devices

The SCSI target driver for tape devices, st, permits only one concurrent open. Thus, a service domain configuration that has two or more vsan instances that reference the same SCSI HBA initiator port issues the following pair of messages for each vsan instance other than the one that successfully called open:

vsan: WARNING: vs@7: dip(6400a921b1f8): open(/pci@3c0/pci@1/pci@0/pci@7/SUNW,qlc@0/fp@0,2/st@w200000110d211500,2) err(16)  
vsan: WARNING: vs@7: device(6400a921b1f8) is of type TAPE; ensure all the domain's vSANs are configured correctly.

At boot time, you cannot determine which vsan successfully calls open for a set of vsans that indirectly reference the same tape device. This happens because the initialization of each vsan is independent and executes concurrently.

Use the ldm add-vsan and ldm add-vhba commands to specify which vsan is the first to open the tape devices that are reachable from that vsan's initiator port. Also, set the mask attribute of the vsan to isolate a specific tape device within its own vsan.

For more information about using the mask attribute, see Managing the Physical Devices in a Virtual Storage Area Network.

To identify the device path of the tape device that opened successfully, perform the following commands in the guest domain. Use the ::vhba -v command to find the entry that corresponds to the tape device's worldwide number. Note that the device type field shows inq_dtype(1=tape) for a tape device. The device path in the following example output is highlighted in boldface:

# mdb -k
> ::vhba -v
vhba_t( 640014816600 ) vhba@3
...
    vhba_iport_t( 6400222b1e50 )
        vhba_tport_t( 400040de0e0 ) tport_phys(w200000110d211500) flags[dirty,NEW]
...
            vhba_lun_t( 400040de200 ) lun(2) vlun-id(18) wwn(naa.600110D0002115000109000001ABA60C) [NEW]
                devinfo(640022b0d840) scsi_device(40000176468) scsi_inquiry(6400228bc560).inq_dtype(1=tape)
                /scsi_vhci/tape@g600110d0002115000109000001aba60c

The /scsi_vhci/tape@g600110d0002115000109000001aba60c device path shows that Solaris Multipathing is enabled in the vhba.conf file for the vhba instance that successfully opened the tape device. If Solaris Multipathing is disabled, the device path syntax would look similar to /virtual-devices@100/channel-devices@200/scsi@3/iport@0/tape@w200000110d211500,2.

The following example shows how to identify the /dev path that matches the device path shown by the ::vhba command. In this example, Solaris Multipathing is enabled and the tape device is referenced by /dev/rmt/1:

# find /dev/rmt -ls | grep :$
... /dev/rmt/1 -> ../../devices/scsi_vhci/tape@g600110d0002115000109000001aba60c:

If you disable Solaris Multipathing in the vhba.conf file and reboot the domain, the tape device is referenced by /dev/rmt/0:

# find /dev/rmt -ls | grep :$
... /dev/rmt/0 -> ../../devices/virtual-devices@100/channel-devices@200/scsi@3/iport@0/tape@w200000110d211500,2: