Академический Документы
Профессиональный Документы
Культура Документы
Articles
SCSI Active terminator Advanced SCSI Programming Interface SCSI architectural model SCSI CDB SCSI check condition SCSI connector SCSI contingent allegiance condition Domain validation Electrical termination Enclosure Services Interface Hard Disk 20SC Host adapter HyperSCSI iSCSI iSCSI Boot Firmware Table ISCSI Conformance Testing and Testing Tool Requirement iSCSI Extensions for RDMA Key Code Qualifier Layer Jump Recording List of SCSI message codes Logical block addressing Logical Unit Number Mount Rainier (packet writing) MultiMedia Commands NCR 5380 NCR 53C9x Parallel SCSI Persistent binding SAF-TE SCSI / ATA Translation SCSI command SCSI diagnostic pages SCSI element codes 1 8 9 10 11 13 13 18 19 20 22 24 25 27 28 35 35 39 41 47 48 49 52 54 56 56 57 58 64 66 67 67 72 73
SCSI element status codes SCSI Enclosure Services SCSI Format Unit Command SCSI high byte termination SCSI host adapter SCSI initiator and target SCSI Inquiry Command SCSI log pages SCSI Log Select Command SCSI Log Sense Command SCSI mode pages SCSI Mode Select Command SCSI Mode Sense Command SCSI Pass Through Interface SCSI Pass-Through Direct SCSI Peripheral Device Type SCSI RDMA Protocol SCSI Read Capacity Command SCSI Read Commands SCSI Receive Diagnostic Results Command SCSI Report LUNs Command SCSI Request Sense Command SCSI Send Diagnostic Command SCSI standalone enclosure services SCSI Start Stop Unit Command SCSI Status Code SCSI terminating resistor SCSI Test Unit Ready Command SCSI Write Commands Sense Key Serial attached SCSI Serial Storage Architecture Single Connector Attachment Tagged Command Queuing USB Attached SCSI Very-high-density cable interconnect World Wide Name
74 74 76 77 78 79 80 82 82 83 84 85 86 88 90 91 92 93 94 97 98 99 101 102 103 104 105 105 106 109 115 121 122 123 126 127 127
References
Article Sources and Contributors Image Sources, Licenses and Contributors 130 133
Article Licenses
License 134
SCSI
SCSI
Small Computer System Interface (SCSI, /skzi/ SKUZ-ee)[1] is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, and electrical and optical interfaces. SCSI is most commonly used for hard disks and tape drives, but it can connect a wide range of other devices, including scanners and CD drives, although not all controllers can handle all devices. The SCSI standard defines command sets for specific peripheral device types; the presence of "unknown" as one of these types means that in theory it can be used as an interface to almost any device, but the standard is highly pragmatic and addressed toward commercial requirements. SCSI is an intelligent, peripheral, buffered, peer to peer interface. It The icon/logo used for SCSI. hides the complexity of physical format. Every device attaches to the SCSI bus in a similar manner. Up to 8 or 16 devices can be attached to a single bus. There can be any number of hosts and peripheral devices but there should be at least one host. SCSI uses handshake signals between devices, SCSI-1, SCSI-2 have the option of parity error checking. Starting with SCSI-U160 (part of SCSI-3) all commands and data are error checked by a CRC32 checksum. The SCSI protocol defines 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 initiatorsunable to initiate SCSI transactions themselves. Therefore peripheral-to-peripheral communications are uncommon, but possible in most SCSI applications. The Symbios Logic 53C810 chip is an example of a PCI host interface that can act as a SCSI target.
History
SCSI was derived from "SASI", the "Shugart Associates System Interface", developed c. 1978 and publicly disclosed in 1981.[2] A SASI controller provided a bridge between a hard disk drive's low-level interface and a host computer, which needed to read blocks of data. SASI controller boards were typically the size of a hard disk drive and were usually physically mounted to the drive's chassis. SASI, which was used in mini- and early microcomputers, defined the interface as using a 50-pin flat ribbon connector which was adopted as the SCSI-1 connector. SASI is a fully compliant subset of SCSI-1 so that many, if not all, of the then-existing SASI controllers were SCSI-1 compatible.[3] Larry Boucher is considered to be the "father" of SASI and SCSI due to his pioneering work first at Shugart Associates and then at Adaptec.[4] Until at least February 1982, ANSI developed the specification as "SASI" and "Shugart Associates System Interface;"[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 Boucher intended to be pronounced "sexy", but ENDL's[6] Dal Allan pronounced the new acronym as "scuzzy" and that stuck.[4] A number of companies such as NCR Corporation, Adaptec and Optimem were early supporters of the SCSI standard.[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]
SCSI The "small" part in SCSI is historical; since the mid-1990s, SCSI has been available on even the largest of computer systems. Since its standardization in 1986, SCSI has been commonly used in the Amiga, Apple Macintosh and Sun Microsystems computer lines and PC server systems. Apple started using Parallel ATA (also known as IDE) for its low-end machines with the Macintosh Quadra 630 in 1994, and added it to its high-end desktops starting with the Power 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 has never been popular in the low-priced IBM PC world, owing to the lower cost and adequate performance of ATA hard disk standard. However, SCSI drives and even SCSI RAIDs became common in PC workstations for video or audio production. Recent versions of SCSI Serial Storage Architecture (SSA), SCSI-over-Fibre Channel Protocol (FCP), Serial Attached 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. Although much of the documentation of SCSI talks about the parallel interface, most contemporary development effort is on serial SCSI. Serial SCSI has a number of advantages over parallel SCSI: faster data rates, hot swapping (some but not all parallel SCSI interfaces support it), and improved fault isolation. The primary reason for the shift to serial interfaces is the clock skew issue of high speed parallel interfaces, which makes the faster variants of parallel SCSI susceptible to problems caused by cabling and termination. iSCSI preserves the basic SCSI paradigm, especially the command set, almost unchanged, through embedding of SCSI-3 over TCP/IP. SCSI is popular on high-performance workstations and servers. RAIDs on servers have almost always used SCSI hard disks, though a number of manufacturers now offer SATA-based RAID systems as a cheaper option. Instead of SCSI, 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 produced PCMCIA SCSI interfaces, but when PCMCIA was superseded by the ExpressCard discontinued their PCMCIA line without supporting ExpressCard. Ratoc produced USB and Firewire to SCSI adaptors, but ceased production when the integrated circuits required were discontinued. Drivers for existing PCMCIA interfaces were not produced for newer operating systems.
Interfaces
SCSI is available in a variety of interfaces. The first, still very common, was parallel SCSI (now also called SPI), which uses a parallel electrical bus design. As of 2008, SPI is being replaced by Serial Attached SCSI (SAS), which uses a serial design but retains other aspects of the technology. Many other interfaces which do not rely on complete SCSI standards still implement the SCSI command protocol; others (such as iSCSI) drop physical implementation entirely while retaining the SCSI architectural model. iSCSI, for example, uses TCP/IP as a transport mechanism.
Two SCSI connectors.
SCSI interfaces have often been included on computers from various manufacturers 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 SATA drives, provision for SCSI on motherboards is being discontinued. A few companies still market SCSI interfaces for motherboards supporting PCIe and PCI-X.
SCSI
Parallel SCSI
Interface Alternative Specification Connector [8] names document Width Clock[9] (bits) Bandwidth Bandwidth [10] [11] (MB/s) (Mbit/s) Maximum Electrical
[14] Impedance Voltage Length Length Length Devices [13] HVD [] [V] (single LVD [12] ended)
SCSI-1
Narrow SCSI
IDC50; Centronics C50 IDC50; Centronics C50 2 x 50-pin (SCSI-2); 1 x 68-pin (SCSI-3) IDC50
5MHz
5 MB/s
40 Mbit/s
6m
NA
25m
SE 90 6 [16]
Fast SCSI
10MHz 10 MB/s
80 Mbit/s
3m
NA
25m
SE 90 6 [16]
Fast-Wide SCSI
16
10MHz 20 MB/s
160 Mbit/s
3m
NA
25m
16
SE 90 6 [16]
20MHz 20 MB/s
160 Mbit/s
1.5 m 3m
NA NA NA NA NA 12m
8 4 16 8 4 8
SE 90 6 [16] SE 90 6 [16]
68-pin
16
20MHz 40 MB/s
320 Mbit/s
NA 1.5 m 3m
Fast-40
40MHz 40 MB/s
320 Mbit/s
NA
40MHz 80 MB/s
640 Mbit/s
NA
12m
25m
16
1280 Mbit/s NA
12m
NA
16
2560 Mbit/s NA
12m
NA
16
5120 Mbit/s
16
SCSI
Interface Alternative Specification Connector Width Clock[9] names document (bits) Throughput [10] (MB/s) SSA SSA 40 FC-AL 1Gb FC-AL 2Gb FC-AL 4Gb SAS 1.1 SAS 2.0 iSCSI 1 1 1 200MHz 40 MB/s[17][18] 400MHz 80 MB/s[17][18] 1GHz [18][19] 100 MB/s [18][19] 200 MB/s [18][19] 400 MB/s [18][19] 300 MB/s [18][19] 600 MB/s
Maximum Throughput [11] (Mbit/s) 320 Mbit/s 640 Mbit/s 800 Mbit/s Length [12] Devices [14]
25 m 25 m 500m/3km
96 96 [20] 127
2GHz
1600 Mbit/s
500m/3km
[20] 127
4GHz
3200 Mbit/s
500m/3km 6m 6m
[20] 127
1 1
3GHz 6GHz
16,256 16,256
[21] [21]
Cabling
SCSI Parallel Interface
Internal parallel SCSI cables are usually ribbons, with two or more 50, 68, or 80pin connectors attached. External cables are typically shielded (but may not be), with 50 or 69pin connectors at each end, depending upon the specific SCSI bus width supported.[22] The 80pin Single Connector Attachment (SCA) is typically used for hot-pluggable devices, where external cables are not usually required.
Bus terminator with top cover removed.
iSCSI
iSCSI (Internet Small Computer System Interface) usually uses Ethernet connectors and cables as its physical transport, but can run over any physical transport capable of transporting IP.
Automation/Drive Interface
The 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
SCSI 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.
Each device on the SCSI bus is assigned a unique SCSI identification number or ID. Devices may encompass multiple logical units, which are addressed by logical unit number (LUN). Simple devices have just one LUN, more complex devices may have multiple LUNs. A "direct access" (i.e. disk type) storage device consists of a number of logical blocks, addressed by Logical Block Address (LBA). A typical LBA equates to 512 bytes of storage. The usage of LBAs has evolved over time and so four different command variants are provided for reading and writing data. The Read(6) and Write(6) commands contain a 21-bit LBA address. The Read(10), Read(12), Read Long, Write(10), Write(12), and Write Long commands 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,
SCSI DDS (4mm tapes physically similar to DAT), Exabyte, etc., support variable block sizes.
Device identification
In modern SCSI transport protocols, there is an automated process for "discovery" of the IDs. SSA initiators "walk the loop" to determine what devices are connected and then assigns each one a 7-bit "hop-count" value. Fibre Channel Arbitrated Loop (FC-AL) initiators use the LIP (Loop Initialization Protocol) to interrogate each device port for its WWN (World Wide Name). For iSCSI, because of the unlimited scope of the (IP) network, the process is quite complicated. These discovery processes occur at power-on/initialization time and also if the bus topology changes 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 the range 07 on a narrow bus and in the range 015 on a wide bus. On earlier models a physical jumper or switch controls the SCSI ID of the initiator (host adapter). On modern host adapters (since about 1997), doing I/O to the adapter sets the SCSI ID; for example, the adapter often contains a BIOS program that runs when the computer boots up and that program has menus that let the operator choose the SCSI ID of the host adapter. Alternatively, the host adapter may come with software that must be installed on the host computer to configure the SCSI ID. The traditional SCSI ID for a host adapter is 7, as that ID has the highest priority during bus arbitration (even on a 16 bit bus). The SCSI ID of a device in a drive enclosure that has a backplane is set either by jumpers or by the slot in the enclosure the device is installed into, depending on the model of the enclosure. In the latter case, each slot on the enclosure's back plane delivers control signals to the drive to select a unique SCSI ID. A SCSI enclosure without a back plane often has a switch for each drive to choose the drive's SCSI ID. The enclosure is packaged with connectors that must be plugged into the drive where the jumpers are typically located; the switch emulates the necessary jumpers. While there is no standard that makes this work, drive designers typically set up their jumper headers 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 simplevirtual disk devices are generated by the subsystem 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 LUN may 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 is usually set aside for the floppy disk drive while SCSI ID 3 is typically for a CD-ROM drive.[25]
Device Type
While all SCSI controllers can work with read/write storage devices, i.e. disk and tape, some will not work with some other device types; older controllers are likely to be more limited[26], sometimes by their driver software, and more Device Types were added as SCSI evolved. Even CD-ROMs are not handled by all controllers. Device Type is a 5-bit field reported by a SCSI Inquiry Command; defined SCSI Peripheral Device Types include, in addition to many varieties of storage device, printer, scanner, communications device, and a catch-all "processor" type for devices not otherwise listed.
SCSI
References
[1] Field. The Book of SCSI. pp.1. [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] 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] 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] For daisy-chain designs, length of bus, from end to end; for point-to-point, length of a single link [13] LVD cabling may be up to 25m when only a single device is attached to the host adapter [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 Withdrawn Standards 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). . Retrieved May 7, 2008. [17] spatial reuse [18] full duplex [19] per direction [20] 500 meters for multi-mode, 3 kilometers for single-mode [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. ISBN0-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)
SCSI
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. ISBN0-395-82517-2. Field, Gary; Peter Ridge, John Lohmeyer, Gerhard Islinger, Stefan Groll (2000). The Book of SCSI (2nd Edition ed.). No Starch Press. ISBN1-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 terminator
An active terminator is a type of single ended SCSI terminator with a built-in voltage regulator to compensate for variations in terminator power.
History
ASPI was developed by Adaptec in the early 1990s. It was originally designed to support SCSI drives. Support for ATAPI interface (such as IDE) was later added. Microsoft licensed the interface for use with Windows 9x series. At the same time Microsoft developed SCSI Pass Through Interface (SPTI), an in-house substitute that worked on the NT platform. Microsoft did not include ASPI in Windows 2000/XP, in favor of its own SPTI. Users may still download ASPI from Adaptec. A number of CD/DVD applications also continue to offer their own implementations of ASPI layer.
Driver
ASPI was provided by the following drivers.
Operating System DOS Windows 3.1x ASPI4DOS.SYS WINASPI.DLL Driver Filename Bundled No No Yes No Unknown
Windows 95, 98 and ME WNASPI32.DLL, WINASPI.DLL, APIX.VXD and ASPIENUM.VXD Windows NT, 2000, XP FreeDOS WNASPI32.DLL, ASPI32.SYS USBASPI.SYS
External links
Adaptec's ASPI driver
Adaptec ASPI driver [1], FAQ [2]
10
Technical information
Technical reference (ASPI for Win32) [7] ASPI Layer setup [8]
Tips
Bart's page about ASPI [9]
References
[1] [2] [3] [4] [5] [6] [7] [8] [9] http:/ / www. adaptec. com/ en-US/ speed/ software_pc/ aspi/ aspi_471a2_exe. htm http:/ / ask. adaptec. com/ scripts/ adaptec_tic. cfg/ php. exe/ enduser/ std_adp. php?p_faqid=2671 ftp:/ / ftp6. nero. com/ NeroAspiEn. exe http:/ / www. frogaspi. org/ download. htm http:/ / come. to/ t_chan/ MekugiAspi/ MekugiAspi. htm ftp:/ / ftp. pinnaclesys. de/ driver/ pc/ InstantCDDVD/ ASAPI. exe http:/ / www. zianet. com/ jgray/ dat/ files/ ASPI32. pdf http:/ / www. doom9. org/ aspi. htm http:/ / www. nu2. nu/ aspi/
SCSI architectural model 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).
11
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 CDB
In 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 for variable-length CDBs. The CDB consists of a one byte operation code followed by some command-specific parameters. The parameters need not be a full byte long, and the parameter length varies from one command to another. The available commands, with links to articles describing the detailed structure of many of them, are listed in 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 7 6 5 4 3 2 1 0 byte 0 1 2 3 4 5 Operation code = 03h LUN Reserved Reserved Reserved Allocation length Control
16-byte CDB:
bit 7 6 5 4 3 2 1 0 byte 0 1 2 3 4 5 6 7 Logical Block (LSB) Addition CBP information Addition CBP information Operation code = 03h LUN Service Action
SCSI CDB
12
8 9 10 11 12 13 14 15 Allocation length (LSB) Misc. CDB data Control Addition CBP information Addition CBP information Allocation length (MSB)
An example with different allocation of bits to parameters is the 6-byte SCSI Mode Sense Command:[1]
bit 7 6 5 byte 0 1 2 3 4 5 LUN PC 4 3 2 1 0
Operation code = 1Ah Reserved DBD Reserved Page code Reserved Allocation length Control
See SPC-4 (http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=spc4r34. pdf, free registration required) for more information.
References
[1] SCSI Command Reference, pp.97-100.
13
SCSI connector
A 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 two components, such as a computer and a disk drive, to communicate with each other. SCSI connectors can be electrical connectors or optical connectors. There have been a large variety of SCSI connectors in use at one time or another in the computer industry. Probably no computer interconnect (with the possible exception of RS-232 serial) has caused as much confusion. Twenty-five years of evolution and three major revisions of the standards resulted in requirements for Parallel SCSI connectors that could handle an 8, 16 or 32 bit wide bus running at 5, 10 or 20 Mbit/s, with conventional or differential signaling. Serial SCSI added another three transport types, each with one or more connector types. Manufacturers have frequently chosen connectors based on factors of size, cost, or convenience at the expense of compatibility. SCSI often makes use of cables to connect devices together; in a typical example, a socket on a computer motherboard would have one end of a cable plugged into it, while the other end of the cable plugged into a disk drive or other device. This would mean that four connectors were involved in wiring the disk drive and computer together: the connector on the motherboard, the connectors at each end of the cable, A "Mac Stack" of external SCSI devices and the connector on the disk drive. It is sometimes possible to have displaying various SCSI connectors cables which have different types of connectors on them, and some cables can have as many as 16 connectors (allowing 16 devices to be wired together). Some types of connectors are typically used inside a computer or disk drive case, while others are used to connect a computer to a separate device such as a scanner or external disk drive.
SCSI connector
14
Nomenclature
Many connector designations consist of an abbreviation for the connector family, followed by a number indicating the number of pins. For example, "CN36" (also written "CN-36" or "CN36") would be a 36-pin Centronics-style connector. 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 SCSI
Parallel SCSI allows for attachment of up to 16 devices to the SCSI bus, thus cables may have up to 16 connectors. It is 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-bit units, and either two or three connectors for 16-bit units. The power connector was typically the same 4-pin female Molex connector used in many other internal computer devices. The communication connectors on the drives were usually a 50 (for 8-bit SCSI) or 68 pin male (for 16-bit SCSI) "IDC header" which has two rows of pins, 0.1inches apart. This connector has no retaining screws to secure the connectors together, and ribbon cables are both inconveniently wide and somewhat delicate, so this connector style was primarily used for connections inside of a computer 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 a typical 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 inserted upside-down, some manufacturers (including Sun Microsystems) supplied internal cables with male connectors that did 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 adapter end of the cable would use a different connector. For example, in the Sun 260 series chassis (used for the Sun 3/260 and Sun 4/260 computers), the connector was the same 3-row 96-pin connector used to attach peripheral cards to the VMEbus backplane. SCA Eventually, there was a desire to combine power and data signals into a single connector. This allows for quick drive replacement, more reliable connections, and is more compact. Most parallel SCSI disk-drives now utilize an 80-pin SCA (Single Connector Attachment) connector. This connector includes a power connection and also has long and short pins which enable hot swapping. Note that this connector is primarily found on disk drive HDA's (and of course the mating enclosure backplane connector).
SCSI connector
15
External
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 SCSI manufacture. Early SCSI interfaces commonly used a 50-pin micro ribbon Assorted SCSI Connectors connector. This connector is similar to the 36-pin connector used by Centronics for the parallel interface on their printers, thus the connector 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. Apple used DB-25 connectors, which, having only 25 pins rather than 50, were less expensive to make, but compromised functionality. Further, DB-25s were commonly used for RS-232 serial cables and also to connect parallel printers, meaning that users might accidentally try to use completely inappropriate cables, since the printer and serial cables would fit the connector properly and be hard to visually distinguish. The DB-25's only advantage was that it was smaller than a CN50. Sun Microsystems and Data General used a 50-pin 3-row DD-50 connector, 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 the VAXstation 3100 and DECstation 3100/2100 made use of a MALE 68-pin connector on the rear of the workstation. This connector looks like it would be a high density Wide SCSI-2 connector, but is actually
SCSI-1 card with an external Centronics port which requires a terminator, from an Acorn computer.
8-bit SCSI-1. Apple Macintosh laptops used a squarish external SCSI connector called an HDI-30 (High Density Interconnect) on the laptop itself (not on the peripheral end of the cable, unless two laptops were being connected). These machines also had the interesting ability to become "SCSI slaves" (officially known as "SCSI Disk Mode" in Apple documentation), meaning that they could appear to be disk drives when attached to another computer's SCSI controller (a feature later reimplemented over FireWire and Thunderbolt for later, non-SCSI Mac hardware). IBM's early RS6000 workstations sometimes used a "High Density Centronics" connector, which was a Centronics-style connector with smaller pins and shell. For some reason it had 60 pins, and is thus known as the "HDCN60"
Certain Japanese digital camera manufacturers wanted to put SCSI into their equipment, but conventional connectors would have been too large. Like IBM, they used a miniaturized Centronics connector, but this one had 50 pins, and
SCSI connector was called the "HPCN50". Some manufacturers used a DC-37 connector, often incorrectly referred to as a DB-37. These will most commonly be seen on three-cable systems, which are typically 16-bit or 32-bit "Wide SCSI" systems. Extra confusion is generated here since this connector was also frequently used with SMD disk drives, which are completely incompatible with SCSI drives. Post SCSI-2 As time went on, some manufacturers desired connectors even smaller than the SCSI-2 connector. One such in somewhat common use was the VHDCI (Very High Density Cable Interconnect) connector, also known as an "AMP HPCN68M" (a manufacturer part number), and sometimes as "SCSI-5". There are 68 pins on the connector in two rows; the pins are 0.8mm apart. This connector is reputed to suffer fewer bent pins than the 68-pin SCSI-2 connector despite its minuscule pins. Interoperability
16
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 from narrow 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 and Low Voltage Differential) . HVD uses 15V while LVD uses 3.3V, so connecting an HVD device to an LVD host bus adaptor 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 sync down to the lowest speed. While interconnectivity of a number of devices may look straightforward, there are many pitfalls, and with older SE devices the cabling length becomes an issue as signal degrades.
Drive Caddies
Many 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 canister would be placed in a larger enclosure. Some of these systems allowed for hot swap (drives could be replaced with the system running), while others allowed "warm swap", in which the SCSI bus was "quiesced" (meaning all drive activity was stopped) but remained powered on with devices ready. Digital Equipment Corporation's StorageWorks products were one system of this type. DEC briefly allowed third parties to license this system, but reversed the decision after less than a year; as a result, third-party StorageWorks products are quite rare. Compaq also made a drive caddy system for the Proliant line of servers. Compaq purchased DEC, and Hewlett-Packard later purchased Compaq, and the Proliant and 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 with numerous brand names and model identifications. These Hot-Plug drives in caddies generally use 80 pin SCA connectors (HP,Compaq, DELL from SCSI-3 to Ultra-320)
SCSI connector
17
Serial SCSI
Serial SCSI disk-drives have recently been introduced. They use smaller connectors due to the reduced number of signals required. There are three types of physical layer transports specified: Fibre Channel, also called FC SAS, Serial Attached SCSI SSA, the Serial Storage Architecture Additionally, there is the iSCSI transport, which is not present on the drives themselves, but is used to connect devices using TCP/IP networks. The drives themselves would use one of the other three connector types.
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 SFF 8484 multilane unshielded serial attachment connector (internal connector) SFF 8470 multilane copper connector, also known as an Infiniband connector (external connector) SFF 8087 Molex iPASS unshielded mini-multilane, reduced width internal connector SFF 8088 Molex iPASS shielded mini-multilane, reduced width external 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.
An SFF-8484 connector.
SCSI connector
18
Drive Caddies
The situation is fundamentally similar to that of Parallel SCSI drive caddies; there have been a range of manufacturers, 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
Details
While a target is in a contingent allegiance condition it must retain the sense information that relates to the error that caused 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 another initiator. If a check condition then needs to be reported to a second or third initiator then this may become prohibitively difficult. The SCSI definition of the contingent allegiance condition allows the target to use the busy response to incoming commands and to suspend servicing of any recent commands that are still in its execution queue. 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
19
Domain validation
Domain Validation is part of the SCSI standard. It describes how to negotiate the best possible transfer agreement between 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 set various parameters, such as Information Units, Quick Arbitration Select and Double Transition clocking.
Electrical termination
20
Electrical termination
Electrical termination of a signal involves providing a terminator at the end of a wire or cable to prevent an RF signal from being reflected back from the end, causing interference. The terminator is placed at the end of a transmission line or daisy chain bus (such as in SCSI), designed to match impedance and hence minimize signal reflections.
Types of terminators
Passive Passive terminators consist of a simple resistor. Limited usage for highspeed applications. There are two types: a resistor between signal and ground like in Ethernet, or a resistor from the positive rail to signal and a resistor from the signal to negative rail like in SCSI. Active Active terminators consist of a voltage regulator that keeps the voltage used for the terminating resistor(s) at a constant 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 a standard active terminator.
Applications
SCSI
All parallel SCSI units use terminators. SCSI is primarily used for storage and backup.
Electrical termination
21
Dummy load
Dummy loads are commonly used in HF to EHF frequency circuits.
MIL-STD-1553
Terminating resistors values of 78.7 ohms 2 watt 1% are used on the MIL-STD-1553 bus. At the two ends of the bus, resistors connect between the positive (high) and negative (low) signal wires either in internally terminated bus couplers or external connectorized terminators. The MIL-STD-1553B bus must be terminated at both ends to minimize the effects of signal reflections that can cause 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 a future 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 meaning
Electrical termination sometimes refers to manufacturing operations which connect wires together. This includes crimping, soldering, and related operations. See electrical connector.
References
[1] http:/ / www. milestek1553. com/ tech. asp [2] http:/ / www. milestek. com/ search. asp?skw=terminator
22
The host computer communicates with the disks in the enclosure via a Serial SCSI interface (which may be either FC-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 continue even after the failure of any of the disk-drives.
SEL_4/-ENCL_ACK The enclosure clocks this to acknowledge a read or write data transfer SEL_5/-DSK_RD SEL_6/-DSK_WR The disk-drive clocks this to send a NIBL of data to the enclosure The disk-drive clocks this to receive a NIBL of data from the enclosure
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 or Write phase Disk-drive sends diagnostic page data to the enclosure 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 a SCSI transaction. If the CDB is for a Send Diagnostic command then the data is sent to a SCSI diagnostic page in the enclosure. If the CDB is for a SCSI Receive Diagnostic Results command then the data is received from a SCSI diagnostic page. No other CDB types are allowed.
Alternatives to ESI
There 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
Specifications
The definition of the ESI protocols is owned by an ANSI committee and defined in their specifications ANSI SFF-8067 and ANSI SFF-8045.
24
Hard Disk September, 1986 ? N/A plastic (Pantone 453 [1] & Platinum)
The Apple Hard Disk 20SC (not to be confused with the Apple Macintosh Hard Disk 20, the first hard drive manufactured by Apple exclusively for the original Macintosh floppy disk drive port interface) was Apple's first SCSI based hard drive for the Apple II family as well as the Macintosh and other third party computers using an industry standard SCSI interface.
History
Released in September 1986 along with the Apple IIGS (which required an optional SCSI interface card to use it), it debuted over 9 months after the introduction of the Macintosh Plus, the first to include Apple's SCSI interface. It was a welcome addition, delivering considerably faster data transfer rates (up to 1.25 megabytes per second)[2] than its predecessors, the Hard Disk 20 (62.5 Kilobytes per second)[3] and ProFile.[4]
Hardware
The 20SC originally contained a half height 5.25" Seagate ST-225N 20MB SCSI hard drive, but was later manufactured with a full-height 3.5" MiniScribe 8425SA 20MB SCSI hard drive. The latter drive was the same size as the drive inside the Macintosh Hard Disk 20, but 10 to 15 MB over what had previously been offered by Apple for the II family. The same drive mechanism would also be offered 6 months later as a built-in drive option on the Macintosh II and SE. It had two standard Centronics 50-pin connectors, one for the System and one for daisy-chaining additional SCSI devices and a SCSI ID selection switch. An external terminator was required if it was the only SCSI device connected. The case itself could accommodate a 3.5" or 5.25" full-height hard drive mechanism. Indeed the case design would be reused unchanged (in Platinum only) for 3 more models introduced the following year: 40SC, 80SC & 160SC (offering respective Megabytes of storage). While the transfer rates were significantly higher due to the faster SCSI bus technology, the actual transfer rate varied from computer to computer thanks to different SCSI implementation based on developing industry standards.[5]
25
Design
In addition to being the first cross-platform drive offered by Apple it was the first hard drive to use the Snow White design language. Notably, it was the only Snow White product to use the Macintosh beige color and one of the few Apple products to be introduced in two different colors at the same time. Since the Apple IIGS was the first Apple product to debut in the new gray color they called Platinum, the 20SC had to both match it and the beige color of the Macintosh 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
In computer hardware, a host controller, host adapter, or host bus adapter (HBA) connects a host system (the computer) to other network and storage devices. The terms are primarily used to refer to devices for connecting SCSI, Fibre Channel and eSATA devices, but devices for connecting to IDE, Ethernet, FireWire, USB and other systems may also be called host adapters. Recently, the advent of iSCSI and Fibre Channel over Ethernet has brought about Ethernet HBAs, which are different from Ethernet NICs in that they include TCP Offload Engines. There are also converged HBAs that support both 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 device driver, linked to the operating system, controls the host adapter itself. In a typical parallel SCSI subsystem, each device has assigned to it a SCSI Host Bus Adapter (16-bit ISA card) unique 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 devices available. 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
Host adapter motherboards from companies like HP (which now lack SCSI support due to the inclusion of SAS and/or SATA connectivity)....
26
Fibre Channel
Today, the term host bus adapter (HBA) is most often used to refer to a Fibre Channel interface card. Fibre Channel HBAs are available for all major open systems, computer architectures, and buses, including PCI and SBus (obsolete today). Each HBA has a unique World Wide Name (WWN), which is similar to an Ethernet MAC address in that it uses 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 is unique to each port. There are HBA models of different speeds: 1Gbit/s, 2Gbit/s, 4Gbit/s, 8Gbit/s, 10Gbit/s and 20Gbit/s. The major Fibre Channel HBA manufacturers are QLogic and Emulex. As of mid-2009, these vendors shared approximately 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.
InfiniBand
The term host channel adapter (HCA) is usually used to describe InfiniBand interface cards.
ATA
ATA host adapters are integrated into motherboards of most modern PCs. They are often improperly called disk controllers. The correct term for the component that allows a computer to talk to a peripheral bus is host adapter . A proper disk controller only allows a disk to talk to the same bus.
eSATA
External Serial ATA disk enclosures and drives are increasingly common in the consumer computing market, but not all SATA-compatible motherboards and disk controllers include external SATA ports. As such, adapters to connect external SATA devices to ports on an internal SATA bus are commonly available.
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 a proprietary 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)
HyperSCSI
HyperSCSI was a computer network protocol for accessing storage by sending and receiving SCSI commands. It was developed by researchers at the Data Storage Institute in Singapore in 2000 to 2003.[1] HyperSCSI is unlike iSCSI in that it bypassed the internet protocol suite (TCP/IP) and works directly over Ethernet to form its Storage area network. It skipped the routing, retransmission, segmentation, reassembly, and all the other problems that the TCP/IP suite addresses. Compared to iSCSI, this was meant to give a performance benefit at the cost of IP's flexibility. An independent performance test showed that performance was unstable with network congestion.[2] The similar ATA over Ethernet technology was based on a cheap technology. Since HyperSCSI was in direct competition with the older and well established Fibre Channel, and the standardized iSCSI, it was not adopted by commercial vendors. Some researchers at Huazhong University of Science and Technology noted the failure to provide any transport layer protocol, so implemented a reliability layer in 2007.[3] Another version called HS/IP was developed over 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): 4852. doi:10.1109/ICON.2004.1409086. ISBN0-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 on Networking, Architecture, and Storage 2007 (IEEE): 2931. doi:10.1109/NAS.2007.45. ISBN0-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 of HyperSCSI, and a comparison with iSCSI "What the Heck Is HyperSCSI?" (http://www.byteandswitch.com/document.asp?doc_id=40846). Byte and Switch. September 26, 2003. Retrieved May 5, 2011.
iSCSI
28
iSCSI
i In computing, iSCSI ( /askzi/ eye-SKUZ-ee), is an abbreviation of Internet Small Computer System Interface, an Internet Protocol (IP)-based storage networking standard for linking data storage facilities. By carrying SCSI commands over IP networks, iSCSI is used to facilitate data transfers over intranets and to manage storage over 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 a storage area network (SAN) protocol, allowing organizations to consolidate storage into data center storage arrays while providing hosts (such as database and web servers) with the illusion of locally-attached disks. Unlike traditional Fibre Channel, which requires special-purpose cabling, iSCSI can be run over long distances using existing network infrastructure.
Functionality
iSCSI uses TCP (typically TCP ports 860 and 3260). In essence, iSCSI simply allows two hosts to negotiate and then exchange SCSI commands using IP networks. By doing this iSCSI takes a popular high-performance local storage bus 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 a low-cost alternative to Fibre Channel, which requires dedicated infrastructure except in its FCoE (Fibre Channel over Ethernet) form. However, the performance of an iSCSI SAN deployment can be severely degraded if not operated on a dedicated network or subnet (LAN or VLAN). Although iSCSI can communicate with arbitrary types of SCSI devices, system administrators almost always use it to allow server computers (such as database servers) to access disk volumes on storage arrays. iSCSI SANs often have one of two objectives: Storage consolidation Organizations move disparate storage resources from servers around their network to central locations, often in data centers; this allows for more efficiency in the allocation of storage. In a SAN environment, a server can be allocated a new disk volume without any change to hardware or cabling. Disaster recovery Organizations mirror storage resources from one data center to a remote data center, which can serve as a hot standby in the event of a prolonged outage. In particular, iSCSI SANs allow entire disk arrays to be migrated across a WAN with minimal configuration changes, in effect making storage "routable" in the same manner as network traffic.
Network booting
For general data storage on an already-booted computer, any type of generic network interface may be used to access iSCSI devices. However, a generic consumer-grade network interface is not able to boot a diskless computer from a remote iSCSI data source. Instead it is commonplace for a server to load its initial operating system from a TFTP server 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 to boot 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 direct the computer to the correct iSCSI boot target. Most Intel Ethernet controllers for servers support iSCSI boot. [1]
iSCSI
29
Concepts
Initiator
Further information: SCSI initiator An initiator functions as an iSCSI client. An initiator typically serves the same purpose to a computer as a SCSI bus adapter would, except that instead of physically cabling SCSI devices (like hard drives and tape changers), an iSCSI initiator 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 that uses the existing network card (NIC) and network stack to emulate SCSI devices for a computer by speaking the iSCSI protocol. Software initiators are available for most popular operating systems and are the most common method of deploying iSCSI. Hardware initiator A hardware initiator uses dedicated hardware, typically in combination with software (firmware) running on that hardware, to implement iSCSI. A hardware initiator mitigates the overhead of iSCSI and TCP processing and Ethernet 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 as a combination of a Gigabit (or 10 Gigabit) Ethernet NIC, some kind of TCP/IP offload engine (TOE) technology and a 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/IP operations for this particular network interface from the host processor, freeing up CPU cycles for the main host applications. When a TOE is used rather than an HBA, the host processor still has to perform the processing of the iSCSI 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 of using an HBA for iSCSI, rather than using a software-based iSCSI client (initiator).
Target
The iSCSI specification refers to a storage resource located on an iSCSI server (more generally, one of potentially many 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 server instance. An iSCSI target is often a dedicated network-connected hard disk storage device, but may also be a general-purpose computer, since as with initiators, software to provide an iSCSI target is available for most mainstream operating systems. Common deployment scenarios for an iSCSI target include:
iSCSI Storage array In a data center or enterprise environment, an iSCSI target often resides in a large storage array, such as a EqualLogic, Isilon, NetApp filer, EMC NS-series , CX4,VNX , VNXe ,VMAX or a HDS HNAS computer appliance. 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) can provide iSCSI target functionality, either as a built-in feature or with supplemental software. Some specific-purpose operating 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 numbered disk drives. An initiator negotiates with a target to establish connectivity to a LUN; the result is an iSCSI connection that emulates a connection to a SCSI hard disk. Initiators treat iSCSI LUNs the same way as they would a raw SCSI or IDE hard drive; for instance, rather than mounting remote directories as would be done in NFS or CIFS environments, 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 a single underlying filesystem as a task for the operating system.
30
Addressing
Special 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 RFC 3721. 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)
iSCSI 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 can expire or be acquired by another entity. The IEEE Registration authority provides EUI in accordance with the EUI-64 standard. NAA is part OUI which is provided by the IEEE Registration Authority. NAA name formats were added to iSCSI in RFC 3980, to provide compatibility 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. 2. 3. 4. Hostname or IP Address (e.g., "iscsi.example.com") Port Number (e.g., 3260) iSCSI Name (e.g., the IQN "iqn.2003-01.com.ibm:00.fcd0ab21.shark128") An optional CHAP Secret (e.g., "secretsarefun")
31
iSNS
iSCSI initiators can locate appropriate storage resources using the Internet Storage Name Service (iSNS) protocol. In theory, 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
Authentication
iSCSI initiators and targets prove their identity to each other using the CHAP protocol, which includes a mechanism to prevent cleartext passwords from appearing on the wire. By itself, the CHAP protocol is vulnerable to dictionary attacks, spoofing, or reflection attacks. If followed carefully, the rules for using CHAP within iSCSI prevent most of these attacks.[4] Additionally, as with all IP-based protocols, IPsec can operate at the network layer. The iSCSI negotiation protocol is designed to accommodate other authentication schemes, though interoperability issues limit their deployment.
iSCSI
32
Authorization
Because iSCSI aims to consolidate storage for many servers into a single storage array, iSCSI deployments require strategies to prevent unrelated initiators from accessing storage resources. As a pathological example, a single enterprise storage array could hold data for servers variously regulated by the SarbanesOxley Act for corporate accounting, HIPAA for health benefits information, and PCI DSS for credit card processing. During an audit, storage systems must demonstrate controls to ensure that a server under one regime cannot access the storage assets of a server under another. Typically, iSCSI storage arrays explicitly map initiators to specific target LUNs; an initiator authenticates not to the storage array, but to the specific storage asset it intends to use. However, because the target LUNs for SCSI commands are expressed both in the iSCSI negotiation protocol and in the underlying SCSI protocol, care must be taken to ensure that access control is provided consistently.
iSCSI
33
Industry support
Operating-system support
The dates that appear in the following table might be misleading. It is known for example that IBM delivered an iSCSI storage device (NAS200i) in 2001 for use with Windows NT, Windows 2000 [5] and Linux [6]
OS First release date 2006-10 2006-06 i5/OS V5R4M0 ESX 3.0, ESX 4.0, ESX 5.0 Version Features
2002-10 2003-06
AIX 5.3 TL10, AIX 6.1 TL3 2000, XP Pro, 2003, Vista, 2008, 2008 R2, Windows7, Windows 8, Windows Server 8 NetWare 5.1, 6.5, & OES HP 11i v1, HP 11i v2, HP 11i v3 Solaris 10, OpenSolaris
Initiator, Target Initiator Initiator, Target, Multipath, iSER Initiator, Target, Multipath, iSER Initiator Initiator (5.0), Target (4.0) Initiator, Target from NetBSD Initiator, Multipath N/A
Linux
2005-06
2.6.12
Target available only as part of Windows Unified Data Storage Server (WUDSS) for Storage Server 2003. Target available in Storage Server 2008 (excepted Basic edition).[7] Target available for Windows Server 2008 R2 as a separate 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 and targets available but they are from third-party vendors only.
Targets
Most iSCSI targets involve disk, though iSCSI tape and medium-changer targets are popular as well. So far, physical devices have not featured native iSCSI interfaces on a component level. Instead, devices with Parallel SCSI or Fibre Channel interfaces are bridged by using iSCSI target software, external bridges, or controllers internal to the device enclosure. Alternatively, it is possible to virtualize disk and tape targets. Rather than representing an actual physical device, an emulated virtual device is presented. The underlying implementation can deviate drastically from the presented target as is done with virtual tape library (VTL) products. VTLs use disk storage for storing data written to virtual tapes. 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 either an IP-enabled encoder or camera.
iSCSI
34
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, SeptemberOctober 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)
iSCSI
35
External links
SCST: A Generic SCSI Target for Linux (includes iSCSI, FC, FCoE, IB) (http://scst.sourceforge.net/)
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
36
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 or free/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 by external organizations, sometimes the standards body itself, to give greater guarantees of compliance. Products tested in 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 Hampshire InterOperability Laboratory (UNH-IOL) is one of the premier neutral, third-party laboratory who offers test suites for 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 both IETF RFC 3720 iSCSI (hereafter referred to as the iSCSI Standard) as well as updates as contained in IETF RFC 5048 iSCSI Corrections and Clarifications RFC (hereafter referred to as iSCSI Corrections and Clarifications). Successful completion of all tests contained in this suite does not guarantee that the tested device will successfully operate with other iSCSI products. However, when combined with satisfactory operation in the IOLs interoperability test bed, these tests provide a reasonable level of confidence 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 Management Function 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 number and task management... Error Recovery Conformance Test Initiator/Target's error recovery support
37
ISCSI Conformance Testing and Testing Tool Requirement The iSCSI Engine core is in charge of sending/receiving iSCSI PDUs to/from DUT (Device Under Test). On one side, it accepts input from test script, sending PDUs or verifying check points; on the other, it should understand iSCSI protocol to a certain level so that necessary automation can be achieved, e.g., the automatic generation of iSCSI PDUs (Login/Text Request during negotiation, Nop-Out ping response, ) and some PDU fields (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 be better 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 run automatically without user intervention.
38
References
[1] [2] [3] [4] http:/ / www. iol. unh. edu/ services/ testing/ iscsi/ http:/ / www. swattest. com http:/ / www. storagetest. com http:/ / sourceforge. net/ projects/ iscsisim/
39
History
An RDMA consortium was announced on May 31, 2002 with a goal of product implementations by 2003.[1] The consortium released their proposal in July, 2003.[2] The protocol specifications were published as drafts in September 2004 in the Internet Engineering Task Force and issued as RFCs in October 2007.[3][4] The OpenIB Alliance was renamed in 2007 to be the OpenFabrics Alliance, and then released an open source software package.[5]
Description
The motivation for iSER is to use RDMA to avoid unnecessary data copying on the target and initiator. The Datamover Architecture (DA) defines an abstract model in which the movement of data between iSCSI end nodes is logically separated from the rest of the iSCSI protocol; iSER is one Datamover protocol. The interface between the iSCSI 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/write commands. With iSER the target drives all data transfer (with the exception of iSCSI unsolicited data) by issuing RDMA write/read operations, respectively. When the iSCSI layer issues an iSCSI command PDU, it calls the Send_Control primitive, which is part of the DI. The Send_Control primitive sends the STag with the PDU. The iSER layer in the target side notifies the target that the PDU was received with the Control_Notify primitive (which is part of the DI). The target calls the Put_Data or Get_Data primitives (which are part of the DI) to perform an RDMA write/read operation respectively. Then, the target calls the Send_Control primitive to send a response to the initiator. An example is shown in the figures (time progresses from top to bottom). All iSCSI control-type PDUs contain an iSER header, which allows the initiator to advertise the STags that were generated during buffer registration. The target will use the STags later for RDMA read/write operations.
References
READ command execution with iSER [1] "Open Consortium Developing Specifications for Remote Direct Memory Access 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.
40
Further reading
Mallikarjun Chadalapaka; Hemal Shah; 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 Computing Machinery): 209219. 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 in Computer 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)
41
42
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 17 17 17 17 17 17 18 18 18 18 18 18 1C 1C 1C 1F 44 5D 04 04 04 04 04 04 31 31 35 3A 3A 3A 4C 03 05 06 07 08 09 00 01 02 05 06 07 00 01 02 00 00 00 00 01 02 03 04 09 00 01 02 00 01 02 00 Recovered data using negative offset Recovered data using previous logical block ID Recovered Read error - without ECC, auto reallocated Recovered Read error - without ECC, recommend reassign Recovered Read error - without ECC, recommend rewrite Recovered Read error - without ECC, data rewritten Recovered Read error - with ECC Recovered data with ECC and retries Recovered Read error - with ECC, auto reallocated Recovered Read error - with ECC, recommend reassign Recovered data using ECC and offsets Recovered Read error - with ECC, data rewritten Defect List not found Primary defect list not found Grown defect list not found Partial defect list transferred Internal target failure PFA threshold reached Not Ready - Cause not reportable. Not Ready - becoming ready Not Ready - need initialise command (start unit) Not Ready - manual intervention required Not Ready - format in progress Not Ready - self-test in progress Not Ready - medium format corrupted Not Ready - format command failed Not Ready - enclosure services unavailable Not Ready - medium not present Not Ready - medium not present - tray closed Not Ready - medium not present - tray open Diagnostic Failure - config not loaded
Not Ready
2 2 2 2 2 2 2 2 2 2 2 2 2
43
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 02 03 10 11 11 11 11 11 14 16 16 19 19 19 19 19 31 31 01 02 03 09 11 16 19 19 19 31 32 35 35 35 35 35 3E 3E 44 00 00 00 00 01 02 04 0B 01 00 04 00 01 02 03 0E 00 01 00 00 00 00 00 00 00 02 03 00 00 01 02 03 04 05 03 04 00 Medium Error - No Seek Complete Medium Error - write fault Medium Error - ID CRC error Medium Error - unrecovered read error Medium Error - read retries exhausted Medium Error - error too long to correct Medium Error - unrecovered read error - auto re-alloc failed Medium Error - unrecovered read error - recommend reassign Medium Error - record not found Medium Error - Data Sync Mark error Medium Error - Data Sync Error - recommend reassign Medium Error - defect list error Medium Error - defect list not available Medium Error - defect list error in primary list Medium Error - defect list error in grown list Medium Error - fewer than 50% defect list copies Medium Error - medium format corrupted Medium Error - format command failed Hardware Error - no index or sector Hardware Error - no seek complete Hardware Error - write fault Hardware Error - track following error Hardware Error - unrecovered read error in reserved area Hardware Error - Data Sync Mark error in reserved area Hardware Error - defect list error Hardware Error - defect list error in Primary List Hardware Error - defect list error in Grown List Hardware Error - reassign failed Hardware Error - no defect spare available Hardware Error - unsupported enclosure function Hardware Error - enclosure services unavailable Hardware Error - enclosure services transfer failure Hardware Error - enclosure services refused Hardware Error - enclosure services checksum error Hardware Error - self-test failed Hardware Error - unable to update self-test Hardware Error - internal target failure
Medium Error
Hardware Error
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
44
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1A 20 21 24 25 26 26 26 26 26 2C 35 49 53 53 53 55 55 55 28 29 29 29 29 29 29 29 2A 2A 2A 2A 2A 2A 00 00 00 00 00 00 01 02 03 04 00 01 00 00 01 02 00 01 04 00 00 01 02 03 04 05 06 00 01 02 03 04 05 Illegal Request - parm list length error Illegal Request - invalid/unsupported command code Illegal Request - LBA out of range Illegal Request - invalid field in CDB (Command Descriptor Block) Illegal Request - invalid LUN Illegal Request - invalid fields in parm list Illegal Request - parameter not supported Illegal Request - invalid parm value Illegal Request - invalid field parameter - threshold parameter Illegal Request - invalid release of persistent reservation Illegal Request - command sequence error Illegal Request - unsupported enclosure function Illegal Request - invalid message Illegal Request - media load or eject failed Illegal Request - unload tape failure Illegal Request - medium removal prevented Illegal Request - system resource failure Illegal Request - system buffer full Illegal Request - Insufficient Registration Resources Unit Attention - not-ready to ready transition (format complete) Unit Attention - POR or device reset occurred Unit Attention - POR occurred Unit Attention - SCSI bus reset occurred Unit Attention - TARGET RESET occurred Unit Attention - self-initiated-reset occurred Unit Attention - transceiver mode change to SE Unit Attention - transceiver mode change to LVD Unit Attention - parameters changed Unit Attention - mode parameters changed Unit Attention - log select parms changed Unit Attention - Reservations pre-empted Unit Attention - Reservations released Unit Attention - Registrations pre-empted
Illegal Request
Unit Attention
6 6 6 6 6 6 6 6 6 6 6 6 6 6
45
6 6 6 6 6 6 6 2F 3F 3F 3F 3F 3F 5D 27 00 1B 25 3F 43 44 45 47 48 49 4B 4E 4F 1D 05 06 07 08 08 08 08 09 09 00 00 01 02 03 05 00 00 00 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 02 03 00 01 Unit Attention - commands cleared by another initiator Unit Attention - target operating conditions have changed Unit Attention - microcode changed Unit Attention - changed operating definition Unit Attention - inquiry parameters changed Unit Attention - device identifier changed Unit Attention - PFA threshold reached Write Protect - command not allowed Aborted Command - no additional sense code Aborted Command - sync data transfer error (extra ACK) Aborted Command - unsupported LUN Aborted Command - echo buffer overwritten Aborted Command - message reject error Aborted Command - internal target failure Aborted Command - Selection/Reselection failure Aborted Command - SCSI parity error Aborted Command - initiator-detected error message received Aborted Command - inappropriate/illegal message Aborted Command - data phase error Aborted Command - overlapped commands attempted Aborted Command - due to loop initialisation Miscompare - during verify byte check operation Illegal request Unit attention Data protect LUN communication failure LUN communication timeout LUN communication parity error LUN communication CRC error vendor specific sense key servo fault
Write Protect
46
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 09 0A 0B 0C 0C 0E 12 14 15 15 15 27 29 31 32 32 35 37 3D 3E 40 40 42 4C 5C 5C 5C 65 80 x 04 00 00 00 02 00 00 00 00 01 02 00 00 01 01 02 01 00 00 00 01 02 00 00 00 01 02 00 x 80 head select fault error log overflow aborted command write error write error - auto-realloc failed data miscompare address mark not found for ID field logical block not found random positioning error mechanical positioning error positioning error detected by read of medium write protected POR or bus reset occurred format failed defect list update error no spares available unspecified enclosure services failure parameter rounded invalid bits in identify message LUN not self-configured yet DRAM parity error DRAM parity error power-on or self-test failure LUN failed self-configuration RPL status change spindles synchronised spindles not synchronised voltage fault Vendor specific Vendor specific
References
SPC-4 [1] clause 4.5.6 and annex D.2
References
[1] ftp:/ / ftp. t10. org/ t10/ drafts/ spc4/
47
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]
48
References
[1] [2] [3] [4] ftp:/ / ftp. avc-pioneer. com/ Mtfuji_8/ Spec/ FUJI8R100. zip http:/ / www. nero. com/ enu/ pressreleases. html?id=248 http:/ / www. cyberlink. com/ prog/ company/ press-news-content. do?pid=865 http:/ / www. ulead. com. tw/ ulead/ UDNews/ preview. cfm?ID=376& FS=us& template=PressReleases. htm
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 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 20 21 22 230i 24-2F 80-FF SAVE PTRS DISCONNECT INITIATOR DETECTED ERROR ABORT MESSAGE REJECT NO OPERATION MESSAGE PARITY ERROR LINKED COMMAND COMPLETE LINKED COMMAND COMPLETE (WITH FLAG) BUS DEVICE RESET ABORT TAG CLEAR QUEUE INITIATE RECOVERY RELEASE RECOVERY TERMINATE I/O PROCESS SIMPLE QUEUE TAG HEAD OF QUEUE TAG ORDERED QUEUE TAG IGNORE WIDE RESIDUE - where i is the number of bytes to ignore Reserved for two-byte messages IDENTIFY
49
Overview
In logical block addressing, only one number is used to address data, and each linear base address describes a single block. The LBA scheme replaces earlier schemes which exposed the physical details of the storage device to the software of the operating system. Chief among these was the cylinder-head-sector (CHS) scheme, where blocks were addressed by means of a tuple which defined the cylinder, head, and sector at which they appeared on the hard disk. CHS did not map well to devices other than hard disks (such as tapes and networked storage), and was generally not used for them. 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 of sectors per track depends on the track number. Even though the disk drive will report some CHS values as sectors per 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 their CHS address, this information is generally not used by the SCSI device driver, the OS, filesystem code, or any applications (such as databases) that access the "raw" disk. System calls requiring block-level I/O pass LBA definitions to the storage device driver; for simple cases (where one volume maps to one physical drive), this LBA is then 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 for the entire storage device.
Enhanced BIOS
The earlier IDE standard from Western Digital introduced 22 bit LBA; in 1994, the ATA-1 standard allowed for 28 bit addresses in both LBA and CHS modes. The CHS scheme used 16 bits for cylinder, 4 bits for head and 8 bits for sector, counting sectors from 1 to 255. This means the reported number of heads never exceeds 16 (0-15), the number of sectors can be 255 (1-255; though 63 is often the largest used) and the number of cylinders can be as large as 65,536 (0-65535), limiting disk size to 128 GiB (137.4 GB), assuming 512 byte sectors. These values can be accessed 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 10241663 sectors and 528 Mbytes (504MiB), assuming 512 byte
Logical block addressing sectors. In order for BIOS to overcome this limit and successfully work with large hard drives, a CHS translation scheme had to be implemented in BIOS disk I/O routines which would convert between 24-bit CHS used by INT 13H and 28-bit CHS numbering used by ATA. The translation scheme was called Large or Bit Shift Translation. This method would 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 102425663 sectors, or 8.4 Gbytes (7.8GiB). To further overcome this limit, INT 13H Extensions were introduced with BIOS Enhanced Disk Drive Services specification, which removed practical limits on disk size for operating systems which are aware of this new interface, such as DOS 7.0 component in Windows 95. This Enhanced BIOS subsystem supports LBA addressing with LBA or LBA-Assist method, which uses native 28-bit LBA for addressing ATA disks and performs CHS conversion as needed. The Normal or None method reverts to the earlier 10:4:6 bit CHS mode which does not support addressing more than 528 Mbytes. Until the release of ATA-2 standard in 1996, there were a handful of large hard drives which did not support LBA addressing, so only Large or Normal methods could be used. However using the Large method also introduced portability problems, as different BIOSes often used different and incompatible translation methods, and hard drives partitioned on a computer with BIOS from a particular vendor often could not be read on a computer with a different make of BIOS. The solution was to use conversion software such as OnTrack Disk Manager, EZ-Drive, etc., which installed to the disk's OS loader and replaced INT 13H routines at boot time with custom code. This software could also 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. Current PC-Compatible computers support INT 13H Extensions, which use 64-bit structures for LBA addressing and should encompass any future extension of LBA addressing, though modern operating systems implement direct disk access and do not use the BIOS subsystems, except at boot load time. However, the common DOS style Master boot record partition table only supports disk partitions up to 2 TiB in size. For large partitions this needs to be replaced by another scheme for instance the GUID Partition Table which has the same 64-bit limit as the current INT 13H Extensions.
50
CHS conversion
LBA and CHS equivalence with 16 heads per cylinder
LBA Value 0 1 2 62 945 1007 1008 1070 1071 1133 CHS Tuple 0, 0, 1 0, 0, 2 0, 0, 3 0, 0, 63 0, 15, 1 0, 15, 63 1, 0, 1 1, 0, 63 1, 1, 1 1, 1, 63
51
1134 2015 2016 16,127 16,128 32,255 32,256 1, 2, 1 1, 15, 63 2, 0, 1 15, 15, 63 16, 0, 1 31, 15, 63 32, 0, 1
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 the content of word 1 [the number of logical cylinders] shall be equal to 16,383."[1] Therefore for LBA 16450559, an ATA drive may actually respond with the CHS tuple (16319, 15, 63), and the number of cylinders in this scheme must be much larger than 1024 allowed by INT 13H.[3]
OS dependencies
Operating systems that are sensitive to BIOS-reported drive geometry include Solaris, DOS and Windows NT family, where NTLDR (NT, 2000, XP, Server 2003) or WINLOAD (Vista, Server 2008, Windows 7 and Server 2008 R2) use Master boot record which addresses the disk using CHS; x86-64 and Itanium versions of Windows can partition 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 their boot loaders. Among these operating systems are BSD, Linux, Mac OS X, OS/2 and ReactOS.
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/)
Examples
To provide a practical example, a typical disk array has multiple physical SCSI ports, each with one SCSI target address assigned. An administrator may format the disk array as a RAID and then partition this RAID into several separate storage-volumes. To represent each volume, a SCSI target is configured to provide a logical unit. Each SCSI target may provide multiple logical units and thus represent multiple volumes, but this does not mean that those volumes are concatenated. The computer that accesses a volume on the disk array identifies which volume to read 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 in turn usually provides just a single logical unit whose LUN is zero. This logical unit represents the entire storage of the disk drive.
53
Use
How 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 structures and 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 storage volume often serve to identify the logical unit. However, the LUN is the only way for an initiator to address a command to a particular logical unit, so initiators often create, via a discovery process, a mapping table of LUN to other identifiers. Context sensitive: The LUN identifies a logical unit only within the context of a particular initiator. So two computers 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 special in that it must implement a few specific commands, most notably Report LUNs, which is how an initiator can find out 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 of logical units that correspond to separate physical devices and have fixed LUNs. A large storage system may have up to thousands of logical units, defined logically, by administrative command, and the administrator may choose the LUN or the system may choose it.
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 others continue to use "cXtXdXsX" nomenclature, while AIX has abandoned it in favor of more familiar names.
Other uses
The term logical unit number also applies to an input/output access channel within certain programming languages.
Fortran I/O
For example, in FORTRAN, some input/output statements such as the READ or WRITE statements contain an ordered 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.
54
References
[1] James Long, Storage networking protocol fundamentals (http:/ / books. google. co. uk/ books?id=zEFrqPrcZI8C& pg=PA111),
Design
The time needed for the disk formatting is shortened to about one minute by the background formatting capabilities of the drive. Formatting allocates some sectors at the end of the disk for defect management. Defective sectors are recorded 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 any host supported filesystem may be written. Such filesystems may be FAT32, NTFS, etc., but the preferred format is usually UDF 1.02, as this file format is widely supported. An MRW-formatted CD-RW with a UDF filesystem gives approximately 500 MB free space. Mt. Rainier allows write access to a disc within seconds after insertion and spin-up, even while a background formatting sequence is taking place. Before this technology, a user would have to wait for the formatting to complete before writing any data to a new disc. It is even possible to read (but not write) MRW disks without an MRW-compatible drive; A "remapper" device driver is needed, an example of which is EasyWrite Reader for Windows. An alternative to MRW is to physically format a disc in UDF 1.5 or higher using the spared build. This is achieved by 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+.
Advantage 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
Mount Rainier (packet writing) reading MRW natively, reducing software overhead.
55
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 MRW compatible and non-MRW compatible drives. Auto detection and automatic remapping which can be switched off or forced at all times. Built in MRW remapper / reader. (Built in Method 3 remapper)" [3] http:/ / www. thehaus. net/ AltOS/ Linux/ ht-mtrainier. shtml
MultiMedia Commands
56
MultiMedia Commands
MultiMedia Commands defines a SCSI/ATAPI based command set for accessing multimedia features on devices capable of such functionality. T10 subcommittee is responsible for developing it as well as other SCSI command set standards.
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] [3] [4] [5] [6] http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc5r04. pdf http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc4r05a. pdf http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc3r10g. pdf http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc2r11a. pdf http:/ / www. t10. org/ cgi-bin/ ac. pl?t=f& f=mmc-r10a. pdf
NCR 5380
The NCR 5380 is an early SCSI controller chip developed by NCR Microelectronics. It was popular due to its simplicity and low cost. The 5380 was used in the Macintosh Plus and in numerous SCSI cards for personal computers, including the Amiga and Atari TT. The 5380 was second sourced by several chip makers, including AMD and Zilog. The NCR 5380 also made a significant appearance in Digital Equipment Corporation's VAX computers, where it was featured on various Q-Bus modules and as an integrated SCSI controller in numerous MicroVAX, VAXstation and VAXserver computers.
NCR 53C9x
57
NCR 53C9x
The NCR 53C9x is a family of application-specific integrated circuits (ASIC) produced by the former NCR Corporation for implementing the SCSI protocol in hardware. The 53C9x is a low-cost solution and was therefore widely adopted by OEMs in various motherboard and peripheral device designs. The original 53C90 lacked direct memory access (DMA) capability, an omission that was addressed in the 53C90A and later in the 53C94 and 53C96 versions. The 53C90(A) supported the SCSI-1 protocol and implemented the eight bit bus. The 53C94 supported SCSI-2 features, 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 and 53C94/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
Parallel SCSI
58
Parallel SCSI
Parallel SCSI (formally, SCSI Parallel Interface, or SPI) is one of the interface implementations in the SCSI family. In addition to being a data bus, SPI is a parallel electrical bus: There is one set of electrical connections stretching from one end of the SCSI bus to the other. A SCSI 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, Centronics 50 SCSI plug 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 of available implementations. See the main SCSI article for a complete list. As with all types of SCSI bus, parallel SCSI 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 allowed for faster operation (10MHz) and wider buses (16-bit or 32-bit). The 16-bit option became the most popular, as the 32-bit option was more expensive and was thus hardly ever used. At 10MHz with a bus width of 16 bits it is possible to achieve a data rate of 20 MB/s. Subsequent extensions to the SCSI standard allowed for faster speeds: 20MHz, 40MHz, 80MHz, 160MHz and most recently 320MHz. At 320MHz x 16 bits there is a theoretical maximum peak data rate of 640 MB/s.
Standards
Parallel SCSI is not a single standard, but a suite of closely related standards which, unfortunately, have confusing names. 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, optional features; several different connector types; and three different types of voltage signalling. The leading SCSI card manufacturer, Adaptec, has manufactured over 100 varieties of SCSI cards over the years. In actual practice, many experienced technicians simply refer to SCSI devices by their bus bandwidth (i.e. SCSI 320 or SCSI 160) in Megabytes per second. SCSI has evolved since its introduction. Before summarizing the evolution, a distinction should be made between the terminology used in the SCSI standard itself, as promulgated by the T10 committee of INCITS, and common parlance, 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 been modular, 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 defined anywhere 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 the standard 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 than simply 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
Parallel SCSI 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 develop on 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.
59
SCSI-1
The original standard that was derived from SASI and formally adopted in 1986 by ANSI. SCSI-1 features an 8-bit parallel bus (with parity), running asynchronously at 3.5 MB/s or 5 MB/s in synchronous mode, and a maximum bus cable length of 6 meters (just under 20 feetcompared to the 18inch (0.45 meter) limit of the ATA interface). A rarely seen variation on the original standard included a high-voltage differential (HVD) implementation whose maximum cable length was 25 meters.
SCSI-2
This standard was introduced in 1994 and gave rise to the Fast SCSI and Wide SCSI variants. Fast SCSI doubled the maximum transfer rate to 10 MB/s and Wide SCSI doubled the bus width to 16 bits on top of that to reach a maximum transfer rate of 20 MB/s. However, these improvements came at the cost of reducing maximum cable length to 3 meters. SCSI-2 also specified a 32-bit version of Wide SCSI, which used 2 16-bit cables per bus; this was largely ignored by SCSI device makers because it was expensive and unnecessary, and was officially retired in SCSI-3.
SCSI-3
Before Adaptec and later SCSITA codified the terminology, the first parallel SCSI devices that exceeded the SCSI-2 capabilities were simply designated SCSI-3. These devices, also known as Ultra SCSI and fast-20 SCSI, were introduced 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 undeserved reputation for extreme sensitivity to cable length and condition (faulty cables, connectors or terminators were often to blame for instability problems). Unlike other SCSI standards, SCSI-3 requires active termination.
Ultra-2
This standard was introduced c. 1997 and featured a low-voltage differential (LVD) bus. For this reason ultra-2 is sometimes referred to as LVD SCSI. LVD's greater resistance to noise allowed a maximum bus cable length of 12 meters. At the same time, the data transfer rate was increased to 80 MB/s. Ultra-2 SCSI actually had a relatively short lifespan, as it was soon superseded by Ultra-3 (Ultra-160) SCSI.
Ultra-3
Also known as Ultra-160 SCSI and introduced toward the end of 1999, this version was basically an improvement on the ultra-2 standard, in that the transfer rate was doubled once more to 160 MB/s by the use of double transition clocking. Ultra-160 SCSI offered new features like cyclic redundancy check (CRC), an error correcting process, and domain validation.
Parallel SCSI
60
Ultra-320
This is the Ultra-160 standard with the data transfer rate doubled to 320 MB/s. The latest working draft for this standard is revision 10 and is dated May 6, 2002. Nearly all SCSI hard drives being manufactured at the end of 2003 were Ultra-320 devices.
Ultra-640
Ultra-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 LVD signaling; the speed limits cable lengths drastically, making it impractical for more than one or two devices. Because of this, most manufacturers have skipped over Ultra640 and are developing for Serial Attached SCSI instead.
SCSI signals
In addition to the data bus and parity signals, a parallel SCSI bus contains nine control signals[2]:
Signal name BSY Busy SEL Select RST Reset C/D Control/Data I/O Input/Output Bus in use (bus free) Asserted by the winner of an arbitration, during selection by an initiator or reselection by a target Initiator forces all targets and any other initiators to do a warm reset * Bus contains control information (bus contains data) * Transfer is from target to initiator (transfer is from initiator to target). Also asserted by a target after winning arbitration to indicate reselection of an initiator. * Bus contains a message (bus contains data or command/status) Target requests initiator to transfer the next unit of information on the bus, as indicated by the 3 phase signals (no request) Initiator acknowledges target request, completing the information transfer handshake (no handshake) Meaning when asserted (deasserted)
Notes: * One of 3 signals which are driven by a target during information transfer to indicate the Bus Phase There are also three DC levels:
Signal name Usage
TERMPOWER See the Termination section for details DIFFSNS GROUND Grounded in single-ended buses, otherwise floats to a positive voltage 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 they require a pair of wires for each signal. So the number of signals required to implement a SCSI bus is a function of the bus width and voltage:
Parallel SCSI
61
Voltage SE
LVD/HVD 16 SE 16
LVD/HVD 32
SCSI IDs
All devices on a parallel SCSI bus must have a SCSI ID, which may be set by jumpers on older devices or in software. The SCSI ID field widths are:
Bus-width ID width IDs available 8-bit 16-bit 3-bit 4-bit 8 16
Arbitration One or more devices attempt to obtain exclusive control of the bus by asserting /BSY and a single bit corresponding to the device SCSI 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 starts from 7 and works downward to zero. On a 16 bit bus, the eight bit rule applies, followed by 15 and working downward to 8, thus maintaining backward compatibility on a bus with a mix of eight and 16 bit devices. The controlling device is now the "initiator." The initiator sends the command descriptor block (CDB) to a "target," which is another device on the bus. The CDB tells the target what to do.
Command
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 the bus, causing the latter to go to the bus-free condition and allowing other unrelated operations to take place. Reselection is the phase where 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. For example, 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, the initiator could send a "request sense" command to the target for details, the latter which would be returned during the data phase. A message code is exchanged between initiator and target for the purposes of interface management. A status code is sent to the initiator to report the success or failure of the operation.
Message Status
The above list does not imply a specific sequence of events. Following a command to a target to send data to the initiator and a receipt of a command complete status, the initiator could send another command or even send a message.
Parallel SCSI
62
External connectors
No version of the standard has ever specified what kind of connector should be used. Specific types of connectors for parallel SCSI devices were developed by vendors over time. Connectors for serial SCSI devices have diversified into different families for each type of serial SCSI protocol. See the SCSI connector article for a more detailed description. Although parallel SCSI-1 devices typically used bulky Blue Ribbon Centronics connectors, and SCSI-2 devices typically used Mini-D connectors, it is not correct to refer to these as "SCSI-1" and "SCSI-2" connectors. One valid rule is that connectors for wide SCSI buses have more pins and wires than those for narrow SCSI buses. A Centronics-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 buses used 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 additional device connections).
Termination
Parallel SCSI buses must always be terminated at both ends to ensure reliable operation. Without termination, data transitions would reflect back from the ends of the bus causing pulse distortion and potential data loss. A positive DC termination voltage is provided by one or more devices on the bus, typically the initiator(s). This positive voltage is called TERMPOWER and is usually around +4.3 volts. TERMPOWER is SCSI Terminator (Centronics connector) normally generated by a diode connection to +5.0 volts. This is called a diode-OR circuit, designed to prevent backflow of current to the supplying device. A device that supplies TERMPOWER 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 which is 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 regulator which provides a +3.3 V supply. Each signal line is then terminated by a 110 resistor to the +3.3 V supply. Active termination provides a better impedance match than passive termination because most flat ribbon cables have a characteristic impedance of approximately 110 . Forced perfect termination (FPT) is similar to active termination, but with added diode clamp circuits which absorb any residual voltage overshoot or undershoot. There is a special case in SCSI systems that have mixed 8-bit and 16-bit devices where high-byte termination may be required. In current practice most parallel SCSI buses are LVD and so require external, active termination. The usual termination circuit consists of a +3.3 V linear regulator and commercially available SCSI resistor network devices (not individual resistors).
Parallel SCSI
63
Compatibility
For purposes of discussing compatibility, remember that SCSI devices include both host adapters and peripherals such as disk drives. When you ask whether you can cable a certain host adapter to a certain disk drive, you are asking 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 avoid accidental mis-plugging of incompatible devices. For example it is not possible to plug a parallel SCSI disk into an FC-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 SCSI family, for example, it is possible to connect an Ultra-3 SCSI hard disk to an Ultra-2 SCSI controller albeit with reduced speed and feature set. However there are some compatibility issues with parallel SCSI buses. Ultra-2, Ultra-160 and Ultra-320 devices may be freely mixed on the parallel LVD bus with no compromise in performance, as the host adapter will negotiate the operating speed and bus management requirements for each device. Single-ended and LVDS devices can be attached to the same bus, but all devices will run at the slower single-ended speed. The SPI-5 standard (which describes Ultra-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 be placed at one end and all the wide SCSI devices at the other end. The high half of the bus needs to be terminated in between because the high half of the bus ends with the last wide SCSI device. You can get a cable designed to connect the wide part of the bus to the narrow part which either provides a place to plug in a terminator for the high half or includes the terminator itself. This is sometimes referred to as a cable with high-9 termination. Specific commands allow the devices to determine whether their partners are using the whole wide bus or just the lower half and 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 a SCSI narrow disk drive with an HD-50 female connector. You might make this connection with a cable that has an HD-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 adapter determines that the disk drive uses only the low half of the bus, so talks to it using only the lower half. The converse examplea 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/drive chains by using SCA adapters. Although these adapters often have auxiliary power connectors, caution is recommended 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 on the bus. Another requirement is that any parallel SCSI bus must be terminated at both ends with the correct type of terminator. Both active and passive terminators are in common use, with the active type much preferred (and required on LVD buses). Improper termination is a common problem with parallel SCSI installations. In early SCSI buses, 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 DIP switch or moving a jumper). Some modern SCSI host adapters allow the enabling or disabling of termination through BIOS setup. Advanced SCSI devices automatically detect whether they are last on the bus and switch termination on or off accordingly.
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 binding
Host-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 form of zoning. Because it requires the host configuration to be correct in order to avoid zoning conflicts, this form of zoning creates a greater opportunity for administrative errors and conflicting access to targets. Moreover zoning interfaces vary among different host operating systems and HBA's increasing the possibility for administrative errors. If a host is not configured with the zoning software, it can access all devices in the fabric and create an even higher probability of data corruption. Host-based zoning is often used when clusters are implemented to control the mapping of devices to specific[2] target IDs. However, it should never be the only form of zoning. Augmenting host-based zoning with storage- and fabric-based zoning is the only acceptable method to reliably control device access and data security. Basically, A given LUN has it SCSI id assigned by its RAID device (typically a SAN ). But for some purposes it's useful to have the SCSI id assigned by the host itself: that's persistent binding.
Persistent binding
65
Types of zoning
A 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 on the central point of connection of the hosts and the DISK ARRAY: the FC switch.
LUN masking
from 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 be implemented on switches, whereas LUN masking is performed on endpoint devices - host adapters or disk array 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) to improve security and avoid any errors. Otherwise two hosts may access the same data(LUNS) at the same time and it will result in data corruption. Persistent binding is often used in a cluster environnement, to associate a LUN with a persistent SCSI id and device (example /dev/sda)
References
[1] mapping [2] SCSI
External links
http://www.storagesearch.com/datalink-art1.html http://www.enterprisestorageforum.com/sans/features/print.php/11188_1431341_2
SAF-TE
66
SAF-TE
In computer storage, a SCSI Accessed Fault-Tolerant Enclosure is an industry standard to interface an enclosure to a (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) and automatically 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 RAID controller software. Due to the low overhead required, impact on bus performance is negligible. For SAS or Fibre Channel 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 April 14, 1997' by nStor (now Xyratex) and Intel.
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
67
SCSI command
In SCSI computer storage or control, a command is the basic unit of communication. The SCSI command architecture was originally defined for parallel SCSI buses but has been carried forward with minimal change for use with 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 sent in a command descriptor block (CDB), which consists of a one byte operation code (opcode) followed by five or more bytes containing command-specific parameters. Upon receiving and processing the CDB the target will return a status code byte. The rest of this article contains a list of SCSI commands, sortable in opcode or description alphabetical order. In the published SCSI standards, commands are designated as "mandatory," "optional" or "vendor-unique." Only the mandatory commands are required of all devices. There are links to detailed descriptions for the more common SCSI commands. Some opcodes produce different, though usually comparable, effects in different device types; for example, opcode 0x01 recalibrates a disk drive by seeking back to physical sector zero, but rewinds the medium in a tape drive.
SCSI command
68
0A 0B 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1B 1C 1D 1E 23 24 25 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 37 WRITE (6) SEEK (6) READ REVERSE (6) WRITE FILEMARKS (6) SPACE (6) INQUIRY (mandatory) VERIFY(6) RECOVER BUFFERED DATA MODE SELECT (6) RESERVE (6) RELEASE (6) COPY ERASE (6) MODE SENSE (6) START/STOP UNIT LOAD UNLOAD RECEIVE DIAGNOSTIC RESULTS SEND DIAGNOSTIC PREVENT/ALLOW MEDIUM REMOVAL READ FORMAT CAPACITIES (MMC) SET WINDOW READ CAPACITY (10) READ (10) READ GENERATION WRITE (10) SEEK (10) ERASE (10) READ UPDATED BLOCK WRITE AND VERIFY (10) VERIFY (10) SEARCH DATA HIGH (10) SEARCH DATA EQUAL (10) SEARCH DATA LOW (10) SET LIMITS (10) PRE-FETCH (10) SYNCHRONIZE CACHE (10) LOCK/UNLOCK CACHE (10) READ DEFECT DATA (10) INITIALIZE ELEMENT STATUS WITH RANGE
SCSI command
69
38 39 3A 3B 3C 3D 3E 3F 40 41 44 45 46 47 48 49 4A 4B 4C 4D 50 51 52 53 54 55 56 57 58 5A 5B 5C 5D 5E 5F 7E 7F 80 80 MEDIUM SCAN COMPARE COPY AND VERIFY WRITE BUFFER READ BUFFER UPDATE BLOCK READ LONG WRITE LONG CHANGE DEFINITION WRITE SAME (10) REPORT DENSITY SUPPORT PLAY AUDIO (10) GET CONFIGURATION PLAY AUDIO MSF AUDIO TRACK INDEX (not mentioned in T10 overview) AUDIO TRACK RELATIVE 10 (not mentioned in T10 overview) GET EVENT STATUS NOTIFICATION PAUSE / RESUME LOG SELECT LOG SENSE XDWRITE (10) XPWRITE (10) /*READ DISC INFORMATION CDB (in mmc5r02c 6.22.2)*/ XDREAD (10) XDWRITEREAD (10) SEND OPC INFORMATION MODE SELECT (10) RESERVE (10) RELEASE (10) REPAIR TRACK MODE SENSE (10) CLOSE TRACK / SESSION READ BUFFER CAPACITY SEND CUE SHEET PERSISTENT RESERVE IN PERSISTENT RESERVE OUT EXTENDED CDB VARIABLE LENGTH CDB XDWRITE EXTENDED (16) WRITE FILEMARKS (16)
SCSI command
70
81 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 91 92 93 9E 9F A0 A1 A2 A2 A3 A4 A5 A5 A6 A7 A8 A9 A9 AA AB AC REBUILD (16) READ REVERSE (16) REGENERATE (16) EXTENDED COPY RECEIVE COPY RESULTS ATA COMMAND PASS THROUGH (16) ACCESS CONTROL IN ACCESS CONTROL OUT READ (16) COMPARE AND WRITE WRITE (16) ORWRITE READ ATTRIBUTE WRITE ATTRIBUTE WRITE AND VERIFY (16) VERIFY (16) PRE-FETCH (16) SYNCHRONIZE CACHE (16) SPACE (16) LOCK UNLOCK CACHE (16) WRITE SAME (16) SERVICE ACTION IN (16) SERVICE ACTION OUT (16) REPORT LUNS ATA COMMAND PASS THROUGH (12) SECURITY PROTOCOL IN SEND EVENT (not mentioned in T10 overview) MAINTENANCE IN MAINTENANCE OUT (REPORT_KEY) MOVE MEDIUM PLAY AUDIO 12 (not mentioned in T10 overview) EXCHANGE MEDIUM MOVE MEDIUM ATTACHED READ (12) SERVICE ACTION OUT (12) AUDIO TRACK RELATIVE 12 (not mentioned in T10 overview) WRITE (12) SERVICE ACTION IN (12) ERASE (12)
SCSI command
71
AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BC BD BE BF READ DVD STRUCTURE WRITE AND VERIFY (12) VERIFY (12) SEARCH DATA HIGH (12) SEARCH DATA EQUAL (12) SEARCH DATA LOW (12) SET LIMITS (12) READ ELEMENT STATUS ATTACHED SECURITY PROTOCOL OUT SEND VOLUME TAG READ DEFECT DATA (12) READ ELEMENT STATUS READ CD MSF REDUNDANCY GROUP (IN) REDUNDANCY GROUP (OUT) SPARE (IN) PLAY CD (not mentioned in T10 overview) SPARE (OUT) VOLUME SET (IN) 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
72
73
74
SES devices
There 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, the only commonly used one being Enclosure Services Interface (ESI). In fault-tolerant enclosures, more than one disk-drive slot has ESI enabled to allow SES communications to continue even after the failure of any of the disk-drives. The definition of the ESI protocols is owned by an ANSI committee and defined in their specifications ANSI SFF-8067 and SFF-8045. Standalone enclosure services enclosures have a separate SES processor which occupies its own address on the SCSI bus. The protocol for this uses direct SCSI commands. An enclosure can be fault-tolerant by containing two SES processors.
SES commands
The SCSI initiator communicates with an SES device using two SCSI commands: Send Diagnostic and Receive Diagnostic Results. Some universal SCSI commands such as Inquiry are also used with standalone enclosure services to perform basic functions such as initial discovery of the devices.
SES elements
The SCSI Send Diagnostic and Receive Diagnostic Results commands can be addressed to a specific SES element in the enclosure. There are many different element codes defined to cover a wide range of devices. 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 be each given an 8-bit address.
SCSI Enclosure Services When a SES controller is interrogated for the status of a SES element, the response includes a 4-bit element status code. The most common element status codes are: 1h=OK, 2h=critical, 3h=warning, 5h=not installed. ISA
75
Threshold values are set by a Send Diagnostic command to the Threshold Out diagnostic page (05h). Threshold values can be interrogated by a Receive Diagnostic Results command to the Threshold In diagnostic page (05h) with the PCV bit set to one.
Subenclosures
A larger SCSI storage enclosure may contain multiple subenclosures. The subenclosure with address 00h is designated the primary subenclosure and can return information about the other subenclosures.
Implemented commands
Only two SCSI commands are implemented by attached enclosure services devices:
SCSI command Operation code Comment Mandatory Mandatory
76
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.
77
There is a simplification to this which is sometimes used in the case where there is only one 16-bit (wide) device connected to one or more 8-bit (narrow) devices. Then it is possible to wire all the eight spare data bits and the ninth parity bit together and to terminate them with a single resistor circuit to TERMPOWER. So in the case of a differential SCSI bus, it is possible to terminate all 18 spare signal wires with just one resistor. This method is not considered good practice, but has been successfully used in some SCSI products.
78
Types
SCSI 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 in the order of $US40 or so. These were very common up until about 2000, but are now fairly rare: the demise of the ISA slot added a little to the cost; the great improvement in IDE technology (particularly in the case of CD-ROM drives and CD recorders) removed one major use, and the advent of USB made the expense of a SCSI interface unnecessary for most scanners. High-end cards designed for maximum performance, usually for very high-speed hard drives, and especially for situations 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 host adapters, but there is no current expectation that they will disappear in the near future.
Manufacturers
Many companies have manufactured SCSI host adapters at one time or another, but the market structure has been remarkably stable over the years. Two leading manufacturers are Adaptec and LSI Logic.
79
Detailed information
Typically, a computer is an initiator and a data storage device is a target. As in a clientserver architecture, an initiator is analogous to the client, and a target is analogous to the server. Each SCSI address (each identifier on a SCSI bus) displays behavior of initiator, target, or (rarely) both at the same time. There is nothing in the SCSI protocol 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 detailed description of initiator's operation.
Other protocols
Initiator 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 storage networking protocols.
80
Operation code = 12h LUN Reserved Page code Allocation length (MSB) Allocation length (LSB) Control EVPD
If the EVPD parameter bit is zero and the Page Code parameter byte is zero then the target will return the standard inquiry data, which is structured as follows:
bit byte 0 1 2 3 4 5 6 7 815 1631 3235 3655 5695 96 7 6 5 4 3 2 1 0
Peripheral device type Device-type modifier ECMA version ANSI-approved version Response data format
Reserved
Additional length (n-4) Reserved Reserved RelAdr WBus32 WBus16 Sync Linked Reserved CmdQue SftRe Vendor identification (ASCII) Product identification (ASCII) Product revision level Vendor-specific Reserved 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
SCSI Inquiry Command Sync - 1 = supports synchronous transfers Linked - 1 = this LUN supports linked commands CmdQue - 1 = supports Tagged Command Queuing SftRe - 1 = performs soft resets
81
If the EVPD parameter bit is one then the target will return Vital Product Data (VPD). This can be from one of a number 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
References
[1] Seagate Disc Drive SCSI-2/SCSI-3 Interface Manual, publication Number 77738479, Rev H
82
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
SCSI Log Select Command 10 - Default Threshold Values 11 - Default Cumulative Values Parameter List Length - in bytes
83
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.
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 bytes If the Parameter Pointer is zero and the Allocation Length is large enough then all parameters are returned.
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.
85
Protocol-specific Port Power conditions page Reserved Informational exceptions control medium-changer element address assignment medium-changer transport geometry parameters 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.
Operation code = 15h LUN PF Reserved SP Reserved Reserved Parameter list length Control
Operation code = 55h LUN PF Reserved SP Reserved Reserved Reserved Reserved Reserved Parameter list length Control
SCSI Mode Select Command 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 media area.
86
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.
Operation code = 1Ah Reserved DBD Reserved Page code Subpage code [3]
Operation code = 5Ah Reserved LLBAA DBD Reserved PC Page code Reserved Reserved Reserved Reserved Allocation length Control
SCSI Mode Sense Command 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 bit set 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.
87
Notes
[1] [2] [3] [4] [5] SCSI Command Reference, pp.54. SCSI Command Reference, pp.97-100. SCSI Command Reference, pp.97. SCSI Command Reference, pp.101. 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.
88
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 is developed by Microsoft Corporation and is part of the Windows NT family of operating systems.[1]
Overview
The 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 and IOCTL_SCSI_PASS_THROUGH_DIRECT. Applications can build a pass-through request and send it to the device by 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]
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.
89
Further reading
1. "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.
90
Operating system Windows 2000; Windows XP; Windows Vista; Windows 7 Platform Size Type License IA-32 and x64 1 MB Device driver; Application programming interface Proprietary Device driver: Freeware API: Commercial software www.duplexsecure.com/en/home [1]
Website
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 is not open to the public.
Uses
SPTD 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-mode debugging including WinDbg and Microsoft's other command line debuggers as well as SoftICE. Further, certain versions of the freeware optical media burning software ImgBurn will issue a warning, "SPTD can have a detrimental 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 drive performance 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 reading
1. "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.
91
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
92
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).
Operation code = 25h LUN Reserved LBA (MSB) LBA (LSB) RelAdr
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
SCSI Read Capacity Command 1 - return value for the last LBA after which a substantial delay in data transfer will be encountered (e.g., the current track or cylinder) The target will return capacity data structured as follows:
bit 7 6 5 4 3 2 1 0 byte 03 47 Returned LBA Block length in bytes
94
External links
"SCSI Commands References Manual" [2]. Seagate. p.168. Retrieved 2010-12-13.
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 structure is:
bit 7 6 5 4 3 2 1 0 byte 0 1 2 3 4 5 [1] [2] Operation code = 08h LUN LBA LBA LBA Transfer length Control
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 is not worth keeping in the target's data cache. Force Unit Access (FUA) tells the target to fetch the data from the media surface and to not use a cached copy. The RelAdr bit is used to indicate that the LBA value is relative (only used 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 from the first SCSI command definitions, showing remarkable foresight. The CDB structure is:
95
Operation code = 28h DPO FUA Reserved RelAdr LBA Reserved Transfer length Control
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 7 6 5 byte 0 1 25 69 10 11 4 3 2 1 0
Operation code = A8h Reserved DPO FUA Reserved RelAdr LBA Transfer length Reserved 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 capable of addressing 8 388 608 PiB (ATA-6 is capable of max 128 PiB). The Transfer Length field is 32 bits long. The CDB structure is:
bit byte 0 1 29 10-13 14 15 RDPROTECT 7 6 5 4 3 2 1 0
Operation code = 88h DPO FUA Reserved FUA_NV Reserved LBA Transfer length Restricted for MMC-4 Reserved Control Group number
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 Transfer Length field. The CDB structure is:
bit byte 0 1 2-5 6 7 8-9 10 11 12-19 20-23 24-25 26-27 28-31 Reserved 7 6 5 4 3 2 1 0
Operation code = 7Fh Control Reserved Group number Additional CDB length (18h) Service Action (0009h) RDPROTECT DPO FUA Reserved FUA_NV Reserved Reserved LBA Initial Logical Block Reference Tag Expected Logical Block Application Tag Logical Block Application Tag Mask Transfer length
Read Long
The Read Long command is used for Error Correcting Code (ECC) compliant data previously written by a Write Long command. The CORRCT bit defines whether or not the target is allowed to correct any errors found before returning the data to the target. The LBA field is 32 bits in length and the Transfer Length field is 16 bits. The CDB structure is:
bit 7 6 5 4 3 2 byte 0 1 25 6 7-8 9 1 0
Operation code = 3Eh Reserved CORRCT RelAdr LBA Reserved Byte transfer length Control
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
Operation code = 1Ch Reserved PAGE CODE Allocation length Control PCV
External links
"SCSI Commands References Manual" [2]. Seagate. p.158. Retrieved 2012-05-02.
98
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. logical unit addressing method 2. peripheral device addressing method 3. 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.
99
The fixed format response is a set of SCSI sense data which is structured as follows:
bit byte 0 1 2 36 7 811 12 13 14 15 16 17 18 SKSV 7 6 5 4 3 2 1 0
Valid
Filemark EOM
ILI
Reserved Information
Sense key
Additional sense length (n-7) Command-specific information Additional sense code Additional sense code qualifier Field replaceable unit code Sense-key specific Sense-key specific Sense-key specific Additional sense bytes (variable number of bytes)
The descriptor format response is a set of SCSI sense data which is structured as follows:
100
bit byte 0 1 2 3 46 7 8n
Additional sense code Additional sense code qualifier Reserved Additional sense length (n-7) 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 values describe 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)
Sense Key 0h Name Description
No Sense
Indicates there is no specific Sense Key information to be reported for the disc drive. This would be the case for a successful command or when the ILI bit is one. Indicates the last command completed successfully with some recovery action performed by the disc drive. When multiple recovered 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. Indicates the logical unit addressed cannot be accessed. Operator intervention may be required to correct this condition. Indicates the command terminated with a non-recovered error condition, probably caused by a flaw in the medium or an error in the recorded data. 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.
1h
Recovered Error
2h 3h
4h
101
5h
Illegal Request
Indicates an illegal parameter in the command descriptor block or in the additional parameters supplied as data for some commands (Format Unit, Mode Select, and so forth). If the disc drive detects an invalid parameter in the Command Descriptor Block, it shall terminate the command without altering the medium. If the disc drive detects an invalid parameter in the additional parameters supplied as data, the disc drive may have already altered the medium. This sense key may also indicate that an invalid IDENTIFY message was received. This could also indicate an attempt to write past the last logical block. Indicates the disc drive may have been reset.
6h
7h
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. Vendor specific sense key.
9h
Bh
Indicates the disc drive aborted the command. The initiator may be able to recover by trying the command again.
Ch Dh
Indicates a SEARCH DATA command has satisfied an equal comparison. Indicates a buffered peripheral device has reached the end of medium partition and data remains in the buffer that has not been written to the medium. Indicates that the source data did not match the data read from the medium.
Eh
Operation code = 1Dh SELF-TEST CODE PF Reserved SelfTest DevOfl UnitOfl Reserved Parameter list length 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. If the 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 to perform 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
102
Implemented commands
The following SCSI commands are implemented by standalone enclosure services devices:
SCSI command ACCESS CONTROL IN ACCESS CONTROL OUT CHANGE ALIASES INQUIRY LOG SELECT LOG SENSE MAINTENANCE IN MAINTENANCE OUT MODE SELECT MODE SENSE PERISTENT RESERVE IN PERSISTENT RESERVE OUT READ BUFFER RECEIVE DIAGNOSTIC RESULTS REDUNDANCY GROUP IN REDUNDANCY GROUP OUT REPORT ALIASES REPORT DEVICE IDENTIFIER REPORT LUNS REPORT PRIORITY REPORT SUPPORTED OPERATION CODES Operation code Comment 86h 87h A4h 12h 4Ch 4Dh A3h A4h 15h/55h 1Ah/5Ah 5Eh 5Fh 3Ch 1Ch BAh BBh A3h A3h A0h A3h A3h Optional Optional Optional Mandatory Optional Optional See note 1 See note 1 Optional Optional Optional Optional Optional Mandatory See note 1 See note 1 Optional Optional Mandatory Optional Optional Optional Optional Optional Mandatory Mandatory Optional Optional
REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS A3h REPORT TARGET PORT GROUPS REPORT TIMESTAMP REQUEST SENSE SEND DIAGNOSTIC SET DEVICE IDENTIFIER SET PRIORITY A3h A3h 03h 1Dh A4h A4h
103
A4h A4h BCh BDh 00h BEh BFh 3Bh Optional Optional See note 1 See note 1 Mandatory See note 1 See note 1 Optional
SET TARGET PORT GROUPS SET TIMESTAMP SPARE IN SPARE OUT TEST UNIT READY VOLUME SET IN VOLUME SET OUT WRITE BUFFER
Note 1: The initiator needs to send a SCSI inquiry to interrogate the SCCS bit which says whether the SES controller has this command.
Operation code = 1Bh LUN Reserved Reserved Reserved Reserved LoEj Start Immed
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] Seagate Disc Drive SCSI-2/SCSI-3 Interface, Publication Number 77738479, Rev H
104
00h OK
This status code indicates that the device has completed the task successfully.
08h Busy
The target returns Busy if it cannot complete a command at that time, for example if it is in the contingent allegiance condition.
10h Intermediate
The target returns Intermediate when it successfully completes a linked command (except the last command).
105
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/
The device will then return either good status or a check condition.
106
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-bit LBAs. The CDB structure is[1]:
bit 7 6 5 4 3 2 1 0 byte 0 1 2 3 4 5 Operation code = 0Ah Reserved LBA LBA Transfer length Control LBA
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 back soon and so is not worth keeping in the target's data cache. Force Unit Access (FUA) tells the target to immediately send the data to the media surface and to not buffer it through a cache. The EBP bit tells the target that it may skip the erase process when writing data. The RelAdr bit is used to indicate that the LBA value is relative (only used with linked commands). The CDB structure is[]:
bit byte 0 1 25 6 78 9 Reserved 7 6 5 4 3 2 1 0
Operation code = 2Ah WRPROTECT DPO FUA Reserved FUA_NV Obsolete LBA Group Number Transfer length Control
Write (12)
The Write (12) command is similar to the Write(10) command except that it has a larger Transfer Length field. The CDB structure is[]:
107
bit byte 0 1 25 69 10 11
Operation code = AAh WRPROTECT DPO FUA Obsolete FUA_NV Obsolete LBA Transfer length Restricted for MMC-6 Reserved Control Group Number
Write (16)
The CDB structure is[]:
bit byte 0 1 29 10-13 14 15 WRProtect 7 6 5 4 3 2 1 0
Operation code = 8Ah DPO FUA Reserved FUA_NV Obsolete LBA Transfer Length Restricted for MMC-6 Reserved Control Group Number
Write (32)
The CDB structure is[]:
bit 7 byte 0 1 25 6 7 8-9 10 1219 2023 2425 2627 2831 Reserved 6 5 4 3 2 1 0
Operation code = 7Fh Control Reserved Group Number Additional CDB Length (18h) Service Action (000Bh) WRProtect DPO FUA Reserved FUA_NV Reserved LBA Expected Initial Logical Block Reference Tag Expected Logical Block Application Tag Logical Block Application Tag Mask Transfer Length
108
Operation code = 9Fh COR_DIS WR_UNCOR PBLOCK Service Action (11h) LBA Reserved
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.
Sense Key
109
Sense Key
KCQ 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 a SCSI Request Sense command. This process is part of a SCSI protocol called Contingent Allegiance Condition. The target will respond to the Request Sense command with a set of SCSI sense data which includes three fields giving increasing 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 all three fields are usually logically combined into a 20 bit field called Key Code Qualifier or KCQ. The specification for the target device will define the list of possible KCQ values. In practice there are many KCQ values which are common between different SCSI device types and different SCSI device vendors.
Sense Key
110
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Not Ready 2 2 2 2 2 2 2 2 2 2 2 2 2 17 17 17 17 17 17 18 18 18 18 18 18 1C 1C 1C 1F 44 5D 04 04 04 04 04 04 31 31 35 3A 3A 3A 4C 03 05 06 07 08 09 00 01 02 05 06 07 00 01 02 00 00 00 00 01 02 03 04 09 00 01 02 00 01 02 00 Recovered data using negative offset Recovered data using previous logical block ID Recovered Read error - without ECC, auto reallocated Recovered Read error - without ECC, recommend reassign Recovered Read error - without ECC, recommend rewrite Recovered Read error - without ECC, data rewritten Recovered Read error - with ECC Recovered data with ECC and retries Recovered Read error - with ECC, auto reallocated Recovered Read error - with ECC, recommend reassign Recovered data using ECC and offsets Recovered Read error - with ECC, data rewritten Defect List not found Primary defect list not found Grown defect list not found Partial defect list transferred Internal target failure PFA threshold reached Not Ready - Cause not reportable. Not Ready - becoming ready Not Ready - need initialise command (start unit) Not Ready - manual intervention required Not Ready - format in progress Not Ready - self-test in progress Not Ready - medium format corrupted Not Ready - format command failed Not Ready - enclosure services unavailable Not Ready - medium not present Not Ready - medium not present - tray closed Not Ready - medium not present - tray open Diagnostic Failure - config not loaded
Sense Key
111
Medium Error 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Hardware Error 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 02 03 10 11 11 11 11 11 14 16 16 19 19 19 19 19 31 31 01 02 03 09 11 16 19 19 19 31 32 35 35 35 35 35 3E 3E 44 00 00 00 00 01 02 04 0B 01 00 04 00 01 02 03 0E 00 01 00 00 00 00 00 00 00 02 03 00 00 01 02 03 04 05 03 04 00 Medium Error - No Seek Complete Medium Error - write fault Medium Error - ID CRC error Medium Error - unrecovered read error Medium Error - read retries exhausted Medium Error - error too long to correct Medium Error - unrecovered read error - auto re-alloc failed Medium Error - unrecovered read error - recommend reassign Medium Error - record not found Medium Error - Data Sync Mark error Medium Error - Data Sync Error - recommend reassign Medium Error - defect list error Medium Error - defect list not available Medium Error - defect list error in primary list Medium Error - defect list error in grown list Medium Error - fewer than 50% defect list copies Medium Error - medium format corrupted Medium Error - format command failed Hardware Error - no index or sector Hardware Error - no seek complete Hardware Error - write fault Hardware Error - track following error Hardware Error - unrecovered read error in reserved area Hardware Error - Data Sync Mark error in reserved area Hardware Error - defect list error Hardware Error - defect list error in Primary List Hardware Error - defect list error in Grown List Hardware Error - reassign failed Hardware Error - no defect spare available Hardware Error - unsupported enclosure function Hardware Error - enclosure services unavailable Hardware Error - enclosure services transfer failure Hardware Error - enclosure services refused Hardware Error - enclosure services checksum error Hardware Error - self-test failed Hardware Error - unable to update self-test Hardware Error - internal target failure
Sense Key
112
Illegal Request 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 Unit Attention 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1A 20 21 24 25 26 26 26 26 26 2C 35 49 53 53 53 55 55 55 28 29 29 29 29 29 29 29 2A 2A 2A 2A 2A 2A 00 00 00 00 00 00 01 02 03 04 00 01 00 00 01 02 00 01 04 00 00 01 02 03 04 05 06 00 01 02 03 04 05 Illegal Request - parm list length error Illegal Request - invalid/unsupported command code Illegal Request - LBA out of range Illegal Request - invalid field in CDB (Command Descriptor Block) Illegal Request - invalid LUN Illegal Request - invalid fields in parm list Illegal Request - parameter not supported Illegal Request - invalid parm value Illegal Request - invalid field parameter - threshold parameter Illegal Request - invalid release of persistent reservation Illegal Request - command sequence error Illegal Request - unsupported enclosure function Illegal Request - invalid message Illegal Request - media load or eject failed Illegal Request - unload tape failure Illegal Request - medium removal prevented Illegal Request - system resource failure Illegal Request - system buffer full Illegal Request - Insufficient Registration Resources Unit Attention - not-ready to ready transition (format complete) Unit Attention - POR or device reset occurred Unit Attention - POR occurred Unit Attention - SCSI bus reset occurred Unit Attention - TARGET RESET occurred Unit Attention - self-initiated-reset occurred Unit Attention - transceiver mode change to SE Unit Attention - transceiver mode change to LVD Unit Attention - parameters changed Unit Attention - mode parameters changed Unit Attention - log select parms changed Unit Attention - Reservations pre-empted Unit Attention - Reservations released Unit Attention - Registrations pre-empted
Sense Key
113
6 6 6 6 6 6 6 Write Protect 7 2F 3F 3F 3F 3F 3F 5D 27 00 1B 25 3F 43 44 45 47 48 49 4B 4E 4F 1D 05 06 07 08 08 08 08 09 09 00 00 01 02 03 05 00 00 00 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 02 03 00 01 Unit Attention - commands cleared by another initiator Unit Attention - target operating conditions have changed Unit Attention - microcode changed Unit Attention - changed operating definition Unit Attention - inquiry parameters changed Unit Attention - device identifier changed Unit Attention - PFA threshold reached Write Protect - command not allowed Aborted Command - no additional sense code Aborted Command - sync data transfer error (extra ACK) Aborted Command - unsupported LUN Aborted Command - echo buffer overwritten Aborted Command - message reject error Aborted Command - internal target failure Aborted Command - Selection/Reselection failure Aborted Command - SCSI parity error Aborted Command - initiator-detected error message received Aborted Command - inappropriate/illegal message Aborted Command - data phase error Aborted Command - overlapped commands attempted Aborted Command - due to loop initialisation Miscompare - during verify byte check operation Illegal request Unit attention Data protect LUN communication failure LUN communication timeout LUN communication parity error LUN communication CRC error vendor specific sense key servo fault
Sense Key
114
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 09 0A 0B 0C 0C 0E 12 14 15 15 15 27 29 31 32 32 35 37 3D 3E 40 40 42 4C 5C 5C 5C 65 80 x 04 00 00 00 02 00 00 00 00 01 02 00 00 01 01 02 01 00 00 00 01 02 00 00 00 01 02 00 x 80 head select fault error log overflow aborted command write error write error - auto-realloc failed data miscompare address mark not found for ID field logical block not found random positioning error mechanical positioning error positioning error detected by read of medium write protected POR or bus reset occurred format failed defect list update error no spares available unspecified enclosure services failure parameter rounded invalid bits in identify message LUN not self-configured yet DRAM parity error DRAM parity error power-on or self-test failure LUN failed self-configuration RPL status change spindles synchronised spindles not synchronised voltage fault Vendor specific Vendor specific
References
SPC-4 [1] clause 4.5.6 and annex D.2
115
Serial Attached SCSI (SAS) is a communication protocol used to move data to and from computer storage devices such as hard drives and tape drives. SAS is a point-to-point serial protocol that replaces the parallel SCSI bus technology that first appeared in the mid 1980s in data centers and workstations, and it uses the standard SCSI command set. SAS offers backwards-compatibility with second-generation SATA drives. SATA 3Gbit/s drives may be 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.
Introduction
A 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 an on-board component on the motherboard (as is the case with many server-oriented motherboards) or as an add-on host bus adapter. 2. A Target: a device containing logical units and target ports that receives device service and task management requests for processing and sends responses for the same requests to initiator devices. A target device could be a hard 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 a target. Typically cables connecting an initiator and target with or without expanders and backplanes constitute a service delivery subsystem. 4. Expanders: devices that form part of a service delivery subsystem and facilitate communication between SAS devices. Expanders facilitate the connection of multiple SAS End devices to a single initiator port.
Serial attached SCSI In addition, every SAS device has a SCSI device name, which identifies the SAS device uniquely in the world. One doesn'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 port identifier 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.
116
117
Characteristics
Technical details
The Serial Attached SCSI standard defines several layers (in order from highest to lowest): Application Transport Port Link PHY Physical
Serial 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 the SAS wiring and signaling are compatible with and have loosely tracked that of SATA up to the present 6Gbit/s rate, although SAS defines more rigorous physical signaling specifications as well as a wider allowable differential voltage swing intended to allow longer cabling. While SAS-1.0/SAS-1.1 adopted the physical signaling characteristics of SATA at the 1.5Gbit/s and 3Gbit/s rates, SAS-2.0 development of a 6Gbit/s physical rate led the development of an equivalent SATA speed. According to the SCSI Trade Association, 12Gbit/s is slated to follow 6Gbit/s in a future SAS-3.0 specification.[1]
Architecture
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
Architecture of SAS layers
Serial attached SCSI 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
118
Topology
An initiator may connect directly to a target via one or more PHYs (such a connection is called a port whether it uses one or more PHYs, although the term wide port is sometimes used for a multi-PHY connection).
SAS Expanders
The components known as Serial Attached SCSI Expanders (SAS Expanders) facilitate communication between large numbers of SAS devices. Expanders contain two or more external expander-ports. Each expander device contains at least one SAS Management Protocol target port for management and may contain SAS devices itself. For example, an expander may include a Serial SCSI Protocol target port for access to a peripheral device. An expander is not necessary to interface a SAS initiator and target but allows a single initiator to communicate with more SAS/SATA targets. A useful analogy: one can regard an expander as akin to a network switch in a network which allows 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 between the 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 most two edge expanders in your delivery subsystem (because you will connect the subtractive routing port of those edge expanders together, and you can't connect any more expanders). To solve this bottleneck, you would use fanout expanders. A fanout expander can connect up to 255 sets of edge expanders, known as an edge expander device set, allowing for even more SAS devices to be addressed. The subtractive routing port of each edge expanders will be connected to the phys of fanout expander. A fanout expander cannot do subtractive routing, it can only forward subtractive routing requests to the connected edge expanders. Direct routing allows a device to identify devices directly connected to it. Table routing identifies devices connected to the expanders connected to a device's own PHY. Subtractive routing is used when you are not able to find the devices 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 to packet-switching) end-devices (initiators or targets). They may locate an end-device either directly (when the end-device is connected to it), via a routing table (a mapping of end-device IDs and the expander the link should be switched to downstream to route towards that ID), or when those methods fail, via subtractive routing: the link is routed to a single expander connected to a subtractive routing port. If there is no expander connected to a subtractive port, the end-device cannot be reached. Expanders with no PHYs configured as subtractive act as fanout expanders and can connect to any number of other expanders. Expanders with subtractive PHYs may only connect to two other expanders at a maximum, and in that
Serial attached SCSI 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 one exception case being topologies that contain two expanders connected via a subtractive-to-subtractive port. If it exists, the root node is the expander which is not connected to another expander via a subtractive port. Therefore, if a fanout expander exists in the configuration, it must be the domain's root node. The root node contains routes for all end devices connected to the domain. Note that with the advent in SAS-2.0 of table-to-table routing and new rules for end-to-end zoning, more complex topologies built upon SAS-2.0 rules will not contain a single root node.
119
Connectors
The 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 6Gbit/s, but is expected to reach 12Gbit/s by the year 2012. The physical SAS connector comes in several different variants:[2]
Image Codename Other names Ext./int. No of pins Internal 29 No of devices 1 Comment
SFF-8482
This form factor is designed for compatibility with SATA. The socket is compatible with SATA drives; however, the SATA socket is not compatible with SFF-8482 (SAS) drives. The pictured connector is a drive-side connector. Hi-density internal connector, 2 and 4 lane versions are defined by the SFF standard. Defines SGPIO (extension of SFF 8484), a serial link protocol used usually for LED indicators.
SFF-8484
Internal
32 (19)
4 (2)
SFF-8485
SFF-8470
External 32
SFF-8086
Internal
26
This is actually just a particular implementation of SFF-8086, which covers a variety of connectors, including SFF-8087 and SFF-8088 (below). This unnamed 26-circuit unshielded connector type is uncommon, as SFF-8087 is usually used instead. Unshielded 36-circuit implementation of SFF-8086. Molex iPass reduced width internal 4 connector with future 10Gbit/s capability. Shielded 26-circuit implementation of SFF-8086. Molex iPass reduced width external 4 connector with future 10Gbit/s capability.
SFF-8087
Internal mini-SAS, internal mSAS, internal iSAS External mini-SAS, external mSAS, external iSAS
Internal
36
SFF-8088
External 26
120
Nearline SAS
Nearline SAS or NL-SAS drives are enterprise SATA drives with a SAS interface, head, media, and rotational speed of 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, NAS solutions, 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, Seagate Technology)
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.83MiB 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)
121
Link characteristics
The copper cables used in SSA configurations are round bundles of two or four twisted pairs, up to 25 metres long and terminated with 9-pin micro-D connectors. Impedances are 75 ohm single-ended, and 150 ohm differential. For longer-distance connections, it is possible to use fiber-optic cables up to 10km (6 mi) in length. Signals are differential TTL. The transmission capacity is 20 megabytes per second in each direction per channel, with up to two channels 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.
122
References
[1] IBM 7133 Serial Disk Systems Presentation Guide P9-10 [2] http:/ / www-01. ibm. com/ support/ docview. wss?uid=pub1gc26727401
SCSI hard drives showing 80-pin SCA connector (top) and 68-pin connector and separate power and configuration jumpers (bottom)
SCSI backplane with 80-pin SCA connectors. Hard Drives are mounted on proprietary hot-swappable caddies.
Some of the pins in SCA connectors are longer than others, so they are connected first and disconnected last. This ensures the electrical integrity of the whole system. Otherwise, the angle at which the plug is inserted into the drive could be the reason for damage because, for instance, the pin carrying the voltage could get connected before its corresponding ground reference pin. The additional length also provides what is known as a pre-charge which provides a means whereby the device is alerted to a pending power surge. That allows a slower transition to full power and thereby makes the device more stable.
123
To make better use of their hot-plugging capability, SCA drives usually are installed into drive bays into which they slide with ease. At the far end of these bays is the backplane of the SCSI subsystem located with a connector that plugs into the drive automatically when it is inserted. Full hot-swappable functionality still requires the support of other software and hardware components of the system. In particular the operating system and RAID layers will need hot-swap support to enable hard drive hot-swapping to be carried out without shutting down the system.
Standards
SCSI 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.htm Organization responsible for drafts of the specification documents is the Technical Committee T10: http:/ / www. t10.org/
Overview
For efficiency the sectors should be serviced in order of proximity to the current head position, rather than in the order received. The queue is constantly receiving new requests and fulfilling and removing existing requests, and re-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 simply makes 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 a building 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 elevator would go to the floors in the order requested. A modern elevator processes the requests to stop at floors in the logical order 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 performance slightly in a system used by a single user, but may dramatically increase performance in a system with many users making widely varied requests on the disk surface.
124
ATA TCQ
ATA TCQ was developed in attempt to bring the same benefits as SCSI to ATA drives. It is available in both Parallel and Serial ATA. This effort was not very successful because the ATA bus started out as a reduced-pin-count ISA bus. The requirement for software compatibility made ATA host bus adapters act like ISA bus devices without first party DMA. When a drive was ready for a transfer, it had to interrupt the CPU, wait for the CPU to ask the disk what command was ready to execute, respond with the command that it was ready to execute, wait for the CPU to program the host bus adapter's third party DMA engine based on the result of that command, wait for the third party DMA engine to execute the command, and then had to interrupt the CPU again to notify it when the DMA engine finished the task so that the CPU could notify the thread that requested the task that the requested task was finished[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 but is unable to do so because it must wait for a CPU to respond to the interrupt so that the CPU knows that it needs to program the third party DMA engine[2].
Tagged Command Queuing Therefore, this standard was rarely implemented because it caused high CPU utilization without improving performance enough to make this worthwhile[2]. This standard allows up to 32 outstanding commands per device [4].
125
SATA NCQ
SATA NCQ is a modern standard which drastically reduces the number of required CPU interrupts compared to ATA TCQ. Like ATA TCQ, it allows up to 32 outstanding commands per device[2], but was designed to take advantage of the ability of SATA host bus adapters that are not emulating parallel ATA behavior to support first party DMA[2]. Instead of interrupting the CPU before the task to force it to program the host bus adapter's DMA engine, the hard drive tells the host bus adapter which command it wants to execute, causing the host bus adapter to program its integrated first-party DMA engine with the parameters that were included in the command that was selected by the hard drive when it was first issued, and then the DMA engine moves the data needed to execute the command[2]. To further reduce the interrupt overhead, the drive can withhold the interrupt with the task completed messages until it gathers many of them to send at once, allowing the operating system to notify many threads simultaneously that their tasks have been completed[2]. If another task completes after such an interrupt is sent, the host bus adapter can concatenate the completion messages together if the first set of completion messages has not been sent to the CPU[2]. This allows the hard disk firmware design to trade off disk performance against CPU utilization 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): 47. 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
126
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-order commands 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
127
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 an RJ-45 patch panel.
Formats
Each WWN is an 8 or 16 byte number, the length and format of which is determined by the most significant four bits, which are referred to as an NAA (Network Address Authority.) The remainder of the value is derived from an IEEE 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 and multicast 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 NAA 1 format and NAA 2 format is merely the presence of either a zero pad or an extra 3 nibbles of vendor information. "Registered" IEEE formats dispense with padding and place the OUI immediately after the NAA. The OUI is no longer considered to be part of a MAC-48/EUI-48 address. For NAA 5 format, this leaves 9 contiguous nibbles for a vendor-defined value. This is the same format used by the companion NAA 6 format, the only difference
World Wide Name being a 16-byte number space is assumed, rather than an 8-byte number space. This leaves a total of 25 contiguous 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. When reconstructing the embedded EUI-64 value, the U/L and multicast bits are assumed to have carried zero values.
128
Presentation
WWN addresses are predominantly represented as colon separated hexadecimal octets, MSB-first, with leading zeros. However, there is much variance between vendors[2].
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
130
131
132
133
License
134
License
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/