SCSI wiki

137
Contents Articles SCSI 1 Active terminator 8 Advanced SCSI Programming Interface 9 SCSI architectural model 10 SCSI CDB 11 SCSI check condition 13 SCSI connector 13 SCSI contingent allegiance condition 18 Domain validation 19 Electrical termination 20 Enclosure Services Interface 22 Hard Disk 20SC 24 Host adapter 25 HyperSCSI 27 iSCSI 28 iSCSI Boot Firmware Table 35 ISCSI Conformance Testing and Testing Tool Requirement 35 iSCSI Extensions for RDMA 39 Key Code Qualifier 41 Layer Jump Recording 47 List of SCSI message codes 48 Logical block addressing 49 Logical Unit Number 52 Mount Rainier (packet writing) 54 MultiMedia Commands 56 NCR 5380 56 NCR 53C9x 57 Parallel SCSI 58 Persistent binding 64 SAF-TE 66 SCSI / ATA Translation 67 SCSI command 67 SCSI diagnostic pages 72 SCSI element codes 73

Transcript of SCSI wiki

Page 1: SCSI wiki

ContentsArticles

SCSI 1Active terminator 8Advanced SCSI Programming Interface 9SCSI architectural model 10SCSI CDB 11SCSI check condition 13SCSI connector 13SCSI contingent allegiance condition 18Domain validation 19Electrical termination 20Enclosure Services Interface 22Hard Disk 20SC 24Host adapter 25HyperSCSI 27iSCSI 28iSCSI Boot Firmware Table 35ISCSI Conformance Testing and Testing Tool Requirement 35iSCSI Extensions for RDMA 39Key Code Qualifier 41Layer Jump Recording 47List of SCSI message codes 48Logical block addressing 49Logical Unit Number 52Mount Rainier (packet writing) 54MultiMedia Commands 56NCR 5380 56NCR 53C9x 57Parallel SCSI 58Persistent binding 64SAF-TE 66SCSI / ATA Translation 67SCSI command 67SCSI diagnostic pages 72SCSI element codes 73

Page 2: SCSI wiki

SCSI element status codes 74SCSI Enclosure Services 74SCSI Format Unit Command 76SCSI high byte termination 77SCSI host adapter 78SCSI initiator and target 79SCSI Inquiry Command 80SCSI log pages 82SCSI Log Select Command 82SCSI Log Sense Command 83SCSI mode pages 84SCSI Mode Select Command 85SCSI Mode Sense Command 86SCSI Pass Through Interface 88SCSI Pass-Through Direct 90SCSI Peripheral Device Type 91SCSI RDMA Protocol 92SCSI Read Capacity Command 93SCSI Read Commands 94SCSI Receive Diagnostic Results Command 97SCSI Report LUNs Command 98SCSI Request Sense Command 99SCSI Send Diagnostic Command 101SCSI standalone enclosure services 102SCSI Start Stop Unit Command 103SCSI Status Code 104SCSI terminating resistor 105SCSI Test Unit Ready Command 105SCSI Write Commands 106Sense Key 109Serial attached SCSI 115Serial Storage Architecture 121Single Connector Attachment 122Tagged Command Queuing 123USB Attached SCSI 126Very-high-density cable interconnect 127World Wide Name 127

Page 3: SCSI wiki

ReferencesArticle Sources and Contributors 130Image Sources, Licenses and Contributors 133

Article LicensesLicense 134

Page 4: SCSI wiki

SCSI 1

SCSI

The icon/logo used for SCSI.

Small Computer System Interface (SCSI,  /ˈskʌzi/ SKUZ-ee)[1] isa set of standards for physically connecting and transferring databetween computers and peripheral devices. The SCSI standards definecommands, protocols, and electrical and optical interfaces. SCSI ismost commonly used for hard disks and tape drives, but it can connecta wide range of other devices, including scanners and CD drives,although not all controllers can handle all devices. The SCSI standarddefines command sets for specific peripheral device types; the presenceof "unknown" as one of these types means that in theory it can be usedas an interface to almost any device, but the standard is highlypragmatic and addressed toward commercial requirements.

SCSI is an intelligent, peripheral, buffered, peer to peer interface. Ithides the complexity of physical format. Every device attaches to theSCSI bus in a similar manner. Up to 8 or 16 devices can be attached toa single bus. There can be any number of hosts and peripheral devices but there should be at least one host. SCSIuses handshake signals between devices, SCSI-1, SCSI-2 have the option of parity error checking. Starting withSCSI-U160 (part of SCSI-3) all commands and data are error checked by a CRC32 checksum. The SCSI protocoldefines communication from host to host, host to a peripheral device, peripheral device to a peripheral device.However most peripheral devices are exclusively SCSI targets, incapable of acting as SCSI initiators—unable toinitiate SCSI transactions themselves. Therefore peripheral-to-peripheral communications are uncommon, butpossible in most SCSI applications. The Symbios Logic 53C810 chip is an example of a PCI host interface that canact as a SCSI target.

HistorySCSI was derived from "SASI", the "Shugart Associates System Interface", developed c. 1978 and publiclydisclosed in 1981.[2] A SASI controller provided a bridge between a hard disk drive's low-level interface and a hostcomputer, which needed to read blocks of data. SASI controller boards were typically the size of a hard disk driveand were usually physically mounted to the drive's chassis. SASI, which was used in mini- and earlymicrocomputers, defined the interface as using a 50-pin flat ribbon connector which was adopted as the SCSI-1connector. SASI is a fully compliant subset of SCSI-1 so that many, if not all, of the then-existing SASI controllerswere SCSI-1 compatible.[3]

Larry Boucher is considered to be the "father" of SASI and SCSI due to his pioneering work first at ShugartAssociates and then at Adaptec.[4]

Until at least February 1982, ANSI developed the specification as "SASI" and "Shugart Associates SystemInterface;"[5] however, the committee documenting the standard would not allow it to be named after a company.Almost a full day was devoted to agreeing to name the standard "Small Computer System Interface," which Boucherintended to be pronounced "sexy", but ENDL's[6] Dal Allan pronounced the new acronym as "scuzzy" and thatstuck.[4]

A number of companies such as NCR Corporation, Adaptec and Optimem were early supporters of the SCSIstandard.[5] The NCR facility in Wichita, Kansas is widely thought to have developed the industry's first SCSI chip;it worked the first time.[7]

Page 5: SCSI wiki

SCSI 2

The "small" part in SCSI is historical; since the mid-1990s, SCSI has been available on even the largest of computersystems.Since its standardization in 1986, SCSI has been commonly used in the Amiga, Apple Macintosh and SunMicrosystems computer lines and PC server systems. Apple started using Parallel ATA (also known as IDE) for itslow-end machines with the Macintosh Quadra 630 in 1994, and added it to its high-end desktops starting with thePower Macintosh G3 in 1997. Apple dropped on-board SCSI completely (in favor of IDE and FireWire) with the(Blue & White) Power Mac G3 in 1999. Sun has switched its lower end range to Serial ATA (SATA). SCSI hasnever been popular in the low-priced IBM PC world, owing to the lower cost and adequate performance of ATAhard disk standard. However, SCSI drives and even SCSI RAIDs became common in PC workstations for video oraudio production.Recent versions of SCSI – Serial Storage Architecture (SSA), SCSI-over-Fibre Channel Protocol (FCP), SerialAttached SCSI (SAS), Automation/Drive Interface − Transport Protocol (ADT), and USB Attached SCSI (UAS) –break from the traditional parallel SCSI standards and perform data transfer via serial communications. Althoughmuch of the documentation of SCSI talks about the parallel interface, most contemporary development effort is onserial SCSI. Serial SCSI has a number of advantages over parallel SCSI: faster data rates, hot swapping (some butnot all parallel SCSI interfaces support it), and improved fault isolation. The primary reason for the shift to serialinterfaces is the clock skew issue of high speed parallel interfaces, which makes the faster variants of parallel SCSIsusceptible to problems caused by cabling and termination.iSCSI preserves the basic SCSI paradigm, especially the command set, almost unchanged, through embedding ofSCSI-3 over TCP/IP.SCSI is popular on high-performance workstations and servers. RAIDs on servers have almost always used SCSIhard disks, though a number of manufacturers now offer SATA-based RAID systems as a cheaper option. Instead ofSCSI, desktop computers and notebooks more typically use ATA interfaces for internal hard disk drives, and USB,eSATA, and FireWire connections for external devices.As of 2012 SCSI interfaces had become impossible to find for laptop computers. Adaptec had years before producedPCMCIA SCSI interfaces, but when PCMCIA was superseded by the ExpressCard discontinued their PCMCIA linewithout supporting ExpressCard. Ratoc produced USB and Firewire to SCSI adaptors, but ceased production whenthe integrated circuits required were discontinued. Drivers for existing PCMCIA interfaces were not produced fornewer operating systems.

Interfaces

Two SCSI connectors.

SCSI is available in a variety of interfaces. The first, still verycommon, was parallel SCSI (now also called SPI), which uses aparallel electrical bus design. As of 2008, SPI is being replaced bySerial Attached SCSI (SAS), which uses a serial design but retainsother aspects of the technology. Many other interfaces which do notrely on complete SCSI standards still implement the SCSI commandprotocol; others (such as iSCSI) drop physical implementation entirelywhile retaining the SCSI architectural model. iSCSI, for example, usesTCP/IP as a transport mechanism.

SCSI interfaces have often been included on computers from variousmanufacturers for use under Microsoft Windows, Mac OS, Unix, Commodore Amiga and Linux operating systems,either implemented on the motherboard or by the means of plug-in adaptors. With the advent of SAS and SATAdrives, provision for SCSI on motherboards is being discontinued. A few companies still market SCSI interfaces formotherboards supporting PCIe and PCI-X.

Page 6: SCSI wiki

SCSI 3

Parallel SCSI

Interface Alternativenames

Specificationdocument[8]

Connector Width(bits)

Clock[9] Maximum Electrical

Bandwidth(MB/s)[10]

Bandwidth(Mbit/s)[11]

Length(single

ended)[12]

LengthLVD[13]

LengthHVD

Devices[14] Impedance[Ω]

Voltage[V]

SCSI-1 NarrowSCSI

SCSI-1(1986)[15]

IDC50;CentronicsC50

8 5 MHz 5 MB/s 40 Mbit/s 6 m NA 25m 8 SE 90 ± 6Ω[16]

5

Fast SCSI SCSI-2(1994)

IDC50;CentronicsC50

8 10 MHz 10 MB/s 80 Mbit/s 3 m NA 25m 8 SE 90 ± 6Ω[16]

5

Fast-WideSCSI

SCSI-2;SCSI-3 SPI(1996)[15]

2 x 50-pin(SCSI-2);1 x 68-pin(SCSI-3)

16 10 MHz 20 MB/s 160 Mbit/s 3 m NA 25m 16 SE 90 ± 6Ω[16]

5

UltraSCSI

Fast-20 SCSI-3SPI[15]

IDC50 8 20 MHz 20 MB/s 160 Mbit/s 1.5 m NA 25m 8 SE 90 ± 6Ω[16]

5

3 m NA NA 4

UltraWideSCSI

SCSI-3SPI[15]

68-pin 16 20 MHz 40 MB/s 320 Mbit/s NA NA 25m 16 SE 90 ± 6Ω[16]

5

1.5 m NA NA 8

3 m NA NA 4

Ultra2SCSI

Fast-40 SCSI-3SPI-2 (1997)

50-pin 8 40 MHz 40 MB/s 320 Mbit/s NA 12m 25m 8 LVD 125 ±10 Ω[16]

Ultra2WideSCSI

SCSI-3SPI-2

68-pin;80-pin(SCA/SCA-2)

16 40 MHz 80 MB/s 640 Mbit/s NA 12m 25m 16 LVD 125 ±10 Ω[16]

Ultra3SCSI

Ultra-160;Fast-80wide

SCSI-3SPI-3(1999)[15]

68-pin;80-pin(SCA/SCA-2)

16 40 MHzDDR

160 MB/s 1280 Mbit/s NA 12m NA 16 LVD 125 ±10 Ω[16]

Ultra-320SCSI

Ultra-4;Fast-160

SCSI-3SPI-4(2002)[15]

68-pin;80-pin(SCA/SCA-2)

16 80 MHzDDR

320 MB/s 2560 Mbit/s NA 12m NA 16 LVD 125 ±10 Ω[16]

Ultra-640SCSI

Ultra-5 SCSI-3SPI-5 (2003)

68-pin;80-pin

16 160 MHzDDR

640 MB/s 5120 Mbit/s 16

Other SCSI interfaces

Page 7: SCSI wiki

SCSI 4

Interface Alternativenames

Specificationdocument

Connector Width(bits)

Clock[9] Maximum

Throughput(MB/s)

[10]Throughput(Mbit/s)

[11]Length

[12]Devices

[14]

SSA 1 200 MHz 40 MB/s[17][18] 320 Mbit/s 25 m 96

SSA 40 1 400 MHz 80 MB/s[17][18] 640 Mbit/s 25 m 96

FC-AL1Gb

1 1 GHz 100 MB/s[18][19] 800 Mbit/s 500m/3 km[20] 127

FC-AL2Gb

1 2 GHz 200 MB/s[18][19] 1600 Mbit/s 500m/3 km[20] 127

FC-AL4Gb

1 4 GHz 400 MB/s[18][19] 3200 Mbit/s 500m/3 km[20] 127

SAS 1.1 1 3 GHz 300 MB/s[18][19] 2400 Mbit/s 6 m 16,256[21]

SAS 2.0 1 6 GHz 600 MB/s[18][19] 4800 Mbit/s 6 m 16,256[21]

iSCSI Implementation- and network-dependent

Cabling

Bus terminator with top cover removed.

SCSI Parallel Interface

Internal parallel SCSI cables are usually ribbons, with two or more50–, 68–, or 80–pin connectors attached. External cables are typicallyshielded (but may not be), with 50– or 69–pin connectors at each end,depending upon the specific SCSI bus width supported.[22] The 80–pinSingle Connector Attachment (SCA) is typically used forhot-pluggable devices, where external cables are not usually required.

Serial attached SCSISerial attached SCSI uses a modified Serial ATA data and power cable.

iSCSIiSCSI (Internet Small Computer System Interface) usually uses Ethernet connectors and cables as its physicaltransport, but can run over any physical transport capable of transporting IP.

USB Attached SCSIUSB Attached SCSI allows SCSI devices to use the Universal Serial Bus.

Automation/Drive InterfaceThe Automation/Drive Interface − Transport Protocol (ADT) is used to connect removable media devices, such as tape drives, with the controllers of the libraries (automation devices) in which they are installed. The ADI standard specifies the use of RS-422 for the physical connections. The second-generation ADT-2 standard defines iADT, use

Page 8: SCSI wiki

SCSI 5

of the ADT protocol over IP (Internet Protocol) connections, such as over Ethernet. The Automation/Drive Interface− Commands standards (ADC, ADC-2, and ADC-3) define SCSI commands for these installations.

SCSI command protocolIn addition to many different hardware implementations, the SCSI standards also include an extensive set ofcommand definitions. The SCSI command architecture was originally defined for parallel SCSI buses but has beencarried forward with minimal change for use with iSCSI and serial SCSI. Other technologies which use the SCSIcommand set include the ATA Packet Interface, USB Mass Storage class and FireWire SBP-2.In SCSI terminology, communication takes place between an initiator and a target. The initiator sends a command tothe target, which then responds. SCSI commands are sent in a Command Descriptor Block (CDB). The CDBconsists of a one byte operation code followed by five or more bytes containing command-specific parameters.At the end of the command sequence, the target returns a status code byte, such as 00h for success, 02h for an error(called a Check Condition), or 08h for busy. When the target returns a Check Condition in response to a command,the initiator usually then issues a SCSI Request Sense command in order to obtain a key code qualifier (KCQ) fromthe target. The Check Condition and Request Sense sequence involves a special SCSI protocol called a ContingentAllegiance Condition.There are 4 categories of SCSI commands: N (non-data), W (writing data from initiator to target), R (reading data),and B (bidirectional). There are about 60 different SCSI commands in total, with the most commonly used being:• Test unit ready: Queries device to see if it is ready for data transfers (disk spun up, media loaded, etc.).• Inquiry: Returns basic device information.• Request sense: Returns any error codes from the previous command that returned an error status.• Send diagnostic and Receive diagnostic results: runs a simple self-test, or a specialised test defined in a diagnostic

page.• Start/Stop unit: Spins disks up and down, or loads/unloads media (CD, tape, etc.).• Read capacity: Returns storage capacity.• Format unit: Prepares a storage medium for use. In a disk, a low level format will occur. Some tape drives will

erase the tape in response to this command.• SCSI Read format capacities: Retrieve the data capacity of the device.• Read (four variants): Reads data from a device.• Write (four variants): Writes data to a device.• Log sense: Returns current information from log pages.• Mode sense: Returns current device parameters from mode pages.• Mode select: Sets device parameters in a mode page.Each device on the SCSI bus is assigned a unique SCSI identification number or ID. Devices may encompassmultiple logical units, which are addressed by logical unit number (LUN). Simple devices have just one LUN, morecomplex devices may have multiple LUNs.A "direct access" (i.e. disk type) storage device consists of a number of logical blocks, addressed by Logical BlockAddress (LBA). A typical LBA equates to 512 bytes of storage. The usage of LBAs has evolved over time and sofour different command variants are provided for reading and writing data. The Read(6) and Write(6) commandscontain a 21-bit LBA address. The Read(10), Read(12), Read Long, Write(10), Write(12), and Write Longcommands all contain a 32-bit LBA address plus various other parameter options.The capacity of a "sequential access" (i.e. tape-type) device is not specified because it depends, amongst other things, on the length of the tape, which is not identified in a machine-readable way. Read and write operations on a sequential access device begin at the current tape position, not at a specific LBA. The block size on sequential access devices can either be fixed or variable, depending on the specific device. Tape devices such as half-inch 9-track tape,

Page 9: SCSI wiki

SCSI 6

DDS (4 mm tapes physically similar to DAT), Exabyte, etc., support variable block sizes.

Device identificationIn modern SCSI transport protocols, there is an automated process for "discovery" of the IDs. SSA initiators "walkthe loop" to determine what devices are connected and then assigns each one a 7-bit "hop-count" value. FibreChannel – Arbitrated Loop (FC-AL) initiators use the LIP (Loop Initialization Protocol) to interrogate each deviceport for its WWN (World Wide Name). For iSCSI, because of the unlimited scope of the (IP) network, the process isquite complicated. These discovery processes occur at power-on/initialization time and also if the bus topologychanges later, for example if an extra device is added.On a parallel SCSI bus, a device (e.g. host adapter, disk drive) is identified by a "SCSI ID", which is a number in therange 0–7 on a narrow bus and in the range 0–15 on a wide bus. On earlier models a physical jumper or switchcontrols the SCSI ID of the initiator (host adapter). On modern host adapters (since about 1997), doing I/O to theadapter sets the SCSI ID; for example, the adapter often contains a BIOS program that runs when the computer bootsup and that program has menus that let the operator choose the SCSI ID of the host adapter. Alternatively, the hostadapter may come with software that must be installed on the host computer to configure the SCSI ID. Thetraditional SCSI ID for a host adapter is 7, as that ID has the highest priority during bus arbitration (even on a 16 bitbus).The SCSI ID of a device in a drive enclosure that has a backplane is set either by jumpers or by the slot in theenclosure the device is installed into, depending on the model of the enclosure. In the latter case, each slot on theenclosure's back plane delivers control signals to the drive to select a unique SCSI ID. A SCSI enclosure without aback plane often has a switch for each drive to choose the drive's SCSI ID. The enclosure is packaged withconnectors that must be plugged into the drive where the jumpers are typically located; the switch emulates thenecessary jumpers. While there is no standard that makes this work, drive designers typically set up their jumperheaders in a consistent format that matches the way that these switches implement.Note that a SCSI target device (which can be called a "physical unit") is often divided into smaller "logical units."For example, a high-end disk subsystem may be a single SCSI device but contain dozens of individual disk drives,each of which is a logical unit (more commonly, it is not that simple—virtual disk devices are generated by thesubsystem based on the storage in those physical drives, and each virtual disk device is a logical unit). The SCSI ID,WWN, etc. in this case identifies the whole subsystem, and a second number, the logical unit number (LUN)identifies a disk device within the subsystem.It is quite common, though incorrect, to refer to the logical unit itself as a "LUN."[23] Accordingly, the actual LUNmay be called a "LUN number" or "LUN id".[24]

Setting the bootable (or first) hard disk to SCSI ID 0 is an accepted IT community recommendation. SCSI ID 2 isusually set aside for the floppy disk drive while SCSI ID 3 is typically for a CD-ROM drive.[25]

Device TypeWhile all SCSI controllers can work with read/write storage devices, i.e. disk and tape, some will not work withsome other device types; older controllers are likely to be more limited[26], sometimes by their driver software, andmore Device Types were added as SCSI evolved. Even CD-ROMs are not handled by all controllers. Device Type isa 5-bit field reported by a SCSI Inquiry Command; defined SCSI Peripheral Device Types include, in addition tomany varieties of storage device, printer, scanner, communications device, and a catch-all "processor" type fordevices not otherwise listed.

Page 10: SCSI wiki

SCSI 7

SCSI enclosure servicesIn larger SCSI servers, the disk-drive devices are housed in an intelligent enclosure that supports SCSI EnclosureServices (SES). The initiator can communicate with the enclosure using a specialized set of SCSI commands toaccess power, cooling, and other non-data characteristics.

References[1] Field. The Book of SCSI. pp. 1.[2][2] ANSI Draft SASI Standard, Rev D, February 17, 1982, pg. ii states, "9/15/81 first presentation to ANSI committee X3T9-3 (2 weeks

following announcement in Electronic Design)."[3][3] ANSI SCSI Standard, X3.131-1986, June 23, 1986, 2nd, foreword.[4] "How Computer Storage Became a Modern Business," Computer History Museum, March 9, 2005 (http:/ / www. youtube. com/

watch?v=OiLUIJ3ke-o)[5][5] Working document for ANSI meeting on March 3, 1982, "SASI SHUGART ASSOCIATES SYSTEM INTERFACE, Revision D, February

17, 1982"[6] ENDL Inc. Home Page (http:/ / www. endl. com/ )[7] NCR Collection (LSI Logic)at Smithsonian Museum (http:/ / smithsonianchips. si. edu/ ncr/ scsi-1. htm)[8] Specifications are maintained by the T10 subcommittee of the International Committee for Information Technology Standards.[9] Clock rate in MHz for SPI, or bitrate (per second) for serial interfaces[10] In megabytes per second, not megabits per second[11] In megabits per second, not megabytes per second[12][12] For daisy-chain designs, length of bus, from end to end; for point-to-point, length of a single link[13][13] LVD cabling may be up to 25m when only a single device is attached to the host adapter[14][14] Including any host adapters (i.e., computers count as a device)[15] The SCSI-1 specification has been withdrawn and is superseded by SCSI-2. The SCSI-3 SPI specification has been withdrawn and is

superseded by SPI-2. The SCSI-3 SPI-3 and SPI-4 specifications have been withdrawn and are superseded by SPI-5. "T10 WithdrawnStandards and Technical Reports" (http:/ / www. t10. org/ drafts. htm#OBSOLETE). . Retrieved March 18, 2010.

[16] "Random Problems Encountered When Mixing SE and LVD SCSI Standards" (http:/ / support. microsoft. com/ kb/ 285013). . RetrievedMay 7, 2008.

[17][17] spatial reuse[18][18] full duplex[19][19] per direction[20] 500 meters for multi-mode, 3 kilometers for single-mode[21][21] 128 per expander[22] SCSI Standards & Cables for the "normal"* person (http:/ / www. ramelectronics. net/ scsi_cables__. ep)[23] "na_lun(1) – Manual page for "lun" on NetApp DataONTAP". NetApp. July 7, 2009. "The lun command is used to create and manage

luns[...]"[24] "na_lun(1) – Manual page for "lun" on NetApp DataONTAP". NetApp. July 7, 2009. "If a LUN ID is not specified, the smallest number [...]

is automatically picked."[25] Groth, David; Dan Newland (January 2001). A+ Complete Study Guide (2nd Edition) (http:/ / www. bookfinder4u. com/ IsbnSearch.

aspx?isbn=0782128025& mode=direct). Alameda, CA, USA: l Sybex. pp. 183. ISBN 0-7821-4244-3. .[26] An example of an old SCSI interface which supported only named mass storage devices (http:/ / h30097. www3. hp. com/ docs/ base_doc/

DOCUMENTATION/ V40F_HTML/ MAN/ MAN7/ 0003____. HTM)

Page 11: SCSI wiki

SCSI 8

Bibliography• Pickett, Joseph P., et al. (ed), ed. (2000). The American Heritage Dictionary of the English Language (AHD)

(http:/ / www. bartleby. com/ 61/ ) (Fourth Edition ed.). Houghton Mifflin Company. ISBN 0-395-82517-2.• Field, Gary; Peter Ridge, John Lohmeyer, Gerhard Islinger, Stefan Groll (2000). The Book of SCSI (2nd Edition

ed.). No Starch Press. ISBN 1-886411-10-7.

External links• SCSI Tutorial (http:/ / www. pacificcable. com/ SCSI-Tutorial. html)• SCSI Details, Wiring, Compaq/HP (http:/ / www. delec. com/ guide/ scsi/ )• All About SCSI (http:/ / www. datapro. net/ techinfo/ scsi_doc. html)• T10 Technical Committee (http:/ / www. t10. org/ ) (SCSI standards)• SCSITA terminology (http:/ / www. scsita. org/ terms-and-terminology. html)• "Storage Cornucopia" SCSI links, maintained by a consultant (http:/ / www. bswd. com/ cornucop. htm)• SCSI/iSCSI/RAID/SAS Information Sheet (http:/ / www. woodsmall. com/ SCSI. htm)• SCSI basics (http:/ / www. pcnineoneone. com/ howto/ scsi1. html)• SCSI and ATA pinouts (http:/ / pinouts. ru/ pin_HD. shtml)• Anatomy of the Linux SCSI subsystem (http:/ / www. ibm. com/ developerworks/ linux/ library/ l-scsi-subsystem/

?ca=dgr-lnxw57LinuxSCSIsub& S_TACT=105AGX59& S_CMP=GR)• List of Adapters by SCSI connector type (http:/ / www. scsi4me. com/ scsi-connectors. htm)• SCSI Library (http:/ / www. scsilibrary. com/ )• SCSI connector photos (http:/ / www-304. ibm. com/ systems/ support/ supportsite. wss/

docdisplay?brandind=5000008& lndocid=MIGR-4AQSCA)

Active terminatorAn active terminator is a type of single ended SCSI terminator with a built-in voltage regulator to compensate forvariations in terminator power.

Page 12: SCSI wiki

Advanced SCSI Programming Interface 9

Advanced SCSI Programming InterfaceIn computing, ASPI (Advanced SCSI Programming Interface) is an application programming interface originatedby Adaptec which standardizes communication on a computer bus between a SCSI host adapter on the one hand andSCSI (and ATAPI) peripherals on the other.

HistoryASPI was developed by Adaptec in the early 1990s. It was originally designed to support SCSI drives. Support forATAPI interface (such as IDE) was later added.Microsoft licensed the interface for use with Windows 9x series. At the same time Microsoft developed SCSI PassThrough Interface (SPTI), an in-house substitute that worked on the NT platform. Microsoft did not include ASPI inWindows 2000/XP, in favor of its own SPTI. Users may still download ASPI from Adaptec. A number of CD/DVDapplications also continue to offer their own implementations of ASPI layer.

DriverASPI was provided by the following drivers.

Operating System Driver Filename Bundled

DOS ASPI4DOS.SYS No

Windows 3.1x WINASPI.DLL No

Windows 95, 98 and ME WNASPI32.DLL, WINASPI.DLL, APIX.VXD and ASPIENUM.VXD Yes

Windows NT, 2000, XP WNASPI32.DLL, ASPI32.SYS No

FreeDOS USBASPI.SYS Unknown

External links

Adaptec's ASPI driver• Adaptec ASPI driver [1], FAQ [2]

Non-Adaptec ASPI drivers• Nero ASPI driver [3]

• Frog ASPI driver [4]

• Mekugi ASPI driver [5]

• Pinnacle Systems ASAPI driver [6]

Page 13: SCSI wiki

Advanced SCSI Programming Interface 10

Technical information• Technical reference (ASPI for Win32) [7]

• ASPI Layer setup [8]

Tips• Bart's page about ASPI [9]

References[1] http:/ / www. adaptec. com/ en-US/ speed/ software_pc/ aspi/ aspi_471a2_exe. htm[2] http:/ / ask. adaptec. com/ scripts/ adaptec_tic. cfg/ php. exe/ enduser/ std_adp. php?p_faqid=2671[3] ftp:/ / ftp6. nero. com/ NeroAspiEn. exe[4] http:/ / www. frogaspi. org/ download. htm[5] http:/ / come. to/ t_chan/ MekugiAspi/ MekugiAspi. htm[6] ftp:/ / ftp. pinnaclesys. de/ driver/ pc/ InstantCDDVD/ ASAPI. exe[7] http:/ / www. zianet. com/ jgray/ dat/ files/ ASPI32. pdf[8] http:/ / www. doom9. org/ aspi. htm[9] http:/ / www. nu2. nu/ aspi/

SCSI architectural modelThe SCSI architectural model provides an abstract view of the way that SCSI devices communicate. It is intendedto show how the different SCSI standards are inter-related. The main concepts and terminology of the SCSIarchitectural model are:•• Only the externally observable behavior is defined in SCSI standards.• The relationship between SCSI devices is described by a client-server service-delivery model. The client is called

a SCSI initiator and the server is called a SCSI target.• A SCSI domain consists of at least one SCSI device, at least one SCSI target and at least one SCSI initiator

interconnected by a service delivery subsystem.• A SCSI device has one or more SCSI ports, and a SCSI port may have an optional SCSI port identifier (SCSI

ID or PID).• A SCSI device can have an optional SCSI device name which must be unique within the SCSI domain in which

the SCSI device has SCSI ports. This is often called a World Wide Name. Note that the "world" may only consistof a very small number of SCSI devices.

• A SCSI target consists of one or more SCSI logical unit numbers (LUNs).• A LUN may have dependent LUNs embedded within it. This can recur up to a maximum nesting depth of four

addressable levels.•• There are three type of SCSI ports: initiator ports, target ports and target/initiator ports. A SCSI device may

contain any combination of initiator ports, target ports and target/initiator ports.• SCSI distributed objects are considered to communicate in a three layer model:

• The highest level of abstraction is the SCSI Application Layer (SAL) where an initiator and a target areconsidered to communicate using SCSI commands sent via the SCSI application protocol.

• The SCSI Transport Protocol Layer (STPL) is where an initiator and a target are considered to communicateusing a SCSI transport protocol. Examples of SCSI transport protocols are Fibre Channel, SSA and the SCSIParallel Interface.

• The lowest level is the SCSI Interconnect Layer (SIL) where an initiator and a target are considered tocommunicate using an interconnect.

Page 14: SCSI wiki

SCSI architectural model 11

• A SCSI task is represented by an I_T_L_Q nexus. This is where one Initiator Port talks to one Target Port,addressing one LUN and together they execute one task (identified by Q).

External links• SCSI architectural model [1]

• T10 Technical Committee [2] – list of all SCSI standards

References[1] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=sam4r05. pdf[2] http:/ / www. t10. org/

SCSI CDBIn SCSI standards for transferring data between computers and peripheral devices, often computer storage,commands are sent in a Command Descriptor Block (CDB).Each CDB can be a total of 6, 10, 12, or 16 bytes, but later versions of the SCSI standard also allow forvariable-length CDBs. The CDB consists of a one byte operation code followed by some command-specificparameters. The parameters need not be a full byte long, and the parameter length varies from one command toanother. The available commands, with links to articles describing the detailed structure of many of them, are listedin the article section SCSI command#List of SCSI commands.Typical CDB structures, for the 6- and 16-byte SCSI Request Sense Command, opcode 3, are:6-byte CDB:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 03h

1 LUN Reserved

2 Reserved

3 Reserved

4 Allocation length

5 Control

16-byte CDB:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 03h

1 LUN Service Action

2 Logical Block (MSB)

3

4

5 Logical Block (LSB)

6 Addition CBP information

7 Addition CBP information

Page 15: SCSI wiki

SCSI CDB 12

8 Addition CBP information

9 Addition CBP information

10 Allocation length (MSB)

11

12

13 Allocation length (LSB)

14 Misc. CDB data

15 Control

An example with different allocation of bits to parameters is the 6-byte SCSI Mode Sense Command:[1]

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 1Ah

1 LUN Reserved DBD Reserved

2 PC Page code

3 Reserved

4 Allocation length

5 Control

See SPC-4 (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r34. pdf, free registration required) for moreinformation.

References[1][1] SCSI Command Reference, pp.97-100.

Page 16: SCSI wiki

SCSI check condition 13

SCSI check conditionIn computer terminology, a Check Condition occurs when a SCSI device needs to report an error.SCSI communication takes place between an initiator and a target. The initiator sends a command to the target whichthen responds. SCSI commands are sent in a Command Descriptor Block (CDB). At the end of the command thetarget returns a Status Code byte which is usually 00h for success, 02h for a Check Condition (error), or 08h forbusy.When the target returns a Check Condition in response to a command, the initiator usually then issues a SCSIRequest Sense command in order to obtain more information. During the time between the reporting of a CheckCondition and the issuing of a Request Sense command, the target is in a special state called a Contingent AllegianceCondition.

SCSI connectorA SCSI connector is used to connect computer parts that use a system called SCSI to communicate with each other.Generally, two connectors, designated male and female, plug together to form a connection which allows twocomponents, such as a computer and a disk drive, to communicate with each other. SCSI connectors can be electricalconnectors or optical connectors.

A "Mac Stack" of external SCSI devicesdisplaying various SCSI connectors

There have been a large variety of SCSI connectors in use at one timeor another in the computer industry. Probably no computerinterconnect (with the possible exception of RS-232 serial) has causedas much confusion. Twenty-five years of evolution and three majorrevisions of the standards resulted in requirements for Parallel SCSIconnectors that could handle an 8, 16 or 32 bit wide bus running at 5,10 or 20 Mbit/s, with conventional or differential signaling. SerialSCSI added another three transport types, each with one or moreconnector types. Manufacturers have frequently chosen connectorsbased on factors of size, cost, or convenience at the expense ofcompatibility.

SCSI often makes use of cables to connect devices together; in atypical example, a socket on a computer motherboard would have oneend of a cable plugged into it, while the other end of the cable pluggedinto a disk drive or other device. This would mean that four connectorswere involved in wiring the disk drive and computer together: theconnector on the motherboard, the connectors at each end of the cable,and the connector on the disk drive. It is sometimes possible to havecables which have different types of connectors on them, and somecables can have as many as 16 connectors (allowing 16 devices to be wired together). Some types of connectors aretypically used inside a computer or disk drive case, while others are used to connect a computer to a separate devicesuch as a scanner or external disk drive.

Page 17: SCSI wiki

SCSI connector 14

NomenclatureMany connector designations consist of an abbreviation for the connector family, followed by a number indicatingthe number of pins. For example, "CN36" (also written "CN-36" or "CN 36") would be a 36-pin Centronics-styleconnector. For some connectors (such as the D-subminiature family) use of the hyphen or space is more common,for others (like the "HD50") less so.

Parallel SCSIParallel SCSI allows for attachment of up to 16 devices to the SCSI bus, thus cables may have up to 16 connectors. Itis unusual, however, for external cables (those that run between enclosures) to have more than 2.

Internal

IDC Header

Early generations of SCSI hard drive assemblies generally had two connectors (power and communication) for 8-bitunits, and either two or three connectors for 16-bit units. The power connector was typically the same 4-pin femaleMolex connector used in many other internal computer devices. The communication connectors on the drives wereusually a 50 (for 8-bit SCSI) or 68 pin male (for 16-bit SCSI) "IDC header" which has two rows of pins, 0.1 inchesapart. This connector has no retaining screws to secure the connectors together, and ribbon cables are bothinconveniently wide and somewhat delicate, so this connector style was primarily used for connections inside of acomputer or peripheral enclosure (as opposed to connecting two enclosures to each other). Thus it is often called an"internal SCSI connector." It is worth noting that this type of header was used for most internal connections in atypical desktop PC until recent times, including the 40-pin (two rows of 20) version used for ATA disk drives.While the female connector is slotted such that a cable with a matching keyed male connector can not be insertedupside-down, some manufacturers (including Sun Microsystems) supplied internal cables with male connectors thatdid not have the key, allowing for incorrect (and possibly damaging) connections.In most cases, the host adapter would have a similar header-style connection. In some cases, though, the host adapterend of the cable would use a different connector. For example, in the Sun 260 series chassis (used for the Sun 3/260and Sun 4/260 computers), the connector was the same 3-row 96-pin connector used to attach peripheral cards to theVMEbus backplane.

SCA

Eventually, there was a desire to combine power and data signals into a single connector. This allows for quick drivereplacement, more reliable connections, and is more compact. Most parallel SCSI disk-drives now utilize an 80-pinSCA (Single Connector Attachment) connector. This connector includes a power connection and also has long andshort pins which enable hot swapping. Note that this connector is primarily found on disk drive HDA's (and ofcourse the mating enclosure backplane connector).

Page 18: SCSI wiki

SCSI connector 15

External

Assorted SCSI Connectors

Most typically, external drive enclosures will have female connectors,while cables will have two male connectors. As with everything SCSI,there are exceptions.

First Generation

Standardization was perhaps less consistent in the early days of SCSImanufacture.Early SCSI interfaces commonly used a 50-pin micro ribbonconnector. This connector is similar to the 36-pin connector used byCentronics for the parallel interface on their printers, thus theconnector became popularly known as "Centronics SCSI" or "CN-50". It is also referred to as a "SCSI-1 connector";since many connectors have been used for SCSI-1, this can be confusing.

SCSI-1 card with an external Centronics portwhich requires a terminator, from an Acorn

computer.

Old Macintosh DB25 SCSI Port

Apple used DB-25 connectors, which, having only 25 pins rather than50, were less expensive to make, but compromised functionality.Further, DB-25s were commonly used for RS-232 serial cables andalso to connect parallel printers, meaning that users might accidentallytry to use completely inappropriate cables, since the printer and serialcables would fit the connector properly and be hard to visuallydistinguish. The DB-25's only advantage was that it was smaller than aCN50.

Sun Microsystems and Data General used a 50-pin 3-row DD-50connector, which was sometimes incorrectly called a "DB-50" or"HDB-50". Sun also used DB-25s on a few products.

Digital Equipment Corporation mostly used the CN-50, but theVAXstation 3100 and DECstation 3100/2100 made use of a MALE68-pin connector on the rear of the workstation. This connector lookslike it would be a high density Wide SCSI-2 connector, but is actually

8-bit SCSI-1.

Macintosh HDI-30 SCSI Male Connector

Apple Macintosh laptops used a squarish external SCSI connectorcalled an HDI-30 (High Density Interconnect) on the laptop itself (noton the peripheral end of the cable, unless two laptops were beingconnected). These machines also had the interesting ability to become"SCSI slaves" (officially known as "SCSI Disk Mode" in Appledocumentation), meaning that they could appear to be disk drives whenattached to another computer's SCSI controller (a feature laterreimplemented over FireWire and Thunderbolt for later, non-SCSIMac hardware).

IBM's early RS6000 workstations sometimes used a "High DensityCentronics" connector, which was a Centronics-style connector withsmaller pins and shell. For some reason it had 60 pins, and is thusknown as the "HDCN60"

Certain Japanese digital camera manufacturers wanted to put SCSI into their equipment, but conventional connectorswould have been too large. Like IBM, they used a miniaturized Centronics connector, but this one had 50 pins, and

Page 19: SCSI wiki

SCSI connector 16

was called the "HPCN50".Some manufacturers used a DC-37 connector, often incorrectly referred to as a DB-37. These will most commonlybe seen on three-cable systems, which are typically 16-bit or 32-bit "Wide SCSI" systems. Extra confusion isgenerated here since this connector was also frequently used with SMD disk drives, which are completelyincompatible with SCSI drives.

Post SCSI-2

SCA-2 connector on Fujitsu MAP3735NC

As time went on, some manufacturers desired connectors evensmaller than the SCSI-2 connector. One such in somewhatcommon use was the VHDCI (Very High Density CableInterconnect) connector, also known as an "AMP HPCN68M" (amanufacturer part number), and sometimes as "SCSI-5". There are68 pins on the connector in two rows; the pins are 0.8 mm apart.This connector is reputed to suffer fewer bent pins than the 68-pinSCSI-2 connector despite its minuscule pins.

Interoperability

There are adapters between most types of parallel SCSI connector,and some companies will manufacture custom cables to guarantee having the correct connectors. An adapter fromnarrow to wide must include termination to work properly.Different SCSI standards use the same SCSI connectors as in HVD and LVD SCSI (High Voltage Differential andLow Voltage Differential) . HVD uses 15V while LVD uses 3.3V, so connecting an HVD device to an LVD host busadaptor can blow the line drivers on the HBA, likewise an HVD HBA connected to an LVD device.Similarly, connecting a (slow) SE single-ended device onto a (fast) LVD SCSI chain will cause the HBA to syncdown to the lowest speed.While interconnectivity of a number of devices may look straightforward, there are many pitfalls, and with older SEdevices the cabling length becomes an issue as signal degrades.

Drive CaddiesMany manufacturers have devised systems in which a SCSI disk drive or other device was placed in a small "caddy"container (also called a "drive sled"), which carried connections for both power and data. The caddy or canisterwould be placed in a larger enclosure. Some of these systems allowed for hot swap (drives could be replaced withthe system running), while others allowed "warm swap", in which the SCSI bus was "quiesced" (meaning all driveactivity was stopped) but remained powered on with devices ready.

SCA 80 pin Connector - on hot-plug drive(HP/Compaq or DELL)

Digital Equipment Corporation's StorageWorks products were onesystem of this type. DEC briefly allowed third parties to license thissystem, but reversed the decision after less than a year; as a result,third-party StorageWorks products are quite rare. Compaq also made adrive caddy system for the Proliant line of servers. Compaq purchasedDEC, and Hewlett-Packard later purchased Compaq, and the Proliantand StorageWorks names were reused on other storage products,including later hot-swap systems.

Some of these caddy systems were OEM manufactured, which means that the same product could appear withnumerous brand names and model identifications. These Hot-Plug drives in caddies generally use 80 pin SCAconnectors (HP,Compaq, DELL from SCSI-3 to Ultra-320)

Page 20: SCSI wiki

SCSI connector 17

Serial SCSISerial SCSI disk-drives have recently been introduced. They use smaller connectors due to the reduced number ofsignals required. There are three types of physical layer transports specified:• Fibre Channel, also called FC• SAS, Serial Attached SCSI• SSA, the Serial Storage ArchitectureAdditionally, there is the iSCSI transport, which is not present on the drives themselves, but is used to connectdevices using TCP/IP networks. The drives themselves would use one of the other three connector types.

Connectors on the Drives (Internal)• Fibre Channel FC-AL disk-drives include a 40-pin SCA-2 connector•• SSA disk-drives include a "unitized" composite connector

SAS drive connector - internal

• SAS disk-drives have an SFF 8482 connector. This is "form factorcompatible" with the connector on SATA disk drives, meaning thata SATA drive may be installed in an SAS drive bay, and theenclosure can use the Serial ATA Tunneling Protocol (STP) tomake use of the drive. There are keyed parts to the connector on anSAS drive that will prevent it from being inserted into a SATA drive bay.

•• There is no defined iSCSI disk-drive connector

External Connectors•• Fibre Channel

• FC-AL cables initially used DE-9 connectors (electrical) or SC connectors (optical)• More recent FC-AL cables use HSSDC connectors (electrical) or LC connectors (optical).• Many FC-AL products now use an intermediate device called a GBIC (GigaBit Interface Converter) which

allows more flexibility. GBICs can interconnect with a range of SFP (Small Form-factor Pluggable)connectors.

• SAS interconnections use either

An SFF-8484 connector.

• SFF 8484 multilane unshielded serial attachment connector(internal connector)

• SFF 8470 multilane copper connector, also known as anInfiniband connector (external connector)

• SFF 8087 Molex iPASS unshielded mini-multilane, reducedwidth internal connector

• SFF 8088 Molex iPASS shielded mini-multilane, reduced widthexternal connector

• SSA cables are terminated with 9-pin micro-D connectors•• iSCSI may be interconnected by any means used to build a TCP/IP

network, since the SCSI commands are simply being carried over TCP/IP.

Page 21: SCSI wiki

SCSI connector 18

Drive CaddiesThe situation is fundamentally similar to that of Parallel SCSI drive caddies; there have been a range ofmanufacturers, and the caddies themselves contain a generic device (with one of the standard internal connectors)which can be removed and replaced.

External links• Pictures of SSA connectors [1]

• Pictures of FC-AL connectors [2]

• Pictures of SAS connectors [3]

References[1] http:/ / www. volex. com/ index. php?option=content& task=view& id=116[2] http:/ / www. cs-electronics. com/ fibre-channel-cables. htm[3] http:/ / www. assembletech. com/ products/ sas/ sas. htm

SCSI contingent allegiance conditionOn a computer SCSI connection, a contingent allegiance condition occurs while a SCSI device reports an error.SCSI communication takes place between an initiator and a target. The initiator sends a command to the target whichthen responds. At the end of the command the target returns a Status Code byte which is usually 0 for success, 2 for aCheck Condition (error), or 8 for busy.When the target returns a Check Condition in response to a command, the initiator usually then issues a SCSIRequest Sense command in order to obtain more information. During the time between the reporting of a CheckCondition and the issuing of the Request Sense command, the target is in the special state called the contingentallegiance condition.

DetailsWhile a target is in a contingent allegiance condition it must retain the sense information that relates to the error thatcaused it to enter that condition. This can be a complex issue in configurations which contain more than one initiator.A well-designed target may be able to maintain sense data for one initiator while servicing commands from anotherinitiator. If a check condition then needs to be reported to a second or third initiator then this may becomeprohibitively difficult. The SCSI definition of the contingent allegiance condition allows the target to use the busyresponse to incoming commands and to suspend servicing of any recent commands that are still in its executionqueue.The events that can cause a target to enter the contingent allegiance condition are

•• Target responds to a SCSI command with a check condition 02h•• Target responds to a SCSI command with command terminated 22h•• An unexpected disconnect

The events that can cause a target to exit the contingent allegiance condition are•• Target receives a hard reset•• Target receives an abort message•• Target receives a bus device reset message•• Target receives any command from the relevant initiator

Page 22: SCSI wiki

SCSI contingent allegiance condition 19

Extended contingent allegiance conditionWhen the target needs to perform a long error-recovery procedure (typically one that lasts more than one second) itcan enter the extended contingent allegiance condition. This may be necessary in high performance systems or incases where there is a danger that initiator may reset the target after a short timeout interval, thereby aborting theerror-recovery procedure. As in the contingent allegiance condition, the target is allowed to use the busy response toincoming commands and to suspend servicing of any recent commands that are still in its execution queue.When a target enters the extended contingent allegiance condition it will send an Initiate Recovery message to theinitiator.The SCSI events that can cause a target to exit the extended contingent allegiance condition are

•• Target receives a Bus Device Reset•• Target receives a hard reset•• Target receives a Release Recovery message from the relevant initiator

Domain validationDomain Validation is part of the SCSI standard. It describes how to negotiate the best possible transfer agreementbetween two devices. There are three different messages that can be sent:•• SDTR (Synchronous Data Transfer Request)•• WDTR (Wide Data Transfer Request)•• PPR (Parallel Protocol Request)WDTR is used only to negotiate width (8 or 16 bit).SDTR can be used to negotiate up to Ultra-2 speeds.PPR subsumes the capabilities of both WDTR and SDTR and can negotiate speeds of up to Ultra-640. It can also setvarious parameters, such as Information Units, Quick Arbitration Select and Double Transition clocking.

Page 23: SCSI wiki

Electrical termination 20

Electrical termination

10BASE2 cable end Terminator.

Electrical termination of a signal involves providing a terminator atthe end of a wire or cable to prevent an RF signal from being reflectedback from the end, causing interference. The terminator is placed at theend of a transmission line or daisy chain bus (such as in SCSI),designed to match impedance and hence minimize signal reflections.

Types of terminators

PassivePassive terminators consist of a simple resistor. Limited usage forhighspeed applications. There are two types: a resistor between signaland ground like in Ethernet, or a resistor from the positive rail to signaland a resistor from the signal to negative rail like in SCSI.

ActiveActive terminators consist of a voltage regulator that keeps the voltage used for the terminating resistor(s) at aconstant level.Forced Perfect Termination (FPT)Forced Perfect Termination can be used on single ended buses where diodes remove over and undershoot conditions.The signal is locked between two actively regulated voltage levels, which results in superior performance over astandard active terminator.

Applications

SCSI terminator.

SCSI

All parallel SCSI units use terminators. SCSI is primarily used forstorage and backup.

Controller Area Network

Controller area network, commonly known as CAN Bus, usesterminators consisting of a 120 ohm resistor.

Page 24: SCSI wiki

Electrical termination 21

Dummy loadDummy loads are commonly used in HF to EHF frequency circuits.

Ethernet coaxial 50 ohm10BASE2 networks absolutely must have proper termination with a 50 ohm BNC terminator. If the bus network isnot properly terminated, too much power will be reflected, causing all of the computers on the bus to lose networkconnectivity.

Antenna network 75 ohmA terminating resistor for a television coaxial cable is often in the form of a cap, threaded to screw onto an Fconnector. Antenna cables are sometimes used for internet connections; however RG-6 should not be used for10BASE2 (which should use RG-58) as the impedance mismatch can cause phasing problems with the basebandsignal.

MIL-STD-1553Terminating resistors values of 78.7 ohms 2 watt 1% are used on the MIL-STD-1553 bus. At the two ends of thebus, resistors connect between the positive (high) and negative (low) signal wires either in internally terminated buscouplers or external connectorized terminators.The MIL-STD-1553B bus must be terminated at both ends to minimize the effects of signal reflections that cancause waveform distortion and disruption or intermittent communications failures.Optionally, a high-impedance terminator (1000 to 3000 ohms) may be used in vehicle applications to simulate afuture load from an unspecified device.Connectorized terminators are available with or without safety chains.

Issues•• Signal reflection•• Impedance matching•• Biasing

External links• MIL-STD-1553B Concepts and Considerations [1] from MilesTek Corporation• Terminators [2] from MilesTek Corporation

Other meaningElectrical termination sometimes refers to manufacturing operations which connect wires together. This includescrimping, soldering, and related operations. See electrical connector.

References[1] http:/ / www. milestek1553. com/ tech. asp[2] http:/ / www. milestek. com/ search. asp?skw=terminator

Page 25: SCSI wiki

Enclosure Services Interface 22

Enclosure Services InterfaceThe Enclosure Services Interface (ESI) is a computer protocol used in SCSI enclosures. This is part of a chain ofconnections that allows a host computer to communicate with the enclosure to access its power, cooling, and othernon-data characteristics. This overall approach is called SCSI attached enclosure services:

The host computer communicates with the disks in the enclosure via a Serial SCSI interface (which may be eitherFC-AL or SAS). One of the disk devices located in the enclosure is set up to allow SCSI Enclosure Services (SES)communication through a LUN. The disk-drive then communicates with the SES processor in the enclosure via ESI.The data sent over the ESI interface is simply the contents of a SCSI command and the response to that command.In fault-tolerant enclosures, more than one disk-drive slot has ESI enabled to allow SES communications to continueeven after the failure of any of the disk-drives.

ESI electrical interfaceThe ESI interface was designed to make use of the seven existing "SEL_n" address signals which are used atpower-on time for establishing the address (ALPA) of a disk-drive. An extra eighth signal called "-PARALLEL ESI"is used to switch the function of the SEL_n signals.

Signal name Function

SEL_0/D0 Data bus bit 0

SEL_1/D1 Data bus bit 1

SEL_2/D2 Data bus bit 2

SEL_3/D3 Data bus bit 3

SEL_4/-ENCL_ACK The enclosure clocks this to acknowledge a read or write data transfer

SEL_5/-DSK_RD The disk-drive clocks this to send a NIBL of data to the enclosure

SEL_6/-DSK_WR The disk-drive clocks this to receive a NIBL of data from the enclosure

ESI command sequenceA SCSI Send Diagnostic command or Receive Diagnostic Results command is sent from the host computer to thedisk-drive to initiate an SES transfer. The Disk-drive then asserts "-PARALLEL ESI" to begin this sequence of ESIbus phases:

Page 26: SCSI wiki

Enclosure Services Interface 23

Phase Function

Discovery phase Disk-drive tests that the enclosure is SFF-8067 compliant

Command phase Disk-drive sends the SCSI CDB to the enclosure (similar to the write phase)

Either Read phase Disk-drive sends diagnostic page data to the enclosure

or Write phase Disk-drive receives diagnostic page data from the enclosure

Finally, the disk-drive deasserts "-PARALLEL ESI".The above sequence is just a simple implementation of a 4-bit wide parallel interface which is used to execute aSCSI transaction. If the CDB is for a Send Diagnostic command then the data is sent to a SCSI diagnostic page in theenclosure. If the CDB is for a SCSI Receive Diagnostic Results command then the data is received from a SCSIdiagnostic page. No other CDB types are allowed.

Alternatives to ESIThere are two common alternatives ESI:• Standalone Enclosure Services uses a direct connection which does not require ESI• SSA enclosures use an interface called DSI which is similar to ESI

SpecificationsThe definition of the ESI protocols is owned by an ANSI committee and defined in their specifications ANSISFF-8067 and ANSI SFF-8045.

Page 27: SCSI wiki

Hard Disk 20SC 24

Hard Disk 20SC

Hard Disk 20SC

Type Hard Disk

Release date September, 1986

Discontinued ?

Operating system N/A

Dimensions plastic (Pantone 453[1] & Platinum)

The Apple Hard Disk 20SC (not to be confused with the Apple Macintosh Hard Disk 20, the first hard drivemanufactured by Apple exclusively for the original Macintosh floppy disk drive port interface) was Apple's firstSCSI based hard drive for the Apple II family as well as the Macintosh and other third party computers using anindustry standard SCSI interface.

HistoryReleased in September 1986 along with the Apple IIGS (which required an optional SCSI interface card to use it), itdebuted over 9 months after the introduction of the Macintosh Plus, the first to include Apple's SCSI interface. It wasa welcome addition, delivering considerably faster data transfer rates (up to 1.25 megabytes per second)[2] than itspredecessors, the Hard Disk 20 (62.5 Kilobytes per second)[3] and ProFile.[4]

HardwareThe 20SC originally contained a half height 5.25" Seagate ST-225N 20MB SCSI hard drive, but was latermanufactured with a full-height 3.5" MiniScribe 8425SA 20MB SCSI hard drive. The latter drive was the same sizeas the drive inside the Macintosh Hard Disk 20, but 10 to 15 MB over what had previously been offered by Apple forthe II family. The same drive mechanism would also be offered 6 months later as a built-in drive option on theMacintosh II and SE. It had two standard Centronics 50-pin connectors, one for the System and one fordaisy-chaining additional SCSI devices and a SCSI ID selection switch. An external terminator was required if it wasthe only SCSI device connected. The case itself could accommodate a 3.5" or 5.25" full-height hard drivemechanism. Indeed the case design would be reused unchanged (in Platinum only) for 3 more models introduced thefollowing year: 40SC, 80SC & 160SC (offering respective Megabytes of storage). While the transfer rates weresignificantly higher due to the faster SCSI bus technology, the actual transfer rate varied from computer to computerthanks to different SCSI implementation based on developing industry standards.[5]

Page 28: SCSI wiki

Hard Disk 20SC 25

DesignIn addition to being the first cross-platform drive offered by Apple it was the first hard drive to use the Snow Whitedesign language. Notably, it was the only Snow White product to use the Macintosh beige color and one of the fewApple products to be introduced in two different colors at the same time. Since the Apple IIGS was the first Appleproduct to debut in the new gray color they called Platinum, the 20SC had to both match it and the beige color of theMacintosh Plus, which it is designed to sit perfectly beneath. In 1987, all Apple products would change to Platinum,which would remain in use for the next 10 years.

References[1] Tracy, Ed. "History of computer design: Macintosh" (http:/ / www. landsnail. com/ apple/ local/ design/ macintosh. html). . Retrieved

2007-12-30.[2] Apple Hard Disk 20SC: Specifications (Discontinued) (http:/ / docs. info. apple. com/ article. html?artnum=1931)[3] Hard Disk 20: Specification (Discontinued) (http:/ / docs. info. apple. com/ article. html?artnum=1306)[4] ProFile Hard Drive: Specifications (Discontinued) (http:/ / docs. info. apple. com/ article. html?artnum=1128)[5] Apple HD SC: Specifications (Discontinued) (http:/ / docs. info. apple. com/ article. html?artnum=2791)

Host adapter

Fibre Channel Host Bus Adapter (64-bit PCI-Xcard)

SCSI Host Bus Adapter (16-bit ISA card)

In computer hardware, a host controller, host adapter, or host busadapter (HBA) connects a host system (the computer) to othernetwork and storage devices. The terms are primarily used to refer todevices for connecting SCSI, Fibre Channel and eSATA devices, butdevices for connecting to IDE, Ethernet, FireWire, USB and othersystems may also be called host adapters. Recently, the advent ofiSCSI and Fibre Channel over Ethernet has brought about EthernetHBAs, which are different from Ethernet NICs in that they includeTCP Offload Engines. There are also converged HBAs that supportboth Ethernet and Fibre Channel called Converged Network Adapters(CNAs).

SCSI

A SCSI host adapter connects host system to boot from a SCSI device,but also facilitates configuration of the host adapter. Typically a devicedriver, linked to the operating system, controls the host adapter itself.

In a typical parallel SCSI subsystem, each device has assigned to it aunique numerical ID. As a rule, the host adapter appears as SCSI ID 7,which gives it the highest priority on the SCSI bus (priority descends as the SCSI ID descends; on a 16-bit or "wide"bus, ID 8 has the lowest priority, a feature that maintains compatibility with the priority scheme of the 8-bit or"narrow" bus).

The host adapter usually assumes the role of SCSI initiator, in that it issues commands to other SCSI devices.A computer can contain more than one host adapter, which can greatly increase the number of SCSI devicesavailable.Major SCSI adapter manufacturers are HP, ATTO Technology, Promise Technology, Adaptec, and LSI Logic. LSI, Adaptec, and ATTO currently offer PCIe SCSI adapters which fit in new Apple Mac, on Intel PCs, and low-profile

Page 29: SCSI wiki

Host adapter 26

motherboards from companies like HP (which now lack SCSI support due to the inclusion of SAS and/or SATAconnectivity)....

Fibre ChannelToday, the term host bus adapter (HBA) is most often used to refer to a Fibre Channel interface card. Fibre ChannelHBAs are available for all major open systems, computer architectures, and buses, including PCI and SBus (obsoletetoday). Each HBA has a unique World Wide Name (WWN), which is similar to an Ethernet MAC address in that ituses an OUI assigned by the IEEE. However, WWNs are longer (8 bytes). There are two types of WWNs on a HBA;a node WWN (WWNN), which is shared by all ports on a host bus adapter, and a port WWN (WWPN), which isunique to each port. There are HBA models of different speeds: 1Gbit/s, 2Gbit/s, 4Gbit/s, 8Gbit/s, 10Gbit/s and20Gbit/s.The major Fibre Channel HBA manufacturers are QLogic and Emulex. As of mid-2009, these vendors sharedapproximately 90% of the market.[1][2] Other manufacturers include Agilent, ATTO, Brocade, and LSI.HBA is also known to be interpreted as High Bandwidth Adapter in cases of Fibre Channel controllers.

InfiniBandThe term host channel adapter (HCA) is usually used to describe InfiniBand interface cards.

ATAATA host adapters are integrated into motherboards of most modern PCs. They are often improperly called diskcontrollers. The correct term for the component that allows a computer to talk to a peripheral bus is host adapter . Aproper disk controller only allows a disk to talk to the same bus.

SAS and SATASAS or serial-attached SCSI is the current connectivity to replace the previous generation parallel-attached SCSI(PAS) devices. Ultra320 was the highest level of parallel SCSI available, but SAS has since replaced it as thehighest-performing SCSI technology.SATA is a similar technology from the aspect of connection options. HBAs can be created using a single connectorto connect both SAS and SATA devices.Major SAS/SATA adapter manufacturers are Promise Technologies, Adaptec, HP, QLogic, Areca, LSI and ATTOTechnology.

eSATAExternal Serial ATA disk enclosures and drives are increasingly common in the consumer computing market, but notall SATA-compatible motherboards and disk controllers include external SATA ports. As such, adapters to connectexternal SATA devices to ports on an internal SATA bus are commonly available.

Mainframe I/O channelsIn the mainframe field, the terms host adapter or host bus adapter were traditionally not used. A similar goal isachieved since 1960s with a different technique: I/O channel, or simply channel, is a separate processor that canaccess main memory independently, in parallel with CPU (like later DMA in personal computer field), and thatexecutes its own I/O-dedicated programs when pointed to such by the controlling CPU.Protocols used by I/O channels to communicate with peripheral devices include ESCON and newer FICON.

Page 30: SCSI wiki

Host adapter 27

References[1] Simpson, Dave. "Emulex vs. QLogic: Who's on first?" (http:/ / www. infostor. com/ index/ blogs_new/ dave_simpson_storage/ blogs/

infostor/ dave_simpon_storage/ post987_8533790865885281755. html), InfoStor, 2009-08-14. Market share for Q2 2009 according to aproprietary report from Dell'Oro Group (http:/ / www. delloro. com/ ).

[2] Mellor, Chris. "HBA market share shenanigans" (http:/ / www. theregister. co. uk/ 2009/ 08/ 14/ hba_market_shares_2009/ ), The Register,2009-08-14. Also based on Dell'Oro data.

External links• Fibre Channel Host Bus Adapter API (http:/ / hbaapi. sourceforge. net)• SPI Host Adapter - Background Information (http:/ / www. byteparadigm. com/ spi-host-adapter-103. html)

HyperSCSIHyperSCSI was a computer network protocol for accessing storage by sending and receiving SCSI commands. Itwas developed by researchers at the Data Storage Institute in Singapore in 2000 to 2003.[1] HyperSCSI is unlikeiSCSI in that it bypassed the internet protocol suite (TCP/IP) and works directly over Ethernet to form its Storagearea network. It skipped the routing, retransmission, segmentation, reassembly, and all the other problems that theTCP/IP suite addresses. Compared to iSCSI, this was meant to give a performance benefit at the cost of IP'sflexibility. An independent performance test showed that performance was unstable with network congestion.[2] Thesimilar ATA over Ethernet technology was based on a cheap technology. Since HyperSCSI was in direct competitionwith the older and well established Fibre Channel, and the standardized iSCSI, it was not adopted by commercialvendors. Some researchers at Huazhong University of Science and Technology noted the failure to provide anytransport layer protocol, so implemented a reliability layer in 2007.[3] Another version called HS/IP was developedover the Internet Protocol (IP).[4]

References[1] W.Y.H. Wang; H.N. Yeo; Y.L. Zhu; T.C. Chong (November 19, 2004). "Design and development of Ethernet-based storage area network

protocol". Proceedings of the 12th IEEE International Conference on Networks (IEEE): 48–52. doi:10.1109/ICON.2004.1409086.ISBN 0-7803-8783-X.

[2] Mathias Gug (March 24, 2003). "Performance comparison between iSCSI and other hardware and software solutions" (http:/ / www. slac.stanford. edu/ econf/ C0303241/ proc/ papers/ TUDP001. PDF). Computing in High Energy and Nuclear Physics (La Jolla, California). .Retrieved May 5, 2011.

[3] Gongye Zhou; Peng Chen (July 31, 2007). "RH-SCSI: A Reliable HyperSCSI Protocol for Networking Storage". International Conference onNetworking, Architecture, and Storage 2007 (IEEE): 29–31. doi:10.1109/NAS.2007.45. ISBN 0-7695-2927-5.

[4] Wang Yonghong. "Network Storage Technology Division: HyperSCSI Overview" (http:/ / www. dsi. a-star. edu. sg/ main/ dev/ mainPage.asp?cid=15006& Lid=0). Data Storage Institute. . Retrieved May 5, 2011.

External links• "Research report 2003: Storage over IP (HyperSCSI)" (http:/ / www. ces. net/ doc/ 2003/ research/ soip. html).

CESNET, Czech Academy of Sciences. Retrieved May 5, 2011. including an introduction and features ofHyperSCSI, and a comparison with iSCSI

• "What the Heck Is HyperSCSI?" (http:/ / www. byteandswitch. com/ document. asp?doc_id=40846). Byte andSwitch. September 26, 2003. Retrieved May 5, 2011.

Page 31: SCSI wiki

iSCSI 28

iSCSIIn computing, iSCSI ( i/aɪˈskʌzi/ eye-SKUZ-ee), is an abbreviation of Internet Small Computer SystemInterface, an Internet Protocol (IP)-based storage networking standard for linking data storage facilities. By carryingSCSI commands over IP networks, iSCSI is used to facilitate data transfers over intranets and to manage storageover long distances. iSCSI can be used to transmit data over local area networks (LANs), wide area networks(WANs), or the Internet and can enable location-independent data storage and retrieval. The protocol allows clients(called initiators) to send SCSI commands (CDBs) to SCSI storage devices (targets) on remote servers. It is astorage area network (SAN) protocol, allowing organizations to consolidate storage into data center storage arrayswhile providing hosts (such as database and web servers) with the illusion of locally-attached disks. Unliketraditional Fibre Channel, which requires special-purpose cabling, iSCSI can be run over long distances usingexisting network infrastructure.

FunctionalityiSCSI uses TCP (typically TCP ports 860 and 3260). In essence, iSCSI simply allows two hosts to negotiate and thenexchange SCSI commands using IP networks. By doing this iSCSI takes a popular high-performance local storagebus and emulates it over wide-area networks, creating a storage area network (SAN). Unlike some SAN protocols,iSCSI requires no dedicated cabling; it can be run over existing IP infrastructure. As a result, iSCSI is often seen as alow-cost alternative to Fibre Channel, which requires dedicated infrastructure except in its FCoE (Fibre Channelover Ethernet) form. However, the performance of an iSCSI SAN deployment can be severely degraded if notoperated on a dedicated network or subnet (LAN or VLAN).Although iSCSI can communicate with arbitrary types of SCSI devices, system administrators almost always use itto allow server computers (such as database servers) to access disk volumes on storage arrays. iSCSI SANs oftenhave one of two objectives:Storage consolidation

Organizations move disparate storage resources from servers around their network to central locations, often indata centers; this allows for more efficiency in the allocation of storage. In a SAN environment, a server canbe allocated a new disk volume without any change to hardware or cabling.

Disaster recoveryOrganizations mirror storage resources from one data center to a remote data center, which can serve as a hotstandby in the event of a prolonged outage. In particular, iSCSI SANs allow entire disk arrays to be migratedacross a WAN with minimal configuration changes, in effect making storage "routable" in the same manner asnetwork traffic.

Network bootingFor general data storage on an already-booted computer, any type of generic network interface may be used to accessiSCSI devices. However, a generic consumer-grade network interface is not able to boot a diskless computer from aremote iSCSI data source. Instead it is commonplace for a server to load its initial operating system from a TFTPserver or local boot device, and then use iSCSI for data storage once booting from the local device has finished.A separate DHCP server may be configured to assist interfaces equipped with network boot capability to be able toboot over iSCSI. In this case the network interface looks for a DHCP server offering a PXE or bootp boot image.This is used to kick off the iSCSI remote boot process, using the booting network interface's MAC address to directthe computer to the correct iSCSI boot target.Most Intel Ethernet controllers for servers support iSCSI boot. [1]

Page 32: SCSI wiki

iSCSI 29

Concepts

InitiatorFurther information: SCSI initiatorAn initiator functions as an iSCSI client. An initiator typically serves the same purpose to a computer as a SCSI busadapter would, except that instead of physically cabling SCSI devices (like hard drives and tape changers), an iSCSIinitiator sends SCSI commands over an IP network. An initiator falls into two broad types:

Software initiator

A software initiator uses code to implement iSCSI. Typically, this happens in a kernel-resident device driver thatuses the existing network card (NIC) and network stack to emulate SCSI devices for a computer by speaking theiSCSI protocol. Software initiators are available for most popular operating systems and are the most commonmethod of deploying iSCSI.

Hardware initiator

A hardware initiator uses dedicated hardware, typically in combination with software (firmware) running on thathardware, to implement iSCSI. A hardware initiator mitigates the overhead of iSCSI and TCP processing andEthernet interrupts, and therefore may improve the performance of servers that use iSCSI.

Host Bus Adapter

An iSCSI host bus adapter (more commonly, HBA) implements a hardware initiator. A typical HBA is packaged asa combination of a Gigabit (or 10 Gigabit) Ethernet NIC, some kind of TCP/IP offload engine (TOE) technology anda SCSI bus adapter, which is how it appears to the operating system.An iSCSI HBA can include PCI option ROM to allow booting from an iSCSI

TCP Offload Engine

A TCP Offload Engine, or "TOE Card", offers an alternative to a full iSCSI HBA. A TOE "offloads" the TCP/IPoperations for this particular network interface from the host processor, freeing up CPU cycles for the main hostapplications. When a TOE is used rather than an HBA, the host processor still has to perform the processing of theiSCSI protocol layer itself, but the CPU overhead for that task is low.iSCSI HBAs or TOEs are used when the additional performance enhancement justifies the additional expense ofusing an HBA for iSCSI, rather than using a software-based iSCSI client (initiator).

TargetThe iSCSI specification refers to a storage resource located on an iSCSI server (more generally, one of potentiallymany instances of iSCSI storage nodes running on that server) as a target."iSCSI target" should not be confused with the term "iSCSI" as the latter is a protocol and not a storage serverinstance.An iSCSI target is often a dedicated network-connected hard disk storage device, but may also be a general-purposecomputer, since as with initiators, software to provide an iSCSI target is available for most mainstream operatingsystems.Common deployment scenarios for an iSCSI target include:

Page 33: SCSI wiki

iSCSI 30

Storage array

In a data center or enterprise environment, an iSCSI target often resides in a large storage array, such as aEqualLogic, Isilon, NetApp filer, EMC NS-series , CX4,VNX , VNXe ,VMAX or a HDS HNAS computerappliance. A storage array usually provides distinct iSCSI targets for numerous clients.[2]

Software target

Nearly all modern mainstream server operating systems (such as BSD, Linux, Solaris or Windows Server) canprovide iSCSI target functionality, either as a built-in feature or with supplemental software. Some specific-purposeoperating systems (such as FreeNAS, Openfiler or OpenMediaVault) implement iSCSI target support.

Logical Unit Number

In SCSI terminology, LUN stands for logical unit number. A LUN represents an individually addressable (logical)SCSI device that is part of a physical SCSI device (target). In an iSCSI environment, LUNs are essentially numbereddisk drives. An initiator negotiates with a target to establish connectivity to a LUN; the result is an iSCSI connectionthat emulates a connection to a SCSI hard disk. Initiators treat iSCSI LUNs the same way as they would a raw SCSIor IDE hard drive; for instance, rather than mounting remote directories as would be done in NFS or CIFSenvironments, iSCSI systems format and directly manage filesystems on iSCSI LUNs.In enterprise deployments, LUNs usually represent slices of large RAID disk arrays, often allocated one per client.iSCSI imposes no rules or restrictions on multiple computers sharing individual LUNs; it leaves shared access to asingle underlying filesystem as a task for the operating system.

AddressingSpecial names refer to both iSCSI initiators and targets. iSCSI provides three name-formats:iSCSI Qualified Name (IQN)

Format: The iSCSI Qualified Name is documented in RFC 3720, with further examples of names in RFC3721. Briefly, the fields are:

•• literal iqn•• date (yyyy-mm) that the naming authority took ownership of the domain•• reversed domain name of the authority (org.alpinelinux, com.example, to.yp.cr)•• Optional ":" prefixing a storage target name specified by the naming authority.

From the RFC:

Naming String defined by

Type Date Auth "example.com" naming authority

+--++-----+ +---------+ +-----------------------------+

| || | | | | |

iqn.1992-01.com.example:storage:diskarrays-sn-a8675309

iqn.1992-01.com.example

iqn.1992-01.com.example:storage.tape1.sys1.xyz

iqn.1992-01.com.example:storage.disk2.sys1.xyz

[3]

Extended Unique Identifier (EUI)Format: eui.{EUI-64 bit address} (e.g. eui.02004567A425678D)

T11 Network Address Authority (NAA)

Page 34: SCSI wiki

iSCSI 31

Format: naa.{NASA 64 or 128 bit identifier} (e.g. naa.52004567BA64678D)IQN format addresses occur most commonly. They are qualified by a date (yyyy-mm) because domain names canexpire or be acquired by another entity.The IEEE Registration authority provides EUI in accordance with the EUI-64 standard. NAA is part OUI which isprovided by the IEEE Registration Authority. NAA name formats were added to iSCSI in RFC 3980, to providecompatibility with naming conventions used in Fibre Channel and Serial Attached SCSI (SAS) storage technologies.Usually an iSCSI participant can be defined by three or four fields:1.1. Hostname or IP Address (e.g., "iscsi.example.com")2.2. Port Number (e.g., 3260)3.3. iSCSI Name (e.g., the IQN "iqn.2003-01.com.ibm:00.fcd0ab21.shark128")4. An optional CHAP Secret (e.g., "secretsarefun")

iSNSiSCSI initiators can locate appropriate storage resources using the Internet Storage Name Service (iSNS) protocol. Intheory, iSNS provides iSCSI SANs with the same management model as dedicated Fibre Channel SANs. In practice,administrators can satisfy many deployment goals for iSCSI without using iSNS.

Security

AuthenticationiSCSI initiators and targets prove their identity to each other using the CHAP protocol, which includes a mechanismto prevent cleartext passwords from appearing on the wire. By itself, the CHAP protocol is vulnerable to dictionaryattacks, spoofing, or reflection attacks. If followed carefully, the rules for using CHAP within iSCSI prevent most ofthese attacks.[4]

Additionally, as with all IP-based protocols, IPsec can operate at the network layer. The iSCSI negotiation protocolis designed to accommodate other authentication schemes, though interoperability issues limit their deployment.

Logical network isolationTo ensure that only valid initiators connect to storage arrays, administrators most commonly run iSCSI only overlogically-isolated backchannel networks. In this deployment architecture, only the management ports of storagearrays are exposed to the general-purpose internal network, and the iSCSI protocol itself is run over dedicatednetwork segments or virtual LANs (VLAN). This mitigates authentication concerns; unauthorized users aren'tphysically provisioned for iSCSI, and thus can't talk to storage arrays. However, it also creates a transitive trustproblem, in that a single compromised host with an iSCSI disk can be used to attack storage resources for otherhosts.

Page 35: SCSI wiki

iSCSI 32

Physical network isolationWhile iSCSI can be logically isolated from the general network using VLANs only, it is still no different from anyother network equipment and may use any cable or port as long as there is a completed signal path between sourceand target. Just a single cabling mistake by an inexperienced network technician can compromise the barrier oflogical separation, and an accidental bridging may not be immediately detected because it does not cause networkerrors.In order to further differentiate iSCSI from the regular network and prevent cabling mistakes when changingconnections, administrators may implement self-defined color coding and labeling standards, such as only usingyellow-colored cables for the iSCSI connections and only blue cables for the regular network, and clearly labelingports and switches used only for iSCSI.While iSCSI could be implemented as just a VLAN cluster of ports on a large multi-port switch that is also used forgeneral network usage, the administrator may instead choose to use physically separate switches dedicated to iSCSIVLANs only, to further prevent the possibility of an incorrectly connected cable plugged into the wrong portbridging the logical barrier.

AuthorizationBecause iSCSI aims to consolidate storage for many servers into a single storage array, iSCSI deployments requirestrategies to prevent unrelated initiators from accessing storage resources. As a pathological example, a singleenterprise storage array could hold data for servers variously regulated by the Sarbanes–Oxley Act for corporateaccounting, HIPAA for health benefits information, and PCI DSS for credit card processing. During an audit, storagesystems must demonstrate controls to ensure that a server under one regime cannot access the storage assets of aserver under another.Typically, iSCSI storage arrays explicitly map initiators to specific target LUNs; an initiator authenticates not to thestorage array, but to the specific storage asset it intends to use. However, because the target LUNs for SCSIcommands are expressed both in the iSCSI negotiation protocol and in the underlying SCSI protocol, care must betaken to ensure that access control is provided consistently.

Confidentiality and integrityFor the most part, iSCSI operates as a cleartext protocol that provides no cryptographic protection for data in motionduring SCSI transactions. As a result, an attacker who can listen in on iSCSI Ethernet traffic can:•• reconstruct and copy the files and filesystems being transferred on the wire•• alter the contents of files by injecting fake iSCSI frames•• corrupt filesystems being accessed by initiators, exposing servers to software flaws in poorly-tested filesystem

code.These problems do not occur only with iSCSI, but rather apply to any SAN protocol without cryptographic security.IP based security protocols, such as IPsec, can provide standards based cryptographic protection to this traffic.

Page 36: SCSI wiki

iSCSI 33

Industry support

Operating-system supportThe dates that appear in the following table might be misleading. It is known for example that IBM delivered aniSCSI storage device (NAS200i) in 2001 for use with Windows NT, Windows 2000 [5] and Linux [6]

OS First releasedate

Version Features

i5/OS 2006-10 i5/OS V5R4M0 Target, Multipath

VMwareESX

2006-06 ESX 3.0, ESX 4.0, ESX 5.0 Initiator, Multipath

AIX 2002-10 AIX 5.3 TL10, AIX 6.1 TL3 Initiator, Target

Windows 2003-06 2000, XP Pro, 2003, Vista, 2008, 2008 R2, Windows7, Windows 8, WindowsServer 8

Initiator, Target†, Multipath

NetWare 2003-08 NetWare 5.1, 6.5, & OES Initiator, Target

HP-UX 2003-10 HP 11i v1, HP 11i v2, HP 11i v3 Initiator

Solaris 2002-05 Solaris 10, OpenSolaris Initiator, Target, Multipath,iSER

Linux 2005-06 2.6.12 Initiator, Target, Multipath,iSER

OpenBSD 2009-10 4.9 Initiator

NetBSD 2002-06 4.0, 5.0 Initiator (5.0), Target (4.0)

FreeBSD 2002-08 7.0 Initiator, Target from NetBSD

OpenVMS 2002-08 8.3-1H1 Initiator, Multipath

Mac OS X 2008-07 10.4 - 10.7 N/A††

† Target available only as part of Windows Unified Data Storage Server (WUDSS) for Storage Server 2003. Targetavailable in Storage Server 2008 (excepted Basic edition).[7] Target available for Windows Server 2008 R2 as aseparate download. Windows Server 8 has built-in iSCSI target version 3.3 (at least in preview versions).†† MacOS X has neither initiator nor target coming from vendor directly. There are a few MacOS X initiators andtargets available but they are from third-party vendors only.

TargetsMost iSCSI targets involve disk, though iSCSI tape and medium-changer targets are popular as well. So far, physicaldevices have not featured native iSCSI interfaces on a component level. Instead, devices with Parallel SCSI or FibreChannel interfaces are bridged by using iSCSI target software, external bridges, or controllers internal to the deviceenclosure.Alternatively, it is possible to virtualize disk and tape targets. Rather than representing an actual physical device, anemulated virtual device is presented. The underlying implementation can deviate drastically from the presentedtarget as is done with virtual tape library (VTL) products. VTLs use disk storage for storing data written to virtualtapes. As with actual physical devices, virtual targets are presented by using iSCSI target software, external bridges,or controllers internal to the device enclosure.In the security products industry, some manufacturers use an iSCSI RAID as a target, with the initiator being eitheran IP-enabled encoder or camera.

Page 37: SCSI wiki

iSCSI 34

Converters and bridgesMultiple systems exist that allow Fibre Channel, SCSI and SAS devices to be attached to an IP network for use viaiSCSI. They can be used to allow migration from older storage technologies, access to SANs from remote serversand the linking of SANs over IP networks. An iSCSI gateway bridges IP servers to Fibre Channel SANs. The TCPconnection is terminated at the gateway, which is implemented on a Fibre Channel switch or as a standaloneappliance.

References[1] http:/ / www. intel. com/ content/ www/ us/ en/ ethernet-controllers/ ethernet-controllers. html[2] Architecture and Dependability of Large-Scale Internet Services (http:/ / roc. cs. berkeley. edu/ papers/ inet-computing. pdf) David

Oppenheimer and David A. Patterson, Berkeley, IEEE Internet Computing, September–October 2002.[3] "RFC 3720 - Internet Small Computer Systems Interface (iSCSI), (Section 3.2.6.3.1. Type "iqn." (iSCSI Qualified Name))" (http:/ / tools. ietf.

org/ html/ rfc3720#section-3. 2. 6. 3). 2004-04. p. 32. . Retrieved 2010-07-16.[4] Satran, Julian; Kalman, Meth; Sapuntzakis, Costa; Zeidner, Efri; Chadalapaka, Mallikarjun (2004-04-02). "RFC 3720" (http:/ / tools. ietf. org/

html/ rfc3720#section-8. 2. 1). .[5] http:/ / www-900. ibm. com/ cn/ support/ library/ storage/ download/ 200i%20iSCSI%20client%20for%20NT& 2000%20Installation&

User%20Guide. pdf[6] http:/ / www-900. ibm. com/ cn/ support/ library/ storage/ download/ 200i%20iSCSI%20client%20for%20Linux%20Installation&

User%20Guide. pdf[7] http:/ / www. microsoft. com/ windowsserver2008/ en/ us/ WSS08/ iSCSI. aspx

RFCs•• RFC 3720 - Internet Small Computer Systems Interface (iSCSI)•• RFC 3721 - Internet Small Computer Systems Interface (iSCSI) Naming and Discovery•• RFC 3722 - String Profile for Internet Small Computer Systems Interface (iSCSI) Names•• RFC 3723 - Securing Block Storage Protocols over IP (Scope: The use of IPsec and IKE to secure iSCSI, iFCP,

FCIP, iSNS and SLPv2.)•• RFC 3347 - Small Computer Systems Interface protocol over the Internet (iSCSI) Requirements and Design

Considerations•• RFC 3783 - Small Computer Systems Interface (SCSI) Command Ordering Considerations with iSCSI•• RFC 3980 - T11 Network Address Authority (NAA) Naming Format for iSCSI Node Names•• RFC 4018 - Finding Internet Small Computer Systems Interface (iSCSI) Targets and Name Servers by Using

Service Location Protocol version 2 (SLPv2)•• RFC 4173 - Bootstrapping Clients using the Internet Small Computer System Interface (iSCSI) Protocol•• RFC 4544 - Definitions of Managed Objects for Internet Small Computer System Interface (iSCSI)•• RFC 4850 - Declarative Public Extension Key for Internet Small Computer Systems Interface (iSCSI) Node

Architecture•• RFC 4939 - Definitions of Managed Objects for iSNS (Internet Storage Name Service)•• RFC 5048 - Internet Small Computer System Interface (iSCSI) Corrections and Clarifications•• RFC 5047 - DA: Datamover Architecture for the Internet Small Computer System Interface (iSCSI)•• RFC 5046 - Internet Small Computer System Interface (iSCSI) Extensions for Remote Direct Memory Access

(RDMA)

Page 38: SCSI wiki

iSCSI 35

External links• SCST: A Generic SCSI Target for Linux (includes iSCSI, FC, FCoE, IB) (http:/ / scst. sourceforge. net/ )

iSCSI Boot Firmware TableThe iSCSI Boot Firmware Table (iBFT) is a component of the ACPI 3.0b standard that provides operating systemsa standard way to boot from software-initiated iSCSI protocol.

External links• The latest ACPI Specification [1]

• A Microsoft technical document describing the iBFT format in detail [2]

References[1] http:/ / www. acpi. info/ spec. htm[2] http:/ / www. microsoft. com/ whdc/ system/ platform/ firmware/ ibft. mspx

ISCSI Conformance Testing and Testing ToolRequirementiSCSI conformance testing is testing to determine whether an iSCSI Initiator/Target meets the iSCSI standard.

SCSI and iSCSI ProtocolThe Small Computer System Interface (SCSI) is a family of protocols for communicating with I/O devices,especially storage devices. SCSI is based on client-server model. SCSI clients, called "initiators", issue SCSIcommands to request services from components, logical units of a server known as a "target". A "SCSI transport"maps the client-server SCSI protocol to a specific interconnect. An Initiator is one endpoint of a SCSI transport and atarget is the other endpoint.Internet Small Computer System Interface (iSCSI) protocol uses TCP/IP as SCSI transport. By transporting SCSIpackets over TCP/IP, iSCSI provides an interoperable solution which can take advantage of existing Internetinfrastructure, Internet management facilities, and address distance limitations. Unlike traditional Fibre Channel,which requires special-purpose cabling, iSCSI can run on the existing network infrastructure. It has become apopular storage area network (SAN) protocol because of its scalability and economic benefits. The protocol isdefined in RFC 3720 and updated in RFC 5048.

Page 39: SCSI wiki

ISCSI Conformance Testing and Testing Tool Requirement 36

iSCSI Conformance TestingWith the moving of SCSI transport layer from the traditional reliable bus structure to the far more unreliable TCP/IPnetwork, a fairly reasonable amount of complexity has be introduced into iSCSI:•• Login/Logout processes are needed.•• Security/Operational parameters need to be negotiated during login.•• CHAP or other authentication method may be used during login.•• Multiple sessions/connections may be required.•• Multiple error recovery level may be implemented.•• ...In one word, although the economic cost of iSCSI may be lower than others, the protocol itself is not that simple.Since the approval of the protocol, iSCSI has been steadily gaining acceptance among end users and storage vendors.Nowadays, there exist a large number of iSCSI initiator/target implementations on the market, either commercial orfree/open source. These implementations vary in functionalities and protocol conformance.Conformance testing is testing to determine whether a system meets some specified standard. It's often performed byexternal organizations, sometimes the standards body itself, to give greater guarantees of compliance. Products testedin such a manner are then advertised as being certified by that external organization as complying with the standard.For iSCSI protocol (or other data networking and storage protocols), The University of New HampshireInterOperability Laboratory (UNH-IOL) is one of the premier neutral, third-party laboratory who offers test suitesfor iSCSI conformance testing.As the introduction part in these test suites says:

These tests are designed to determine if an iSCSI product conforms to specifications defined in bothIETF RFC 3720 iSCSI (hereafter referred to as the “iSCSI Standard”) as well as updates as contained inIETF RFC 5048 iSCSI Corrections and Clarifications RFC (hereafter referred to as “iSCSI Correctionsand Clarifications”). Successful completion of all tests contained in this suite does not guarantee that thetested device will successfully operate with other iSCSI products. However, when combined withsatisfactory operation in the IOL’s interoperability test bed, these tests provide a reasonable level ofconfidence that the Device Under Test (DUT) will function properly in many iSCSI environments.

iSCSI conformance testing mainly contains the following aspects:•• Login Phase Conformance

Test negotiation key-value pairs; test various flags: CSG, NSG, C bit, T bit...•• Full Feature Phase Conformance

Test sequence numbers (CmdSN, DataSN, R2TSN); test SCSI Command/Response, Task ManagementFunction Request/Response, Text Request/Response, NOP-In/NOP-Out, SNACK Request...

•• CHAP Conformance

Test CHAP fields: CHAP_A, CHAP_C, CHAP_I, CHAP_N, CHAP_R...•• Multi Connection Conformance

Test multi-connection support in connection creation, termination, parameter negotiation, sequence numberand task management...

•• Error Recovery Conformance

Test Initiator/Target's error recovery support

Page 40: SCSI wiki

ISCSI Conformance Testing and Testing Tool Requirement 37

iSCSI Conformance Testing Common ScenariosBasically two types of actions could be taken to test whether the DUT meets the iSCSI protocol:• We do correct things and see if the DUT behaves correctly.

In this case, the main task is to send a correct sequence of iSCSI PDUs to the DUT, and to verify the DUT canrespond with correct PDUs/PDU fields.

• We do wrong things and see if the DUT can detect and behave accordingly.In this case, we must modify the PDU sequence sent to the DUT to some extent (e.g., change CmdSN of acommand, set an invalid data digest...), and verify the DUT can react according to the protocol (e.g., send a RejectPDU, close the connection...).

Some common scenarios can be found in iSCSI conformance testing:•• iSCSI functional test

To test whether an iSCSI task can be executed correctly (Task Management Function, NOP-In/NOP-Out Ping,multiple connections management...)

•• PDU format error

For example, this is an error if the W and F bit are both set to 0 in a SCSI Command PDU.•• PDU session/stage error

For example, this is an error if a SCSI Command PDU appears in login stage or discovery session.•• Header/Data digest error

Digest error can cause the Target/Initiator to send Reject/SNACK PDU.•• Sequence error

CmdSN/StatSN/DataSN/R2T each has different scope and different rules.•• Negotiation error

Text parameters should be in key=value format, followed by one NULL ("0x00") delimiter. Each textparameter also has its own stage and negotiation rules. For example, FirstBurstLength must not exceedMaxBurstLength, SendTargets should appear only in Full Feature Phase, etc.

•• Data length error

Too much or too little data is sent to the Target.•• Lost PDU

Drop an incoming PDU then SNACK for it, drop an outgoing PDU then retry it.Most of the above scenarios can be emulated by modifying the content of the output PDU. For example, to emulate adata digest error, we just need to change the DataDigest field in the PDU.

iSCSI Conformance Testing Tool RequirementAn iSCSI conformance testing tool can be viewed as an iSCSI Initiator emulator (to test iSCSI Target) or an iSCSITarget emulator (to test iSCSI Initiator). A good iSCSI conformance testing tool should meet the followingrequirements:•• Executable test scripts

An executable script is needed for each test case. It should be written according to test case description whichdefines the PDU sequence and verification points.

•• An iSCSI Engine core

Page 41: SCSI wiki

ISCSI Conformance Testing and Testing Tool Requirement 38

The iSCSI Engine core is in charge of sending/receiving iSCSI PDUs to/from DUT (Device Under Test). Onone side, it accepts input from test script, sending PDUs or verifying check points; on the other, it shouldunderstand iSCSI protocol to a certain level so that necessary automation can be achieved, e.g., the automaticgeneration of iSCSI PDUs (Login/Text Request during negotiation, Nop-Out ping response, ) and some PDUfields (ITT, TTT, CmdSN, data, digest...).

•• PDU format validation

For received PDUs, iSCSI Engine core should do validation check to detect malformed PDU.•• Ability to modify PDU's content

Malformed PDUs are often sent to DUT to simulate PDU format error or digest error.•• Ability to drop PDU

PDU could be dropped to simulate lost PDU during transmission.•• Ability to maintain multiple sessions/connections

Just like Error Recovery, multiple sessions/connections support is an advanced field in iSCSI protocol.•• Result and log

Pass or Fail of a test case should have obvious indication. Detailed log is needed for analysis. It would bebetter to have a graphical interface to analyze PDU dump files.

•• A Batch system

A batch system is needed to manage test suites and test cases so that large number of test scripts can runautomatically without user intervention.

Available iSCSI Conformance Testing Tools• UNH-IOL test service [1]

The iSCSI consortium provide a service to test iSCSI products and software from both interoperability andconformance perspectives. Membership is needed for cutting edge testing equipment and IOL testing tools.

• iSWAT [2]

Commercial software. iSWT contains both Initiator and target test modules. Users can develop their own testingscripts.

• iSCT [3]

Commercial software. iSCT is an iSCSI initiator emulator to test protocol conformance of the iSCSI target. Itfeatures a batch system to run multiple test cases automatically and a GUI protocol analyzer which mimicsWireShark's interface.

• iSCSISim [4]

Open-source software. iSCSISim is also an iSCSI initiator emulator to test iSCSI targets. Written in Python, itscapabilities include SCSI command injection, error insertion, and recovery testing.

References[1] http:/ / www. iol. unh. edu/ services/ testing/ iscsi/[2] http:/ / www. swattest. com[3] http:/ / www. storagetest. com[4] http:/ / sourceforge. net/ projects/ iscsisim/

Page 42: SCSI wiki

iSCSI Extensions for RDMA 39

iSCSI Extensions for RDMAThe iSCSI Extensions for RDMA (iSER) is a computer network protocol that extends the Internet Small ComputerSystem Interface (iSCSI) protocol to use Remote Direct Memory Access (RDMA). Typically RDMA is provided byeither the Transmission Control Protocol (TCP) with RDMA services (iWARP) or InfiniBand. It permits data to betransferred directly into and out of SCSI computer memory buffers (which connects computers to storage devices)without intermediate data copies.

HistoryAn RDMA consortium was announced on May 31, 2002 with a goal of product implementations by 2003.[1] Theconsortium released their proposal in July, 2003.[2] The protocol specifications were published as drafts inSeptember 2004 in the Internet Engineering Task Force and issued as RFCs in October 2007.[3][4] The OpenIBAlliance was renamed in 2007 to be the OpenFabrics Alliance, and then released an open source software package.[5]

DescriptionThe motivation for iSER is to use RDMA to avoid unnecessary data copying on the target and initiator. TheDatamover Architecture (DA) defines an abstract model in which the movement of data between iSCSI end nodes islogically separated from the rest of the iSCSI protocol; iSER is one Datamover protocol. The interface between theiSCSI and a Datamover protocol, iSER in this case, is called Datamover Interface (DI).The main difference between the standard iSCSI and iSCSI over iSER is the execution of SCSI read/writecommands. With iSER the target drives all data transfer (with the exception of iSCSI unsolicited data) by issuingRDMA write/read operations, respectively. When the iSCSI layer issues an iSCSI command PDU, it calls theSend_Control primitive, which is part of the DI. The Send_Control primitive sends the STag with the PDU. TheiSER layer in the target side notifies the target that the PDU was received with the Control_Notify primitive (whichis part of the DI). The target calls the Put_Data or Get_Data primitives (which are part of the DI) to perform anRDMA write/read operation respectively. Then, the target calls the Send_Control primitive to send a response to theinitiator. An example is shown in the figures (time progresses from top to bottom).

READ command execution with iSER

All iSCSI control-type PDUs containan iSER header, which allows theinitiator to advertise the STags thatwere generated during bufferregistration. The target will use theSTags later for RDMA read/writeoperations.

References[1] "Open Consortium Developing

Specifications for Remote Direct MemoryAccess Over TCP/IP Networks" (http:/ /www. rdmaconsortium. org/ home/

PressReleaseMay31. pdf). press release. May 31, 2002. . Retrieved May 5, 2011.[2] Mike Ko, et al. (July 2003). "iSCSI Extensions for RDMA Specification (Version 1.0)" (http:/ / www.

Page 43: SCSI wiki

iSCSI Extensions for RDMA 40

WRITE command execution with iSER

rdmaconsortium. org/ home/draft-ko-iwarp-iser-v1. PDF). . RetrievedMay 5, 2011.

[3] M. Ko et al. (October 2007). "Internet SmallComputer System Interface (iSCSI)Extensions for Remote Direct MemoryAccess (RDMA)". RFC 5046.

[4] M. Chadalapaka et al. (October 2007). "DA:Datamover Architecture for the InternetSmall Computer System Interface (iSCSI)".RFC 5047.

[5] "OpenFabrics Alliance" (http:/ / www.openfabrics. org/ ). official web site. .Retrieved May 4, 2011.

Further reading

• Mallikarjun Chadalapaka; HemalShah; Uri Elzur; Patricia Thaler; Michael Ko (2003). "A study of iSCSI extensions for RDMA (iSER)".Proceedings of the ACM SIGCOMM workshop on Network-I/O convergence (Association for ComputingMachinery): 209–219. doi:10.1145/944747.944754.

• Ethan Burns (May 2008). Implementation and Comparison of iSCSI over RDMA (http:/ / www. cs. unh. edu/burnsthesis. pdf). University of New Hampshire. Retrieved May 5, 2011. Thesis for Master of Science inComputer Science

External links• "RDMA model" (http:/ / www. zurich. ibm. com/ sys/ rdma/ model. html). IBM Research - Zurich. Retrieved

May 5, 2011.• Mallikarjun Chadalapaka, HP (August 2, 2004). "iSCSI/RDMA: Overview of DA and iSER" (http:/ / www. ietf.

org/ proceedings/ 60/ slides/ ips-1/ ips-1. ppt) (ppt). Retrieved May 5, 2011.• Peter Dunlap, Sun Microsystems (2008). "OpenSolaris iSCSI Extensions for RDMA (iSER)" (http:/ / www. snia.

org/ events/ storage-developer2008/ presentations/ wednesday/ PeterDunlap_OpenSolaris_iSER. pdf) (ppt).Storage Developers Conference. Retrieved May 5, 2011.

• iSER and DA Frequently Asked Questions (http:/ / www. rdmaconsortium. org/ home/ iSER_DA_FAQ. htm)

Page 44: SCSI wiki

Key Code Qualifier 41

Key Code QualifierKCQ redirects here. For the radio station in Saginaw, Michigan, see WKCQ

Key Code Qualifier is a computer term used to describe an error-code returned by a SCSI device.When a SCSI target device returns a check condition in response to a command, the initiator usually then issues aSCSI Request Sense command. This process is part of a SCSI protocol called Contingent Allegiance Condition. Thetarget will respond to the Request Sense command with a set of SCSI sense data which includes three fields givingincreasing levels of detail about the error:•• K - sense key - 4 bits, (byte 2 of Fixed sense data format)•• C - additional sense code (ASC) - 8 bits, (byte 12 of Fixed sense data format)•• Q - additional sense code qualifier (ASCQ) - 8 bits, (byte 13 of Fixed sense data format)The initiator can take action based on just the K field which indicates if the error is minor or major. However allthree fields are usually logically combined into a 20 bit field called Key Code Qualifier or KCQ. The specificationfor the target device will define the list of possible KCQ values. In practice there are many KCQ values which arecommon between different SCSI device types and different SCSI device vendors.

List of common SCSI KCQs

Category Key ASC ASCQ Error Condition

No Sense 0 00 00 No error

0 5D 00 No sense - PFA threshold reached

Soft Error 1 01 00 Recovered Write error - no index

1 02 00 Recovered no seek completion

1 03 00 Recovered Write error - write fault

1 09 00 Track following error

1 0B 01 Temperature warning

1 0C 01 Recovered Write error with auto-realloc - reallocated

1 0C 03 Recovered Write error - recommend reassign

1 12 01 Recovered data without ECC using prev logical block ID

1 12 02 Recovered data with ECC using prev logical block ID

1 14 01 Recovered Record Not Found

1 16 00 Recovered Write error - Data Sync Mark Error

1 16 01 Recovered Write error - Data Sync Error - data rewritten

1 16 02 Recovered Write error - Data Sync Error - recommend rewrite

1 16 03 Recovered Write error - Data Sync Error - data auto-reallocated

1 16 04 Recovered Write error - Data Sync Error - recommend reassignment

1 17 00 Recovered data with no error correction applied

1 17 01 Recovered Read error - with retries

1 17 02 Recovered data using positive offset

Page 45: SCSI wiki

Key Code Qualifier 42

1 17 03 Recovered data using negative offset

1 17 05 Recovered data using previous logical block ID

1 17 06 Recovered Read error - without ECC, auto reallocated

1 17 07 Recovered Read error - without ECC, recommend reassign

1 17 08 Recovered Read error - without ECC, recommend rewrite

1 17 09 Recovered Read error - without ECC, data rewritten

1 18 00 Recovered Read error - with ECC

1 18 01 Recovered data with ECC and retries

1 18 02 Recovered Read error - with ECC, auto reallocated

1 18 05 Recovered Read error - with ECC, recommend reassign

1 18 06 Recovered data using ECC and offsets

1 18 07 Recovered Read error - with ECC, data rewritten

1 1C 00 Defect List not found

1 1C 01 Primary defect list not found

1 1C 02 Grown defect list not found

1 1F 00 Partial defect list transferred

1 44 00 Internal target failure

1 5D 00 PFA threshold reached

Not Ready 2 04 00 Not Ready - Cause not reportable.

2 04 01 Not Ready - becoming ready

2 04 02 Not Ready - need initialise command (start unit)

2 04 03 Not Ready - manual intervention required

2 04 04 Not Ready - format in progress

2 04 09 Not Ready - self-test in progress

2 31 00 Not Ready - medium format corrupted

2 31 01 Not Ready - format command failed

2 35 02 Not Ready - enclosure services unavailable

2 3A 00 Not Ready - medium not present

2 3A 01 Not Ready - medium not present - tray closed

2 3A 02 Not Ready - medium not present - tray open

2 4C 00 Diagnostic Failure - config not loaded

Page 46: SCSI wiki

Key Code Qualifier 43

Medium Error 3 02 00 Medium Error - No Seek Complete

3 03 00 Medium Error - write fault

3 10 00 Medium Error - ID CRC error

3 11 00 Medium Error - unrecovered read error

3 11 01 Medium Error - read retries exhausted

3 11 02 Medium Error - error too long to correct

3 11 04 Medium Error - unrecovered read error - auto re-alloc failed

3 11 0B Medium Error - unrecovered read error - recommend reassign

3 14 01 Medium Error - record not found

3 16 00 Medium Error - Data Sync Mark error

3 16 04 Medium Error - Data Sync Error - recommend reassign

3 19 00 Medium Error - defect list error

3 19 01 Medium Error - defect list not available

3 19 02 Medium Error - defect list error in primary list

3 19 03 Medium Error - defect list error in grown list

3 19 0E Medium Error - fewer than 50% defect list copies

3 31 00 Medium Error - medium format corrupted

3 31 01 Medium Error - format command failed

Hardware Error 4 01 00 Hardware Error - no index or sector

4 02 00 Hardware Error - no seek complete

4 03 00 Hardware Error - write fault

4 09 00 Hardware Error - track following error

4 11 00 Hardware Error - unrecovered read error in reserved area

4 16 00 Hardware Error - Data Sync Mark error in reserved area

4 19 00 Hardware Error - defect list error

4 19 02 Hardware Error - defect list error in Primary List

4 19 03 Hardware Error - defect list error in Grown List

4 31 00 Hardware Error - reassign failed

4 32 00 Hardware Error - no defect spare available

4 35 01 Hardware Error - unsupported enclosure function

4 35 02 Hardware Error - enclosure services unavailable

4 35 03 Hardware Error - enclosure services transfer failure

4 35 04 Hardware Error - enclosure services refused

4 35 05 Hardware Error - enclosure services checksum error

4 3E 03 Hardware Error - self-test failed

4 3E 04 Hardware Error - unable to update self-test

4 44 00 Hardware Error - internal target failure

Page 47: SCSI wiki

Key Code Qualifier 44

Illegal Request 5 1A 00 Illegal Request - parm list length error

5 20 00 Illegal Request - invalid/unsupported command code

5 21 00 Illegal Request - LBA out of range

5 24 00 Illegal Request - invalid field in CDB (Command Descriptor Block)

5 25 00 Illegal Request - invalid LUN

5 26 00 Illegal Request - invalid fields in parm list

5 26 01 Illegal Request - parameter not supported

5 26 02 Illegal Request - invalid parm value

5 26 03 Illegal Request - invalid field parameter - threshold parameter

5 26 04 Illegal Request - invalid release of persistent reservation

5 2C 00 Illegal Request - command sequence error

5 35 01 Illegal Request - unsupported enclosure function

5 49 00 Illegal Request - invalid message

5 53 00 Illegal Request - media load or eject failed

5 53 01 Illegal Request - unload tape failure

5 53 02 Illegal Request - medium removal prevented

5 55 00 Illegal Request - system resource failure

5 55 01 Illegal Request - system buffer full

5 55 04 Illegal Request - Insufficient Registration Resources

Unit Attention 6 28 00 Unit Attention - not-ready to ready transition (format complete)

6 29 00 Unit Attention - POR or device reset occurred

6 29 01 Unit Attention - POR occurred

6 29 02 Unit Attention - SCSI bus reset occurred

6 29 03 Unit Attention - TARGET RESET occurred

6 29 04 Unit Attention - self-initiated-reset occurred

6 29 05 Unit Attention - transceiver mode change to SE

6 29 06 Unit Attention - transceiver mode change to LVD

6 2A 00 Unit Attention - parameters changed

6 2A 01 Unit Attention - mode parameters changed

6 2A 02 Unit Attention - log select parms changed

6 2A 03 Unit Attention - Reservations pre-empted

6 2A 04 Unit Attention - Reservations released

6 2A 05 Unit Attention - Registrations pre-empted

Page 48: SCSI wiki

Key Code Qualifier 45

6 2F 00 Unit Attention - commands cleared by another initiator

6 3F 00 Unit Attention - target operating conditions have changed

6 3F 01 Unit Attention - microcode changed

6 3F 02 Unit Attention - changed operating definition

6 3F 03 Unit Attention - inquiry parameters changed

6 3F 05 Unit Attention - device identifier changed

6 5D 00 Unit Attention - PFA threshold reached

Write Protect 7 27 00 Write Protect - command not allowed

Aborted Command B 00 00 Aborted Command - no additional sense code

B 1B 00 Aborted Command - sync data transfer error (extra ACK)

B 25 00 Aborted Command - unsupported LUN

B 3F 0F Aborted Command - echo buffer overwritten

B 43 00 Aborted Command - message reject error

B 44 00 Aborted Command - internal target failure

B 45 00 Aborted Command - Selection/Reselection failure

B 47 00 Aborted Command - SCSI parity error

B 48 00 Aborted Command - initiator-detected error message received

B 49 00 Aborted Command - inappropriate/illegal message

B 4B 00 Aborted Command - data phase error

B 4E 00 Aborted Command - overlapped commands attempted

B 4F 00 Aborted Command - due to loop initialisation

Other E 1D 00 Miscompare - during verify byte check operation

x 05 00 Illegal request

x 06 00 Unit attention

x 07 00 Data protect

x 08 00 LUN communication failure

x 08 01 LUN communication timeout

x 08 02 LUN communication parity error

x 08 03 LUN communication CRC error

x 09 00 vendor specific sense key

x 09 01 servo fault

Page 49: SCSI wiki

Key Code Qualifier 46

x 09 04 head select fault

x 0A 00 error log overflow

x 0B 00 aborted command

x 0C 00 write error

x 0C 02 write error - auto-realloc failed

x 0E 00 data miscompare

x 12 00 address mark not found for ID field

x 14 00 logical block not found

x 15 00 random positioning error

x 15 01 mechanical positioning error

x 15 02 positioning error detected by read of medium

x 27 00 write protected

x 29 00 POR or bus reset occurred

x 31 01 format failed

x 32 01 defect list update error

x 32 02 no spares available

x 35 01 unspecified enclosure services failure

x 37 00 parameter rounded

x 3D 00 invalid bits in identify message

x 3E 00 LUN not self-configured yet

x 40 01 DRAM parity error

x 40 02 DRAM parity error

x 42 00 power-on or self-test failure

x 4C 00 LUN failed self-configuration

x 5C 00 RPL status change

x 5C 01 spindles synchronised

x 5C 02 spindles not synchronised

x 65 00 voltage fault

x ≥80 x Vendor specific

x x ≥80 Vendor specific

ReferencesSPC-4 [1] clause 4.5.6 and annex D.2

References[1] ftp:/ / ftp. t10. org/ t10/ drafts/ spc4/

Page 50: SCSI wiki

Layer Jump Recording 47

Layer Jump RecordingLayer Jump Recording (LJR) is a writing method used for DVD-R DL (Dual Layer).It permits recording the disc per increments called session (see Optical disc authoring), aka multi-session. It alsopermits a faster closing of the disc by saving extraneous padding when the amount of recorded data does not fill-upthe disc. It overcomes these limitations of Sequential Recording (SR), the writing method usually applied towrite-once optical media.The layer jump is a switch (jump) between the layer closer to the laser head (referred as L0) to the farther layer(referred as L1), or vice-versa. Jumping layers is already necessary for reading multiple layer optical media (so farmarket released products are limited to two layers despite some research prototypes having up to eight layers), aswell as for recording them with Sequential Recording. However the layer jump during the recording occurs onlyonce, at the position called Middle Area, during a Sequential Recording, while it may occur multiple times withLayer Jump Recording.Two different Layer Jump methods are defined: Manual Layer Jump and Regular Layer Jump. The first require thesoftware to specify to the hardware each jump point from layer zero to layer one (the jump from layer one to layerzero occurring always at the symmetric jump point). The latter requires the software to specify to the hardware onlyonce the jumping interval size.This technology was championed by Pioneer Corporation, optical device manufacturer among things, and introducedto the market in 2005. The physical part of the technology was first specified within DVD Forum, and then amatching device command set was introduced to the Mt Fuji specification (which eventually was replicated withinthe MMC specification). Later the Layer Jump Recording impacted the UDF file system specification.Unlike most recording methods, Layer Jump Recording was not unanimously adopted by optical drivermanufacturer. The limited backward compatibility with legacy optical devices, complexity of device firmwareimplementation, need of significant software update for support and the slightly awkward writing sequencing,slowed down the adoption. In 2006, drives supporting the Layer Jump Recording methods were released by Pioneeritself, Plextor, BenQ, Lite-On, and Sony. The technology was also supported by optical drive chipsets from keymanufacturer MediaTek.The technology is supported by multiple recording software, but also not unanimously supported. Nero,Sonic/Roxio, CyberLink and Ulead Systems claim support for Layer Jump Recording in their software.

External links• Mt Fuji Commands for Multimedia Devices Version 8, 5.18.1.1 Three Recording Modes for DVD-R DL disc [1]

by the SFF Committee• Nero - First To Support Layer-Jump Recording (LJR) of dual-layer DVD-R media [2]

• CyberLink Partners with MediaTek to Deliver DVD-R Dual Layer Recording [3]

• Ulead Taking Advantage of the Increased Capacity of Dual and Double Layer Media [4]

Page 51: SCSI wiki

Layer Jump Recording 48

References[1] ftp:/ / ftp. avc-pioneer. com/ Mtfuji_8/ Spec/ FUJI8R100. zip[2] http:/ / www. nero. com/ enu/ pressreleases. html?id=248[3] http:/ / www. cyberlink. com/ prog/ company/ press-news-content. do?pid=865[4] http:/ / www. ulead. com. tw/ ulead/ UDNews/ preview. cfm?ID=376& FS=us& template=PressReleases. htm

List of SCSI message codesA SCSI Message Code is a computer term which defines how SCSI devices send interface managementinformation. The message code comprises one or more bytes.

List of SCSI Message Codes

00 COMMAND COMPLETE

01nnyy... EXTENDED MESSAGE - nn is the length, yy is the extended message code

010203ee WIDE DATA TRANSFER REQUEST where ee is the transfer width exponent

010301pprr SYNCHRONOUS DATA TRANSFER REQUEST - where pp is the period and rr is the REQ/ACK offset

010500aaaa MODIFY DATA POINTER - where aaaa is added to the current data pointer

01nn02...

02 SAVE PTRS

04 DISCONNECT

05 INITIATOR DETECTED ERROR

06 ABORT

07 MESSAGE REJECT

08 NO OPERATION

09 MESSAGE PARITY ERROR

0A LINKED COMMAND COMPLETE

0B LINKED COMMAND COMPLETE (WITH FLAG)

0C BUS DEVICE RESET

0D ABORT TAG

0E CLEAR QUEUE

0F INITIATE RECOVERY

10 RELEASE RECOVERY

11 TERMINATE I/O PROCESS

20 SIMPLE QUEUE TAG

21 HEAD OF QUEUE TAG

22 ORDERED QUEUE TAG

230i IGNORE WIDE RESIDUE - where i is the number of bytes to ignore

24-2F Reserved for two-byte messages

80-FF IDENTIFY

Page 52: SCSI wiki

Logical block addressing 49

Logical block addressingLogical block addressing (LBA) is a common scheme used for specifying the location of blocks of data stored oncomputer storage devices, generally secondary storage systems such as hard disks.LBA is a particularly simple linear addressing scheme; blocks are located by an integer index, with the first blockbeing LBA 0, the second LBA 1, and so on.IDE standard included 22-bit LBA as an option, which was further extended to 28-bit with the release of ATA-1(1994) and to 48-bit with the release of ATA-6 (2003). Most hard drives released after 1996 implement logical blockaddressing.

OverviewIn logical block addressing, only one number is used to address data, and each linear base address describes a singleblock.The LBA scheme replaces earlier schemes which exposed the physical details of the storage device to the software ofthe operating system. Chief among these was the cylinder-head-sector (CHS) scheme, where blocks were addressedby means of a tuple which defined the cylinder, head, and sector at which they appeared on the hard disk. CHS didnot map well to devices other than hard disks (such as tapes and networked storage), and was generally not used forthem. CHS was used in early MFM and RLL drives, and both it and its successor Extended Cylinder-Head-Sector(ECHS) were used in the first ATA drives. However, current disk drives use zone bit recording, where the number ofsectors per track depends on the track number. Even though the disk drive will report some CHS values as sectorsper track (SPT) and heads per cylinder (HPC), they have little to do with the disk drive's true geometry.LBA was first introduced in SCSI as an abstraction. While the drive controller still addresses data blocks by theirCHS address, this information is generally not used by the SCSI device driver, the OS, filesystem code, or anyapplications (such as databases) that access the "raw" disk. System calls requiring block-level I/O pass LBAdefinitions to the storage device driver; for simple cases (where one volume maps to one physical drive), this LBA isthen passed directly to the drive controller.In RAID devices and SANs and where logical drives (LUNs) are composed via LUN virtualization and aggregation,LBA addressing of individual disk should be translated by a software layer to provide uniform LBA addressing forthe entire storage device.

Enhanced BIOSThe earlier IDE standard from Western Digital introduced 22 bit LBA; in 1994, the ATA-1 standard allowed for 28bit addresses in both LBA and CHS modes. The CHS scheme used 16 bits for cylinder, 4 bits for head and 8 bits forsector, counting sectors from 1 to 255. This means the reported number of heads never exceeds 16 (0-15), thenumber of sectors can be 255 (1-255; though 63 is often the largest used) and the number of cylinders can be as largeas 65,536 (0-65535), limiting disk size to 128 GiB (≈137.4 GB), assuming 512 byte sectors. These values can beaccessed by issuing the ATA command "Identify Device" (ECh) to the drive.[1]

However IBM BIOS implementation defined in the INT 13H disk access routines used quite a different 24-bit scheme for CHS addressing, with 10 bits for cylinder, 8 bits for head, and 6 bits for sector, or 1024 cylinders, 256 heads, and 63 sectors.[2] This INT 13H implementation had pre-dated the ATA standard, as it was introduced when the IBM PC had only floppy disk storage, and when hard disk drives were introduced on the IBM PC/XT, INT 13H interface could not be practically redesigned due to backward compatibility issues. Overlapping ATA CHS mapping with BIOS CHS mapping produced the lowest common denominator of 10:4:6 bits, or 1024 cylinders, 16 heads, and 63 sectors, which gave the practical limit of 1024×16×63 sectors and 528 Mbytes (504 MiB), assuming 512 byte

Page 53: SCSI wiki

Logical block addressing 50

sectors.In order for BIOS to overcome this limit and successfully work with large hard drives, a CHS translation scheme hadto be implemented in BIOS disk I/O routines which would convert between 24-bit CHS used by INT 13H and 28-bitCHS numbering used by ATA. The translation scheme was called Large or Bit Shift Translation. This methodwould remap 16:4:8 bit ATA cylinders and heads to 10:8:6 bit scheme used by INT 13H, generating much more"virtual" drive heads than the physical disk reported. This increased the practical limit to 1024×256×63 sectors, or8.4 Gbytes (7.8 GiB).To further overcome this limit, INT 13H Extensions were introduced with BIOS Enhanced Disk Drive Servicesspecification, which removed practical limits on disk size for operating systems which are aware of this newinterface, such as DOS 7.0 component in Windows 95. This Enhanced BIOS subsystem supports LBA addressingwith LBA or LBA-Assist method, which uses native 28-bit LBA for addressing ATA disks and performs CHSconversion as needed.The Normal or None method reverts to the earlier 10:4:6 bit CHS mode which does not support addressing morethan 528 Mbytes.Until the release of ATA-2 standard in 1996, there were a handful of large hard drives which did not support LBAaddressing, so only Large or Normal methods could be used. However using the Large method also introducedportability problems, as different BIOSes often used different and incompatible translation methods, and hard drivespartitioned on a computer with BIOS from a particular vendor often could not be read on a computer with a differentmake of BIOS. The solution was to use conversion software such as OnTrack Disk Manager, EZ-Drive, etc., whichinstalled to the disk's OS loader and replaced INT 13H routines at boot time with custom code. This software couldalso enable LBA and INT 13H Extensions support for older computers with non LBA-compliant BIOSes.The current 48-bit LBA scheme, introduced in 2003 with ATA-6 standard, allows addressing up to 128 PiB. CurrentPC-Compatible computers support INT 13H Extensions, which use 64-bit structures for LBA addressing and shouldencompass any future extension of LBA addressing, though modern operating systems implement direct disk accessand do not use the BIOS subsystems, except at boot load time. However, the common DOS style Master boot recordpartition table only supports disk partitions up to 2 TiB in size. For large partitions this needs to be replaced byanother scheme for instance the GUID Partition Table which has the same 64-bit limit as the current INT 13HExtensions.

CHS conversion

LBA and CHS equivalence with 16 heads per cylinder

LBA Value CHS Tuple

0 0, 0, 1

1 0, 0, 2

2 0, 0, 3

62 0, 0, 63

945 0, 15, 1

1007 0, 15, 63

1008 1, 0, 1

1070 1, 0, 63

1071 1, 1, 1

1133 1, 1, 63

Page 54: SCSI wiki

Logical block addressing 51

1134 1, 2, 1

2015 1, 15, 63

2016 2, 0, 1

16,127 15, 15, 63

16,128 16, 0, 1

32,255 31, 15, 63

32,256 32, 0, 1

16,450,559 16319, 15, 63

16,514,063 16382, 15, 63

CHS (cylinder/head/sector) tuples can be mapped to LBA address with the following formula:

where,•• C, H and S are the cylinder number, the head number, and the sector number•• LBA is the logical block address•• HPC is the maximum number of heads per cylinder (reported by disk drive, typically 16 for 28-bit LBA)•• SPT is the maximum number of sectors per track (reported by disk drive, typically 63 for 28-bit LBA)LBA addresses can be mapped to CHS tuples with the following formula:

where• mod is the modulo operation, i.e. the remainder, and• is integer division, i.e. the quotient of the division.According to the ATA specifications, "If the content of words (61:60) is greater than or equal to 16,514,064 then thecontent of word 1 [the number of logical cylinders] shall be equal to 16,383."[1] Therefore for LBA 16450559, anATA drive may actually respond with the CHS tuple (16319, 15, 63), and the number of cylinders in this schememust be much larger than 1024 allowed by INT 13H.[3]

OS dependenciesOperating systems that are sensitive to BIOS-reported drive geometry include Solaris, DOS and Windows NTfamily, where NTLDR (NT, 2000, XP, Server 2003) or WINLOAD (Vista, Server 2008, Windows 7 and Server2008 R2) use Master boot record which addresses the disk using CHS; x86-64 and Itanium versions of Windows canpartition the drive with GUID Partition Table which uses LBA addressing.Some operating systems do not require any translation because they do not use geometry reported by BIOS in theirboot loaders. Among these operating systems are BSD, Linux, Mac OS X, OS/2 and ReactOS.

Page 55: SCSI wiki

Logical block addressing 52

References[1] Working Draft of ATA/ATAPI-5 (http:/ / www. t10. org/ t13/ project/ d1321r3-ATA-ATAPI-5. pdf) Sections 6.2.1 and 8.12 of the T13

Technical Committee's, 29 February 2000.[2] KB224526: Windows NT 4.0 supports maximum of 7.8-GB system partition (http:/ / support. microsoft. com/ kb/ q224526/ en-us)[3] Though CHS addressing definitely uses the mathematical concept of tuple, it may also be considered an example of the general scheme

called mixed radix by viewing its cylinders, heads and sectors as having different numerical bases; e.g., cylinders counting from 0 to 1023,heads from 0 to 254 and sectors from 1 to 63.

External links• LBAs explained (http:/ / www. dewassoc. com/ kbase/ hard_drives/ lba. htm)• LBA and CHS format, LBA mapping (http:/ / www. boot-us. com/ gloss11. htm)• CHS to LBA Translation Tutorial (http:/ / www. viralpatel. net/ taj/ tutorial/ chs_translation. php)• CHS/LBA conversion utility (http:/ / homepage2. nifty. com/ cars/ misc/ chs2lba. html)• Microsoft article on 7.8GB limit on NT 4.0 (http:/ / support. microsoft. com/ kb/ q224526/ )• Hard Drive Size Limitations and Barriers (http:/ / www. dewassoc. com/ kbase/ hard_drives/

drive_size_barrier_limitations_2. htm)• Upgrading and Repairing PC's (http:/ / books. google. com/ books?id=E1p2FDL7P5QC& pg=RA1-PA527&

lpg=RA1-PA527& dq=bit+ shifting+ lba& source=bl& ots=M1poB75_cv&sig=3q6B9DsqOj08xkvE0iE6iiake44& hl=en& ei=HuABS5u6DpPNngefzYwR& sa=X& oi=book_result&ct=result& resnum=10& ved=0CEAQ6AEwCQ#v=onepage& q=bit shifting lba& f=false), by Scott Mueller.Pages 524-531.

• Source for 48-bit LBA Information (http:/ / www. 48bitlba. com/ )

Logical Unit NumberIn computer storage, a logical unit number or LUN is a number used to identify a logical unit, which is a deviceaddressed by the SCSI protocol or similar protocols such as Fibre Channel or iSCSI. A LUN may be used with anydevice which supports read/write operations, such as a tape drive, but is most often used to refer to a logical disk ascreated on a SAN. Though not technically correct, the term "LUN" is often also used to refer to the drive itself.[1]

ExamplesTo provide a practical example, a typical disk array has multiple physical SCSI ports, each with one SCSI targetaddress assigned. An administrator may format the disk array as a RAID and then partition this RAID into severalseparate storage-volumes. To represent each volume, a SCSI target is configured to provide a logical unit. EachSCSI target may provide multiple logical units and thus represent multiple volumes, but this does not mean thatthose volumes are concatenated. The computer that accesses a volume on the disk array identifies which volume toread or write with the LUN of the associated logical unit.In another example: a single disk-drive has one physical SCSI port. It usually provides just a single target, which inturn usually provides just a single logical unit whose LUN is zero. This logical unit represents the entire storage ofthe disk drive.

Page 56: SCSI wiki

Logical Unit Number 53

UseHow to select a LUN: In the early versions of SCSI, an initiator delivers a Command Data Block (CDB) to a target(physical unit) and within the CDB is a 3-bit LUN field to identify the logical unit within the target. In current SCSI,the initiator delivers the CDB to a particular logical unit, so the LUN appears in the transport layer data structuresand not in the CDB.LUN vs. SCSI Device ID: The LUN is not the only way to identify a logical unit. There is also the SCSI Device ID,which identifies a logical unit uniquely in the world. Labels or serial numbers stored in a logical unit's storagevolume often serve to identify the logical unit. However, the LUN is the only way for an initiator to address acommand to a particular logical unit, so initiators often create, via a discovery process, a mapping table of LUN toother identifiers.Context sensitive: The LUN identifies a logical unit only within the context of a particular initiator. So twocomputers that access the same disk volume may know it by different LUNs.LUN 0: There is one LUN which is required to exist in every target: zero. The logical unit with LUN zero is specialin that it must implement a few specific commands, most notably Report LUNs, which is how an initiator can findout all the other LUNs in the target. But LUN zero need not provide any other services, such as a storage volume.Many SCSI targets contain only one logical unit (so its LUN is necessarily zero). Others have a small number oflogical units that correspond to separate physical devices and have fixed LUNs. A large storage system may have upto thousands of logical units, defined logically, by administrative command, and the administrator may choose theLUN or the system may choose it.

cXtXdXsX nomenclature in UnixFrom the computer perspective, SCSI LUN is only a part of the full SCSI address. The full device's address is madefrom the:• c-part: controller ID of the host bus adapter,• t-part: target ID identifying the SCSI target on that bus,• d-part: disk ID identifying a LUN on that target,• s-part: slice ID identifying a specific slice on that disk.In the Unix family of operating systems, these IDs are often combined into a single "name". For example,/dev/dsk/c1t2d3s4 would refer to controller 1, target 2, disk 3, slice 4. Presently Solaris, HP-UX, NCR, and otherscontinue to use "cXtXdXsX" nomenclature, while AIX has abandoned it in favor of more familiar names.

Other usesThe term logical unit number also applies to an input/output access channel within certain programming languages.

Fortran I/OFor example, in FORTRAN, some input/output statements such as the READ or WRITE statements contain anordered pair of numbers which identifies the LUN of the file or other data source or destination, and (usually) also,the FORMAT of the data to be read or written, as in this example:

WRITE (5,32)

where 5 is the LUN of the target file or device, and 32 is the label of the FORMAT statement for the write.

Page 57: SCSI wiki

Logical Unit Number 54

References[1] James Long, Storage networking protocol fundamentals (http:/ / books. google. co. uk/ books?id=zEFrqPrcZI8C& pg=PA111),

Mount Rainier (packet writing)Mount Rainier (MRW) is a format for writable optical discs which provides the packet writing and defectmanagement. Its goal is the replacement of the floppy disk. It is named after Mount Rainier, a volcano near Seattle,Washington, USA.Mount Rainier can be used only with drives that explicitly support it (a part of SCSI/MMC and can work overATAPI), but works with standard CD-R, CD-RW, DVD+/-R and DVD+/-RW media.The physical format of MRW disks is a layer placed in between the file system (e.g. UDF or FAT32) imposed by theoperating system or the packet writing software used to write or read the disk and the physical layer whichdetermines how data is written to or extracted from the optical disc. This is transparently managed internally bydrive's firmware which remaps physical drive blocks into a virtual and defect-free space. Therefore the hostcomputer does not see the physical format of the disk, only a sequence of data blocks capable of holding anyfilesystem.

DesignThe time needed for the disk formatting is shortened to about one minute by the background formatting capabilitiesof the drive. Formatting allocates some sectors at the end of the disk for defect management. Defective sectors arerecorded at a table in the lead-in (an administrative area) and in a copy of the table in the lead-out.From the host computer's perspective, an MRW disc provides a defect-free block-accessible device, upon which anyhost supported filesystem may be written. Such filesystems may be FAT32, NTFS, etc., but the preferred format isusually UDF 1.02, as this file format is widely supported. An MRW-formatted CD-RW with a UDF filesystem givesapproximately 500 MB free space.Mt. Rainier allows write access to a disc within seconds after insertion and spin-up, even while a backgroundformatting sequence is taking place. Before this technology, a user would have to wait for the formatting to completebefore writing any data to a new disc. It is even possible to read (but not write) MRW disks without anMRW-compatible drive; A "remapper" device driver is needed, an example of which is EasyWrite Reader forWindows.An alternative to MRW is to physically format a disc in UDF 1.5 or higher using the spared build. This is achievedby the use of specialized packet writing software, or operating systems that support UDF versions 1.5 and above.MRW capabilities overlap somewhat with that of UDF 1.5+.

Advantages and disadvantagesAdvantages of MRW over UDF 1.5+ include:•• fast background formatting of the media•• finer grained packet size of 2K versus 64K•• file system independence•• does not depend on the host system to perform defect managementAdvantage of UDF 1.5+ over MRW include:•• more portable, as UDF 1.5+ alone does not need specialized drive hardware to write, and the computer needs

neither an MRW driver for a MRW-capable optical drive nor an MRW reader for drives that are incapable of

Page 58: SCSI wiki

Mount Rainier (packet writing) 55

reading MRW natively, reducing software overhead.

Operating system supportMount Rainier is implemented natively in Windows Vista and Windows 7.[1] Linux has built-in MRW support sincekernel version 2.6.2 (2004). Amiga OS4 supports this natively since the first beta appeared in 2004. Support forreading this format was also added to Mac OS X. Operating systems that don't support MRW natively (notablyWindows XP and prior versions) need third-party software to read and write MRW-formatted discs, and these tendto be the same packet writing utilities which allow native UDF filesystems to be written to optical media.Some optical disk software, such as IsoBuster, can support Mount Rainier on non-MR drives.[2]

The EasyWrite logo is the marketing symbol created by Philips for CD drives that are Mount Rainier compatible.CD-MRW stands for Compact Disc – Mount Rainier Read/Write.

External links• Mount Rainier Support in Linux [3]

References[1] Upgrading and Repairing PCs - Scott Mueller (http:/ / books. google. co. uk/ books?id=Ml1UGe9IuLkC& pg=PT841& lpg=PT841&

dq="windows+ 7"+ cd-mrw& source=bl& ots=FeG74BbKxj& sig=9kDDF3CyANc-tTaGAkRBFUAjWd0& hl=en&ei=sQDpTqWMPMrBhAez0eykDw& sa=X& oi=book_result& ct=result& redir_esc=y#v=onepage& q=cd-mrw& f=false) Alternate link(http:/ / www. quepublishing. com/ articles/ article. aspx?p=1746162& seqNum=6)

[2] IsoBuster featurews page (http:/ / www. isobuster. com/ isobuster. php) - "Support for Mount Rainier CD-RW and DVD+RW discs in MRWcompatible and non-MRW compatible drives. Auto detection and automatic remapping which can be switched off or forced at all times. Builtin MRW remapper / reader. (Built in Method 3 remapper)"

[3] http:/ / www. thehaus. net/ AltOS/ Linux/ ht-mtrainier. shtml

Page 59: SCSI wiki

MultiMedia Commands 56

MultiMedia CommandsMultiMedia Commands defines a SCSI/ATAPI based command set for accessing multimedia features on devicescapable of such functionality. T10 subcommittee is responsible for developing it as well as other SCSI command setstandards.

External links• MMC-6 [1] — sixth generation CD, DVD, HD DVD and Blu-ray Discs command set.• MMC-5 [2] — fifth generation CD, DVD, HD DVD and Blu-ray Discs command set.• MMC-4 [3] — fourth generation CD and DVD command set.• MMC-3 [4] — third generation CD and DVD command set.• MMC-2 [5] — second generation CD and DVD command set.• MMC [6] — first generation CD-ROM command set.

References[1] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc6r00. pdf[2] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc5r04. pdf[3] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc4r05a. pdf[4] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc3r10g. pdf[5] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc2r11a. pdf[6] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc-r10a. pdf

NCR 5380The NCR 5380 is an early SCSI controller chip developed by NCR Microelectronics. It was popular due to itssimplicity and low cost. The 5380 was used in the Macintosh Plus and in numerous SCSI cards for personalcomputers, including the Amiga and Atari TT. The 5380 was second sourced by several chip makers, includingAMD and Zilog.The NCR 5380 also made a significant appearance in Digital Equipment Corporation's VAX computers, where itwas featured on various Q-Bus modules and as an integrated SCSI controller in numerous MicroVAX, VAXstationand VAXserver computers.

Page 60: SCSI wiki

NCR 53C9x 57

NCR 53C9xThe NCR 53C9x is a family of application-specific integrated circuits (ASIC) produced by the former NCRCorporation for implementing the SCSI protocol in hardware. The 53C9x is a low-cost solution and was thereforewidely adopted by OEMs in various motherboard and peripheral device designs. The original 53C90 lacked directmemory access (DMA) capability, an omission that was addressed in the 53C90A and later in the 53C94 and 53C96versions.The 53C90(A) supported the SCSI-1 protocol and implemented the eight bit bus. The 53C94 supported SCSI-2features, as well as SCSI-1, and the 53c96 added support for the high voltage differential (HVD) bus.QLogic FAS216 and Emulex ESP100 chips are a drop-in replacement for the NCR 53C94. The 53C90A and53C94/96 were also produced under license by Advanced Micro Devices (AMD).A list of systems which include the 53C9x chipset includes:53C94

• Sun Microsystems SPARCstations and the SPARCclassic•• DEC 3000 AXP• DECstations and the PMAZ-A TURBOchannel card•• MIPS Magnum• Power Macintosh G3 (often used as a secondary SCSI controller with MESH (Macintosh Enhanced SCSI

Hardware) as the primary)53C96

• Macintosh Quadra 650•• Macintosh LC475

Page 61: SCSI wiki

Parallel SCSI 58

Parallel SCSI

Centronics 50 SCSI plug

Parallel SCSI (formally, SCSI Parallel Interface, orSPI) is one of the interface implementations in the SCSIfamily. In addition to being a data bus, SPI is a parallelelectrical bus: There is one set of electrical connectionsstretching from one end of the SCSI bus to the other. ASCSI device attaches to the bus but does not interrupt it.Both ends of the bus must be terminated.

History

The first two formal SCSI standards, SCSI-1 and SCSI-2,included parallel SCSI as a central part of the protocol.The SCSI-3 standard then split the framework into separate layers so parallel SCSI is now just one of a number ofavailable implementations. See the main SCSI article for a complete list. As with all types of SCSI bus, parallelSCSI communication takes place between an initiator and a target.

The original SCSI-1 version of the parallel bus was 8 bits wide (plus a ninth parity bit). The SCSI-2 standard allowedfor faster operation (10 MHz) and wider buses (16-bit or 32-bit). The 16-bit option became the most popular, as the32-bit option was more expensive and was thus hardly ever used.At 10 MHz with a bus width of 16 bits it is possible to achieve a data rate of 20 MB/s. Subsequent extensions to theSCSI standard allowed for faster speeds: 20 MHz, 40 MHz, 80 MHz, 160 MHz and most recently 320 MHz. At320 MHz x 16 bits there is a theoretical maximum peak data rate of 640 MB/s.

StandardsParallel SCSI is not a single standard, but a suite of closely related standards which, unfortunately, have confusingnames. There are a dozen SCSI interface names, most with ambiguous wording (like Fast SCSI, Fast Wide SCSI,Ultra SCSI, and Ultra Wide SCSI); three SCSI standards, each of which has a collection of modular, optionalfeatures; several different connector types; and three different types of voltage signalling. The leading SCSI cardmanufacturer, Adaptec, has manufactured over 100 varieties of SCSI cards over the years. In actual practice, manyexperienced technicians simply refer to SCSI devices by their bus bandwidth (i.e. SCSI 320 or SCSI 160) inMegabytes per second.SCSI has evolved since its introduction. Before summarizing the evolution, a distinction should be made between theterminology used in the SCSI standard itself, as promulgated by the T10 committee of INCITS, and commonparlance, as codified by the SCSI trade association, SCSITA.As of 2003, there have only been three SCSI standards: SCSI-1, SCSI-2, and SCSI-3. All SCSI standards have beenmodular, defining various capabilities which manufacturers can include or not. Individual vendors and SCSITA [1]

have given names to specific combinations of capabilities. For example, the term "Ultra SCSI" is not definedanywhere in the standard, but is used to refer to SCSI implementations that signal at twice the rate of "Fast SCSI."Such a signalling rate is not compliant with SCSI-2 but is one option allowed by SCSI-3. Similarly, no version of thestandard requires low-voltage-differential (LVD) signalling, but products called Ultra-2 SCSI include this capability.This terminology is helpful to consumers, because "Ultra-2 SCSI" device has a better-defined set of capabilities thansimply identifying it as "SCSI-3."Starting with SCSI-3, the SCSI standard has been maintained as a loose collection of standards, each defining a certain piece of the SCSI architecture, and bound together by the SCSI Architectural Model. This change divorces

Page 62: SCSI wiki

Parallel SCSI 59

SCSI's various interfaces from the command set, allowing devices that support SCSI commands to use any interface(including ones not otherwise specified by T10), and also allowing the interfaces that are defined by T10 to developon their own terms. This change is also why there is no "SCSI-4".No version of the standard has ever specified what kind of connector should be used. See "Connectors," below.

SCSI-1The original standard that was derived from SASI and formally adopted in 1986 by ANSI. SCSI-1 features an 8-bitparallel bus (with parity), running asynchronously at 3.5 MB/s or 5 MB/s in synchronous mode, and a maximum buscable length of 6 meters (just under 20 feet—compared to the 18 inch (0.45 meter) limit of the ATA interface). Ararely seen variation on the original standard included a high-voltage differential (HVD) implementation whosemaximum cable length was 25 meters.

SCSI-2This standard was introduced in 1994 and gave rise to the Fast SCSI and Wide SCSI variants. Fast SCSI doubledthe maximum transfer rate to 10 MB/s and Wide SCSI doubled the bus width to 16 bits on top of that to reach amaximum transfer rate of 20 MB/s. However, these improvements came at the cost of reducing maximum cablelength to 3 meters. SCSI-2 also specified a 32-bit version of Wide SCSI, which used 2 16-bit cables per bus; this waslargely ignored by SCSI device makers because it was expensive and unnecessary, and was officially retired inSCSI-3.

SCSI-3Before Adaptec and later SCSITA codified the terminology, the first parallel SCSI devices that exceeded the SCSI-2capabilities were simply designated SCSI-3. These devices, also known as Ultra SCSI and fast-20 SCSI, wereintroduced in 1996. The bus speed doubled again to 20 MB/s for narrow (8 bit) systems and 40 MB/s for wide(16-bit). The maximum cable length stayed at 3 meters but single-ended Ultra SCSI developed an undeservedreputation for extreme sensitivity to cable length and condition (faulty cables, connectors or terminators were oftento blame for instability problems).Unlike other SCSI standards, SCSI-3 requires active termination.

Ultra-2This standard was introduced c. 1997 and featured a low-voltage differential (LVD) bus. For this reason ultra-2 issometimes referred to as LVD SCSI. LVD's greater resistance to noise allowed a maximum bus cable length of 12meters. At the same time, the data transfer rate was increased to 80 MB/s. Ultra-2 SCSI actually had a relativelyshort lifespan, as it was soon superseded by Ultra-3 (Ultra-160) SCSI.

Ultra-3Also known as Ultra-160 SCSI and introduced toward the end of 1999, this version was basically an improvementon the ultra-2 standard, in that the transfer rate was doubled once more to 160 MB/s by the use of double transitionclocking. Ultra-160 SCSI offered new features like cyclic redundancy check (CRC), an error correcting process, anddomain validation.

Page 63: SCSI wiki

Parallel SCSI 60

Ultra-320This is the Ultra-160 standard with the data transfer rate doubled to 320 MB/s. The latest working draft for thisstandard is revision 10 and is dated May 6, 2002. Nearly all SCSI hard drives being manufactured at the end of 2003were Ultra-320 devices.

Ultra-640Ultra-640 (otherwise known as Fast-320) was promulgated as a standard (INCITS 367-2003 or SPI-5) in early 2003.Ultra-640 doubles the interface speed yet again, this time to 640 MB/s. Ultra-640 pushes the limits of LVDsignaling; the speed limits cable lengths drastically, making it impractical for more than one or two devices. Becauseof this, most manufacturers have skipped over Ultra640 and are developing for Serial Attached SCSI instead.

SCSI signalsIn addition to the data bus and parity signals, a parallel SCSI bus contains nine control signals[2]:

Signal name Meaning when asserted (deasserted)

BSY Busy Bus in use (bus free)

SEL Select Asserted by the winner of an arbitration, during selection by an initiator or reselection by a target

RST Reset Initiator forces all targets and any other initiators to do a warm reset

C/D Control/Data * Bus contains control information (bus contains data)

I/O Input/Output * Transfer is from target to initiator (transfer is from initiator to target). Also asserted by a target after winning arbitration toindicate reselection of an initiator.

MSG Message * Bus contains a message (bus contains data or command/status)

REQ Request Target requests initiator to transfer the next unit of information on the bus, as indicated by the 3 phase signals (no request)

ACKAcknowledge

Initiator acknowledges target request, completing the information transfer handshake (no handshake)

ATN Attention Asserted by an initiator after winning arbitration to select a target.

Notes: * One of 3 signals which are driven by a target during information transfer to indicate the Bus PhaseThere are also three DC levels:

Signal name Usage

TERMPOWER See the Termination section for details

DIFFSNS Grounded in single-ended buses, otherwise floats to a positive voltage

GROUND Most spare pins in the connector are designated as grounds

There are three electrically different variants of the SCSI parallel bus: single-ended (SE), high-voltage differential(HVD), and low-voltage differential (LVD). The HVD and LVD versions use differential signaling and so theyrequire a pair of wires for each signal. So the number of signals required to implement a SCSI bus is a function ofthe bus width and voltage:

Page 64: SCSI wiki

Parallel SCSI 61

Bus Width Voltage Data Parity Control TERMPOWER DIFFSNS GROUND Reserved Total

8-bit SE 8 1 9 1 1 30 0 50

8-bit LVD/HVD 16 2 18 1 1 12 0 50

16-bit SE 16 2 9 4 1 34 2 68

16-bit LVD/HVD 32 4 18 4 1 7 2 68

SCSI IDsAll devices on a parallel SCSI bus must have a SCSI ID, which may be set by jumpers on older devices or insoftware. The SCSI ID field widths are:

Bus-width ID width IDs available

8-bit 3-bit 8

16-bit 4-bit 16

Parallel SCSI bus operationThe parallel SCSI bus goes through eight possible phases as a command is processed. Not all phases will occur in allcases:

Phase Comments

Bus-free This is the state in which no device communication is in process.

Arbitration One or more devices attempt to obtain exclusive control of the bus by asserting /BSY and a single bit corresponding to the deviceSCSI ID. For example, a device with a SCSI ID of 2 would generate the inverted bit pattern 11111011 on the bus.

Selection The arbitrating device with the highest ID takes control of the bus by asserting /BSY and /SEL. "Highest" on an eight bit bus startsfrom 7 and works downward to zero. On a 16 bit bus, the eight bit rule applies, followed by 15 and working downward to 8, thusmaintaining backward compatibility on a bus with a mix of eight and 16 bit devices. The controlling device is now the "initiator."

Command The initiator sends the command descriptor block (CDB) to a "target," which is another device on the bus. The CDB tells the targetwhat to do.

Reselection During a transaction, the target device may be required to execute an operation (e.g., winding or rewinding the tape in a tape drive)that is slow in wall clock time terms relative to the speed of the bus. In such a case, the target may temporarily disconnect from thebus, causing the latter to go to the bus-free condition and allowing other unrelated operations to take place. Reselection is the phasewhere the target reconnects to the initiator to resume the previously suspended transaction.

Data In this phase, data is transferred between initiator and target, the direction of transfer depending on the command that was issued. Forexample, a command to read a sector from a disk would result in a transfer from the disk to the host. Or, if an error occurred, theinitiator could send a "request sense" command to the target for details, the latter which would be returned during the data phase.

Message A message code is exchanged between initiator and target for the purposes of interface management.

Status A status code is sent to the initiator to report the success or failure of the operation.

The above list does not imply a specific sequence of events. Following a command to a target to send data to theinitiator and a receipt of a command complete status, the initiator could send another command or even send amessage.

Page 65: SCSI wiki

Parallel SCSI 62

External connectorsNo version of the standard has ever specified what kind of connector should be used. Specific types of connectors forparallel SCSI devices were developed by vendors over time. Connectors for serial SCSI devices have diversified intodifferent families for each type of serial SCSI protocol. See the SCSI connector article for a more detaileddescription.Although parallel SCSI-1 devices typically used bulky Blue Ribbon Centronics connectors, and SCSI-2 devicestypically used Mini-D connectors, it is not correct to refer to these as "SCSI-1" and "SCSI-2" connectors. One validrule is that connectors for wide SCSI buses have more pins and wires than those for narrow SCSI buses. ACentronics-50 or HD-50 connector is for narrow SCSI, while a Centronics-68 or HD-68 connector is for wide SCSI.On some early devices, wide parallel SCSI buses used two or four connectors and cables while narrow SCSI busesused only one.The first parallel SCSI connectors were the Centronics type. They then evolved through two main stages,High-Density (HD) and most recently SCA - 80 pin.With the HD connectors, a cable normally has male connectors while a SCSI device (e.g. host adapter, disk drive)has female. A female connector on a cable is meant to connect to another cable (for additional length or additionaldevice connections).

Termination

SCSI Terminator (Centronics connector)

Parallel SCSI buses must always be terminated at both ends to ensurereliable operation. Without termination, data transitions would reflectback from the ends of the bus causing pulse distortion and potentialdata loss.A positive DC termination voltage is provided by one or more deviceson the bus, typically the initiator(s). This positive voltage is calledTERMPOWER and is usually around +4.3 volts. TERMPOWER isnormally generated by a diode connection to +5.0 volts. This is called adiode-OR circuit, designed to prevent backflow of current to the supplying device. A device that suppliesTERMPOWER must be able to provide up to 900 mA (single-ended SCSI) or 600 mA (differential SCSI).

Some early disk drives included internal terminators, but most modern disk-drives do not provide termination whichis then deemed to be external.Termination can be passive or active. Passive termination means that each signal line is terminated by two resistors,220 Ω to TERMPOWER and 330 Ω to ground. Active termination means that there is a small voltage regulatorwhich provides a +3.3 V supply. Each signal line is then terminated by a 110 Ω resistor to the +3.3 V supply. Activetermination provides a better impedance match than passive termination because most flat ribbon cables have acharacteristic impedance of approximately 110 Ω. Forced perfect termination (FPT) is similar to activetermination, but with added diode clamp circuits which absorb any residual voltage overshoot or undershoot. Thereis a special case in SCSI systems that have mixed 8-bit and 16-bit devices where high-byte termination may berequired.In current practice most parallel SCSI buses are LVD and so require external, active termination. The usualtermination circuit consists of a +3.3 V linear regulator and commercially available SCSI resistor network devices(not individual resistors).

Page 66: SCSI wiki

Parallel SCSI 63

CompatibilityFor purposes of discussing compatibility, remember that SCSI devices include both host adapters and peripheralssuch as disk drives. When you ask whether you can cable a certain host adapter to a certain disk drive, you areasking whether you can attach those two SCSI devices to the same SCSI bus.Different SCSI transports, which are not compatible with each other, usually have unique connectors to avoidaccidental mis-plugging of incompatible devices. For example it is not possible to plug a parallel SCSI disk into anFC-AL backplane, nor to connect a cable between an SSA initiator and an FC-AL enclosure.SCSI devices in the same SCSI transport family are generally backward-compatible. Within the parallel SCSIfamily, for example, it is possible to connect an Ultra-3 SCSI hard disk to an Ultra-2 SCSI controller albeit withreduced speed and feature set.However there are some compatibility issues with parallel SCSI buses. Ultra-2, Ultra-160 and Ultra-320 devices maybe freely mixed on the parallel LVD bus with no compromise in performance, as the host adapter will negotiate theoperating speed and bus management requirements for each device. Single-ended and LVDS devices can be attachedto the same bus, but all devices will run at the slower single-ended speed. The SPI-5 standard (which describesUltra-640) deprecates single-ended devices, so future devices may not be electrically backward compatible.Both narrow and wide SCSI devices can be attached to the same parallel bus. All the narrow SCSI devices must beplaced at one end and all the wide SCSI devices at the other end. The high half of the bus needs to be terminated inbetween because the high half of the bus ends with the last wide SCSI device. You can get a cable designed toconnect the wide part of the bus to the narrow part which either provides a place to plug in a terminator for the highhalf or includes the terminator itself. This is sometimes referred to as a cable with high-9 termination. Specificcommands allow the devices to determine whether their partners are using the whole wide bus or just the lower halfand drive the bus accordingly.As an example of a mixed bus, consider a SCSI wide host adapter with an HD-68 male connector connected to aSCSI narrow disk drive with an HD-50 female connector. You might make this connection with a cable that has anHD-68 female connector on one end and an HD-50 male connector on the other. Inside the cable's HD-68 connector,there is termination for the high half of the bus and the cable contains wires for only the low half. The host adapterdetermines that the disk drive uses only the low half of the bus, so talks to it using only the lower half. The converseexample—a SCSI narrow host adapter and SCSI wide disk drive also works.Modern Single Connector Attachment (SCA) parallel SCSI devices may be connected to older controller/drivechains by using SCA adapters. Although these adapters often have auxiliary power connectors, caution isrecommended when connecting them, as it is possible to damage devices by connecting external power.Each parallel SCSI device (including the computer's host adapter) must be configured to have a unique SCSI ID onthe bus. Another requirement is that any parallel SCSI bus must be terminated at both ends with the correct type ofterminator. Both active and passive terminators are in common use, with the active type much preferred (andrequired on LVD buses). Improper termination is a common problem with parallel SCSI installations. In early SCSIbuses, one had to attach a physical terminator to each end, but modern SCSI devices often have terminators built in,and the user simply needs to enable termination for the devices at either end of the bus (typically by setting a DIPswitch or moving a jumper). Some modern SCSI host adapters allow the enabling or disabling of terminationthrough BIOS setup. Advanced SCSI devices automatically detect whether they are last on the bus and switchtermination on or off accordingly.

Page 67: SCSI wiki

Parallel SCSI 64

References[1] http:/ / www. scsita. org/[2] M3096GX/M3093GX/M3093DG Image scanner OEM Manual (http:/ / www. fel. fujitsu. com/ support/ scanner/ manuals/

M3096gx-93gx-93dg. ome. en. pdf)

External links• T10 Technical Committee - SCSI Storage Interfaces (http:/ / www. t10. org/ ) (SCSI standards)• Termination Tutorial (http:/ / web. archive. org/ web/ 20110610024317/ http:/ / www. scsita. org/ aboutscsi/

termTutorial. html) (WayBack link)

Persistent bindingHost-based zoning can include WWN or LUN masking, and is typically known as “persistent binding.”In storage networking, ”persistent binding” is an option of zoning.Host-based zoning is usually referred to as persistent binding or LUN,[1] and is perhaps the least implemented formof zoning. Because it requires the host configuration to be correct in order to avoid zoning conflicts, this form ofzoning creates a greater opportunity for administrative errors and conflicting access to targets. Moreover zoninginterfaces vary among different host operating systems and HBA's — increasing the possibility for administrativeerrors. If a host is not configured with the zoning software, it can access all devices in the fabric and create an evenhigher probability of data corruption. Host-based zoning is often used when clusters are implemented to control themapping of devices to specific[2] target IDs. However, it should never be the only form of zoning. Augmentinghost-based zoning with storage- and fabric-based zoning is the only acceptable method to reliably control deviceaccess and data security.Basically, A given LUN has it SCSI id assigned by its RAID device (typically a SAN ). But for some purposes it'suseful to have the SCSI id assigned by the host itself: that's persistent binding.

What is Persistent binding for ?Without persistent binding, after every reboot, the SCSI id of a LUN may change. For Example, under Linux, a LUNbound on /dev/sda could migrate to /dev/sdb after a reboot. The risks augments with multipathing. Based on that, it isobvious that many software may crash without persistent binding.from http:/ / www. storagesearch. com/ datalink-art1. html

Operating systems and upper-level applications (such as backup software) typically require a static orpredictable SCSI target ID for their storage reliability and persistent binding affords that happening.

Page 68: SCSI wiki

Persistent binding 65

Types of zoningA zone can include host and LUNS. The LUNS are exported by the DISK ARRAY, the hosts are the clients (servers,computers). Each host in a zone can access each LUNS in the same zone. That's zoning. The zone is usually set onthe central point of connection of the hosts and the DISK ARRAY: the FC switch.

LUN maskingfrom Fibre Channel zoning

Zoning is sometimes confused with LUN masking, because it serves the same goals. LUN masking, however,works on Fibre channel level 4 (i.e. on SCSI level), while zoning works on level 2. This allows zoning to beimplemented on switches, whereas LUN masking is performed on endpoint devices - host adapters or diskarray controllers.

Some fibre channel switches allow zoning at the LUN level, effectively implementing LUN masking at the switch.Here, we are talking about level 4.This form of zoning has to be augmented by another zoning : RAID ARRAY based or fabric-based(FC switch) toimprove security and avoid any errors. Otherwise two hosts may access the same data(LUNS) at the same time and itwill result in data corruption. Persistent binding is often used in a cluster environnement, to associate a LUN with apersistent SCSI id and device (example /dev/sda)

References[1][1] mapping[2][2] SCSI

External links• http:/ / www. storagesearch. com/ datalink-art1. html• http:/ / www. enterprisestorageforum. com/ sans/ features/ print. php/ 11188_1431341_2

Page 69: SCSI wiki

SAF-TE 66

SAF-TEIn computer storage, a SCSI Accessed Fault-Tolerant Enclosure is an industry standard to interface an enclosure toa (parallel) SCSI subystem to gain access to information or control concerning•• temperature•• fan status•• slot status (populated/empty)•• door status•• power supplies•• alarms• indicators (e.g. LEDs, LCDs)Practically, any given SAF-TE device will only support a subset of all possible sensors or controls.Many RAID controllers can utilize a SAF-TE 'activated' backplane by detecting a swapped drive (after a defect) andautomatically starting a rebuild. A passive subsystem usually requires a manual rescan and rebuild.A SAF-TE device is represented as a SCSI processor device that is polled every couple of seconds by e.g. the RAIDcontroller software. Due to the low overhead required, impact on bus performance is negligible. For SAS or FibreChannel systems, SAF-TE is replaced by the more standardized SCSI Enclosure Services.The most widely used version was defined in 'SAF-TE Interface Specification Intermediate Review R041497 April14, 1997' by nStor (now Xyratex) and Intel.

External links / References• www.safte.org [1]

• SAF-TE as part of Intel's [[IPMI [2]]]• SAF-TE Intermediate Review R041497 (www.intel.com) [3]

References[1] http:/ / www. safte. org[2] http:/ / www. intel. com/ design/ servers/ ipmi/ saf-te. htm[3] http:/ / www. intel. com/ design/ servers/ ipmi/ pdf/ SR041497. pdf

Page 70: SCSI wiki

SCSI / ATA Translation 67

SCSI / ATA TranslationSCSI / ATA Translation (SAT) is a standard defining how to communicate with ATA devices through a SCSIapplication layer. The standard attempts to be consistent with the SCSI Architectural Model, the SCSI PrimaryCommands, and the SCSI Block Commands standards.The standard allows for translation of common SCSI Block Commands such as:•• SCSI Read Commands•• SCSI Write CommandsThe standard also provides the ability to control exactly what ATA operations are executed on a target device bydefining two new SCSI operation codes:•• ATA PASS THROUGH (12)•• ATA PASS THROUGH (16)The standard also defines a new data structure returned in the sense data known as the ATA Return Descriptor whichcontains the ATA taskfile registers.

SCSI commandIn SCSI computer storage or control, a command is the basic unit of communication. The SCSI commandarchitecture was originally defined for parallel SCSI buses but has been carried forward with minimal change for usewith Fibre Channel, iSCSI and Serial Attached SCSI.In SCSI protocol, the initiator sends a SCSI command to the target which then responds. SCSI commands are sentin a command descriptor block (CDB), which consists of a one byte operation code (opcode) followed by five ormore bytes containing command-specific parameters. Upon receiving and processing the CDB the target will returna status code byte.The rest of this article contains a list of SCSI commands, sortable in opcode or description alphabetical order. In thepublished SCSI standards, commands are designated as "mandatory," "optional" or "vendor-unique." Only themandatory commands are required of all devices. There are links to detailed descriptions for the more common SCSIcommands. Some opcodes produce different, though usually comparable, effects in different device types; forexample, opcode 0x01 recalibrates a disk drive by seeking back to physical sector zero, but rewinds the medium ina tape drive.

List of SCSI commands

Code Command

00 TEST UNIT READY (mandatory)

01 RECALIBRATE or REWIND

03 REQUEST SENSE (mandatory except RBC)

04 FORMAT UNIT

05 READ BLOCK LIMITS

07 REASSIGN BLOCKS

07 INITIALIZE ELEMENT STATUS

08 READ (6)

Page 71: SCSI wiki

SCSI command 68

0A WRITE (6)

0B SEEK (6)

0F READ REVERSE (6)

10 WRITE FILEMARKS (6)

11 SPACE (6)

12 INQUIRY (mandatory)

13 VERIFY(6)

14 RECOVER BUFFERED DATA

15 MODE SELECT (6)

16 RESERVE (6)

17 RELEASE (6)

18 COPY

19 ERASE (6)

1A MODE SENSE (6)

1B START/STOP UNIT

1B LOAD UNLOAD

1C RECEIVE DIAGNOSTIC RESULTS

1D SEND DIAGNOSTIC

1E PREVENT/ALLOW MEDIUM REMOVAL

23 READ FORMAT CAPACITIES (MMC)

24 SET WINDOW

25 READ CAPACITY (10)

28 READ (10)

29 READ GENERATION

2A WRITE (10)

2B SEEK (10)

2C ERASE (10)

2D READ UPDATED BLOCK

2E WRITE AND VERIFY (10)

2F VERIFY (10)

30 SEARCH DATA HIGH (10)

31 SEARCH DATA EQUAL (10)

32 SEARCH DATA LOW (10)

33 SET LIMITS (10)

34 PRE-FETCH (10)

35 SYNCHRONIZE CACHE (10)

36 LOCK/UNLOCK CACHE (10)

37 READ DEFECT DATA (10)

37 INITIALIZE ELEMENT STATUS WITH RANGE

Page 72: SCSI wiki

SCSI command 69

38 MEDIUM SCAN

39 COMPARE

3A COPY AND VERIFY

3B WRITE BUFFER

3C READ BUFFER

3D UPDATE BLOCK

3E READ LONG

3F WRITE LONG

40 CHANGE DEFINITION

41 WRITE SAME (10)

44 REPORT DENSITY SUPPORT

45 PLAY AUDIO (10)

46 GET CONFIGURATION

47 PLAY AUDIO MSF

48 AUDIO TRACK INDEX (not mentioned in T10 overview)

49 AUDIO TRACK RELATIVE 10 (not mentioned in T10 overview)

4A GET EVENT STATUS NOTIFICATION

4B PAUSE / RESUME

4C LOG SELECT

4D LOG SENSE

50 XDWRITE (10)

51 XPWRITE (10) /*READ DISC INFORMATION CDB (in mmc5r02c 6.22.2)*/

52 XDREAD (10)

53 XDWRITEREAD (10)

54 SEND OPC INFORMATION

55 MODE SELECT (10)

56 RESERVE (10)

57 RELEASE (10)

58 REPAIR TRACK

5A MODE SENSE (10)

5B CLOSE TRACK / SESSION

5C READ BUFFER CAPACITY

5D SEND CUE SHEET

5E PERSISTENT RESERVE IN

5F PERSISTENT RESERVE OUT

7E EXTENDED CDB

7F VARIABLE LENGTH CDB

80 XDWRITE EXTENDED (16)

80 WRITE FILEMARKS (16)

Page 73: SCSI wiki

SCSI command 70

81 REBUILD (16)

81 READ REVERSE (16)

82 REGENERATE (16)

83 EXTENDED COPY

84 RECEIVE COPY RESULTS

85 ATA COMMAND PASS THROUGH (16)

86 ACCESS CONTROL IN

87 ACCESS CONTROL OUT

88 READ (16)

89 COMPARE AND WRITE

8A WRITE (16)

8B ORWRITE

8C READ ATTRIBUTE

8D WRITE ATTRIBUTE

8E WRITE AND VERIFY (16)

8F VERIFY (16)

90 PRE-FETCH (16)

91 SYNCHRONIZE CACHE (16)

91 SPACE (16)

92 LOCK UNLOCK CACHE (16)

93 WRITE SAME (16)

9E SERVICE ACTION IN (16)

9F SERVICE ACTION OUT (16)

A0 REPORT LUNS

A1 ATA COMMAND PASS THROUGH (12)

A2 SECURITY PROTOCOL IN

A2 SEND EVENT (not mentioned in T10 overview)

A3 MAINTENANCE IN

A4 MAINTENANCE OUT (REPORT_KEY)

A5 MOVE MEDIUM

A5 PLAY AUDIO 12 (not mentioned in T10 overview)

A6 EXCHANGE MEDIUM

A7 MOVE MEDIUM ATTACHED

A8 READ (12)

A9 SERVICE ACTION OUT (12)

A9 AUDIO TRACK RELATIVE 12 (not mentioned in T10 overview)

AA WRITE (12)

AB SERVICE ACTION IN (12)

AC ERASE (12)

Page 74: SCSI wiki

SCSI command 71

AD READ DVD STRUCTURE

AE WRITE AND VERIFY (12)

AF VERIFY (12)

B0 SEARCH DATA HIGH (12)

B1 SEARCH DATA EQUAL (12)

B2 SEARCH DATA LOW (12)

B3 SET LIMITS (12)

B4 READ ELEMENT STATUS ATTACHED

B5 SECURITY PROTOCOL OUT

B6 SEND VOLUME TAG

B7 READ DEFECT DATA (12)

B8 READ ELEMENT STATUS

B9 READ CD MSF

BA REDUNDANCY GROUP (IN)

BB REDUNDANCY GROUP (OUT)

BC SPARE (IN)

BC PLAY CD (not mentioned in T10 overview)

BD SPARE (OUT)

BE VOLUME SET (IN)

BF VOLUME SET (OUT)

External links• Summary of SCSI command operation codes [1]

• "SCSI Commands References Manual" [2]. Seagate. Retrieved 2012-05-02.

References[1] http:/ / www. t10. org/ lists/ 2op. htm[2] http:/ / www. seagate. com/ staticfiles/ support/ disc/ manuals/ Interface%20manuals/ 100293068c. pdf

Page 75: SCSI wiki

SCSI diagnostic pages 72

SCSI diagnostic pagesSCSI target devices provide a number of SCSI diagnostic pages. These can be used by a Send Diagnostic commandto tell a target device to run a specialised self-test. The Receive Diagnostic Results command is used where theresults from the self-test operation are non-trivial.Most of the common SCSI devices such as disk-drives support only one or two diagnostic pages. SES devices cansupport many diagnostic pages.

List of SCSI diagnostic pagesSCSI uses a one byte addressing scheme for diagnostic pages, allowing for a total 256 possible pages. There is astandard map of diagnostic page addresses shown below. Note that any given SCSI device type will only support asubset of these diagnostic pages.Some diagnostic pages have two different meanings depending on whether they are being used for control purposes(Send Diagnostic command) or to interrogate status (Receive Diagnostic Results command). Those cases are shownas double entries in the table below using this convention: "control definition / status definition".•• 00h - list of supported diagnostic pages•• 01h - SES - configuration•• 02h - SES - enclosure control / enclosure status•• 03h - SES - help text•• 04h - SES - string out / string in•• 05h - SES - threshold out / SES threshold in•• 06h - SES - obsolete•• 07h - SES - element descriptor•• 08h - SES - short enclosure status•• 09h - SES - enclosure busy•• 0Ah - SES - additional element•• 0Bh - SES - subenclosure help text•• 0Ch - SES - subenclosure string out / SES subenclosure string in•• 0Dh - SES - supported SES diagnostic pages•• 0Eh - SES - download microcode control / SES download microcode status•• 0Fh - SES - subenclosure nickname control / SES subenclosure nickname status•• 10h-1Fh - SES - vendor-specific•• 20h-2Fh - SES - reserved•• 30h-3Eh - reserved•• 3Fh - used by the SCSI transport layer•• 40h - disk/optical - translate address•• 41h-7Fh - reserved•• 80h-FFh - vendor-specific

Page 76: SCSI wiki

SCSI element codes 73

SCSI element codesSCSI Enclosure Services (SES) devices contains a number of elements, each of which is defined by a one byte SCSIelement code. There are many different element codes defined to cover various devices as shown in the list below.

List of SES element codes•• 00h - unspecified•• 01h - device - disk-drive or other SCSI device•• 02h - power-supply•• 03h - cooling•• 04h - temperature-sensor•• 05h - door lock•• 06h - audible alarm•• 07h - enclosure services controller electronics•• 08h - SCC controller electronics•• 09h - nonvolatile cache• 0Ah - invalid operation reason - used to determine why an ESI device has failed to complete a command•• 0Bh - UPS•• 0Ch - display•• 0Dh - keypad•• 0Eh - enclosure•• 0Fh - SCSI port/transceiver•• 10h - language•• 11h - communication port•• 12h - voltage sensor•• 13h - current sensor•• 14h - SCSI target port•• 15h - SCSI initiator port•• 16h - simple subenclosure•• 17h - array device• 18h - SAS expander•• 19h - SAS connector•• 1Ah-7Fh - reserved•• 80h-FFh - vendor-specific

How SES elements are usedThe SCSI initiator communicates with an SES device using two SCSI commands, Send Diagnostic and ReceiveDiagnostic Results. The most common SES elements are power-supply, cooling-fan, temperature-sensor and UPS.The SCSI command protocols assume that there may be more than one of each device type so they must each begiven an 8-bit address. When the SES controller is interrogated for the status of an SES element, the responseincludes a 4-bit status code. The most common element status codes are: 1h=OK, 2h=critical, 3h=warning, 5h=notinstalled.See the SES article for a more detailed description.

Page 77: SCSI wiki

SCSI element status codes 74

SCSI element status codesWhen a SCSI SES controller is interrogated for the status of a SES element, the response includes a 4-bit SCSIelement status code. The list of valid codes is:• 0h - unsupported - status detection is not implemented for this element• 1h - OK - element is installed and no error conditions are known• 2h - critical - critical condition is detected• 3h - noncritical (warning) - noncritical condition is detected• 4h - unrecoverable - unrecoverable condition is detected• 5h - not installed - this element is not installed in the enclosure• 6h - unknown - sensor has failed or element status is not available• 7h - not available - element installed, no known errors, but the element has not been set into operation•• 8h-Fh - reserved

SCSI Enclosure ServicesMost recent SCSI enclosure products support a protocol called SCSI Enclosure Services (SES). The initiator cancommunicate with the enclosure using a specialised set of SCSI commands to access power, cooling, and othernon-data characteristics.

SES devicesThere are two major classes of SES devices:• Attached enclosure services devices allow SES communication through a logical unit within one SCSI disk

drive located in the enclosure. The disk-drive then communicates with the enclosure by some other method, theonly commonly used one being Enclosure Services Interface (ESI). In fault-tolerant enclosures, more than onedisk-drive slot has ESI enabled to allow SES communications to continue even after the failure of any of thedisk-drives. The definition of the ESI protocols is owned by an ANSI committee and defined in theirspecifications ANSI SFF-8067 and SFF-8045.

• Standalone enclosure services enclosures have a separate SES processor which occupies its own address on theSCSI bus. The protocol for this uses direct SCSI commands. An enclosure can be fault-tolerant by containing twoSES processors.

SES commandsThe SCSI initiator communicates with an SES device using two SCSI commands: Send Diagnostic and ReceiveDiagnostic Results. Some universal SCSI commands such as Inquiry are also used with standalone enclosureservices to perform basic functions such as initial discovery of the devices.

SES elementsThe SCSI Send Diagnostic and Receive Diagnostic Results commands can be addressed to a specific SES elementin the enclosure. There are many different element codes defined to cover a wide range of devices. The mostcommon SES elements are power supply, cooling fan, temperature sensor, and UPS. The SCSI command protocolsassume that there may be more than one of each device type so they must be each given an 8-bit address.

Page 78: SCSI wiki

SCSI Enclosure Services 75

When a SES controller is interrogated for the status of a SES element, the response includes a 4-bit element statuscode. The most common element status codes are: 1h=OK, 2h=critical, 3h=warning, 5h=not installed.ISA

SES element thresholdsSome SES elements, such as voltage sensors, current sensors, and temperature sensors, have a thresholding function.This allows an enclosure to detect and report unacceptable environmental conditions. The SCSI standard allows fortwo different threshold levels, noncritical (warning) and critical. Also, each threshold has a minimum and maximumvalue. So for example the threshold values for the 12 volt power-supply could be set as follows:•• Minimum critical - 10.8 volts•• Minimum noncritical - 11.4 volts•• Maximum noncritical - 12.6 volts•• Maximum critical - 13.2 voltsThreshold values are set by a Send Diagnostic command to the Threshold Out diagnostic page (05h). Thresholdvalues can be interrogated by a Receive Diagnostic Results command to the Threshold In diagnostic page (05h) withthe PCV bit set to one.

SubenclosuresA larger SCSI storage enclosure may contain multiple subenclosures. The subenclosure with address 00h isdesignated the primary subenclosure and can return information about the other subenclosures.

SCSI attached enclosure servicesSCSI attached enclosure services is a computer protocol used mainly with disk storage enclosures. It allows a hostcomputer to communicate with the enclosure to access its power, cooling, and other non-data characteristics.The host computer communicates with the disks in the enclosure via a SCSI interface which may be Parallel SCSI,FC-AL, SAS, or SSA. One of the disk devices located in the enclosure is set up to allow SCSI Enclosure Services(SES) communication through a logical unit. The disk-drive then communicates with the SES processor in theenclosure, usually via Enclosure Services Interface (ESI), or a protocol called DSI for SSA enclosures. The data sentover the ESI or DSI interface is simply the contents of a SCSI command and the response to that command.

Implemented commandsOnly two SCSI commands are implemented by attached enclosure services devices:

SCSI command Operation code Comment

RECEIVE DIAGNOSTIC RESULTS 1Ch Mandatory

SEND DIAGNOSTIC 1Dh Mandatory

Page 79: SCSI wiki

SCSI Format Unit Command 76

SCSI Format Unit CommandThe SCSI Format Unit command is used to destructively format a SCSI target device—usually a disk—andprepare the medium to store data. Defect management options may be specified in the CDB. Depending on thedevice characteristics and capacity, formatting may be a lengthy process. In the Seagate SCSI manual, it is stated thata disk drive will disconnect during formatting, thus implying a time-consuming operation.[1]

The CDB structure is:

SCSI Format Unit Command

Bit 0 1 2 3 4 5 6 7

+0 Operation Code = 0x04

+8 LUN FmtData CmpLst Defect List Format

+16 Vendor-specific

+24Interleave

+32

+40 Control

The special parameter fields in the CDB have the following meaning:• FmtData - Format Data - if this is one then the command is followed by two or three extra parameters:

•• defect list header -•• initialization pattern descriptor -•• defect descriptors (optional) -

• CmpLst - Complete List:•• 0 - the initiator will send a partial list of defects, to be added to the existing list•• 1 - the initiator will send a complete list of defects, overwriting the existing list

• Defect list format - if the FmtData bit is one then this describes the defect options:•• 000 - block format - 32-bit LBAs•• 100 - bytes from index format - cylinder + head + byte-offset•• 101 - physical sector format - cylinder + head + sector•• 110 - vendor-specific

• Interleave -•• 0000h - the target can use its default interleave•• 0001h - consecutive LBAs must be contiguous•• all other values are vendor-specific

In some cases, issuing this command to a tape drive will result in the tape being erased.

References[1] * "SCSI Commands References Manual" (http:/ / www. seagate. com/ staticfiles/ support/ disc/ manuals/ Interface manuals/ 100293068c.

pdf). Seagate. . Retrieved 2012-05-02.

Page 80: SCSI wiki

SCSI high byte termination 77

SCSI high byte terminationIn SCSI computer systems, there is a special case with mixed 8-bit and 16-bit devices where high-byte terminationmay be required.Most parallel SCSI buses are terminated at each end. However where the bus width is not constant, it is sometimesnecessary to provide special termination for the high byte and the associated parity bit. This high-byte terminationcan use standard SCSI termination techniques, such as a passive terminator, active terminator, or a forced-perfectterminator. This diagram shows a typical SCSI high-byte termination scheme:

There is a simplification to this which is sometimes used in the case where there is only one 16-bit (wide) deviceconnected to one or more 8-bit (narrow) devices. Then it is possible to wire all the eight spare data bits and the ninthparity bit together and to terminate them with a single resistor circuit to TERMPOWER. So in the case of adifferential SCSI bus, it is possible to terminate all 18 spare signal wires with just one resistor. This method is notconsidered good practice, but has been successfully used in some SCSI products.

Page 81: SCSI wiki

SCSI host adapter 78

SCSI host adapter

Host Bus Adapter (SCSI)

A SCSI host adapter is a device used to connect one or more otherSCSI devices to a computer bus. It is commonly called a SCSIcontroller, which is not strictly correct as any componentunderstanding the SCSI protocol can be called a controller. In thissense all SCSI devices have a SCSI controller built into them, whilehost adapters (unlike, for example, a hard disk or CD-ROM) bearresponsibility for transferring data between the SCSI bus and thecomputer's input/output bus.

Most modern SCSI host adapters are PCI cards, either 32-bit or 64-bit.Older ones were based on the 16-bit ISA bus or the transitional 32-bitVESA and EISA buses. It is not uncommon for a SCSI host adapter to be built into a PC motherboard as an integralpart, however this typically makes the board quite expensive and it is more usual to retain the SCSI host adapter as aseparate component which can be easily replaced or transferred to another machine.

TypesSCSI host adapters traditionally fall into two broad classes:• Simple, relatively low-performance cards that provide an inexpensive way to connect SCSI devices that do not

demand a great deal of bandwidth: notably CD-ROM drives and SCSI scanners. The cost varies but is typically inthe order of $US40 or so. These were very common up until about 2000, but are now fairly rare: the demise of theISA slot added a little to the cost; the great improvement in IDE technology (particularly in the case of CD-ROMdrives and CD recorders) removed one major use, and the advent of USB made the expense of a SCSI interfaceunnecessary for most scanners.

• High-end cards designed for maximum performance, usually for very high-speed hard drives, and especially forsituations that require several high-speed drives (notably servers). These are almost always quite expensive,around $US200 or more. The advent of serial ATA is expected to reduce the usage of high-end SCSI hostadapters, but there is no current expectation that they will disappear in the near future.

ManufacturersMany companies have manufactured SCSI host adapters at one time or another, but the market structure has beenremarkably stable over the years. Two leading manufacturers are Adaptec and LSI Logic.

Page 82: SCSI wiki

SCSI initiator and target 79

SCSI initiator and targetIn computer data storage, a SCSI initiator is the endpoint that initiates a SCSI session, that is, sends a SCSIcommand. The initiator usually does not provide any Logical Unit Numbers (LUNs).On the other hand, a SCSI target is the endpoint that does not initiate sessions, but instead waits for initiators'commands and provides required input/output data transfers. The target usually provides to the initiators one or moreLUNs, because otherwise no read or write command would be possible.

Detailed informationTypically, a computer is an initiator and a data storage device is a target. As in a client–server architecture, aninitiator is analogous to the client, and a target is analogous to the server. Each SCSI address (each identifier on aSCSI bus) displays behavior of initiator, target, or (rarely) both at the same time. There is nothing in the SCSIprotocol that prevents an initiator from acting as a target or vice versa.SCSI initiators are sometimes wrongly called controllers. See the SCSI host adapter article for a more detaileddescription of initiator's operation.

Other protocolsInitiator and target terms are applicable not only to traditional parallel SCSI, but also to Fibre Channel Protocol(FCP), iSCSI (see iSCSI target), HyperSCSI, (in some sense) SATA, InfiniBand, DSSI and many other storagenetworking protocols.

Address versus portIn most of these protocols, an address (whether it is initiator or target) is roughly equivalent to physical device's port.Situations where a single physical port hosts multiple addresses, or where a single address is accessible from onedevice's multiple ports are not very common, as of 2008. Even when using multipath I/O to achieve fault tolerance,the device driver switches between different targets or initiators statically bound on physical ports, instead of sharinga static address between physical ports.

Page 83: SCSI wiki

SCSI Inquiry Command 80

SCSI Inquiry CommandThe SCSI Inquiry command is used to obtain basic information from a target device.[1] The CDB structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 12h

1 LUN Reserved EVPD

2 Page code

3 Allocation length (MSB)

4 Allocation length (LSB)

5 Control

If the EVPD parameter bit is zero and the Page Code parameter byte is zero then the target will return the standardinquiry data, which is structured as follows:

bit→↓byte

7 6 5 4 3 2 1 0

0 Peripheral qualifier Peripheral device type

1 RMB Device-type modifier

2 ISO version ECMA version ANSI-approved version

3 AEC TrmIOP Reserved Response data format

4 Additional length (n-4)

5 Reserved

6 Reserved

7 RelAdr WBus32 WBus16 Sync Linked Reserved CmdQue SftRe

8–15 Vendor identification (ASCII)

16–31 Product identification (ASCII)

32–35 Product revision level

36–55 Vendor-specific

56–95 Reserved

96 Vendor-specific parameters (variable number of bytes)

The special fields in the standard inquiry data have the following meaning:• Peripheral Device Type - see separate article on SCSI Peripheral Device Types• RMB - removable medium• AENC - 1 = supports Asynchronous Event Notifications - (processor devices only)• TrmIOP - 1 = supports Terminate I/O Process messages• Response data format - 000=SCSI compliant, other values = legacy devices• RelAdr - 1= this LUN supports Relative Addressing Mode (linked commands only)• WBus32+WBus16 - support for wide data buses:

•• 00 - 8-bit only•• 01 - 8 or 16-bit•• 11 - 8, 16 or 32 bit

Page 84: SCSI wiki

SCSI Inquiry Command 81

• Sync - 1 = supports synchronous transfers• Linked - 1 = this LUN supports linked commands• CmdQue - 1 = supports Tagged Command Queuing• SftRe - 1 = performs soft resetsIf the EVPD parameter bit is one then the target will return Vital Product Data (VPD). This can be from one of anumber of different pages, depending on the value of the Page Code parameter:•• 00h - Supported vital product data•• 01h-7Fh - ASCII information•• 80h - Unit serial number•• 81h - Implemented operating definitions (Obsolete)•• 82h - ASCII implemented operating definition (Obsolete)•• 83h - Device Identification•• 84h - Software Interface Identification•• 85h - Management Network Addresses•• 86h - Extended INQUIRY Data•• 87h - Mode Page Policy•• 88h - SCSI Ports•• 89h-AFh - Reserved•• B0h-BFh - Device type specific•• C0h-FFh - Vendor-specific

References[1][1] Seagate Disc Drive SCSI-2/SCSI-3 Interface Manual, publication Number 77738479, Rev H

Page 85: SCSI wiki

SCSI log pages 82

SCSI log pagesSCSI target devices provide a number of SCSI log pages. These can be interrogated by a Log Sense command andin some cases can be set by a Log Select command. The Log Sense and Log Select commands include a 6-bitaddress field, allowing for 64 possible log pages. There is a standard map of log page addresses below. Note that anygiven SCSI device type will only support a subset of these log pages.•• 00h - supported log pages•• 01h - buffer over-run/under-run•• 02h - error counter (write)•• 03h - error counter (read)•• 04h - error counter (read reverse)•• 05h - error counter (verify)•• 06h - non-medium error•• 07h - last n error events•• 08h-2Fh - reserved•• 30h-3Eh - vendor-specific•• 3Fh - reserved

SCSI Log Select CommandThe SCSI Log Select command "provides a means for an application client to manage statistical informationmaintained by the SCSI target device about the target device or its logical units". The format of the CDB for the LogSelect command is[1]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 4Ch

1 Reserved PCR SP

2 PC Page Code

3 Subpage Code

4 Reserved

5

6

7 Parameter list length

8

9 Control

The special parameter fields in the CDB have the following meaning:• PCR - Parameter Code Reset - setting this bit instructs the target to reset all parameters to their default values• SP - Save Parameters - setting this bit instructs the target to save all saveable log parameters to a non-volatile

memory or media area• PC - Page Control - specifies which data counter parameter values shall be processed:

•• 00 - Threshold Values•• 01 - Cumulative Values

Page 86: SCSI wiki

SCSI Log Select Command 83

•• 10 - Default Threshold Values•• 11 - Default Cumulative Values

• Parameter List Length - in bytes

References[1] "SCSI Primary Commands - 4 (SPC-4)" (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r30. pdf) (PDF). . Retrieved 2011-03-31.

External links• "SCSI Commands References Manual" (http:/ / www. seagate. com/ staticfiles/ support/ disc/ manuals/ Interface

manuals/ 100293068c. pdf). Seagate. p. 103. Retrieved 2012-05-02.

SCSI Log Sense CommandThe SCSI Log Sense command is used to obtain current data from log pages in a SCSI target device. The CDBstructure for the Log Sense command is[1]:

SCSI Log Sense

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation Code = 0x4D

1 LUN Reserved Obsolete SP

2 PC PAGE CODE

3 SUBPAGE CODE

4 Reserved

5PARAMETER POINTER

6

7ALLOCATION LENGTH

8

9 Control

The special parameter fields in the CDB have the following meaning:• SP - Save Parameters - if this is one then the target should save all saveable log parameters to a non-volatile

memory or media area.• PC - Page Control - this indicates which type of values should be returned:

•• 00 - Current Threshold Values•• 01 - Current Cumulative Values•• 10 - Default Threshold Values•• 11 - Default Cumulative Values

• Parameter Pointer indicates the first parameter code to be returned.• Allocation Length in bytesIf the Parameter Pointer is zero and the Allocation Length is large enough then all parameters are returned.

Page 87: SCSI wiki

SCSI Log Sense Command 84

References[1] "SCSI Primary Commands - 4 (SPC-4)" (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r30. pdf) (PDF). . Retrieved 2011-03-31.

SCSI mode pagesSCSI target devices provide a number of SCSI mode pages. These can be interrogated by a Mode Sense commandand set by a Mode Select command. The Mode Sense and Mode Select commands include a 6-bit address field,allowing for 64 possible mode pages. A description of many of these page codes is included below. Note that anygiven SCSI device type will only support a subset of the possible page codes, and some page codes may havedifferent meanings for different devices.

List of SCSI mode page codes[1]

Code Description

00h Vendor-specific

01h Read-write error recovery parameters

02h Disconnect-reconnect - allows the initiator to tune SCSI bus performance

03h Format parameters (direct-access devices)

03h Measurement units (scanner devices)

04h Rigid disk geometry parameters

05h Flexible disk parameters

06h Optical memory parameters

07h Verify error recovery parameters

08h Caching

09h Peripheral device - transfers vendor-specific data between an initiator and a peripheral interface below the target (obsolete)

0Ah Control mode - tagged queuing, extended contingent allegiance, asynchronous event notification, and error logging

0Bh Medium types supported

0Ch Notch and partition parameters

0Dh CDROM parameters

0Eh CDROM audio control (playback) parameters

0Fh Reserved

10h Device configuration

11h Medium partitions (1)

12h Medium partitions (2)

13h Medium partitions (3)

14h Medium partitions (4)

15h Extended

16h Extended device-type specific

17h Reserved

18h Protocol-specific LUN

Page 88: SCSI wiki

SCSI mode pages 85

19h Protocol-specific Port

1Ah Power conditions page

1Bh Reserved

1Ch Informational exceptions control

1Dh medium-changer element address assignment

1Eh medium-changer transport geometry parameters

1Fh medium-changer device capabilities

20h-3Eh Vendor-specific

3Fh return all mode pages (valid only for a Mode Sense command)

References[1] "SCSI Primary Commands - 4 (SPC-4)" (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r17. pdf) (PDF). . Retrieved 2006-03-09.

SCSI Mode Select CommandThe SCSI Mode Select command is used to modify device information contained in mode pages in a SCSI targetdevice. There are two different versions of the command, a 6 byte version and a 10 byte version.The CDB structure for the Mode Select(6) command is[1]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 15h

1 LUN PF Reserved SP

2 Reserved

3 Reserved

4 Parameter list length

5 Control

The CDB structure for the Mode Select(10) command is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 55h

1 LUN PF Reserved SP

2 Reserved

3 Reserved

4 Reserved

5 Reserved

6 Reserved

7–8 Parameter list length

9 Control

Page 89: SCSI wiki

SCSI Mode Select Command 86

The special control fields in the CDB have the following meaning:• PF - Page Format:

•• 0 - SCSI-1 compliant (vendor-specific)•• 1 - SCSI-2 compliant

• SP - Save Pages - if this bit is one then the target will save any saveable updates to non-volatile memory or mediaarea.

References[1] "SCSI Primary Commands - 4 (SPC-4)" (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r30. pdf) (PDF). . Retrieved 2011-03-31.

External links• "SCSI Commands References Manual" (http:/ / www. seagate. com/ staticfiles/ support/ disc/ manuals/ Interface

manuals/ 100293068c. pdf). Seagate. p. 110. Retrieved 2012-05-02.

SCSI Mode Sense CommandThe SCSI Mode Sense command is used to obtain current device information from mode pages in a SCSI targetdevice. There are two different versions of the command, a 6 byte version and a 10 byte version.[1]

The CDB structure for the Mode Sense(6) command is:[2]

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 1Ah

1 LUN Reserved DBD Reserved

2 PC Page code

3 Subpage code [3]

4 Allocation length

5 Control

The CDB structure for the Mode Sense(10) command is:[4]

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 5Ah

1 Reserved LLBAA DBD Reserved

2 PC Page code

3 Reserved

4 Reserved

5 Reserved

6 Reserved

7–8 Allocation length

9 Control

Page 90: SCSI wiki

SCSI Mode Sense Command 87

The special control fields in the CDB have the following meaning:[5]

• LLBAA - Long LBA Accepted - if "1" then the target is allowed to return parameter data with the LONGLBA bitset to "1"

• DBD - Disable Block Descriptors - if "1" then the target must not return any block descriptors• PC - Page control -

•• 00 - return current values•• 01 - return changeable values•• 10 - return default values•• 11 - return saved values

• Page Code - see the separate Wikipedia page for a list of SCSI mode pages.

Notes[1][1] SCSI Command Reference, pp.54.[2][2] SCSI Command Reference, pp.97-100.[3][3] SCSI Command Reference, pp.97.[4][4] SCSI Command Reference, pp.101.[5][5] SCSI Command Reference, pp.97.

References• SCSI Command Reference Manual (http:/ / www. seagate. com/ staticfiles/ support/ disc/ manuals/ Interface

manuals/ 100293068c. pdf), Seagate Corp, April 2010.

Page 91: SCSI wiki

SCSI Pass Through Interface 88

SCSI Pass Through Interface

SCSI Pass Through InterfaceA component of Microsoft Windows

Details

Other names SPTI; SPT

Type Application programming interface

Included with Windows NT family of operating systems

Replaces Advanced SCSI Programming Interface (ASPI)

SCSI Pass Through Interface (SPTI) is an application programming interface (API) accessing a SCSI device. It isdeveloped by Microsoft Corporation and is part of the Windows NT family of operating systems.[1]

OverviewThe storage port drivers provide an interface for Win32 applications to send SCSI Command Descriptor Block(CDB) messages to SCSI devices. The interfaces are IOCTL_SCSI_PASS_THROUGH andIOCTL_SCSI_PASS_THROUGH_DIRECT. Applications can build a pass-through request and send it to the deviceby using this IOCTL.SPTI is accessible to Windows software using the DeviceIoControl Windows API.[2]

ImgBurn offers SPTI as a method for accessing optical disc drives.[3]

Other SCSI interfaces• Advanced SCSI Programming Interface (ASPI) by Adaptec, Nero AG and Pinnacle Systems[4]

• ASAPI by VOB Computersysteme GmbH and Pinnacle Systems• ElbyCDIO by Elaborate Bytes• Patin-Couffin by VSO Software• SCSI Pass-Through Direct (SPTD) by Duplex Secure, Ltd.

References[1] "INFO: SCSI Pass Through Functionality and Limitations (Revision: 2.2)" (http:/ / support. microsoft. com/ kb/ 251369). Microsoft Support.

Microsoft Corporation. 12 February 2007. . Retrieved 30 May 2011.[2] "SCSI Pass Through Interface" (http:/ / msdn. microsoft. com/ library/ ff565348(v=VS. 85). aspx). Microsoft Developer Network. Microsoft

Corporation. 3 May 2011. . Retrieved 30 May 2011.[3] "ImgBurn Support Forum" (http:/ / forum. imgburn. com/ lofiversion/ index. php/ t6659. html). . Retrieved 8 August 2009.[4] "ASPI is not supported by Microsoft for all versions of Windows (Revision: 3.2)" (http:/ / support. microsoft. com/ kb/ 182542). Microsoft

Support. Microsoft Corporation. 30 June 2005. . Retrieved 30 May 2011.

Page 92: SCSI wiki

SCSI Pass Through Interface 89

Further reading1. "SCSI Port I/O Control Codes" (http:/ / msdn. microsoft. com/ library/ ff565367. aspx). Microsoft Developer

Network. Microsoft Corporation. 3 May 2011. Retrieved 30 May 2011.2. "SCSI Interface for Multimedia and Block Devices" (http:/ / scsi. codeplex. com/ ). CodePlex. Microsoft

Corporation. Retrieved 20 May 2011.

Page 93: SCSI wiki

SCSI Pass-Through Direct 90

SCSI Pass-Through Direct

SCSI Pass Through Direct (SPTD)

Developer(s) Duplex Secure, Ltd.

Stable release 1.81 / April 11, 2012

Operating system Windows 2000; Windows XP; Windows Vista; Windows 7

Platform IA-32 and x64

Size 1 MB

Type Device driver; Application programming interface

License ProprietaryDevice driver: FreewareAPI: Commercial software

Website www.duplexsecure.com/en/home [1]

SCSI Pass Through Direct (SPTD) is a proprietary device driver and application programming interface (API)developed by Duplex Secure Ltd. that provides a new method of access to SCSI storage devices. The SPTD API isnot open to the public.

UsesSPTD is used by Daemon Tools and Alcohol 120%. It is also utilized in PowerArchiver Pro 2010 (v11.60+);however, a configurable option is available to disable it.[2] It is known to be incompatible with kernel-modedebugging including WinDbg and Microsoft's other command line debuggers as well as SoftICE. Further, certainversions of the freeware optical media burning software ImgBurn will issue a warning, "SPTD can have adetrimental effect on drive performance", if the application detects that SPTD is active or installed.ConeXware, Inc. (the maker of PowerArchiver) claims that in their internal testing, SPTD improved optical driveperformance by up to 20 percent in comparison to the "old school" SCSI Pass Through Interface.[2]

References[1] http:/ / www. duplexsecure. com/ en/ home[2] "PA 2010 11.60 Preview #3 – improved burner experience…" (http:/ / www. powerarchiver. com/ blog/ 2009/ 09/ 10/

pa-2010-11-60-preview-3-improved-burner-experience/ ). PowerArchiver Blog. ConeXware, Inc.. 10 Sep 2009. . Retrieved 30 May 2011.

Further reading1. "SCSI Port I/O Control Codes" (http:/ / msdn. microsoft. com/ library/ ff565367. aspx). Microsoft Developer

Network. Microsoft Corporation. 3 May 2011. Retrieved 30 May 2011.2. "SCSI Pass Through Interface" (http:/ / msdn. microsoft. com/ library/ ff565348(v=VS. 85). aspx). Microsoft

Developer Network. Microsoft Corporation. 3 May 2011. Retrieved 30 May 2011.

Page 94: SCSI wiki

SCSI Peripheral Device Type 91

SCSI Peripheral Device TypeA SCSI Peripheral Device Type is a way of describing what capabilities are provided by a SCSI device. It is afive-bit field in the first byte returned in response to an Inquiry Command.Defined values are:

•• 00h - direct-access device (e.g., magnetic disk)•• 01h - sequential-access device (e.g., magnetic tape)•• 02h - printer device•• 03h - processor device•• 04h - write-once device•• 05h - CD/DVD-ROM device•• 06h - scanner device•• 07h - optical memory device (e.g., some optical disks)•• 08h - medium Changer (e.g. jukeboxes)•• 09h - communications device•• 0Ah-0Bh - defined by ASC IT8 (Graphic arts pre-press devices)•• 0Ch - Storage array controller device (e.g., RAID)•• 0Dh - Enclosure services device•• 0Eh - Simplified direct-access device (e.g., magnetic disk)•• 0Fh - Optical card reader/writer device•• 10h - Reserved for bridging expanders•• 11h - Object-based Storage Device•• 12h - Automation/Drive Interface•• 13h-1Dh - reserved•• 1Eh - Well known logical unit•• 1Fh - unknown or no device type

External links• Draft of SCSI Primary Commands - 4 (SPC-4) [1]

References[1] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r33. pdf

Page 95: SCSI wiki

SCSI RDMA Protocol 92

SCSI RDMA ProtocolIn computing the SCSI RDMA Protocol (SRP)[1] is a protocol that allows one computer to access SCSI devicesattached to another computer via remote direct memory access (RDMA).[2][3] The SRP protocol is also known as theSCSI Remote Protocol. The use of RDMA makes higher throughput and lower latency possible than what is possiblethrough e.g. the TCP/IP communication protocol. RDMA is only possible with network adapters that support RDMAin hardware. Examples of such network adapters are InfiniBand HCAs and 10 GbE network adapters with iWARPsupport. While the SRP protocol has been designed to use RDMA networks efficiently, it is also possible toimplement the SRP protocol over networks that do not support RDMA.As with the ISCSI Extensions for RDMA (iSER) communication protocol, there is the notion of a target (a systemthat stores the data) and an initiator (a client accessing the target) with the target performing the actual datamovement. In other words, when a user writes to a target, the target actually executes a read from the initiator andwhen a user issues a read, the target executes a write to the initiator.While the SRP protocol is easier to implement than the iSER protocol, iSER offers more management functionality,e.g. the target discovery infrastructure enabled by the iSCSI protocol. Furthermore, the SRP protocol never made itinto an official standard. The latest draft of the SRP protocol, revision 16a, dates from July 3, 2002.[2]

In order to use the SRP protocol, an SRP initiator implementation, an SRP target implementation and networkinghardware supported by the initiator and target are needed. The following software SRP initiator implementationsexist:•• Linux SRP initiator, available since November 2005 (kernel version 2.6.15).• Windows SRP initiator, available through the WinOF InfiniBand stack.[4]

• VMWare SRP initiator, available since January 2008 through Mellanox' OFED Drivers for VMwareInfrastructure 3 and vSphere 4.[5]

• Solaris 10 SRP initiator, available through Sun's download page.[6]

• The IBM POWER virtual SCSI client driver for Linux (ibmvscsi), available since January 2008 (kernel version2.6.24[7]). Virtual SCSI allows client logical partitions to access I/O devices (disk, CD, and tape) that are ownedby another logical partition.[8][9]

The following SRP target implementations exist:• Linux LIO SRP target,[10] available since January 2012 (kernel version 3.3[11]), based on the SCST SRP target.• The SCST SRP target implementation [12]. This is a mature SRP target implementation available since 2008 via

both SCST and OFED [13].• The IBM POWER virtual SCSI target driver (ibmvstgt), available since January 2008 (kernel version

2.6.24[7]).[8][9]

• DataDirect Network's (DDN) disk subsystems such as the S2A9900 and SFA10000, which use the SRP targetimplementation in the disk subsystem's controllers to present LUNs to servers (the servers act as SRPinitiators)[14][15].

Bandwidth and latency of storage targets supporting the SRP or the iSER protocol should be similar. On Linux, thereare two SRP storage target implementations available that run inside the kernel (standard LIO and out-of-treeSCST[12]) and an iSER storage target implementation that runs in user space (STGT). Measurements have shownthat the SCST SRP target has a lower latency and a higher bandwidth than the STGT iSER target. This is probablybecause the RDMA communication overhead is lower for a component implemented in the Linux kernel than for auser space Linux process, and not because of protocol differences.[16]

Page 96: SCSI wiki

SCSI RDMA Protocol 93

References[1] "SRP Update and Directions" (http:/ / www. youtube. com/ watch?v=4UVRuq-lgKo). openfabrics.org. 27-Mar-2012. .[2] ANSI T10 SRPr16a, www.t10.org (http:/ / www. t10. org/ drafts. htm#SCSI3_SRP).[3] ANSI T10 SRPr16a, web.archive.org (http:/ / web. archive. org/ web/ 20080422013122/ http:/ / www. t10. org/ ftp/ t10/ drafts/ srp/ srp-r16a.

pdf)[4] OpenFabrics InfiniBand stack for Windows, also called WinOF (http:/ / www. openfabrics. org/ downloads/ WinOF/ ).[5] Mellanox OFED Drivers for VMware Infrastructure 3 and vSphere 4 (http:/ / www. mellanox. com/ content/ pages. php?pg=products_dyn&

product_family=36& menu_section=34#tab-two).[6] Sun's download page (http:/ / www. sun. com/ download/ ).[7] Linux kernel version 2.6.24 change log (http:/ / www. kernel. org/ pub/ linux/ kernel/ v2. 6/ ChangeLog-2. 6. 24).[8] D. Boutcher and D. Engebretsen, Linux Virtualization on IBM POWER5 Systems (http:/ / www. kernel. org/ doc/ mirror/ ols2004v1.

pdf#page=113), Proceedings of the Linux Symposium, Vol. 1, July 2004, pp. 113-120.[9] IBM Systems Hardware Information Center, Virtual SCSI (http:/ / publib. boulder. ibm. com/ infocenter/ systems/ scope/ hw/ index.

jsp?topic=/ iphb1/ iphb1_vios_concepts_stor. htm).[10] "SCSI RDMA Protocol" (http:/ / linux-iscsi. org/ wiki/ SCSI_RDMA_Protocol). linux-iscsi.org. .[11] Linus Torvalds (1/18/2012). "InfiniBand/SRP merge" (http:/ / git. kernel. org/ ?p=linux/ kernel/ git/ torvalds/ linux.

git;a=commit;h=f59e842fc0871cd5baa213dc32e0ce8e5aaf4758). lkml.org. .[12] The SCST Project (http:/ / sourceforge. net/ projects/ scst/ ), an open source SCSI target implementation for Linux that includes an SRP

target implementation.[13] OFED 1.3 Release Notes (http:/ / lists. openfabrics. org/ pipermail/ general/ 2008-February/ 047221. html), OFA-General Mailing List,

February 2008.[14] "DDN SFA10000 User Guide" (http:/ / www. ddn. com/ pdfs/ SFA10000_1. 4. 0_User_Guide_C. pdf). ddn.com. 1/18/2012. .[15] "DDN Corporate Overview, IB Storage 101 section" (http:/ / www. hpcadvisorycouncil. com/ events/ switzerland_workshop/ pdf/

Presentations/ Day 1/ 11_DDN. pdf). ddn.com. 1/18/2012. .[16] Performance of SCST versus STGT (http:/ / lkml. org/ lkml/ 2008/ 1/ 29/ 387).

SCSI Read Capacity CommandThe SCSI Read Capacity command is used to obtain data capacity information from a target device.The command descriptor block (CDB) structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 25h

1 LUN Reserved RelAdr

2 LBA (MSB)LBA (LSB)

3

4

5

6 Reserved

7 Reserved

8 Reserved PMI

9 Control

The special control fields in the CDB have the following meaning:• RelAdr - indicates that the logical block address (LBA) value is relative (only used with linked commands).• PMI - partial medium indicator:

•• 0 - return value for the last LBA

Page 97: SCSI wiki

SCSI Read Capacity Command 94

•• 1 - return value for the last LBA after which a substantial delay in data transfer will be encountered (e.g., thecurrent track or cylinder)

The target will return capacity data structured as follows:

bit→↓byte

7 6 5 4 3 2 1 0

0–3 Returned LBA

4–7 Block length in bytes

External links• "SCSI Commands References Manual" [2]. Seagate. p. 168. Retrieved 2010-12-13.

SCSI Read CommandsThere are six different SCSI Read commands defined.

Read (6)The Read(6) command is only 6 bytes long and is a legacy from early SCSI days. Its use is restricted to 21-bit LBAs(1 GiB) and 8-bit Transfer Length fields. It has been present since the SASI (1979) specification. The CDB structureis:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 08h

1 LUN LBA

2 LBA

3 LBA

4 Transfer length

5 Control

[1] [2]

Read (10)The Read(10) (also called 'read extended' in 1987) command was introduced to cope with 32-bit LBAs (2048 GiB)and uses a 16-bit Transfer Length field. It also included three performance-related enhancements. Disable Page Out(DPO) allows the initiator to warn the target that the data being read is unlikely to be requested again soon and so isnot worth keeping in the target's data cache. Force Unit Access (FUA) tells the target to fetch the data from themedia surface and to not use a cached copy. The RelAdr bit is used to indicate that the LBA value is relative (onlyused with linked commands). The '2' in the operation code indicates a "class 2" command, and the '8' is the real 'read'opcode. This command was present in a 1982 working document and as such it is likely to have been present fromthe first SCSI command definitions, showing remarkable foresight. The CDB structure is:

Page 98: SCSI wiki

SCSI Read Commands 95

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 28h

1 LUN DPO FUA Reserved RelAdr

2–5 LBA

6 Reserved

7–8 Transfer length

9 Control

[1] [2]

Read (12)The Read(12) command is similar to the Read(10) command except that it has a larger 32-bit Transfer Length field.The CDB structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = A8h

1 Reserved DPO FUA Reserved RelAdr

2–5 LBA

6–9 Transfer length

10 Reserved

11 Control

Read (16)The Read(16) command is similar to the Read(12) command except that it has a 64-bit LBA field and is thus capableof addressing 8 388 608 PiB (ATA-6 is capable of max 128 PiB). The Transfer Length field is 32 bits long. TheCDB structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 88h

1 RDPROTECT DPO FUA Reserved FUA_NV Reserved

2–9 LBA

10-13 Transfer length

14 Restricted for MMC-4 Reserved Group number

15 Control

Page 99: SCSI wiki

SCSI Read Commands 96

Read (32)The Read(32) command uses a 64-bit LBA fields (capable of addressing 8 388 608 PiB) and uses a 32-bit TransferLength field. The CDB structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 7Fh

1 Control

2-5 Reserved

6 Reserved Group number

7 Additional CDB length (18h)

8-9 Service Action (0009h)

10 RDPROTECT DPO FUA Reserved FUA_NV Reserved

11 Reserved

12-19 LBA

20-23 Initial Logical Block Reference Tag

24-25 Expected Logical Block Application Tag

26-27 Logical Block Application Tag Mask

28-31 Transfer length

Read LongThe Read Long command is used for Error Correcting Code (ECC) compliant data previously written by a WriteLong command. The CORRCT bit defines whether or not the target is allowed to correct any errors found beforereturning the data to the target. The LBA field is 32 bits in length and the Transfer Length field is 16 bits. The CDBstructure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 3Eh

1 Reserved CORRCT RelAdr

2–5 LBA

6 Reserved

7-8 Byte transfer length

9 Control

Page 100: SCSI wiki

SCSI Read Commands 97

References[1] "Shugart/NCR Joint proposal for [[American National Standards Institute|ANSI (http:/ / www. t10. org/ ftp/ t10/ drafts/ sasi/ sasir0C. pdf)]

standard system interface, Using SASI as the working document"]. . Retrieved 2010-02-09. 1982-01-29 t10.org[2] "Proposal for [[CD-ROM|cd-rom (http:/ / www. t10. org/ ftp/ x3t9. 2/ document. 87/ 87-106r0. txt)] in SCSI-2"]. . 1987-06-30 t10.org

SCSI Receive Diagnostic Results CommandThe SCSI Receive Diagnostic Results command is used to interrogate the results of a self-test. The self-test musthave been triggered by a previous Send Diagnostic command which would have defined the self-test required. Thisis usually associated with one of the available diagnostic pages.The CDB structure for this command is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 1Ch

1 Reserved PCV

2 PAGE CODE

3–4 Allocation length

5 Control

External links• "SCSI Commands References Manual" [2]. Seagate. p. 158. Retrieved 2012-05-02.

Page 101: SCSI wiki

SCSI Report LUNs Command 98

SCSI Report LUNs CommandThe Report LUNs Command is a part of the SCSI command structureThe CDB structure is:

SCSI Report LUNs Command

bit→↓byte

0 1 2 3 4 5 6 7

+0 Operation Code = 0xA0

+1 Reserved

+2 Select Report

+3

Reserved+4

+5

+6

Allocation Length+7

+8

+9

+10 Reserved

+11 Control

The Select Report field specifies the type of logical unit addresses to be returned.• 00h, returned list contains logical units with the following addressing methods

1.1. logical unit addressing method2. peripheral device addressing method3. flat space addressing method

•• 01h, returned list contains only well known logical units•• 02h, returned list contains all logical units•• 03h-FFh, reserved

References• "SCSI Commands References Manual" [2]. Seagate. p. 168. Retrieved 2010-12-13.

Page 102: SCSI wiki

SCSI Request Sense Command 99

SCSI Request Sense CommandThe SCSI Request Sense command is used to obtain sense data (error information) from a target device.The CDB (send) structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 03h

1 LUN Reserved

2 Reserved

3 Reserved

4 Allocation length

5 Control

The fixed format response is a set of SCSI sense data which is structured as follows:

bit→↓byte

7 6 5 4 3 2 1 0

0 Valid Response Code (70h or 71h)

1 Segment number (obsolete)

2 Filemark EOM ILI Reserved Sense key

3–6 Information

7 Additional sense length (n-7)

8–11 Command-specific information

12 Additional sense code

13 Additional sense code qualifier

14 Field replaceable unit code

15 SKSV Sense-key specific

16 Sense-key specific

17 Sense-key specific

18 Additional sense bytes (variable number of bytes)

The descriptor format response is a set of SCSI sense data which is structured as follows:

Page 103: SCSI wiki

SCSI Request Sense Command 100

bit→↓byte

7 6 5 4 3 2 1 0

0 Reserved Response Code (72h or 73h)

1 Reserved Sense key

2 Additional sense code

3 Additional sense code qualifier

4–6 Reserved

7 Additional sense length (n-7)

8–n Sense Data Descriptor(s)

The special control fields in the sense data have the following meaning:• Valid -

•• 0 - INFORMATION field is not defined•• 1 - INFORMATION field is defined

• Response Code -•• 70h - current errors, Fixed Format•• 71h - deferred errors, Fixed Format•• 72h - Current error, Descriptor Format•• 73h - Deferred error, Descriptor Format

• Segment number - valid only if the current command is COPY, COMPARE, or COPY AND VERIFY• Filemark - 1 = the current command has reached a filemark or setmark (sequential-access devices only)• EOM - 1 = end-of-medium (sequential-access devices) OR out-of-paper (printers)• ILI - incorrect length indicator - 1 = requested logical block length did not match the logical block length of the

data on the medium• The Sense Key, Additional Sense Code, and Additional Sense Code Qualifier fields are usually considered in

aggregate to be a 20 bit field called the KCQ. A composite value of 00000h indicates no error, all other valuesdescribe specific error conditions. See the main KCQ article for a complete list.

• SKSV - Sense Key Specific Valid -•• 0 - sense key specific data are not SCSI compliant•• 1 - sense key specific data are SCSI compliant

• Additional sense bytes - can contain vendor-specific data• Bytes 20-21 can be used for a Unit Error Code (UEC)

SenseKey

Name Description

0h No Sense Indicates there is no specific Sense Key information to be reported for the disc drive. This would be the case for asuccessful command or when the ILI bit is one.

1h RecoveredError

Indicates the last command completed successfully with some recovery action performed by the disc drive. When multiplerecovered errors occur, the last error that occurred is reported by the additional sense bytes. Note: For some Mode settings,the last command may have terminated before completing.

2h Not Ready Indicates the logical unit addressed cannot be accessed. Operator intervention may be required to correct this condition.

3h MediumError

Indicates the command terminated with a non-recovered error condition, probably caused by a flaw in the medium or anerror in the recorded data.

4h HardwareError

Indicates the disc drive detected a nonrecoverable hardware failure while performing the command or during a self test.This includes SCSI interface parity error, controller failure or device failure.

Page 104: SCSI wiki

SCSI Request Sense Command 101

5h IllegalRequest

Indicates an illegal parameter in the command descriptor block or in the additional parameters supplied as data for somecommands (Format Unit, Mode Select, and so forth). If the disc drive detects an invalid parameter in the CommandDescriptor Block, it shall terminate the command without altering the medium. If the disc drive detects an invalid parameterin the additional parameters supplied as data, the disc drive may have already altered the medium. This sense key may alsoindicate that an invalid IDENTIFY message was received. This could also indicate an attempt to write past the last logicalblock.

6h UnitAttention

Indicates the disc drive may have been reset.

7h Data Protect Indicates that a command that reads or writes the medium was attempted on a block that is protected from this operation.The read or write operation is not performed.

9h FirmwareError

Vendor specific sense key.

Bh AbortedCommand

Indicates the disc drive aborted the command. The initiator may be able to recover by trying the command again.

Ch Equal Indicates a SEARCH DATA command has satisfied an equal comparison.

Dh VolumeOverflow

Indicates a buffered peripheral device has reached the end of medium partition and data remains in the buffer that has notbeen written to the medium.

Eh Miscompare Indicates that the source data did not match the data read from the medium.

SCSI Send Diagnostic CommandThe SCSI Send Diagnostic command is used to instruct a target device to perform a self-test on a specific LUN.The CDB structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 1Dh

1 SELF-TEST CODE PF Reserved SelfTest DevOfl UnitOfl

2 Reserved

3–4 Parameter list length

5 Control

The special parameter fields in the CDB have the following meaning:• PF - Page Format:

•• 0 - SCSI-1 compliant (vendor-specific)• 1 - SCSI-2 compliant (addresses a particular SCSI diagnostic page) as defined in the parameter list. In this case

the Send Diagnostic command is usually followed by a Receive Diagnostic Results command.• SelfTest if this bit is one then the device runs its default self-test. The device will then return either good status or

a check condition. This version of the command is usually followed by a Receive Diagnostic Results command. Ifthe SelfTest bit is zero then the device performs a special diagnostic operation as specified in the parameter list.

• DevOfL - Device Off-Line - used in high-availability applications - if this is one then the target is allowed toperform diagnostic operations that could cause it to fail read/write operations to the same from other initiators.

• UnitOfL - Unit Off-Line - similar to DevofL but refers to all LUNs

Page 105: SCSI wiki

SCSI standalone enclosure services 102

SCSI standalone enclosure servicesSCSI standalone enclosure services is a computer protocol used mainly with disk storage enclosures. It allows ahost computer to communicate with the enclosure to access its power, cooling, and other non-data characteristics.The host computer communicates with one or more SCSI Enclosure Services(SES) controllers in the enclosure via aSCSI interface which may be Parallel SCSI, FC-AL, SAS, or SSA. Each SES controller has a SCSI identity(address) and so can accept direct SCSI commands.

Implemented commandsThe following SCSI commands are implemented by standalone enclosure services devices:

SCSI command Operation code Comment

ACCESS CONTROL IN 86h Optional

ACCESS CONTROL OUT 87h Optional

CHANGE ALIASES A4h Optional

INQUIRY 12h Mandatory

LOG SELECT 4Ch Optional

LOG SENSE 4Dh Optional

MAINTENANCE IN A3h See note 1

MAINTENANCE OUT A4h See note 1

MODE SELECT 15h/55h Optional

MODE SENSE 1Ah/5Ah Optional

PERISTENT RESERVE IN 5Eh Optional

PERSISTENT RESERVE OUT 5Fh Optional

READ BUFFER 3Ch Optional

RECEIVE DIAGNOSTIC RESULTS 1Ch Mandatory

REDUNDANCY GROUP IN BAh See note 1

REDUNDANCY GROUP OUT BBh See note 1

REPORT ALIASES A3h Optional

REPORT DEVICE IDENTIFIER A3h Optional

REPORT LUNS A0h Mandatory

REPORT PRIORITY A3h Optional

REPORT SUPPORTED OPERATION CODES A3h Optional

REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS A3h Optional

REPORT TARGET PORT GROUPS A3h Optional

REPORT TIMESTAMP A3h Optional

REQUEST SENSE 03h Mandatory

SEND DIAGNOSTIC 1Dh Mandatory

SET DEVICE IDENTIFIER A4h Optional

SET PRIORITY A4h Optional

Page 106: SCSI wiki

SCSI standalone enclosure services 103

SET TARGET PORT GROUPS A4h Optional

SET TIMESTAMP A4h Optional

SPARE IN BCh See note 1

SPARE OUT BDh See note 1

TEST UNIT READY 00h Mandatory

VOLUME SET IN BEh See note 1

VOLUME SET OUT BFh See note 1

WRITE BUFFER 3Bh Optional

Note 1: The initiator needs to send a SCSI inquiry to interrogate the SCCS bit which says whether the SES controllerhas this command.

SCSI Start Stop Unit CommandThe SCSI Start/Stop Unit command is used to control the motor in a rotary device such as a SCSI disk-drive. It isalso used to load or eject removable media, such as a tape or compact disc. It is a frequently-used command and isoften the first one issued after initial communication has been established between the initiator and the target.The CDB structure is:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 1Bh

1 LUN Reserved Immed

2 Reserved

3 Reserved

4 Reserved LoEj Start

5 Control

The parameter fields in the CDB have the following meaning:• Immed - immediate - if this is 1 then the target will not wait until the operation has completed before sending

back the status code.• LoEj (load/eject) and Start - these two bits are used together:

•• 00 - Stop motor•• 01 - Start motor•• 10 - Eject media•• 11 - Load media

In most cases, sending a "stop motor" parameter to a disk will also park the read/write heads in the landing zone.[1]

[1][1] Seagate Disc Drive SCSI-2/SCSI-3 Interface, Publication Number 77738479, Rev H

Page 107: SCSI wiki

SCSI Status Code 104

SCSI Status CodeA SCSI Status Code is used to determine the success or failure of a SCSI command. At the end of any command,the target returns a Status Code byte which should be one of the following:

00h OKThis status code indicates that the device has completed the task successfully.

02h Check conditionWhen the target returns a Check Condition in response to a command it is indicating that it has entered a contingentallegiance condition. This means that an error occurred when it attempted to execute a SCSI command. The initiatorusually then issues a SCSI Request Sense command in order to obtain a Key Code Qualifier (KCQ) from the target.

04h Condition MetThis status code is returned on successful completion of a Search Data command or a Pre-fetch Command.

08h BusyThe target returns Busy if it cannot complete a command at that time, for example if it is in the contingent allegiancecondition.

10h IntermediateThe target returns Intermediate when it successfully completes a linked command (except the last command).

14h Intermediate - Condition metAs the name suggests, this status code is simply a combination of 10h Intermediate and 04h Condition Met.

18h Reservation conflictThe target returns this status code if an initiator attempts to access a LUN that has been previously reserved byanother initiator using the Reserve or Reserve Unit command.

22h Command terminatedThe target returns this status if the target has to terminate the current I/O process because it received a Terminate I/OProcess message. This status code is obsolete as of SAM-3.

28h Queue (task set) fullSimilar to 08h Busy status, this status code is returned when the logical unit lacks the resources to accept a receivedtask from an I_T nexus. This status code implies that the logical unit already has at least one task from that I_Tnexus, where the 08h Busy status code implies that the logical unit currently has no tasks from that I_T nexus.

Page 108: SCSI wiki

SCSI Status Code 105

30h ACA activeThe target returns this status code if an auto-contingent allegiance condition has occurred.

40h Task abortedThe target returns this status code when a task is aborted by another I_T nexus and the TAS bit in the Control modepage is set to one.

External Links• "SCSI Commands References Manual" [2]. Seagate. Retrieved 2010-12-13.• SAM-4 [1] clause 5.3.1

References[1] ftp:/ / ftp. t10. org/ t10/ drafts/ sam4/

SCSI terminating resistorSCSI terminating resistors are electrical resistors that absorb signals that reach the end of the bus (computing).Without them signals could reflect back onto the bus causing a confusing mix of actual and reflected signals.

SCSI Test Unit Ready CommandThe SCSI Test Unit Ready command is used to determine if a device is ready to transfer data (read/write), i.e. if adisk has spun up, if a tape is loaded and ready etc. The device does not perform a self-test operation. See the SendDiagnostic command.The CDB structure is:

SCSI Test Unit Ready Command

bit→↓byte

0 1 2 3 4 5 6 7

0 Operation Code = 0x00

1 LUN Reserved

2

Reserved3

4

5 Control

The device will then return either good status or a check condition.

Page 109: SCSI wiki

SCSI Write Commands 106

SCSI Write CommandsThere are several different SCSI Write commands defined.

Write (6)The Write (6) command is only 6 bytes long and is a legacy from early SCSI days. Its use is restricted to 21-bitLBAs. The CDB structure is[1]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 0Ah

1 Reserved LBA

2 LBA

3 LBA

4 Transfer length

5 Control

Write (10)The Write (10) command was introduced to cope with 32-bit LBAs. It also included four other enhancements.Disable Page Out (DPO) allows the initiator to warn the target that the data being written is unlikely to be read backsoon and so is not worth keeping in the target's data cache. Force Unit Access (FUA) tells the target to immediatelysend the data to the media surface and to not buffer it through a cache. The EBP bit tells the target that it may skipthe erase process when writing data. The RelAdr bit is used to indicate that the LBA value is relative (only used withlinked commands). The CDB structure is[]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 2Ah

1 WRPROTECT DPO FUA Reserved FUA_NV Obsolete

2–5 LBA

6 Reserved Group Number

7–8 Transfer length

9 Control

Write (12)The Write (12) command is similar to the Write(10) command except that it has a larger Transfer Length field. TheCDB structure is[]:

Page 110: SCSI wiki

SCSI Write Commands 107

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = AAh

1 WRPROTECT DPO FUA Obsolete FUA_NV Obsolete

2–5 LBA

6–9 Transfer length

10 Restricted for MMC-6 Reserved Group Number

11 Control

Write (16)The CDB structure is[]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 8Ah

1 WRProtect DPO FUA Reserved FUA_NV Obsolete

2–9 LBA

10-13 Transfer Length

14 Restricted for MMC-6 Reserved Group Number

15 Control

Write (32)The CDB structure is[]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 7Fh

1 Control

2–5 Reserved

6 Reserved Group Number

7 Additional CDB Length (18h)

8-9 Service Action (000Bh)

10 WRProtect DPO FUA Reserved FUA_NV Reserved

12–19 LBA

20–23 Expected Initial Logical Block Reference Tag

24–25 Expected Logical Block Application Tag

26–27 Logical Block Application Tag Mask

28–31 Transfer Length

Page 111: SCSI wiki

SCSI Write Commands 108

Write Long (10)The Write Long command allows for Error Correcting Code (ECC). The data sent from the initiator will includeECC fields as well as real data. The Byte Transfer Length field tells the target how much data will need to bereturned when the data is subsequently retrieved with a Read Long command. The CDB structure is[]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 3Fh

1 COR_DIS WR_UNCOR PBLOCK Reserved Obsolete

2 LBA

3

4

5

6 Reserved

7 Byte Transfer Length

8

9 Control

Write Long (16)The CDB structure is[]:

bit→↓byte

7 6 5 4 3 2 1 0

0 Operation code = 9Fh

1 COR_DIS WR_UNCOR PBLOCK Service Action (11h)

2–9 LBA

10 Reserved

11

12 Byte Transfer Length

13

14 Reserved

15 Control

References[1] "SCSI Block Commands - 3 (SBC-3)" (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=sbc3r26. pdf) (PDF). . Retrieved 2011-01-21.

External links• "SCSI Commands References Manual" (http:/ / www. seagate. com/ staticfiles/ support/ disc/ manuals/ Interface

manuals/ 100293068c. pdf). Seagate. Retrieved 2012-05-02.

Page 112: SCSI wiki

Sense Key 109

Sense KeyKCQ redirects here. For the radio station in Saginaw, Michigan, see WKCQ

Key Code Qualifier is a computer term used to describe an error-code returned by a SCSI device.When a SCSI target device returns a check condition in response to a command, the initiator usually then issues aSCSI Request Sense command. This process is part of a SCSI protocol called Contingent Allegiance Condition. Thetarget will respond to the Request Sense command with a set of SCSI sense data which includes three fields givingincreasing levels of detail about the error:•• K - sense key - 4 bits, (byte 2 of Fixed sense data format)•• C - additional sense code (ASC) - 8 bits, (byte 12 of Fixed sense data format)•• Q - additional sense code qualifier (ASCQ) - 8 bits, (byte 13 of Fixed sense data format)The initiator can take action based on just the K field which indicates if the error is minor or major. However allthree fields are usually logically combined into a 20 bit field called Key Code Qualifier or KCQ. The specificationfor the target device will define the list of possible KCQ values. In practice there are many KCQ values which arecommon between different SCSI device types and different SCSI device vendors.

List of common SCSI KCQs

Category Key ASC ASCQ Error Condition

No Sense 0 00 00 No error

0 5D 00 No sense - PFA threshold reached

Soft Error 1 01 00 Recovered Write error - no index

1 02 00 Recovered no seek completion

1 03 00 Recovered Write error - write fault

1 09 00 Track following error

1 0B 01 Temperature warning

1 0C 01 Recovered Write error with auto-realloc - reallocated

1 0C 03 Recovered Write error - recommend reassign

1 12 01 Recovered data without ECC using prev logical block ID

1 12 02 Recovered data with ECC using prev logical block ID

1 14 01 Recovered Record Not Found

1 16 00 Recovered Write error - Data Sync Mark Error

1 16 01 Recovered Write error - Data Sync Error - data rewritten

1 16 02 Recovered Write error - Data Sync Error - recommend rewrite

1 16 03 Recovered Write error - Data Sync Error - data auto-reallocated

1 16 04 Recovered Write error - Data Sync Error - recommend reassignment

1 17 00 Recovered data with no error correction applied

1 17 01 Recovered Read error - with retries

1 17 02 Recovered data using positive offset

Page 113: SCSI wiki

Sense Key 110

1 17 03 Recovered data using negative offset

1 17 05 Recovered data using previous logical block ID

1 17 06 Recovered Read error - without ECC, auto reallocated

1 17 07 Recovered Read error - without ECC, recommend reassign

1 17 08 Recovered Read error - without ECC, recommend rewrite

1 17 09 Recovered Read error - without ECC, data rewritten

1 18 00 Recovered Read error - with ECC

1 18 01 Recovered data with ECC and retries

1 18 02 Recovered Read error - with ECC, auto reallocated

1 18 05 Recovered Read error - with ECC, recommend reassign

1 18 06 Recovered data using ECC and offsets

1 18 07 Recovered Read error - with ECC, data rewritten

1 1C 00 Defect List not found

1 1C 01 Primary defect list not found

1 1C 02 Grown defect list not found

1 1F 00 Partial defect list transferred

1 44 00 Internal target failure

1 5D 00 PFA threshold reached

Not Ready 2 04 00 Not Ready - Cause not reportable.

2 04 01 Not Ready - becoming ready

2 04 02 Not Ready - need initialise command (start unit)

2 04 03 Not Ready - manual intervention required

2 04 04 Not Ready - format in progress

2 04 09 Not Ready - self-test in progress

2 31 00 Not Ready - medium format corrupted

2 31 01 Not Ready - format command failed

2 35 02 Not Ready - enclosure services unavailable

2 3A 00 Not Ready - medium not present

2 3A 01 Not Ready - medium not present - tray closed

2 3A 02 Not Ready - medium not present - tray open

2 4C 00 Diagnostic Failure - config not loaded

Page 114: SCSI wiki

Sense Key 111

Medium Error 3 02 00 Medium Error - No Seek Complete

3 03 00 Medium Error - write fault

3 10 00 Medium Error - ID CRC error

3 11 00 Medium Error - unrecovered read error

3 11 01 Medium Error - read retries exhausted

3 11 02 Medium Error - error too long to correct

3 11 04 Medium Error - unrecovered read error - auto re-alloc failed

3 11 0B Medium Error - unrecovered read error - recommend reassign

3 14 01 Medium Error - record not found

3 16 00 Medium Error - Data Sync Mark error

3 16 04 Medium Error - Data Sync Error - recommend reassign

3 19 00 Medium Error - defect list error

3 19 01 Medium Error - defect list not available

3 19 02 Medium Error - defect list error in primary list

3 19 03 Medium Error - defect list error in grown list

3 19 0E Medium Error - fewer than 50% defect list copies

3 31 00 Medium Error - medium format corrupted

3 31 01 Medium Error - format command failed

Hardware Error 4 01 00 Hardware Error - no index or sector

4 02 00 Hardware Error - no seek complete

4 03 00 Hardware Error - write fault

4 09 00 Hardware Error - track following error

4 11 00 Hardware Error - unrecovered read error in reserved area

4 16 00 Hardware Error - Data Sync Mark error in reserved area

4 19 00 Hardware Error - defect list error

4 19 02 Hardware Error - defect list error in Primary List

4 19 03 Hardware Error - defect list error in Grown List

4 31 00 Hardware Error - reassign failed

4 32 00 Hardware Error - no defect spare available

4 35 01 Hardware Error - unsupported enclosure function

4 35 02 Hardware Error - enclosure services unavailable

4 35 03 Hardware Error - enclosure services transfer failure

4 35 04 Hardware Error - enclosure services refused

4 35 05 Hardware Error - enclosure services checksum error

4 3E 03 Hardware Error - self-test failed

4 3E 04 Hardware Error - unable to update self-test

4 44 00 Hardware Error - internal target failure

Page 115: SCSI wiki

Sense Key 112

Illegal Request 5 1A 00 Illegal Request - parm list length error

5 20 00 Illegal Request - invalid/unsupported command code

5 21 00 Illegal Request - LBA out of range

5 24 00 Illegal Request - invalid field in CDB (Command Descriptor Block)

5 25 00 Illegal Request - invalid LUN

5 26 00 Illegal Request - invalid fields in parm list

5 26 01 Illegal Request - parameter not supported

5 26 02 Illegal Request - invalid parm value

5 26 03 Illegal Request - invalid field parameter - threshold parameter

5 26 04 Illegal Request - invalid release of persistent reservation

5 2C 00 Illegal Request - command sequence error

5 35 01 Illegal Request - unsupported enclosure function

5 49 00 Illegal Request - invalid message

5 53 00 Illegal Request - media load or eject failed

5 53 01 Illegal Request - unload tape failure

5 53 02 Illegal Request - medium removal prevented

5 55 00 Illegal Request - system resource failure

5 55 01 Illegal Request - system buffer full

5 55 04 Illegal Request - Insufficient Registration Resources

Unit Attention 6 28 00 Unit Attention - not-ready to ready transition (format complete)

6 29 00 Unit Attention - POR or device reset occurred

6 29 01 Unit Attention - POR occurred

6 29 02 Unit Attention - SCSI bus reset occurred

6 29 03 Unit Attention - TARGET RESET occurred

6 29 04 Unit Attention - self-initiated-reset occurred

6 29 05 Unit Attention - transceiver mode change to SE

6 29 06 Unit Attention - transceiver mode change to LVD

6 2A 00 Unit Attention - parameters changed

6 2A 01 Unit Attention - mode parameters changed

6 2A 02 Unit Attention - log select parms changed

6 2A 03 Unit Attention - Reservations pre-empted

6 2A 04 Unit Attention - Reservations released

6 2A 05 Unit Attention - Registrations pre-empted

Page 116: SCSI wiki

Sense Key 113

6 2F 00 Unit Attention - commands cleared by another initiator

6 3F 00 Unit Attention - target operating conditions have changed

6 3F 01 Unit Attention - microcode changed

6 3F 02 Unit Attention - changed operating definition

6 3F 03 Unit Attention - inquiry parameters changed

6 3F 05 Unit Attention - device identifier changed

6 5D 00 Unit Attention - PFA threshold reached

Write Protect 7 27 00 Write Protect - command not allowed

Aborted Command B 00 00 Aborted Command - no additional sense code

B 1B 00 Aborted Command - sync data transfer error (extra ACK)

B 25 00 Aborted Command - unsupported LUN

B 3F 0F Aborted Command - echo buffer overwritten

B 43 00 Aborted Command - message reject error

B 44 00 Aborted Command - internal target failure

B 45 00 Aborted Command - Selection/Reselection failure

B 47 00 Aborted Command - SCSI parity error

B 48 00 Aborted Command - initiator-detected error message received

B 49 00 Aborted Command - inappropriate/illegal message

B 4B 00 Aborted Command - data phase error

B 4E 00 Aborted Command - overlapped commands attempted

B 4F 00 Aborted Command - due to loop initialisation

Other E 1D 00 Miscompare - during verify byte check operation

x 05 00 Illegal request

x 06 00 Unit attention

x 07 00 Data protect

x 08 00 LUN communication failure

x 08 01 LUN communication timeout

x 08 02 LUN communication parity error

x 08 03 LUN communication CRC error

x 09 00 vendor specific sense key

x 09 01 servo fault

Page 117: SCSI wiki

Sense Key 114

x 09 04 head select fault

x 0A 00 error log overflow

x 0B 00 aborted command

x 0C 00 write error

x 0C 02 write error - auto-realloc failed

x 0E 00 data miscompare

x 12 00 address mark not found for ID field

x 14 00 logical block not found

x 15 00 random positioning error

x 15 01 mechanical positioning error

x 15 02 positioning error detected by read of medium

x 27 00 write protected

x 29 00 POR or bus reset occurred

x 31 01 format failed

x 32 01 defect list update error

x 32 02 no spares available

x 35 01 unspecified enclosure services failure

x 37 00 parameter rounded

x 3D 00 invalid bits in identify message

x 3E 00 LUN not self-configured yet

x 40 01 DRAM parity error

x 40 02 DRAM parity error

x 42 00 power-on or self-test failure

x 4C 00 LUN failed self-configuration

x 5C 00 RPL status change

x 5C 01 spindles synchronised

x 5C 02 spindles not synchronised

x 65 00 voltage fault

x ≥80 x Vendor specific

x x ≥80 Vendor specific

ReferencesSPC-4 [1] clause 4.5.6 and annex D.2

Page 118: SCSI wiki

Serial attached SCSI 115

Serial attached SCSI

Technical specificationsSerial Attached SCSI

Performance Full-duplex with link aggregation (4-ports wide at 24 Gbit/s)

3.0 Gbit/s at introduction, 6.0 Gbit/s available February 2009

Connectivity 10 m external cable

255 device port expanders (>65k total devices)

SAS-to-SATA compatibility

Availability Dual-port HDDs

Multi-initiator point-to-point

Driver Software-transparent with SCSI

Serial Attached SCSI (SAS) is a communication protocol used to move data to and from computer storage devicessuch as hard drives and tape drives. SAS is a point-to-point serial protocol that replaces the parallel SCSI bustechnology that first appeared in the mid 1980s in data centers and workstations, and it uses the standard SCSIcommand set. SAS offers backwards-compatibility with second-generation SATA drives. SATA 3 Gbit/s drives maybe connected to SAS backplanes, but SAS drives may not be connected to SATA backplanes.The T10 technical committee of the International Committee for Information Technology Standards (INCITS)develops and maintains the SAS protocol; the SCSI Trade Association (SCSITA) promotes the technology.

IntroductionA typical Serial Attached SCSI system consists of the following basic components:1. An Initiator: a device that originates device-service and task-management requests for processing by a target

device and receives responses for the same requests from other target devices. Initiators may be provided as anon-board component on the motherboard (as is the case with many server-oriented motherboards) or as an add-onhost bus adapter.

2. A Target: a device containing logical units and target ports that receives device service and task managementrequests for processing and sends responses for the same requests to initiator devices. A target device could be ahard disk or a disk array system.

3. A Service Delivery Subsystem: the part of an I/O system that transmits information between an initiator and atarget. Typically cables connecting an initiator and target with or without expanders and backplanes constitute aservice delivery subsystem.

4. Expanders: devices that form part of a service delivery subsystem and facilitate communication between SASdevices. Expanders facilitate the connection of multiple SAS End devices to a single initiator port.

Identification and addressingA SAS Domain is the SAS version of a SCSI domain—it consists of a set of SAS devices that communicate with oneanother by means of a service delivery subsystem. Each SAS port in a SAS domain has a SCSI port identifier thatidentifies the port uniquely within the SAS domain. It is assigned by the device manufacturer, like an Ethernetdevice's MAC address, and is typically world-wide unique as well. SAS devices use these port identifiers to addresscommunications to each other.

Page 119: SCSI wiki

Serial attached SCSI 116

In addition, every SAS device has a SCSI device name, which identifies the SAS device uniquely in the world. Onedoesn't often see these device names because the port identifiers tend to identify the device sufficiently.For comparison, in parallel SCSI, the SCSI ID is the port identifier and device name. In fibre channel, the portidentifier is a WWPN and the device name is a WWNN.In SAS, both SCSI port identifiers and SCSI device names take the form of a SAS address, which is a 64 bit value,normally in the NAA IEEE Registered format. People sometimes call a SAS address a World Wide Name or WWN,because it is essentially the same thing as a WWN in fibre channel.

Comparison with parallel SCSI• The SAS bus operates point-to-point while the SCSI bus is multidrop. Each SAS device is connected by a

dedicated link to the initiator, unless an expander is used. If one initiator is connected to one target, there is noopportunity for contention; with parallel SCSI, even this situation could cause contention.

• SAS has no termination issues and does not require terminator packs like parallel SCSI.• SAS eliminates clock skew.•• SAS allows up to 65,535 devices through the use of expanders, while Parallel SCSI has a limit of 8 or 16 devices

on a single channel.•• SAS allows a higher transfer speed (3 or 6 Gbit/s) than most parallel SCSI standards. SAS achieves these speeds

on each initiator-target connection, hence getting higher throughput, whereas parallel SCSI shares the speedacross the entire multidrop bus.

•• SAS controllers may connect to SATA devices, either directly connected using native SATA protocol or throughSAS expanders using SATA Tunneled Protocol (STP).

• Both SAS and parallel SCSI use the SCSI command-set.

Comparison with SATA• Systems identify SATA devices by their port number connected to the host bus adapter, while SAS devices are

uniquely identified by their World Wide Name (WWN).•• SAS protocol provides for multiple initiators in a SAS domain, while SATA has no analogous provision.• Most SAS drives provide tagged command queuing, while most newer SATA drives provide native command

queuing, each of which has its pros and cons.• SATA uses the ATA command set; SAS uses the SCSI command set. Basic ATA has commands only for

direct-access storage. However SCSI commands may be tunneled through ATA for devices such as CD/DVDdrives.

• SAS hardware allows multipath I/O to devices while SATA (prior to SATA 3Gb/s) does not. Per specification,SATA 3Gb/s makes use of port multipliers to achieve port expansion. Some port multiplier manufacturers haveimplemented multipath I/O using port multiplier hardware.

• SATA is marketed as a general-purpose successor to parallel ATA and has become common in the consumermarket, whereas the more-expensive SAS targets critical server applications.

• SAS error-recovery and error-reporting use SCSI commands which have more functionality than the ATASMART commands used by SATA drives.

• SAS uses higher signaling voltages (800–1600 mV TX, 275–1600 mV RX) than SATA (400–600 mV TX,325–600 mV RX). The higher voltage offers (among other features) the ability to use SAS in server backplanes.

• Because of its higher signaling voltages, SAS can use cables up to 10 m (unknown operator: u'strong' ft) long,SATA has a cable-length limit of 1 m (unknown operator: u'strong' ft) or 2 m (unknown operator:u'strong' ft) for eSATA.

Page 120: SCSI wiki

Serial attached SCSI 117

Characteristics

Technical detailsThe Serial Attached SCSI standard defines several layers (in order from highest to lowest):•• Application•• Transport•• Port•• Link•• PHY•• PhysicalSerial Attached SCSI comprises three transport protocols:• Serial SCSI Protocol (SSP) — for command-level communication with SCSI devices.• Serial ATA Tunneling Protocol (STP) — for command-level communication with SATA devices.• Serial Management Protocol (SMP) — for managing the SAS fabric.For the Link and PHY layers, SAS defines its own unique protocol.At the physical layer, the SAS standard defines connectors and voltage levels. The physical characteristics of theSAS wiring and signaling are compatible with and have loosely tracked that of SATA up to the present 6 Gbit/s rate,although SAS defines more rigorous physical signaling specifications as well as a wider allowable differentialvoltage swing intended to allow longer cabling. While SAS-1.0/SAS-1.1 adopted the physical signalingcharacteristics of SATA at the 1.5 Gbit/s and 3 Gbit/s rates, SAS-2.0 development of a 6 Gbit/s physical rate led thedevelopment of an equivalent SATA speed. According to the SCSI Trade Association, 12 Gbit/s is slated to follow6 Gbit/s in a future SAS-3.0 specification.[1]

Architecture

Architecture of SAS layers

SAS architecture consists of six layers•• Physical layer:

•• defines electrical and physical characteristics•• differential signaling transmission•• Three connector types:

• SFF 8482 – SATA compatible• SFF 8484 – up to four devices• SFF 8470 – external connector (InfiniBand connector), up to

four devices

•• PHY Layer:•• 8b/10b data encoding•• Link initialization, speed negotiation and reset sequences•• Link capabilities negotiation (SAS-2)

•• Link layer:•• Insertion and deletion of primitives for clock-speed disparity matching•• Primitive encoding• Data scrambling for reduced EMI•• Establish and tear down native connections between SAS targets and initiators•• Establish and tear down tunneled connections between SAS initiators and SATA targets connected to SAS

expanders

Page 121: SCSI wiki

Serial attached SCSI 118

•• Power management (proposed for SAS-2.1)•• Port layer:

•• Combining multiple PHYs with the same addresses into wide ports•• Transport layer:

•• Contains three transport protocols:•• Serial SCSI Protocol (SSP): for command-level communication with SCSI devices•• Serial ATA Tunneled Protocol (STP): for command-level communication with SATA devices•• Serial Management Protocol (SMP): for managing the SAS fabric

•• Application layer

TopologyAn initiator may connect directly to a target via one or more PHYs (such a connection is called a port whether it usesone or more PHYs, although the term wide port is sometimes used for a multi-PHY connection).

SAS ExpandersThe components known as Serial Attached SCSI Expanders (SAS Expanders) facilitate communication betweenlarge numbers of SAS devices. Expanders contain two or more external expander-ports. Each expander devicecontains at least one SAS Management Protocol target port for management and may contain SAS devices itself. Forexample, an expander may include a Serial SCSI Protocol target port for access to a peripheral device. An expanderis not necessary to interface a SAS initiator and target but allows a single initiator to communicate with moreSAS/SATA targets. A useful analogy: one can regard an expander as akin to a network switch in a network whichallows multiple systems to be connected using a single switch port.SAS 1 defined two different types of expander; however, the SAS-2.0 standard has dropped the distinction betweenthe two, as it created unnecessary topological limitations with no realized benefit:• An edge expander allows for communication with up to 255 SAS addresses, allowing the SAS initiator to

communicate with these additional devices. Edge expanders can do direct table routing and subtractive routing.(For a brief discussion of these routing mechanisms, see below). Without a fanout expander, you can use at mosttwo edge expanders in your delivery subsystem (because you will connect the subtractive routing port of thoseedge expanders together, and you can't connect any more expanders). To solve this bottleneck, you would usefanout expanders.

• A fanout expander can connect up to 255 sets of edge expanders, known as an edge expander device set, allowingfor even more SAS devices to be addressed. The subtractive routing port of each edge expanders will beconnected to the phys of fanout expander. A fanout expander cannot do subtractive routing, it can only forwardsubtractive routing requests to the connected edge expanders.

Direct routing allows a device to identify devices directly connected to it. Table routing identifies devices connectedto the expanders connected to a device's own PHY. Subtractive routing is used when you are not able to find thedevices in the sub-branch you belong to. This will pass the request to a different branch altogether.Expanders exist to allow more complex interconnect topologies. Expanders assist in link-switching (as opposed topacket-switching) end-devices (initiators or targets). They may locate an end-device either directly (when theend-device is connected to it), via a routing table (a mapping of end-device IDs and the expander the link should beswitched to downstream to route towards that ID), or when those methods fail, via subtractive routing: the link isrouted to a single expander connected to a subtractive routing port. If there is no expander connected to a subtractiveport, the end-device cannot be reached.Expanders with no PHYs configured as subtractive act as fanout expanders and can connect to any number of otherexpanders. Expanders with subtractive PHYs may only connect to two other expanders at a maximum, and in that

Page 122: SCSI wiki

Serial attached SCSI 119

case they must connect to one expander via a subtractive port and the other via a non-subtractive port.SAS-1.1 topologies built with expanders will generally contain one root node in a SAS domain with the oneexception case being topologies that contain two expanders connected via a subtractive-to-subtractive port. If itexists, the root node is the expander which is not connected to another expander via a subtractive port. Therefore, if afanout expander exists in the configuration, it must be the domain's root node. The root node contains routes for allend devices connected to the domain. Note that with the advent in SAS-2.0 of table-to-table routing and new rulesfor end-to-end zoning, more complex topologies built upon SAS-2.0 rules will not contain a single root node.

ConnectorsThe SAS connector is much smaller than traditional parallel SCSI connectors, allowing for the small 2.5-inch(unknown operator: u'strong' mm) drives. SAS currently provides for point data transfer speeds up to 6 Gbit/s, butis expected to reach 12 Gbit/s by the year 2012.The physical SAS connector comes in several different variants:[2]

Image Codename Other names Ext./int. No ofpins

No ofdevices

Comment

SFF-8482 Internal 29 1 This form factor is designed for compatibility with SATA. Thesocket is compatible with SATA drives; however, the SATA socketis not compatible with SFF-8482 (SAS) drives. The picturedconnector is a drive-side connector.

SFF-8484 Internal 32(19)

4 (2) Hi-density internal connector, 2 and 4 lane versions are defined bythe SFF standard.

SFF-8485 Defines SGPIO (extension of SFF 8484), a serial link protocol usedusually for LED indicators.

SFF-8470 Infiniband CX4connector, MolexLaneLink™

External 32 4 Hi-density external connector (also used as an internal connector).

SFF-8086 Internal mini-SAS,internal mSAS

Internal 26 4 This is actually just a particular implementation of SFF-8086, whichcovers a variety of connectors, including SFF-8087 and SFF-8088(below). This unnamed 26-circuit unshielded connector type isuncommon, as SFF-8087 is usually used instead.

SFF-8087 Internal mini-SAS,internal mSAS,internal iSAS

Internal 36 4 Unshielded 36-circuit implementation of SFF-8086. Molex iPass™reduced width internal 4× connector with future 10 Gbit/scapability.

SFF-8088 External mini-SAS,external mSAS,external iSAS

External 26 4 Shielded 26-circuit implementation of SFF-8086. Molex iPass™reduced width external 4× connector with future 10 Gbit/scapability.

Page 123: SCSI wiki

Serial attached SCSI 120

Nearline SASNearline SAS or NL-SAS drives are enterprise SATA drives with a SAS interface, head, media, and rotational speedof traditional enterprise-class SATA drives with the fully capable SAS interface typical for classic SAS drives.System and storage vendors like Dell, EMC, Fujitsu, and IBM are offering these disks for SAN arrays, NASsolutions, and server systems.They feature the following benefits compared to SATA:[3]

•• Dual ports allowing redundant paths•• Ability to connect a device to multiple computers•• Full SCSI command set•• Faster interface compared to SATA, up to 30%, no STP (Serial ATA Tunneling Protocol) overhead•• No need for SATA interposer cards (for high availability of SATA drives SATA interposer cards are needed)To summarize: Nearline SAS drives are simply big, cheap, and slow SAS drives targeted toward nearline storage.

References[1] 12Gb/s SAS to be demonstrated at Technology Showcase 2012 May 9 (http:/ / www. scsita. org/ sas-showcase-2012. html)[2] SFF Committee specifications (ftp:/ / ftp. seagate. com/ sff/ )[3] Desktop, Nearline & Enterprise Disk Drives (http:/ / www. snia. org/ sites/ default/ education/ tutorials/ 2007/ fall/ storage/

WillisWhittington_Deltas_by_Design. pdf) page 20, SATA Compared to SAS (snia education, talk by Willis Whittington, SeagateTechnology)

External links• T10 committee (http:/ / www. t10. org)• SCSI Trade Association (http:/ / www. scsita. org/ )• Current draft revision of SAS 2 from T10 (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=sas2r15. pdf) (6.83 MiB

PDF after registration)• Seagate whitepaper on Nearline SAS (http:/ / www. dell. com/ downloads/ global/ products/ pvaul/ en/

nearline-sas. pdf)• List of SAS controllers with connector type (http:/ / www. scsi4me. com/ sas-connectors. htm)

Page 124: SCSI wiki

Serial Storage Architecture 121

Serial Storage ArchitectureSerial Storage Architecture (SSA) is a serial transport protocol used to attach disk drives to servers. It was inventedby Ian Judd of IBM in 1990. IBM produced a number of successful products based upon this standard before it wasovertaken by the more widely adopted Fibre Channel protocol.SSA was promoted as an open standard by the SSA Industry Association, unlike its predecessor the first generationSerial Disk Subsystem. [1] A number of vendors including IBM, Pathlight Technology and Viacom producedproducts based on SSA. It was also adopted as an ANSI X3T10.1 standard. SSA devices are logically SCSI devicesand conform to all of the SCSI command protocols.SSA provides data protection for critical applications by helping to ensure that a single cable failure will not preventaccess to data. All the components in a typical SSA subsystem are connected by bi-directional cabling. Data sentfrom the adaptor can travel in either direction around the loop to its destination. SSA detects interruptions in the loopand automatically reconfigures the system to help maintain connection while a link is restored.Up to 192 hot swappable hard disk drives can be supported per system. Drives can be designated for use by an arrayin the event of hardware failure. Up to 32 separate RAID arrays can be supported per adaptor, and arrays can bemirrored across servers to provide cost-effective protection for critical applications. Furthermore, arrays can be sitedup to 25 metres apart - connected by thin, low-cost copper cables - allowing subsystems to be located in secure,convenient locations, far from the server itself.With its inherent resiliency and ease of use, SSA is deployed in server/RAID environments, where it is capable ofproviding for up to 80 Mbyte/s of data throughput, with sustained data rates as high as 60 Mbytes/s in non-RAIDmode and 35 Mbytes/s in RAID mode.

Link characteristicsThe copper cables used in SSA configurations are round bundles of two or four twisted pairs, up to 25 metres longand terminated with 9-pin micro-D connectors. Impedances are 75 ohm single-ended, and 150 ohm differential. Forlonger-distance connections, it is possible to use fiber-optic cables up to 10 km (6 mi) in length. Signals aredifferential TTL. The transmission capacity is 20 megabytes per second in each direction per channel, with up to twochannels per cable. The transport layer protocol is non return to zero, with 8B/10B encoding (10 bits per character).Higher protocol layers were based on the SCSI-3 standard.

Products which used SSA• IBM 7133 Disk expansion enclosures• IBM 2105 Versatile Storage Server (VSS)• IBM 2105 Enterprise Storage Server (ESS)• IBM 7190 SBUS SSA Adapter[2]

• Pathlight Technology Streamline PCI Host Bus Adapter• Pathlight Technology SSA Data Pump• Pathlight Technology SAN Gateway

Page 125: SCSI wiki

Serial Storage Architecture 122

References[1][1] IBM 7133 Serial Disk Systems Presentation Guide P9-10[2] http:/ / www-01. ibm. com/ support/ docview. wss?uid=pub1gc26727401

Single Connector Attachment

SCSI hard drives showing 80-pin SCA connector (top) and 68-pinconnector and separate power and configuration jumpers (bottom)

SCSI backplane with 80-pin SCA connectors. HardDrives are mounted on proprietary hot-swappable

caddies.

Single Connector Attachment, or SCA, is a type ofconnection for the internal cabling of SCSI systems.There are two versions of this connector: the SCA-1,which is deprecated, and SCA-2, which is currently inuse in most systems. In addition there are Single-Ended(SE) and Low Voltage Differential (LVD) types of theSCA.

Since hard disk drives are among the components of aserver computer that are the most likely to fail, therehas always been demand for the ability to replace afaulty drive without having to shut down the wholesystem. This technique is called hot-swapping and isone of the main motivations behind the development ofSCA. In connection with RAID, for example, thisallows for seamless replacement of failed drives.

Normally, hard disk drives make use of two cables: onefor data and one for power, and they also have theirspecific parameters (SCSI ID etc.) to be set usingjumpers on each drive. Drives employing SCA haveonly one plug which carries both data and power andalso allows them to receive their configurationparameters from the SCSI backplane. The SCAconnector for parallel SCSI drives has 80 pins, asopposed to the 68 pin interface found on most modernparallel SCSI drives. Serial SCSI drives have SCAconnectors with a smaller number of pins.

Some of the pins in SCA connectors are longer than others, so they are connected first and disconnected last. Thisensures the electrical integrity of the whole system. Otherwise, the angle at which the plug is inserted into the drivecould be the reason for damage because, for instance, the pin carrying the voltage could get connected before itscorresponding ground reference pin. The additional length also provides what is known as a pre-charge whichprovides a means whereby the device is alerted to a pending power surge. That allows a slower transition to fullpower and thereby makes the device more stable.

Page 126: SCSI wiki

Single Connector Attachment 123

SPARCstation 20 drive in cradle

To make better use of their hot-plugging capability, SCA drivesusually are installed into drive bays into which they slide with ease. Atthe far end of these bays is the backplane of the SCSI subsystemlocated with a connector that plugs into the drive automatically when itis inserted.

Full hot-swappable functionality still requires the support of othersoftware and hardware components of the system. In particular theoperating system and RAID layers will need hot-swap support toenable hard drive hot-swapping to be carried out without shuttingdown the system.

StandardsSCSI devices and connectors are specified in SPI-2, SPI-4 and SPI-5 as part of the SCSI-3 Standards Architecture:http:/ / www. t10. org/ scsi-3. htmOrganization responsible for drafts of the specification documents is the Technical Committee T10: http:/ / www.t10. org/

Tagged Command QueuingTagged Command Queuing (TCQ) is a technology built into certain ATA and SCSI[1] hard drives. It allows theoperating system to send multiple read and write requests to a hard drive. ATA TCQ is not identical in function tothe more efficient native command queuing (NCQ) used by SATA drives[2]. SCSI TCQ does not suffer from thesame limitations as ATA TCQ.Before TCQ, an operating system was only able to send one request at a time. In order to boost performance, it hadto decide the order of the requests based on its own, possibly incorrect, idea of what the hard drive was doing. WithTCQ, the drive can make its own decisions about how to order the requests (and in turn relieve the operating systemfrom having to do so). The result is that TCQ can improve the overall performance of a hard drive if it isimplemented correctly.

OverviewFor efficiency the sectors should be serviced in order of proximity to the current head position, rather than in theorder received. The queue is constantly receiving new requests and fulfilling and removing existing requests, andre-ordering the queue according to the current pending read/write requests and the changing position of the head.The exact reordering algorithm may depend upon the controller and the drive itself, but the host computer simplymakes requests as needed, leaving the controller to handle the details.This queuing mechanism is sometimes referred to as "elevator seeking", as the image of a modern elevator in abuilding servicing multiple calls and processing them to minimise travel illustrates the idea well.If the buttons for floors 5, 2, and 4 are pressed in that order with the elevator starting on floor 1, an old elevatorwould go to the floors in the order requested. A modern elevator processes the requests to stop at floors in the logicalorder 2, 4, and 5, without unnecessary travel. Non-queueing disk drives service the requests in the order received,like an old elevator; queueing drives service requests in the most efficient order. This may improve performanceslightly in a system used by a single user, but may dramatically increase performance in a system with many usersmaking widely varied requests on the disk surface.

Page 127: SCSI wiki

Tagged Command Queuing 124

Comparison of SCSI TCQ, ATA TCQ, and SATA NCQ

SCSI TCQSCSI TCQ was the first popular version of TCQ and is still popular today. It allows tasks to be entered into a queueusing one of three different modes[3]:•• head of queue•• ordered•• simpleIn head of queue mode, unique to SCSI TCQ, a task is pushed into the front of a queue, ahead of all other tasksincluding other pending head of queue tasks.[3][2][4] This mode is not used much because it can cause resourcestarvation when abused.In ordered mode, a task must execute after all older tasks have completed and before all newer tasks begin to execute(excluding newer head of queue tasks).[3].Simple mode allows tasks to execute in any order that does not violate the constraints on the tasks in the other twomodes.[3] After a command in a task is completed, a notification is sent by the device that completed the command tothe host bus adapter.[3] Whether or not SCSI TCQ causes massive interrupt overhead depends on the bus being usedto connect the SCSI host bus adapter. On Conventional PCI, PCI-X, PCI Express, and other buses that permit it, firstparty DMA allows for low interrupt overhead. The older ISA bus required a SCSI host adapter to generate a interruptto cause the CPU to program the third-party DMA engine to perform a transfer, and then required another interruptto notify the CPU that a task in the queue was finished,[2] causing high CPU overhead.

SCSI TCQ Tag LengthThe SCSI-3 protocol permits 64 bits to be used in the tag field, allowing up to 264 tasks in one task set to be issuedbefore requiring that some of them complete before any more commands be issued[3]. However, different protocolsthat implement the SCSI protocol might not permit the use of all 64 bits. For example, older parallel SCSI permits 8bits of tag bits, iSCSI permits up to 32 tag bits, and Fibre Channel permits up to 16 bits of tag with tag 0xFFFFreserved. This flexibility allows the designer of a protocol to trade off queuing ability against cost. Networks that canbe large, such as iSCSI networks, benefit from more tag bits to deal with the larger number of disks in the networkand the larger latencies such large networks generate, while smaller-scale networks, such as parallel SCSI chains, donot have enough disks or latency to need many tag bits and can save money by using a system supporting fewer bits.

ATA TCQATA TCQ was developed in attempt to bring the same benefits as SCSI to ATA drives. It is available in bothParallel and Serial ATA.This effort was not very successful because the ATA bus started out as a reduced-pin-count ISA bus. Therequirement for software compatibility made ATA host bus adapters act like ISA bus devices without first partyDMA. When a drive was ready for a transfer, it had to interrupt the CPU, wait for the CPU to ask the disk whatcommand was ready to execute, respond with the command that it was ready to execute, wait for the CPU toprogram the host bus adapter's third party DMA engine based on the result of that command, wait for the third partyDMA engine to execute the command, and then had to interrupt the CPU again to notify it when the DMA enginefinished the task so that the CPU could notify the thread that requested the task that the requested task wasfinished[2]. Since responding to interrupts uses CPU time, CPU utilization rose quickly when ATA TCQ was enabled[2]. Also, since interrupt service time can be unpredictable, there are times when the disk is ready to transfer data butis unable to do so because it must wait for a CPU to respond to the interrupt so that the CPU knows that it needs toprogram the third party DMA engine[2].

Page 128: SCSI wiki

Tagged Command Queuing 125

Therefore, this standard was rarely implemented because it caused high CPU utilization without improvingperformance enough to make this worthwhile[2]. This standard allows up to 32 outstanding commands per device [4].

SATA NCQSATA NCQ is a modern standard which drastically reduces the number of required CPU interrupts compared toATA TCQ. Like ATA TCQ, it allows up to 32 outstanding commands per device[2], but was designed to takeadvantage of the ability of SATA host bus adapters that are not emulating parallel ATA behavior to support firstparty DMA[2]. Instead of interrupting the CPU before the task to force it to program the host bus adapter's DMAengine, the hard drive tells the host bus adapter which command it wants to execute, causing the host bus adapter toprogram its integrated first-party DMA engine with the parameters that were included in the command that wasselected by the hard drive when it was first issued, and then the DMA engine moves the data needed to execute thecommand[2]. To further reduce the interrupt overhead, the drive can withhold the interrupt with the task completedmessages until it gathers many of them to send at once, allowing the operating system to notify many threadssimultaneously that their tasks have been completed[2]. If another task completes after such an interrupt is sent, thehost bus adapter can concatenate the completion messages together if the first set of completion messages has notbeen sent to the CPU[2]. This allows the hard disk firmware design to trade off disk performance against CPUutilization by determining when to withhold and when to send completion messages[2].

References[1] in the form of Parallel SCSI, Serial attached SCSI, and Fibre Channel drives[2] Dees, Brian (November/December 2005). "Native command queuing - advanced performance in desktop storage" (http:/ / ieeexplore. ieee.

org/ xpl/ freeabs_all. jsp?isnumber=33027& arnumber=1549750& count=13& index=1) (PDF, fee required). IEEE Potentials 24 (4): 4–7.doi:10.1109/MP.2005.1549750. .

[3] "SCSI Architecture Model - 3 (SAM-3)" (http:/ / www. t10. org/ ftp/ t10/ drafts/ sam3/ sam3r14. pdf) (PDF). . Retrieved 2007-02-24.[4] "1532D: AT Attachment with Packet Interface - 7 Volume 1" (http:/ / www. t13. org/ Documents/ UploadedDocuments/ docs2004/

d1532v1r4b-ATA-ATAPI-7. pdf) (PDF). 1532D: AT Attachment with Packet Interface - 7. . Retrieved 2007-01-02.

External links• Can Command Queuing Turbo Charge SATA? (http:/ / www. tomshardware. com/ reviews/

command-queuing-turbo-charge-sata,922. html) by Patrick Schmid, and Achim Roos of Tom's Hardware Guide

Page 129: SCSI wiki

USB Attached SCSI 126

USB Attached SCSIUSB Attached SCSI (UAS) is a computer protocol used to move data to and from USB storage devices such as harddrives, solid-state drives, and thumb drives. UAS depends on the USB protocol, and uses the standard SCSIcommand set. UAS is defined across two standards, the T10 "USB Attached SCSI" (T10/2095-D) referred to as the"UAS" specification, and the USB "Universal Serial Bus Mass Storage Class - USB Attached SCSI Protocol(UASP)" specification. The T10 technical committee of the International Committee for Information TechnologyStandards (INCITS) develops and maintains the UAS specification; the SCSI Trade Association (SCSITA) promotesthe UAS technology. The USB mass-storage device class (MSC) Working Group develops and maintains the UASPspecification; the USB Implementers Forum, Inc. (USB-IF) promotes the UASP technology.

UAS Goals•• Designed to directly address the failings of the USB mass-storage device class Bulk-Only Transports (BOT)

•• Enables Command Queuing and out-of-order completions for USB mass-storage devices•• Eliminates software overhead for SCSI command phases

•• Up to 64K commands may be queued•• SCSI SAM-4 compliant•• USB 3.0 SuperSpeed and USB 2.0 High-speed versions defined

• USB 3.0 SuperSpeed – host controller (xHCI) hardware support, no software overhead for out-of-ordercommands

• USB 2.0 High-speed – Significantly enables command queuing in USB 2.0 drives•• Streams were added to the USB 3.0 SuperSpeed protocol for supporting UAS out-of-order completions

•• USB 3 host controller (xHCI) provides hardware support for Streams

External links• USB Attached SCSI Protocol (UASP) v1.0 and Adopters Agreement [1]

References[1] http:/ / www. usb. org/ developers/ devclass_docs/ uasp_1_0. zip

Page 130: SCSI wiki

Very-high-density cable interconnect 127

Very-high-density cable interconnect

A VHDCI connector.

A very-high-density cable interconnect (VHDCI) is a 68-pinconnector that was introduced in the SPI-3 document of SCSI-3. TheVHDCI connector is a very small connector that allows placement offour wide SCSI connectors on the back of a single PCI card slot.Physically, it looks like a miniature Centronics type connector. It usesthe regular 68-contact pin assignment.

VHDCI cables have also been used by NVidia as an external PCIExpress 8-lane interconnect, and used in Quadro Plex VCS.

ATI Technologies is now using VHDCI connectors on the FireMV2400 to convey two DVI and two VGA signals on a single connector,and ganging two of these connectors side-by-side in order to allow the FireMV 2400 to be a low-profile quad displaycard.

Juniper Networks uses VHDCI connectors for their 12- and 48-port 100Base-TX PICs (physical interface cards).The cable connects to the VHDCI connector on the PIC on one end, via an RJ-21 connector on the other end, to anRJ-45 patch panel.

World Wide NameA World Wide Name (WWN) or World Wide Identifier (WWID) is a unique identifier used in storage technologiesincluding Fibre Channel, Advanced Technology Attachment (ATA) or Serial Attached SCSI (SAS). A WWN maybe employed in a variety of roles, such as a serial number or for addressability; for example, in Fibre Channelnetworks, a WWN may be used as a WWNN (World Wide Node Name) to identify a switch, or a WWPN (WorldWide Port Name) to identify an individual port on a switch. Two WWNs which do not refer to the same thing shouldalways be different even if the two are used in different roles, i.e. a role such as WWPN or WWNN does not define aseparate WWN space. The use of burned-in addresses and specification compliance by vendors is relied upon toenforce uniqueness.

FormatsEach WWN is an 8 or 16 byte number, the length and format of which is determined by the most significant fourbits, which are referred to as an NAA (Network Address Authority.) The remainder of the value is derived from anIEEE OUI (often the term "Company Identifier" is used as a synonym for OUI) and vendor-supplied information.Each format defines a different way to arrange and/or interperate these components. OUIs are used with the U/L andmulticast bits zeroed, or sometimes even omitted (and assumed zero.)The WWN formats include[1]:• "Original" IEEE formats are essentially a two-byte header followed by an embedded MAC-48/EUI-48 address

(which contains the OUI.) The first 2 bytes are either hex 10:00 or 2x:xx (where the x's are vendor-specified)followed by the 3-byte OUI and 3 bytes for a vendor-specified serial number. Thus, the difference between NAA1 format and NAA 2 format is merely the presence of either a zero pad or an extra 3 nibbles of vendorinformation.

•• "Registered" IEEE formats dispense with padding and place the OUI immediately after the NAA. The OUI is nolonger considered to be part of a MAC-48/EUI-48 address. For NAA 5 format, this leaves 9 contiguous nibblesfor a vendor-defined value. This is the same format used by the companion NAA 6 format, the only difference

Page 131: SCSI wiki

World Wide Name 128

being a 16-byte number space is assumed, rather than an 8-byte number space. This leaves a total of 25contiguous nibbles for vendor-defined values.

•• "Mapped EUI-64" formats manage to fit an EUI-64 address into an 8-byte WWN. Since the NAA is mandatory,and takes up a nibble, this represents a four-bit deficit. These four bits are recouped through the following tricks:First, two bits are stolen from the NAA by allocating NAAs 12, 13, 14, and 15 to all refer to the same format.Second, the remaining two bits are recouped by omitting the U/L and multicast bits from the EUI-64's OUI. Whenreconstructing the embedded EUI-64 value, the U/L and multicast bits are assumed to have carried zero values.

PresentationWWN addresses are predominantly represented as colon separated hexadecimal octets, MSB-first, with leadingzeros. However, there is much variance between vendors[2].

List of OUIs commonly seen as WWN Company Identifiers• 00:50:76 IBM• 00:17:38 IBM, formerly XIV.• 00:A0:98 NetApp• 00:01:55 Promise Technology, Inc• 00:60:69 Brocade Communications Systems• 00:05:1E Brocade Communications Systems, formerly owned by Rhapsody Networks• 00:60:DF Brocade Communications Systems, formerly CNT Technologies Corporation• 00:05:30 Cisco• 00:05:73 Cisco• 00:05:9b Cisco• 00:E0:8B QLogic HBAs, original identifier space• 00:1B:32 QLogic HBAs. new identifier space starting to be used in 2007• 00:C0:DD QLogic FC switches• 00:90:66 QLogic formerly Troika Networks• 00:11:75 QLogic formerly PathScale, Inc• 08:00:88 Brocade Communications Systems, formerly McDATA Corporation. WWIDs begin with 1000.080• 00:60:B0 Hewlett-Packard - Integrity and HP9000 servers. WWIDs begin with 5006.0b0• 00:11:0A Hewlett-Packard - ProLiant servers. Formerly Compaq. WWIDs begin with 5001.10a• 00:01:FE Hewlett-Packard - EVA disk arrays. Formerly Digital Equipment Corporation. WWIDs begin with

5000.1fe1 or 6000.1fe1• 00:17:A4 Hewlett-Packard - MSL tape libraries. Formerly Global Data Services. WWIDs begin with

200x.0017.a4• 00:60:48 EMC Corporation, for Symmetrix• 00:60:16 EMC Corporation, for CLARiiON/VNX• 00:10:86 ATTO Technology• 00:23:29 DDRdrive LLC [3], for DDRdrive X1• 00:A0:B8 Symbios Logic Inc.• 00:0C:50 Seagate Technology• 00:00:C9 Emulex• 00:14:EE Western Digital

Page 132: SCSI wiki

World Wide Name 129

External links• IEEE OUI list [4]

References[1] IEEE. "Guidelines for Fibre Channel Use of the Organizationally Unique Identifier (OUI)" (http:/ / standards. ieee. org/ develop/ regauth/ tut/

fibre. pdf). .[2] Richard Butler. "WWN Notes v1.3" (https:/ / community. emc. com/ servlet/ JiveServlet/ previewBody/ 5136-102-1-18154/

WWN_Notes_v1. 3. pdf). .[3] http:/ / www. ddrdrive. com/[4] http:/ / standards. ieee. org/ regauth/ oui/ oui. txt

Page 133: SCSI wiki

Article Sources and Contributors 130

Article Sources and ContributorsSCSI  Source: http://en.wikipedia.org/w/index.php?oldid=494082852  Contributors: 16@r, 193.203.83.xxx, 2fort5r, 2strokewool, 777sms, 8.253, A876, Aarktica, Adamantios, Addw, AdeMiami,Adrian, Agentbla, Ahoerstemeier, Akasnakeyes, Al Lemos, Alansohn, Aldenrw, Aldie, Alecv, Alex, AlistairMcMillan, Andrew sh, Angelic Wraith, Antimatt, Arjun01, Arunajay, Atama,Austinmurphy, Avapoet, BFunk, Badgernet, Balabiot, Benefros, Berdidaine, Bergert, Bigdumbdinosaur, Bletch, Blugill, Bmicomp, Bobanny, Bobblewik, Bookinvestor, Boooooooooob, Borgx,Brandon, Bumm13, Butros, CALR, CB1226, Cab88, CarbonLifeForm, Ceros, CesarB's unpriviledged account, ChadCloman, Charlieleake, CharlotteWebb, Chmod007, ChristTrekker,Christian75, Ckmac97, Cohesion, Colin Keigher, ComCat, Commander Keane, Conversion script, Corti, CostyaV, Crazycomputers, Crdillon, Crystina7, Cy jvb, Cybercobra, Damieng, Dan akajack, DanielRigal, DarthShrine, Dasparwani, DavidDouthitt, DeadEyeArrow, Deflective, Deineka, Demonkoryu, Dhp1080, Diannaa, Disavian, DmitryKo, DocWatson42, Douglas goodall,Dpbsmith, DragonHawk, Droll, Dtcdthingy, Duducoutinho, Dysprosia, E2eamon, Eagles2016, Edderso, Edokter, Electron9, Eleven81, Eloquence, Engineerism, Epbr123, Everyking,Ewlyahoocom, Exert, Extraordinary, FAchi, Flameeyes, Flockmeal, Florian Nanu, Flying fish, Francs2000, Fred J, FrozenPurpleCube, Gaurav, Gdo01, Gekedo, Gene Nygaard, Ghaberek,Ghakko, Ghettoblaster, Giftlite, Giraffedata, Gjs238, Guy Harris, Hac13, Hadal, Haham hanuka, HarisM, Hbent, Hellboy4311, Hephaestos, Heron, Hopp, Ht1848, ILike2BeAnonymous, IanPitchford, Ian.yy.huang, Ilcastro, JTN, James Foster, Jeh, Jesse Viviano, Jim10701, Joezamboni, John Vandenberg, JohnAlbertRigali, JohnI, Jonverve, KSiimson, Kbdank71, Kewp, Klausness,Koman90, Kozuch, Krawi, Kubanczyk, Kwamikagami, LFaraone, Latka, LeaveSleaves, Lee Cremeans, Lee Daniel Crocker, Lenehey, Lightmouse, Luckyherb, Luggerhead, Luk, M8R-lc06bv,MER-C, MSGJ, Mailer diablo, Marcok, Martarius, Matt Chase, Matt Crypto, MatthewWilcox, Maurreen, Maury Markowitz, Mausy5043, Mav, Mclayto, MichaelJanich, MikeStone2012, MirrorVax, Mishrsud, Mitch Ames, Modster, Mscritsm, Mulad, Music Sorter, Nakon, Napalm Llama, Ndenison, Neilm, NellieBly, Nicholsr, Nicolas Melay, Nightscream, Nikai, Nixdorf, Numa,Ohconfucius, Otac0n, Pagingmrherman, Patcat88, Paul Suhler, Pelago, Philip Trueman, Piano non troppo, Pidgeot, Pjoef, Pmc, Pol098, Poweroid, Profoss, Public Menace, Pweltz, Qxz,RDBrown, RHaden, RJFJR, Rammer, Raptor007, Rdsmith4, RedWolf, RedWordSmith, Reddi, Redgrittybrick, Reedy, Requestion, Rich Farmbrough, Rilak, RivRubicon, Rjgodoy, Rjwilmsi,Rolfvandekrol, Rrohbeck, Rwwww, SNx, Sabre centaur, Scootey, Scorpion7, Scsidrafter, Seb az86556, Sergei, Serpent's Choice, Sfoskett, Shlbrt, Sietse Snel, Simetrical, Sin-man, Smiteri, Soap,SolKarma, Solitude, Some jerk on the Internet, SpaceFlight89, Speters33w, Sridhar.gattu, Srikeit, Ste.Ri, Steveprutz, StorageMania, Sunku here, Surv1v4l1st, Tannin, TechControl, TechPurism,Teknic, Tempshill, TeslaMaster, The Anome, TheJosh, Tide rolls, Tigertiger, Tnsnick, Tnxman307, Tolien, Tom94022, Toreau, Tubby, UncleBubba, Uriyan, VMS Mosaic, VampWillow,Versageek, Vidarlo, Whosyourjudas, WideArc, Wilko12, William Avery, Williamv1138, Winthrowe, Wisden17, Woohookitty, Wtshymanski, Zac67, Zoicon5, Zondor, Σ, 527 anonymous edits

Active terminator  Source: http://en.wikipedia.org/w/index.php?oldid=407382651  Contributors: Bluemoose, Bryan Derksen, Cyrius, Gerbrant, Nibblus, Saxbryn

Advanced SCSI Programming Interface  Source: http://en.wikipedia.org/w/index.php?oldid=471971620  Contributors: Alecv, Anon lynx, Episteme-jp, Eras-mus, Everyking, Frap, Glenfarclas,Helix84, Kbdank71, Liftarn, MarchHare, Marcika, Mirror Vax, Mobius27, Nixeagle, Rich Farmbrough, Ruud Koot, Sandstein, Sbmeirow, Sbonds, Sdrtirs, Spikey, T chan3819, The Anome,Tony1, Vina, Voidvector, Zoe, 29 anonymous edits

SCSI architectural model  Source: http://en.wikipedia.org/w/index.php?oldid=460584925  Contributors: Avinash.shrimali, Balabiot, Bezenek, JForget, Kubanczyk, Luk, Melrin, Neilm,Pboyd04, Robenel, 2 anonymous edits

SCSI CDB  Source: http://en.wikipedia.org/w/index.php?oldid=487744844  Contributors: AlexandriNo, Drilnoth, Mysid, Neilm, Pboyd04, Pol098, Tek-ops, 3 anonymous edits

SCSI check condition  Source: http://en.wikipedia.org/w/index.php?oldid=332272400  Contributors: Neilm, Ste.Ri

SCSI connector  Source: http://en.wikipedia.org/w/index.php?oldid=476555561  Contributors: Adamantios, Adeebee, Akb4, Bigdumbdinosaur, Bobblewik, Brandon, Brettstrawbridge,Bumm13, CB1226, Cab88, Canterbury Tail, Chowbok, ChrisHodgesUK, ChristTrekker, Claunia, Cleared as filed, Cybercobra, Darklilac, Forever Old, Frettled, Gadget850, Haikupoet, Haukurth,Hellbus, IMSoP, Illumined, Improv, Joeinwap, La gaie, Letdorf, Lupin, MSGJ, Mac128, Mahjongg, MeekMark, Mixabest, Neilm, Nicolaasuni, Oaktree b, Pairadox, PigFlu Oink, Pinball22,Pweltz, RavenWing71, Rilak, Royan, Sdrtirs, Shieldforyoureyes, Smallpond, Speters33w, Steveprutz, Wbm1058, William Allen Simpson, 41 anonymous edits

SCSI contingent allegiance condition  Source: http://en.wikipedia.org/w/index.php?oldid=381341427  Contributors: Greenrd, Neilm, Pearle, R. S. Shaw, Splintercellguy, Ste.Ri, 3 anonymousedits

Domain validation  Source: http://en.wikipedia.org/w/index.php?oldid=252306727  Contributors: Dialectric, RJHall, Stoph, 3 anonymous edits

Electrical termination  Source: http://en.wikipedia.org/w/index.php?oldid=447691102  Contributors: Adamantios, Af64writer, Alan Liefting, AlexeyV, Andres, AvicAWB, Btilm, Deville,EhSeuss, Electron9, Ewlyahoocom, Flightsoffancy, Gene Nygaard, Hellbus, HexaChord, Jim.henderson, Kenyon, Kvng, Leszek Jańczuk, M jurrens, Mandarax, Mlewis000, Nagle, Nbarth, OAS,RockMaestro, Rogerbrent, Tigga en, Underpants, 26 anonymous edits

Enclosure Services Interface  Source: http://en.wikipedia.org/w/index.php?oldid=332195080  Contributors: Luk, Neilm, Pagrashtak, That Guy, From That Show!

Hard Disk 20SC  Source: http://en.wikipedia.org/w/index.php?oldid=467859338  Contributors: Chip512007, Chris the speller, GoingBatty, John Nevard, Kbdank71, Mac128, Mirror Vax, Tamerof hope, 9 anonymous edits

Host adapter  Source: http://en.wikipedia.org/w/index.php?oldid=495093987  Contributors: AVM, Aechols, Apapadop, Arunajay, Bingoeleven, Bovineone, Braghadees, Brianski, Colfer2,Deineka, EncMstr, Georgelza, Gobs04, Guy Harris, Harryboyles, I already forgot, Jamelan, Jharcourt, Jordi Roqué, Kb, KelleyCook, Kubanczyk, Kvedulv, Liliuokalani, MarkBrooks, MichaelHardy, Mkswanson, Mormon65, Mrocha, Mrzaius, Mulad, Noogenesis, Pedant17, Radiojon, RedWolf, Reedy, Rwwww, Sanspeur, SchreiberBike, SteinbDJ, Timbatron, TygerStripe, W Nowicki,103 anonymous edits

HyperSCSI  Source: http://en.wikipedia.org/w/index.php?oldid=437888979  Contributors: Cburnett, Frap, Glenn, IronOak, Kaze0010, Kubanczyk, Ronz, Rwwww, W Nowicki, 12 anonymousedits

iSCSI  Source: http://en.wikipedia.org/w/index.php?oldid=491882078  Contributors: A876, Aarondailey, Abisys, Adcomcorp, Alansohn, Albanaco, Aldie, Allenc28, AnatolyVilchinsky,Andysontheroad, Aneczkab, Anna Lincoln, Anthony Fok, AviN1, Banderer, Barek, Bart.vanassche, Bdelisle, Benley, Bggoldie, Biot, Blowdart, Boleon, Bookinvestor, Bousquf, Bovineone,Brianicus, Brucela, Btilm, Butlerm, CRGreathouse, Cain Mosni, Canaima, Carey Evans, Catfish777, Celestra, Ceros, CesarB, Charles Gaudette, Charleswj, Chowbok, Chris the speller, Chrisbolt,Coffee, Col.panik, Corti, CostyaV, Cpeel, Csabo, Custardninja, Cy jvb, DMahalko, DNFCorp, DStoykov, DavidDouthitt, Deflective, Demitsu, DenGer, Djj, Dmdwiggi, Dmeranda,Dominic.ashton, Drmies, Edcolins, Eddyq, EdgeOfEpsilon, Epbr123, Ericyu, Fcami, Fostermarkd, Franke3c, Fredtorrey, Funandtrvl, Georgewilliamherbert, Glenn, Grstain, Gudeldar, Gvvua,Haakon, Haidut, Hellkeeper, Henriok, Hpcanswers, Hschlarb, I already forgot, Ingvarr2000, Iolar, Jackfork, Jacob1044, Jadecristal, Jakllsch, Jc monk, JeLuF, Jeroenr, Jerome Charles Potts, JesseViviano, Jfcotton, Jliv, Joey Novak, Jonverve, Kaze0010, Kbrose, Ke4qqq, Kenleezle, Ketiltrout, Kevintolly, Khatru2, Kiddington, Klaus100, KnightRider, Kubanczyk, Kwamikagami, Lmatt,Lyod, Maderiaboy, Malis-cs, Mallboro, MarcNozell, Marcfl, Marek69, Matt Crypto, Melnakeeb, MeltBanana, Michael Hardy, Mor Griv, Music Sorter, NJM, Naddy, NapoliRoma, Nishkid64,Nono64, Olmsfam, Orokusaki, P shadoh, PHaze, Pagingmrherman, Paisa, Paul Koning, Pedant17, Perfecto, Peytonbland, Phatom87, Philipcurrito, Pmc, Pooua, Project2501a, Rasmus Faber,Raysonho, Rchandra, Riaanvn, Rich Farmbrough, Rocketshiporion, Ronz, Rose Garden, Ruleke, Rwwww, S36e175, SANguru, SHayter, Savisko, Seitz, Sfoskett, Shamasis, Sietse Snel,Simonefrassanito, Singerw1, Skolor, Skouperd, Snowolf, Starbane, SteinbDJ, Stereo, Stereoroid, StorageSys, Storagegeek007, Sunnyvegas, Suruena, Swooshiain, Tedder, TekMason,Terence626, The Anome, The Thing That Should Not Be, Thtse, Thumperward, Titaniumlegs, Tqbf, Trasz, Tulcod, Uhw, UncleBubba, Unyoyega, VadZ, Verdatum, Vickaul, Vrenator, Vy0123,W Nowicki, Whosyourjudas, Xunillator, Zink Dawg, 624 anonymous edits

iSCSI Boot Firmware Table  Source: http://en.wikipedia.org/w/index.php?oldid=486272415  Contributors: Alvin Seville, Bearcat, Docu, Jeremy Visser, Rangita, ThorstenStaerk, W Nowicki, 1anonymous edits

ISCSI Conformance Testing and Testing Tool Requirement  Source: http://en.wikipedia.org/w/index.php?oldid=427602895  Contributors: Lancests, Malcolma, Rich Farmbrough,Tubocurarine, W Nowicki

iSCSI Extensions for RDMA  Source: http://en.wikipedia.org/w/index.php?oldid=467981771  Contributors: Bunnyhop11, Erezz, Frap, Grin, Hpcanswers, Phatom87, W Nowicki, 3 anonymousedits

Key Code Qualifier  Source: http://en.wikipedia.org/w/index.php?oldid=475836106  Contributors: Afalbrig, Ankle, Chrisbolt, Dancrumb, Droge, Jbl1975, Kbdank71, Neilm, Rogerdpack,Ste.Ri, TechPurism, 16 anonymous edits

Layer Jump Recording  Source: http://en.wikipedia.org/w/index.php?oldid=486690893  Contributors: Aitias, Daviburg, Drjt87, Miracle Pen, Open2universe, Sadads, Zotel, 4 anonymous edits

List of SCSI message codes  Source: http://en.wikipedia.org/w/index.php?oldid=427427256  Contributors: AJim, Apophos, Baccyak4H, Melaen, Neilm, Retired username, 4 anonymous edits

Page 134: SCSI wiki

Article Sources and Contributors 131

Logical block addressing  Source: http://en.wikipedia.org/w/index.php?oldid=496562805  Contributors: Ahsan386fast, Alai, Anna Lincoln, AnnaP, Astronouth7303, B9136057, Bezenek,Bobo192, Callmejosh, Chealer, Chris01720, Ckywiki, Croperz, Diverman, DmitryKo, EvilReborn, Finlay McWalter, Frap, GeorgeMoney, Hgrosser, Jeh, Jengelh, Joey.dale, Kajervi, Kbdank71,Klassikmusik, Kocio, Liberoo, Luk, M1ss1ontomars2k4, MWFarrar, Madoka, MattGiuca, Mboverload, Meconopsis, Merovingian, Michael Hardy, Mirror Vax, Mulad, Music Sorter, Nayuki,Neilm, Ozga, Pedant17, R. S. Shaw, Richard W.M. Jones, Romanc19s, SandStone, SimonP, Simonfl, Skapur, Slady, Tarquin, TheStarman, Thorwald, Unyoyega, W Hukriede, Widefox,WikHead, Williampoetra, Yggdræsil, Yuhong, Zondor, 86 anonymous edits

Logical Unit Number  Source: http://en.wikipedia.org/w/index.php?oldid=491588143  Contributors: Abune, Amitabdev, Balabiot, Bloodshedder, CanisRufus, Cmckulka, Colonel Warden,Daniel7066, Defixio, Dgcaller, Eddycurrents, Franl, Frap, Giraffedata, J'raxis, Jandalhandler, JonathanLivingston, Jonathanchaitow, Kubanczyk, Lucky 6.9, Luk, MeltBanana, Mike Schwartz,Mirror Vax, Mr. Shoeless, NBS, NapoliRoma, Oneiros, Promethean, R. S. Shaw, Reedy, Rich Farmbrough, Richard New Forest, Rwwww, Sanspeur, Sean William, Sfoskett, Sietse Snel,Soumyasch, Splat215, Tide rolls, Tijuana Brass, Zagyg, 69 anonymous edits

Mount Rainier (packet writing)  Source: http://en.wikipedia.org/w/index.php?oldid=473284244  Contributors: Abdull, AlistairMcMillan, Angela, Appraiser, Aquarium h2o, Belg4mit,Betacommand, Bruce89, CesarB, Ceyockey, Choppingmall, Crissov, Cybercobra, Dan100, Docu, ESkog, Evice, FT2, Franklindemann, Gayasri, Gothmog.es, Hhielscher, Hugh Bennett, Idleguy,Jerryobject, Jesse Viviano, Kingpin13, Kubanczyk, Lexicon, Matthiaspaul, Neilc, Nosebud, Numa, Quarl, QuillOmega0, R6MaY89, Rajiv Varma, Rich Farmbrough, SkyWalker, Thepatriots,Thumperward, Tim1988, Timbo76, VanBurenen, Xerces8, Y2kbug, 28 anonymous edits

MultiMedia Commands  Source: http://en.wikipedia.org/w/index.php?oldid=494480205  Contributors: Bearcat, Electron9, Firenads, Sergei, Specious, Vadmium, 11 anonymous edits

NCR 5380  Source: http://en.wikipedia.org/w/index.php?oldid=378805416  Contributors: Alecv, Iridescent, Mirror Vax, RevelationDirect, Rilak, Rjwilmsi, 2 anonymous edits

NCR 53C9x  Source: http://en.wikipedia.org/w/index.php?oldid=445191785  Contributors: Alecv, Bigdumbdinosaur, Cburnett, Instinct, Iridescent, Mirror Vax, RevelationDirect, Rilak, RxS,Ryanaxp, Third and, Toffile, 2 anonymous edits

Parallel SCSI  Source: http://en.wikipedia.org/w/index.php?oldid=495834809  Contributors: AJim, Ace of Spades, Alecv, Alll, Bigdumbdinosaur, Bobblewik, ChristTrekker, Cy jvb, DigitalBrains, DragonHawk, Ewlyahoocom, Ex Puexto, Gadfium, Gasponia, Gene Nygaard, Guy Harris, Kundor, Lavenderbunny, Maxim Masiutin, Metageek, Mild Bill Hiccup, Mo ainm, MusicSorter, Neilm, Pboyd04, Reedy, Rlobkovsky, RockMFR, Ryan Rutledge, SDC, StaticSan, Ste.Ri, The Trwen, 17 anonymous edits

Persistent binding  Source: http://en.wikipedia.org/w/index.php?oldid=456501444  Contributors: A State Of Trance, Amrithraj, Fabrictramp, Logan, Pnm, Robsavoie, StevenDH,Thibault.ketterer, Triwbe, Vizjim, ZZyXx, 8 anonymous edits

SAF-TE  Source: http://en.wikipedia.org/w/index.php?oldid=353908206  Contributors: DGG, KurtRaschke, Ospalh, Zac67, 1 anonymous edits

SCSI / ATA Translation  Source: http://en.wikipedia.org/w/index.php?oldid=271965911  Contributors: Benefros, JaGa

SCSI command  Source: http://en.wikipedia.org/w/index.php?oldid=490379953  Contributors: A D Monroe III, AlexBadea, Alison, Apophos, Arnoudmulder, Balabiot, Bigdumbdinosaur, Bub's,Chrisbolt, Doug363, Eeekster, Frodet, Grokus, Interiot, Mailer diablo, Neilm, Pol098, Recognizance, Ste.Ri, Titaniumlegs, 16 anonymous edits

SCSI diagnostic pages  Source: http://en.wikipedia.org/w/index.php?oldid=332272409  Contributors: Neilm, 1 anonymous edits

SCSI element codes  Source: http://en.wikipedia.org/w/index.php?oldid=317989678  Contributors: Amalas, Neilm, WVhybrid, 1 anonymous edits

SCSI element status codes  Source: http://en.wikipedia.org/w/index.php?oldid=317989688  Contributors: Amalas, Neilm, Tmopkisn, WVhybrid, 2 anonymous edits

SCSI Enclosure Services  Source: http://en.wikipedia.org/w/index.php?oldid=330289036  Contributors: Deor, EagleOne, Frap, Giraffedata, Gogo Dodo, Luk, Neilm, Oneiros, Radagast83,Robenel, Sagaciousuk, Sfan00 IMG, Styrofoam1994, Tomchiukc, Zac67, 7 anonymous edits

SCSI Format Unit Command  Source: http://en.wikipedia.org/w/index.php?oldid=490379563  Contributors: Bigdumbdinosaur, Dialectric, Eeekster, Kbolino, Neilm, Strib, Uncle G

SCSI high byte termination  Source: http://en.wikipedia.org/w/index.php?oldid=487482983  Contributors: Neilm, 3 anonymous edits

SCSI host adapter  Source: http://en.wikipedia.org/w/index.php?oldid=482364092  Contributors: Balabiot, Camembert, Frap, Gardar Rurak, Ghakko, Hqduong, JTN, Kimiko, MrJones, Nikai,PKT, Posix memalign, RJFJR, Reddi, Tannin, Tohobbes, 6 anonymous edits

SCSI initiator and target  Source: http://en.wikipedia.org/w/index.php?oldid=488159444  Contributors: Dcfleck, Fetchcomms, Franl, Funandtrvl, Gardar Rurak, Khatru2, Kubanczyk, Mikeblas,Neilm, Salamurai, Stephan Leeds, Thomas.uhl, Whosyourjudas, 6 anonymous edits

SCSI Inquiry Command  Source: http://en.wikipedia.org/w/index.php?oldid=440370643  Contributors: Bigdumbdinosaur, Midnightcomm, Mysid, Neilm, Thtse, Uncle G, 2 anonymous edits

SCSI log pages  Source: http://en.wikipedia.org/w/index.php?oldid=332223989  Contributors: Eastlaw, Mirror Vax, Neilm

SCSI Log Select Command  Source: http://en.wikipedia.org/w/index.php?oldid=490380382  Contributors: Apophos, Eeekster, Mysid, Neilm, Richielary, 4 anonymous edits

SCSI Log Sense Command  Source: http://en.wikipedia.org/w/index.php?oldid=424045859  Contributors: Apophos, Graingert, Neilm, Nv8200p, 3 anonymous edits

SCSI mode pages  Source: http://en.wikipedia.org/w/index.php?oldid=465864264  Contributors: Apophos, Luchnikov, Mirror Vax, Neilm, Wiszkowski, 1 anonymous edits

SCSI Mode Select Command  Source: http://en.wikipedia.org/w/index.php?oldid=490379844  Contributors: Apophos, Eeekster, Mysid, Neilm

SCSI Mode Sense Command  Source: http://en.wikipedia.org/w/index.php?oldid=493888382  Contributors: Mysid, Neilm, Ofiachain, 5 anonymous edits

SCSI Pass Through Interface  Source: http://en.wikipedia.org/w/index.php?oldid=437198186  Contributors: AnatolyVilchinsky, Anon lynx, FleetCommand, Gaius Cornelius, Glenfarclas,Kbrose, Rror, Voidvector, 6 anonymous edits

SCSI Pass-Through Direct  Source: http://en.wikipedia.org/w/index.php?oldid=487234561  Contributors: Aaron44126, Andareed, Anon lynx, Chzz, Cyrus XIII, DanielPharos, Devin122,Drw25, Findus1, FleetCommand, Frap, Fullgames, Jackie, JensRex, Joseph881, LkMsWb, Macraig, Oldmankdude, Phatom87, Sillent DX, SmOtNeT, Thealliedhacker, Uzume, Warren, Xooon,22 anonymous edits

SCSI Peripheral Device Type  Source: http://en.wikipedia.org/w/index.php?oldid=486485614  Contributors: Ajitk, Bigdumbdinosaur, Darkwind, Download, Fivemack, Greenrd, Justintwr,Neilm, Pol098, 4 anonymous edits

SCSI RDMA Protocol  Source: http://en.wikipedia.org/w/index.php?oldid=490270768  Contributors: AlfredR, Bart.vanassche, Chris Chittleborough, Frap, Gringo5000, Indulis.b, Marcfl,Ottawahitech, 14 anonymous edits

SCSI Read Capacity Command  Source: http://en.wikipedia.org/w/index.php?oldid=490378103  Contributors: Eeekster, ILike2BeAnonymous, Mion, Mysid, Neilm, Stwalkerster, Uncle G

SCSI Read Commands  Source: http://en.wikipedia.org/w/index.php?oldid=436507710  Contributors: Apophos, Electron9, Mysid, Neilm, PigFlu Oink, Rjwilmsi, 5 anonymous edits

SCSI Receive Diagnostic Results Command  Source: http://en.wikipedia.org/w/index.php?oldid=490379661  Contributors: Eeekster, Greenrd, Mysid, Neilm, 1 anonymous edits

SCSI Report LUNs Command  Source: http://en.wikipedia.org/w/index.php?oldid=428546846  Contributors: Greenrd, Grokus, Johnvlevy, Katharineamy, Mattg82, Woohookitty

SCSI Request Sense Command  Source: http://en.wikipedia.org/w/index.php?oldid=495375402  Contributors: Apophos, Benefros, Bigdumbdinosaur, Mysid, Neilm, Rogerdpack, Uncle G, 7anonymous edits

SCSI Send Diagnostic Command  Source: http://en.wikipedia.org/w/index.php?oldid=332223950  Contributors: Greenrd, Luk, Mysid, Neilm, Uncle G, 1 anonymous edits

SCSI standalone enclosure services  Source: http://en.wikipedia.org/w/index.php?oldid=374273162  Contributors: Giraffedata, Neilm, 1 anonymous edits

Page 135: SCSI wiki

Article Sources and Contributors 132

SCSI Start Stop Unit Command  Source: http://en.wikipedia.org/w/index.php?oldid=322043432  Contributors: Bigdumbdinosaur, Mysid, Neilm, Ste.Ri

SCSI Status Code  Source: http://en.wikipedia.org/w/index.php?oldid=490380158  Contributors: Apophos, Eeekster, Luk, Neilm, Rickjpelleg, Ste.Ri, TechPurism, The Rambling Man, 2anonymous edits

SCSI terminating resistor  Source: http://en.wikipedia.org/w/index.php?oldid=404313983  Contributors: 0807127c, Bearcat, Beeblebrox, BoomerAB, Dank, Dekart, Jamie Razek, Koppas,Radiojon, Rpyle731, Woohookitty

SCSI Test Unit Ready Command  Source: http://en.wikipedia.org/w/index.php?oldid=399507028  Contributors: Cheesy123456789, Greenrd, Grokus, Neilm, Rrohbeck, 3 anonymous edits

SCSI Write Commands  Source: http://en.wikipedia.org/w/index.php?oldid=490380085  Contributors: AlexBadea, Apophos, Eeekster, Ged Davies, Lakche, Mysid, Neilm, 5 anonymous edits

Sense Key  Source: http://en.wikipedia.org/w/index.php?oldid=386107638  Contributors: Afalbrig, Ankle, Chrisbolt, Dancrumb, Droge, Jbl1975, Kbdank71, Neilm, Rogerdpack, Ste.Ri,TechPurism, 16 anonymous edits

Serial attached SCSI  Source: http://en.wikipedia.org/w/index.php?oldid=494102063  Contributors: 119, Abisys, Adamantios, Adambro, Afiler, Alecv, [email protected], Anastrophe, AnnaLincoln, Annsilverthorn, Arunajay, Asparagus, AussieScribe, Austinmurphy, Ayamanita, Bdkives, Bendodge, Bobblewik, Brianski, Btisdall, Byj wiki, Ceros, Cffrost, Chrislenhart, Craftyminion,Cybercobra, DavidLeeLambert, Dcamp314, Dcoetzee, Denna Haldane, DennisLMartin97, ERobson, Edgar181, Ehn, Engineerism, Epbr123, Eric Shalov, Error -128, Evice, Extraordinary,Fan-1967, Frap, Fredrik, Frettled, Gaius Cornelius, Giraffedata, Gousha, GreyCat, Gypsyzoo, Ikara, JRS, Jawsper, Jdforrester, Jdwinx, Jiphung, Jonverve, Kaldosh, KarlHegbloom, KelleyCook,Kkmurray, KnightLago, Leandrod, Leksey, Lemmio, Leonidaz, Lightmouse, Little buddha81, Llywrch, Matt Crypto, Memodude, Mikeblas, Milan Keršláger, Mirror Vax, Modster, Moreati,Mosca, Msiren, Music Sorter, Neilm, Neonetizen, Nichlas, Nipsy, Nowakpl, Osicim, PPrakash, Pboyd04, Pgilman, Pol098, Pugglewuggle, Qasdfdsaq, Quanstro, Quebron, RHaworth,RenOfHeavens, RickBeton, Rjwilmsi, Rondo66, Rozsnyo, Rrburke, Rwwww, Salfter, Sdwood, Sesu Prime, Shaddack, Skycode, SlackerMom, Stephan Leeds, Sterwill, StorageMania,Storagewonk, StuffOfInterest, Thehelpfulone, Timl2k4, Tokino, Tomchiukc, Trek00, TrygveFlathen, UU, UmbertinaV, Utcursch, Vicarage, Vladimir.mencl, Webwizard, Wfischer, WhosAsking,Whosyourjudas, Xenophonf, Xjtuwjp, YUL89YYZ, Zac67, 265 anonymous edits

Serial Storage Architecture  Source: http://en.wikipedia.org/w/index.php?oldid=477445585  Contributors: Atrivo, Bloodshedder, Bobblewik, Catapult, Chriswaltham, David Gerard,Engineerism, Frap, Gardar Rurak, Heron, Hopp, Intgr, Ioliver, Jonverve, Kjanos, Mindmatrix, Music Sorter, Neilm, Nicholsr, Nixdorf, SHOlafsson, Sam8, Shaddack, Thunderbird2, Tkelleher,WhiteDragon, 12 anonymous edits

Single Connector Attachment  Source: http://en.wikipedia.org/w/index.php?oldid=490814915  Contributors: [email protected], Bloodshedder, Busfahrer, ChrisGualtieri, Frap, Gaius Cornelius,JLD, Jake Nelson, Jdabney, Kbdank71, Ktims, Neilm, Reedy, Secretlondon, Zac67, 5 anonymous edits

Tagged Command Queuing  Source: http://en.wikipedia.org/w/index.php?oldid=496668235  Contributors: AlexandriNo, AngoraFish, Bacon-chan, DavidLeeLambert, Ddxc, Imroy, Intgr, JesseViviano, Kimchi.sg, MarkSweep, Mimarx, Mordomo, Ost316, Pol098, Punctured Bicycle, R!SC, Rchandra, Ruud Koot, Rwwww, Vivaperucarajo, Wrs1864, Zac67, 16 anonymous edits

USB Attached SCSI  Source: http://en.wikipedia.org/w/index.php?oldid=495269081  Contributors: Guy Harris, Mcmaven2, RingtailedFox, Ruud Koot, 5 anonymous edits

Very-high-density cable interconnect  Source: http://en.wikipedia.org/w/index.php?oldid=483047090  Contributors: Elijahsadventure, Jstreutker, LapTop006, Lx b, Muppendahl, Nono64,Qdotdot, Rcsheets, Rilak, Tony1, 13 anonymous edits

World Wide Name  Source: http://en.wikipedia.org/w/index.php?oldid=491738849  Contributors: 1exec1, Afiler, Aldenrw, Chris Chittleborough, Corto, Diderot, Dlboone, Driveforspeed,Edward, Ennoto, Eorteg01, Gurnec, Headbomb, JamesXHY, Johncruise, Kcordina, Kubanczyk, MarkBrooks, Mclayto, Quanstro, Reedy, Rwwww, SatPhil, Sfoskett, Sietse Snel, Simon Brady,Stanistani, Stephenparsons, Tariqabjotu, The Anome, The doctor23, Thingg, 60 anonymous edits

Page 136: SCSI wiki

Image Sources, Licenses and Contributors 133

Image Sources, Licenses and ContributorsImage:Scsi logo.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Scsi_logo.svg  License: Public Domain  Contributors: Stassats at ru.wikipedia Previously uploaded to en.wikipedia byVidarlo in April 2006 ( file log)File:Loudspeaker.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Loudspeaker.svg  License: Public Domain  Contributors: Bayo, Gmaxwell, Husky, Iamunknown, Mirithing,Myself488, Nethac DIU, Omegatron, Rocket000, The Evil IP address, Wouterhagens, 19 anonymous editsImage:Scsi-1 gehaeuse.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:Scsi-1_gehaeuse.jpg  License: Creative Commons Attribution-Sharealike 2.0  Contributors: User Smial onde.wikipediaFile:SCSI-terminator-exposed-hdr-0a.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSI-terminator-exposed-hdr-0a.jpg  License: Creative Commons Attribution-Sharealike 3.0 Contributors: AdamantiosImage:SCSI 2 Devices.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSI_2_Devices.jpg  License: Public Domain  Contributors: -Image:Scsi-connectors.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:Scsi-connectors.jpg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: ShieldforyoureyesDave FischerFile:Acorn AKA30 SCSI Interface (back).jpg  Source: http://en.wikipedia.org/w/index.php?title=File:Acorn_AKA30_SCSI_Interface_(back).jpg  License: unknown  Contributors: ChrisWhyteheadImage:SCSI Mac.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSI_Mac.jpg  License: GNU Free Documentation License  Contributors: Charles Bunnell CB1226Image:Macintosh HDI SCSI.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:Macintosh_HDI_SCSI.jpg  License: Public Domain  Contributors: Speters33wFile:SCA-2 connector on Fujitsu MAP3735NC.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCA-2_connector_on_Fujitsu_MAP3735NC.jpg  License: Public Domain Contributors: MixabestImage:HpCompaq Hotswap.png  Source: http://en.wikipedia.org/w/index.php?title=File:HpCompaq_Hotswap.png  License: Public Domain  Contributors: IlluminedImage:SAS-drive-connector.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SAS-drive-connector.jpg  License: Creative Commons Attribution-Share Alike  Contributors: FrettledFile:SFF-8484-internal-connector-0a.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SFF-8484-internal-connector-0a.jpg  License: Creative Commons Attribution-Sharealike 3.0 Contributors: AdamantiosImage:10base2 terminator.png  Source: http://en.wikipedia.org/w/index.php?title=File:10base2_terminator.png  License: Public Domain  Contributors: Original uploader was Dflock aten.wikipedia Later versions were uploaded by Zcrayfish at en.wikipedia.Image:ESI.JPG  Source: http://en.wikipedia.org/w/index.php?title=File:ESI.JPG  License: Public Domain  Contributors: Bkell, Neilmfile:Apple hd20sc.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:Apple_hd20sc.jpg  License: GNU Free Documentation License  Contributors: Grm wnr, HellispImage:QLA 2200F.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:QLA_2200F.jpg  License: Creative Commons Attribution-ShareAlike 3.0 Unported  Contributors: Michael MollImage:Controller SCSI.JPG  Source: http://en.wikipedia.org/w/index.php?title=File:Controller_SCSI.JPG  License: Creative Commons Attribution-Sharealike 2.5  Contributors: User:RoscoImage:Speakerlink.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Speakerlink.svg  License: Creative Commons Attribution 3.0  Contributors: Woodstone. Original uploader wasWoodstone at en.wikipediaImage:Iscsi-iser-read-steps-1.JPG  Source: http://en.wikipedia.org/w/index.php?title=File:Iscsi-iser-read-steps-1.JPG  License: GNU Free Documentation License  Contributors: ErezzImage:Iscsi-iser-write-steps-1.JPG  Source: http://en.wikipedia.org/w/index.php?title=File:Iscsi-iser-write-steps-1.JPG  License: GNU Free Documentation License  Contributors: ErezzImage:Centronics 50 SCSI connector.JPG  Source: http://en.wikipedia.org/w/index.php?title=File:Centronics_50_SCSI_connector.JPG  License: Creative Commons Attribution-ShareAlike 3.0Unported  Contributors: User Redgrittybrick on en.wikipediaImage:SCSC-term.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSC-term.jpg  License: GNU Free Documentation License  Contributors: Charles Bunnell CB1226Image:high byte termination.JPG  Source: http://en.wikipedia.org/w/index.php?title=File:High_byte_termination.JPG  License: Creative Commons Attribution-Sharealike 2.5  Contributors:Bkell, NeilmImage:Sas niveles en.gif  Source: http://en.wikipedia.org/w/index.php?title=File:Sas_niveles_en.gif  License: Creative Commons Attribution-Share Alike  Contributors: ByjImage:SFF 8484 angled.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SFF_8484_angled.jpg  License: Public Domain  Contributors: GreyCatImage:SFF 8470.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SFF_8470.jpg  License: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0  Contributors: GreyCatImage:SFF 8086.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SFF_8086.jpg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: InstigaterImage:SFF 8087.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SFF_8087.jpg  License: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0  Contributors: GreyCatImage:SFF 8088.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SFF_8088.jpg  License: Creative Commons Attribution-Sharealike 3.0,2.5,2.0,1.0  Contributors: GreyCatImage:SCSIHardDriveConnectors.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSIHardDriveConnectors.jpg  License: Creative Commons Attribution-Sharealike 2.5 Contributors: User:[email protected]:SCSI-SCA-backplane.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSI-SCA-backplane.jpg  License: Creative Commons Attribution-Sharealike 2.5  Contributors:User:[email protected]:SPARCstation20 scsi cradle with drive.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SPARCstation20_scsi_cradle_with_drive.jpg  License: Creative CommonsAttribution-ShareAlike 3.0 Unported  Contributors: Caroline FordImage:SCSI external VHDCI 01.jpg  Source: http://en.wikipedia.org/w/index.php?title=File:SCSI_external_VHDCI_01.jpg  License: GNU Free Documentation License  Contributors: Originaluploader was Mecki fingerchen at de.wikipedia Later version(s) were uploaded by Smial at de.wikipedia.

Page 137: SCSI wiki

License 134

LicenseCreative Commons Attribution-Share Alike 3.0 Unported//creativecommons.org/licenses/by-sa/3.0/