Relation between ssd and SCSI
When I use Fibre Channel disk via sd driver, I know what cntndnsn
means. But changed to ssd, the special files are
c1t200600004C7F3E2Dd19, where following 't' is not a normal target
number, but WWN of disk array. I guess ssd belongs to some kind of SCSI
disk driver. But how to get the SCSI target number of ssd disk through
programming?
Message was edited by:
Pukras
[419 byte] By [
Pukras] at [2007-11-26 8:47:01]

# 1
> When I use Fibre Channel disk via sd driver, I know
> what cntndnsn
> means.
What does the 't' mean for a fiber channel disk with the 'sd' driver? It depends on what the driver does. There's no one answer.
> But changed to ssd, the special files are
> c1t200600004C7F3E2Dd19, where following 't' is not a
> normal target
> number, but WWN of disk array. I guess ssd belongs to
> some kind of SCSI
> disk driver. But how to get the SCSI target number of
> ssd disk through
> programming?
If you have a Fibre Channel disk. It doesn't *have* a SCSI target number.
Other drivers may fake a low 't' number, but that doesn't make it a SCSI target.
The ssd driver is displaying the actual fiber channel WWN that is publishing the disk. That's the only real address that it knows.
The Solaris Leadville stack doesn't have any option for displaying a "small" t number for FC disks. They all display with the WWN.
--
Darren
# 2
Thanks a lot., Darren.
I can understand 'Other drivers may fake a low 't' number'.
But problem is how to get the faked number. Like the following name='target'...
-
# prtconf -v
ssd, instance #45
System software properties:
name='sd_retry_on_reservation_conflict' type=int items=1
value=00000000
Driver properties:
name='pm-hardware-state' type=string items=1 dev=none
value='needs-suspend-resume'
name='ddi-failfast-supported' type=boolean dev=none
name='ddi-kernel-ioctl' type=boolean dev=none
Hardware properties:
name='devid' type=string items=1
value='id1,ssd@x00004c7f3e2d0270'
name='inquiry-revision-id' type=string items=1
value='2800'
name='inquiry-product-id' type=string items=1
value='iStorage 2000'
name='inquiry-vendor-id' type=string items=1
value='NEC'
name='inquiry-device-type' type=int items=1
value=00000000
name='sam-lun' type=int64 items=1
value=0016000000000000
name='lun' type=int items=1
value=00000016
name='target' type=int items=1
value=00b600dc
name='port-wwn' type=byte items=8
value=20.06.00.00.4c.7f.3e.2d
name='node-wwn' type=byte items=8
value=20.00.00.00.4c.7f.3e.2d
name='compatible' type=string items=5
value='scsiclass,00.vNEC.piStorage_2000.r2800' + 'scsiclass,00.vNEC.piStorage_2000' + 'scsa,00.bfcp' + 'scsiclass,00' + 'scsiclass'
-
Pukras
# 3
> Thanks a lot., Darren.
>
> I can understand 'Other drivers may fake a low 't'
> number'.
> But problem is how to get the faked number.
You'd need to be running another driver (like if you had an old emulex or JNI card, they would do different things).
> Like the
> following name='target'...
> -
> # prtconf -v
>ssd, instance #45
>System software properties:
>
> ame='sd_retry_on_reservation_conflict' type=int
> items=1
>value=00000000
> roperties:
[snip]
I'm afraid I don't know what you are referring to in that list.
--
Darren
# 4
> You'd need to be running another driver (like if you
> had an old emulex or JNI card, they would do
> different things).
Thanks a lot.
> I'm afraid I don't know what you are referring to in
> that list.
I refer to
-
# prtconf -v
ssd, instance #45
[snip]
Driver properties:
[snip]
name='target' type=int items=1<-HERE
value=00b600dc
-
It seems that the faked target number of ssd instance #45 is 00b600dc. ssd instance #45 is a fiber channel disk on a NEC disk array.
I wonder how prtconf gets the faked target number of ssd instance. Maybe answer is in its source codes.
Thanks again.