Move everything from /var/adm to /var/log
[unleashed.git] / share / man / man7d / ssd.7d
blobb1b8f0534c41fe80223b0367752e3dee4610819e
1 '\" te
2 .\" Copyright (c) 2008, Sun Microsystems, Inc.  All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH SSD 7D "Aug 9, 2008"
7 .SH NAME
8 ssd \- Fibre Channel Arbitrated Loop disk device driver
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBssd@\fR\fIport\fR\fB,\fR\fItarget\fR\fB:\fR\fIpartition\fR
13 .fi
15 .SH DESCRIPTION
16 .sp
17 .LP
18  The \fBssd\fR driver supports Fibre Channel disk devices.
19 .sp
20 .LP
21 The specific type of each disk is determined by the \fBSCSI\fR inquiry command
22 and reading the volume label stored on block 0 of the drive. The volume label
23 describes the disk geometry and partitioning; it must be present or the disk
24 cannot be mounted by the system.
25 .sp
26 .LP
27 The block-files access the disk using the system's normal buffering mechanism
28 and are read and written without regard to physical disk records. A "raw"
29 interface provides for direct transmission between the disk and the read or
30 write buffer. A single read or write call usually results in one I/O operation;
31 raw I/O is therefore more efficient when many bytes are transmitted. Block file
32 names are found in \fB/dev/dsk\fR; the names of the raw files are found in
33 \fB/dev/rdsk\fR.
34 .sp
35 .LP
36 I/O requests (such as \fBlseek\fR(2)) to the \fBSCSI\fR disk must have an
37 offset that is a multiple of 512 bytes (\fBDEV_BSIZE\fR), or the driver returns
38 an \fBEINVAL\fR error. If the transfer length is not a multiple of 512 bytes,
39 the transfer count is rounded up by the driver.
40 .sp
41 .LP
42 Partition 0 is normally used for the root file system on a disk, with partition
43 1 as a paging area (for example, \fBswap\fR). Partition 2 is used to back up
44 the entire disk. Partition 2 normally maps the entire disk and may also be used
45 as the mount point for secondary disks in the system. The rest of the disk is
46 normally partition 6. For the primary disk, the user file system is located
47 here.
48 .sp
49 .LP
50 The device has associated error statistics. These must include counters for
51 hard errors, soft errors and transport errors. Other data may be implemented as
52 required.
53 .SH DEVICE STATISTICS SUPPORT
54 .sp
55 .LP
56 The device maintains I/O statistics for the device and for partitions allocated
57 for that device. For each device/partition, the  driver accumulates reads,
58 writes, bytes read, and bytes written. The driver also initiates hi-resolution
59 time stamps at queue entry and exit points to enable monitoring of residence
60 time and cumulative residence-length product for each queue.
61 .sp
62 .LP
63 Not all device drivers make per-partition IO statistics available for
64 reporting. \fBssd\fR and \fBsd\fR(7D) per-partition statistics are  enabled by
65 default but may be disabled in their configuration files.
66 .SH IOCTLS
67 .sp
68 .LP
69 Refer to  \fBdkio\fR(7I).
70 .SH ERRORS
71 .sp
72 .ne 2
73 .na
74 \fB\fBEACCES\fR\fR
75 .ad
76 .RS 10n
77 Permission denied.
78 .RE
80 .sp
81 .ne 2
82 .na
83 \fB\fBEBUSY\fR\fR
84 .ad
85 .RS 10n
86 The partition was opened exclusively by another thread.
87 .RE
89 .sp
90 .ne 2
91 .na
92 \fB\fBEFAULT\fR\fR
93 .ad
94 .RS 10n
95 The argument was a bad address.
96 .RE
98 .sp
99 .ne 2
101 \fB\fBEINVAL\fR\fR
103 .RS 10n
104 Invalid argument.
108 .ne 2
110 \fB\fBEIO\fR\fR
112 .RS 10n
113 An I/O error occurred.
117 .ne 2
119 \fB\fBENOTTY\fR\fR
121 .RS 10n
122 The device does not support the requested ioctl function.
126 .ne 2
128 \fB\fBENXIO\fR\fR
130 .RS 10n
131 When returned during  \fBopen\fR(2), this error indicates the device does not
132 exist.
136 .ne 2
138 \fB\fBEROFS\fR\fR
140 .RS 10n
141 The device is a read-only device.
144 .SH CONFIGURATION
147 You configure the \fBssd\fR driver by defining  properties in the
148 \fBssd.conf\fR file. The \fBssd\fR driver supports the following properties:
150 .ne 2
152 \fB\fBenable-partition-kstats\fR\fR
154 .RS 27n
155 The default value is 1, which causes partition IO statistics to be maintained.
156 Set this value to zero to prevent the driver from recording partition
157 statistics. This slightly reduces the CPU overhead for IO, mimimizes the amount
158 of \fBsar\fR(1) data collected and makes these statistics unavailable for
159 reporting by \fBiostat\fR(8) even though the \fB-p\fR/\fB-P\fR option is
160 specified.  Regardless of this setting, disk IO statistics are always
161 maintained.
166 In addition to the above properties, some device-specific tunables can be
167 configured in \fBssd.conf\fR using the 'ssd-config-list' global property. The
168 value of this property is a list of duplets. The formal syntax is:
170 .in +2
172 ssd-config-list =       <duplet> [, <duplet> ]* ;
174 where
176 <duplet>:=        "<vid+pid>" , "<tunable-list>"
180 <tunable-list>:=   <tunable>  [, <tunable> ]*;
181 <tunable> =        <name> : <value>
183 The <vid+pid> is the string that is returned by the target device
184 on a SCSI inquiry command.
186 The <tunable-list> contains one or more tunables to apply to
187 all target devices with the specified <vid+pid>.
189 Each <tunable> is a <name> : <value> pair. Supported
190 tunable names are:
192    delay-busy:  when busy, nsecs of delay before retry.
194    retries-timeout:     retries to perform on an IO timeout.
196 .in -2
198 .SH EXAMPLES
200 .in +2
202 The following is an example of a global ssd-config-list property:
204    ssd-config-list =
205       "SUN     T4", "delay-busy:600, retries-timeout:6",
206       "SUN     StorEdge_3510", "retries-timeout:3";
208 .in -2
210 .SH FILES
212 .ne 2
214 \fBssd.conf\fR
216 .RS 22n
217 Driver configuration file
221 .ne 2
223 \fB/dev/dsk/c\fIn\fR\fBt\fR\fIn\fR\fBd\fR\fIn\fR\fBs\fR\fIn\fR\fR
225 .RS 22n
226 block files
230 .ne 2
232 \fB/dev/rdsk/c\fIn\fR\fBt\fR\fIn\fR\fBd\fR\fIn\fR\fBs\fR\fIn\fR\fR
234 .RS 22n
235 raw files
239 .ne 2
241 \fBc\fIn\fR\fR
243 .RS 22n
244 is the controller number on the system.
248 .ne 2
250 \fBt\fIn\fR\fR
252 .RS 22n
253 7-bit disk loop identifier, such as switch setting
257 .ne 2
259 \fBd\fIn\fR\fR
261 .RS 22n
262 SCSI lun  \fIn\fR
266 .ne 2
268 \fB\fBs\fR\fIn\fR\fR
270 .RS 22n
271 partition \fIn\fR (0-7)
274 .SH SEE ALSO
277 \fBsar\fR(1), \fBformat\fR(8), \fBiostat\fR(8), \fBioctl\fR(2),
278 \fBlseek\fR(2), \fBopen\fR(2), \fBread\fR(2), \fBwrite\fR(2),
279 \fBscsi\fR(4), \fBdriver.conf\fR(4), \fBcdio\fR(7I), \fBdkio\fR(7I)
282 \fIANSI Small Computer System Interface-2 (SCSI-2)\fR
285 \fIANSI X3.272-1996, Fibre Channel Arbitrated Loop (FC-AL)\fR
288 \fIFibre Channel - Private Loop SCSI Direct Attach (FC-PLDA)\fR
289 .SH DIAGNOSTICS
291 .in +2
293 Error for command '<command name>' Error Level: Fatal Requested Block <n>,
294 Error  Block: <m>, Sense Key: <sense key name>, Vendor '<vendor name>':
295 ASC = 0x<a> (<ASC name>), ASCQ = 0x<b>, FRU = 0x<c>
297 .in -2
302 The command indicated by <command name> failed. The Requested Block is the
303 block where the transfer started and the Error Block is the block that caused
304 the error. Sense Key, ASC, and ASCQ information is returned by the target in
305 response to a request sense command.
307 .in +2
309 Check Condition on REQUEST SENSE
311 .in -2
316 A REQUEST SENSE command completed with a check condition. The original command
317 will be retried a number of times.
319 .in +2
321 Label says <m> blocks Drive says <\fIn\fR> blocks
323 .in -2
328 There is a discrepancy between the label and what the drive returned on the
329 READ CAPACITY command.
331 .in +2
333 Not enough sense information
335 .in -2
340 The request sense data was less than expected.
342 .in +2
344 Request Sense couldn't get sense data
346 .in -2
351 The REQUEST SENSE command did not transfer any data.
353 .in +2
355 Reservation Conflict
357 .in -2
362 The drive was reserved by another initiator.
364 .in +2
366 SCSI transport failed: reason 'xxxx' : {retrying|giving up}
368 .in -2
373 The host adapter has failed to transport a command to the target for the
374 reason stated. The driver will either retry the command or, ultimately, give
377 .in +2
379 Unhandled Sense Key <\fIn\fR>
381 .in -2
386 The REQUEST SENSE data included an invalid sense key.
388 .in +2
390 Unit not Ready. Additional sense code 0x<\fIn\fR>
392 .in -2
397 The drive is not ready.
399 .in +2
401 corrupt label - bad geometry
403 .in -2
408 The disk label is corrupted.
410 .in +2
412 corrupt label - label checksum failed
414 .in -2
419 The disk label is corrupted.
421 .in +2
423 corrupt label - wrong magic number
425 .in -2
430 The disk label is corrupted.
432 .in +2
434 device busy too long
436 .in -2
441 The drive returned busy during a number of retries.
443 .in +2
445 disk not responding to selection
447 .in -2
452 The drive was probably powered down or died.
454 .in +2
456 i/o to invalid geometry
458 .in -2
463 The geometry of the drive could not be established.
465 .in +2
467 incomplete read/write - retrying/giving up
469 .in -2
474 There was a residue after the command completed normally.
476 .in +2
478 logical unit not ready
480 .in -2
485 The drive is not ready.
487 .in +2
489 no bp for disk label
491 .in -2
496 A bp with consistent memory could not be allocated.
498 .in +2
500 no mem for property
502 .in -2
507 Free memory pool exhausted.
509 .in +2
511 no memory for disk label
513 .in -2
518 Free memory pool exhausted.
520 .in +2
522 no resources for dumping
524 .in -2
529 A packet could not be allocated during dumping.
531 .in +2
533 offline
535 .in -2
540 Drive went offline; probably powered down.
542 .in +2
544 requeue of command fails<\fIn\fR>
546 .in -2
551 Driver attempted to retry a command and experienced a transport error.
553 .in +2
555 ssdrestart transport failed <\fIn\fR>
557 .in -2
562 Driver attempted to retry a command and experienced a transport error.
564 .in +2
566 transfer length not modulo <\fIn\fR>
568 .in -2
573 Illegal request size.
575 .in +2
577 transport rejected <\fIn\fR>
579 .in -2
584 Host adapter driver was unable to accept a command.
586 .in +2
588 unable to read label
590 .in -2
595 Failure to read disk label.
597 .in +2
599 unit does not respond to selection
601 .in -2
606 Drive went offline; probably powered down.