Serial Attached SCSI

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Technical specifications Serial Attached SCSI
Performance Full-duplex with link aggregation (wide ports at 24 Gbit/s)
3.0 Gbit/s at introduction, 6.0 Gbit/s avail Feb '09 ( http://www.attotech.com/sashostadaptertechnology.html )
Connectivity 8 meter external cable
128 device port expanders (16K + total devices)
SAS-to-SATA compatibility
Availability Dual-port HDDs
Multi-initiator point-to-point
Driver Software-transparent with SCSI

In computing, the data-transfer technology Serial Attached SCSI (SAS) moves data to and from computer storage devices such as hard drives and tape drives. SAS depends on a point-to-point serial protocol that replaces the parallel SCSI bus technology that first appeared in the mid 1980s in corporate data centers, and it uses the standard SCSI command set. As of 2009 it operates slightly slower than the final parallel SCSI implementation, but in 2009 it will double its present speed to 6 Gbit/s, allowing for much higher speed data transfers than previously available. SAS offers "downwards"-compatibility with second-generation SATA drives. SATA 3.0 Gbit/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.

Contents

[edit] 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.

[edit] SAS Domain and WWN (World Wide Name)

A "SAS Domain", an I/O system, consists of a set of SAS devices that communicate with one another by means of a service delivery subsystem. Each SAS device in a SAS domain has a globally unique identifier (assigned by the device manufacturer and similar to an Ethernet device's MAC address) called a World Wide Name (WWN or "SAS address"). The WWN uniquely identifies the device in the SAS domain just as a SCSI ID identifies a device in a parallel SCSI bus. A SAS domain may contain up to a total of 16,256 devices.

[edit] SAS vs parallel SCSI

  • The SAS bus operates point-to-point while the SCSI bus is multidrop. Each SAS device is connected by a dedicated link to the initiator, unless an expander is used. If one initiator is connected to one target, there is no opportunity for contention; with parallel SCSI, even this situation could cause contention.
  • SAS has no termination issues and does not require terminator packs like parallel SCSI.
  • SAS eliminates clock skew.
  • SAS supports up to 16,384 devices through the use of expanders, while Parallel SCSI has a limit of 8 or 16 devices on a single channel.
  • SAS supports a higher transfer speed (3.0 or 6.0 Gbit/s) than most parallel SCSI standards. SAS achieves these speeds on each initiator-target connection, hence getting higher throughput, whereas parallel SCSI shares the speed across the entire multidrop bus.
  • SAS controllers may support connecting to SATA devices, either directly connected using native SATA protocol or through SAS expanders using SATA Tunneled Protocol (STP).
  • Both SAS and parallel SCSI use the SCSI command-set.

[edit] SAS vs SATA

  • Systems identify SATA devices by their port number connected to the host bus adapter, while SAS devices are uniquely identified by their World Wide Name (WWN).
  • SAS protocol supports multiple initiators in a SAS domain, while SATA has no analogous provision.
  • Most SAS drives provide tagged command queuing, while most newer SATA drives provide native command queuing, each of which has its pros and cons.
  • SATA follows the ATA command set and thus only supports hard drives and CD/DVD drives. In theory, SAS also supports numerous other devices including scanners and printers. However, this advantage could also be moot, as most such devices have also found alternative paths via such buses as USB, IEEE 1394 (FireWire), and Ethernet.
  • SAS hardware allows multipath I/O to devices while SATA (prior to SATA II) does not. Per specification, SATA II makes use of port multipliers to achieve port expansion. Some port multiplier manufacturers have implemented multipath I/O using port multiplier hardware.
  • SATA is marketed as a general-purpose successor to parallel ATA and has become common in the consumer market, while the more expensive SAS targets critical server applications.
  • SAS error-recovery and -reporting use SCSI commands which have more functionality than the ATA SMART commands used by SATA drives.
  • SAS uses higher signaling voltages (800-1600 mV TX, 275-1600 mV RX) than SATA (400-600 mV TX, 325-600 mV RX). The higher voltage offers (among other features) the ability to use SAS in server backplanes.
  • Because of its higher signaling voltages, SAS can use cables up to 8 m (26 ft) long, SATA has a cable-length limit of 1 m (3 ft).

[edit] Characteristics

[edit] Technical details

The Serial Attached SCSI standard defines several layers (in order from highest to lowest):

  • Application
  • Transport
  • Link
  • PHY
  • Physical

Serial Attached SCSI comprises three transport protocols:

  • Serial SCSI Protocol (SSP) — supporting SAS disk drives.
  • Serial ATA Tunneling Protocol (STP) — supporting SATA disks.
  • Serial Management Protocol (SMP) — for managing SAS Expanders.

For the Link and PHY layers, SAS defines its own unique protocol.

At the physical layer, the SAS standard defines connectors and voltage levels. Although not identical, the physical characteristics of the SAS wiring and signaling resemble those of SATA so closely that it is unlikely that one technology will be faster than the other. SAS and SATA will probably both progress at the same rate to 3.0 Gbit/s, 6.0 Gbit/s, and 12.0 Gbit/s.[original research?]

[edit] Architecture

Architecture of SAS layers

SAS architecture consists of six layers:

  • Physical layer:
    • defines electrical and physical characteristics
    • differential signaling transmission
    • Three connector types:
      • SFF 8482 – SATA compatible
      • SFF 8484 – up to four devices
      • SFF 8470 – external connector (InfiniBand connector), up to four devices
  • PHY Layer:
    • 8b/10b data encoding
    • Link initialization, speed negotiation and reset sequences
    • Link capabilities negotiation (SAS-2)
  • Link layer:
    • Insertion and deletion of primitives for clock-speed disparity matching
    • Primitive encoding
    • Data scrambling for reduced EMI
    • Establish and tear down native connections between SAS targets and initiators
    • Establish and tear down tunneled connections between SAS initiators and SATA targets connected to SAS expanders
    • Power management (proposed for SAS-2.1)
  • Port layer:
    • Combining multiple PHYs with the same addresses into wide ports
  • Transport layer:
    • Supports three transport protocols:
      • Serial SCSI Protocol (SSP): supports SAS devices
      • Serial ATA Tunneled Protocol (STP): supports SATA devices attached to SAS expanders
      • Serial Management Protocol (SMP): provides for the configuration of SAS expanders
  • Application layer

[edit] 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).

[edit] 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.

There are two different types of expander: Edge Expanders and Fanout Expanders.

  • An edge expander allows for communication with up to 128 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 128 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 can not do subtractive routing, it can only forward subtractive routing requests to the connected edge expanders.

[Note that the SAS-2.0 standard has dropped the distinction between fanout expanders and edge expanders, as it has been widely viewed[by whom?] to create unnecessary topological limitations with no realized benefit.]

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 case they must connect to one expander via a subtractive port and the other via a non-subtractive port.

There exists one root (the most "upstream") node in a SAS domain. This 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 knows about all end devices connected to the domain.

[edit] Connectors

The SAS connector is much smaller than traditional parallel SCSI connectors, allowing for the small 2.5-inch (64 mm) drives. SAS currently supports point data transfer speeds up to 3 Gbit/s, but is expected to reach 12 Gbit/s by the year 2012.

The physical SAS connector comes in several different variants[1]:

Image Codename Also known as Ext/int # of pins # of devices Comment
SFF 8482 SATA connector Internal 1 Form-factor compatible with SATA: allows for SATA drives to connect to a SAS backplane, which obviates the need to install an additional SATA controller just to attach a DVD-writer, for example. Note that SAS drives are not usable on a SATA bus and have their physical connector keyed to prevent any plugging into a SATA backplane. The pictured connector is a drive-side connector.
SFF 8484 Internal 32 (19) 4 (2) Hi-density internal connector, 2 and 4 lane versions are defined by the SFF standard
SFF 8485 Defines SGPIO (extension of SFF 8484) - a serial link protocol used usually for LED indicators
SFF 8470 Infiniband connector External 32 4 Hi-density external connector (also used as an internal connector)
SFF 8087 Internal mini-SAS Internal 36 4 Molex iPASS reduced width internal 4x connector with future 10 Gbit/s support
SFF 8088 External mini-SAS External 26 4 Molex iPASS reduced width external 4x connector with future 10 Gbit/s support

[edit] References

  1. ^ SFF Committee specifications

[edit] See also

[edit] External references

Personal tools