NAME

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 normally 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.

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 statistics. 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/cntndnsn

block files

/dev/rdsk/cntndnsn

raw files

where, for the SPARCstorage Array:

cn

is the controller number on the system. Each SPARCstorage
Array will have a unique controller number

DIAGNOSTICS

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 transport error.

ssdrestart transport failed <n>

Driver attempted to retry a command and experienced a transport error.