ssd(7D)
NAME
ssd - driver for SPARCstorage Array and Fibre Channel Arbi-
trated Loop disk devices
SYNOPSIS
ssd@port,target:partition
DESCRIPTION
This driver handles both SCSI-2 disks in the SPARCstorage
Array and Fibre Channel Arbitrated Loop (FC-AL) disks on
Private loops.
The specific type of each disk is determined by the SCSI
inquiry command and reading the volume label stored on block
0 of the drive. The volume label describes the disk geometry
and partitioning; it must be present or the disk cannot be
mounted by the system.
The block-files access the disk using the system's normal
buffering mechanism and are read and written without regard
to physical disk records. There is also a "raw" interface
that provides for direct transmission between the disk and
the user's read or write buffer. A single read or write call
usually results in one I/O operation; raw I/O is therefore
considerably more efficient when many bytes are transmitted.
The names of the block files are found in /dev/dsk; the
names of the raw files are found in /dev/rdsk.
I/O requests (such as lseek(2)) to the SCSI disk must have
an offset that is a multiple of 512 bytes (DEV_BSIZE), or
the driver returns an EINVAL error. If the transfer length
is not a multiple of 512 bytes, the transfer count is
rounded up by the driver.
Partition 0 is normally used for the root file system on a
disk, partition 1 as a paging area (for example, swap), and
partition 2 for backing up the entire disk. Partition 2 nor-
mally maps the entire disk and may also be used as the mount
point for secondary disks in the system. The rest of the
disk is normally partition 6. For the primary disk, the user
file system is located here.
Each device also has error statistics associated with it.
These must include counters for hard errors, soft errors and
transport errors. Other data may be implemented as required.
DEVICE STATISTICS SUPPORT
Each device maintains I/O statistics for the device and for
partitions allocated for that device. For each
device/partition, the driver accumulates reads, writes,
bytes read, and bytes written. The driver also initiates
hi-resolution time stamps at queue entry and exit points to
enable monitoring of residence time and cumulative
residence-length product for each queue.
Not all device drivers make per-partition IO statistics
available for reporting. ssd and sd(7D) per-partition
statistics are enabled by default but may disabled in their
configuration files.
IOCTLS
Refer to dkio(7I).
ERRORS
EACCES
Permission denied.
EBUSY The partition was opened exclusively by another
thread.
EFAULT
The argument was a bad address.
EINVAL
Invalid argument.
EIO An I/O error occurred.
ENOTTY
The device does not support the requested ioctl func-
tion.
ENXIO When returned during open(2), this error indicates
the device does not exist.
EROFS The device is a read-only device.
CONFIGURATION
The ssd driver can be configured by defining properties in
the ssd.conf file. The ssd driver supports the following
properties:
enable-partition-kstats
The default value is 1, which causes partition IO
statistics to be maintained. Set this value to zero to
prevent the driver from recording partition statis-
tics. This slightly reduces the CPU overhead for IO,
mimimizes the amount of sar(1) data collected and
makes these statistics unavailable for reporting by
iostat(1M) even though the -p/-P option is specified.
Regardless of this setting, disk IO statistics are
always maintained.
FILES
ssd.conf
driver configuration file
/dev/dsk/cnt ndns n
block files
/dev/rdsk/cnt ndns n
raw files
where, for the SPARCstorage Array:
cn is the controller number on the system. Each
SPARCstorage Array will have a unique controller
number
tn port number within the SPARCstorage Array n
dn SCSI target n
sn partition n
and for all FC-AL disks:
cn is the controller number on the system.
tn 7-bit disk loop identifier, such as switch set-
ting
dn SCSI lun n
sn partition n (0-7)
SEE ALSO
sar(1), format(1M), iostat(1M), ioctl(2), lseek(2), open(2),
read(2), write(2), driver.conf(4), cdio(7I), dkio(7I)
ANSI Small Computer System Interface-2 (SCSI-2)
SPARCstorage Array User's Guide
ANSI X3.272-1996, Fibre Channel Arbitrated Loop (FC-AL)
Fibre Channel - Private Loop SCSI Direct Attach (FC-PLDA)
DIAGNOSTICS
Error for command '<command name>' Error Level: Fatal Requested Block <n>,
Error Block: <m>, Sense Key: <sense key name>, Vendor '<vendor name>':
ASC = 0x<a> (<ASC name>), ASCQ = 0x<b>, FRU = 0x<c>
The command indicated by <command name> failed. The
Requested Block is the block where the transfer started and
the Error Block is the block that caused the error. Sense
Key, ASC, and ASCQ information is returned by the target in
response to a request sense command.
Check Condition on REQUEST SENSE
A REQUEST SENSE command completed with a check condition.
The original command will be retried a number of times.
Label says <m> blocks Drive says <n> blocks
There is a discrepancy between the label and what the drive
returned on the READ CAPACITY command.
Not enough sense information
The request sense data was less than expected.
Request Sense couldn't get sense data
The REQUEST SENSE command did not transfer any data.
Reservation Conflict
The drive was reserved by another initiator.
SCSI transport failed: reason 'xxxx' : {retrying|giving up}
The host adapter has failed to transport a command to the
target for the reason stated. The driver will either retry
the command or, ultimately, give up.
Unhandled Sense Key <n>
The REQUEST SENSE data included an invalid sense key.
Unit not Ready. Additional sense code 0x<n>
The drive is not ready.
corrupt label - bad geometry
The disk label is corrupted.
corrupt label - label checksum failed
The disk label is corrupted.
corrupt label - wrong magic number
The disk label is corrupted.
device busy too long
The drive returned busy during a number of retries.
disk not responding to selection
The drive was probably powered down or died.
i/o to invalid geometry
The geometry of the drive could not be established.
incomplete read/write - retrying/giving up
There was a residue after the command completed normally.
logical unit not ready
The drive is not ready.
no bp for disk label
A bp with consistent memory could not be allocated.
no mem for property
Free memory pool exhausted.
no memory for disk label
Free memory pool exhausted.
no resources for dumping
A packet could not be allocated during dumping.
offline
Drive went offline; probably powered down.
requeue of command fails<n>
Driver attempted to retry a command and experienced a tran-
sport error.
ssdrestart transport failed <n>
Driver attempted to retry a command and experienced a tran-
sport error.
transfer length not modulo <n>
Illegal request size.
transport rejected <n>
Host adapter driver was unable to accept a command.
unable to read label
Failure to read disk label.
unit does not respond to selection
Drive went offline; probably powered down.
Man(1) output converted with
man2html