Solaris MPxIO scsi_vhci device names

| | Comments (0) | TrackBacks (0)
In case you wondered about the lengthy scsi_vhci device names and you're stuck finding your "right" device: I had the same problem, so I tried to match known characteristics of my setup to that names. Some parts are easy to understand.

In scsi_vhci-names all components identify a VOLUME (fibrechannel disk device) and not a connection nor a switch nor the path - as it is a common name for all paths leading to that volume.

Let's look at a typical MPxIO name:

c6t600D0230006C1C4C0C50BE5BC9D49100d0

"c6" is easy: It is the virtual scsi_vhci controller. In my case, it subsumes the two real controllers c4 and c5 (both fibrechannel 4gbit/sec Q-Logic cards). My real devices are:

c4                             fc-fabric    connected    configured   unknown
c5                             fc-fabric    connected    configured   unknown

Don't be excited about the fact that both controllers won't be accessible any more nor you will find any volumes there (you will see "unusable"). They're taken by scsi_vhci creating "controller 6".


"d0" at the end means LUN 0, scsi_vhci always uses LUN0, even if your multipathed volumes are on different LUNs.

The interesting part is the target specification (you have remarked it: even these device names follow the Solaris cXtYdZ pattern). In this case, the target is NOT a number but a long string:

t6 00D023 000 6C1C4C0C50BE 5BC9D491 00
   wwwwww     cccccccccccc vvvvvvvv


w means the common bytes 2-4 of the fibrechannel wwn (world wide number) of the multiple end ports of that device/volume.
c is the common controller ID of your device. It is unique and on many fibrechannel devices it can be set manually.
v is the fibrechannel volume ID. It is unique for your device. Using this ID scsi_vhci recognizes which paths do access the same device/volume. So never use identical fibrechannel ids for different devices. This is important as there are some RAID devices which do set the volume id to 00000000.


You can put the slice obviously at the end of the specification, so this slice definition is perfectly correct:

/dev/dsk/c6t600D0230006C1C4C0C50BE5BC9D49100d0s7

(in case you want to access Slice 7).

If you intend to use ZFS/zpool omit the slice and use the entire device.


0 TrackBacks

Listed below are links to blogs that reference this entry: Solaris MPxIO scsi_vhci device names.

TrackBack URL for this entry: http://southbrain.com/mt/mt-tb.cgi/18

Leave a comment