Serial Attached SCSI

From Wikipedia, the free encyclopedia

2.5" and 3.5" SAS Hard Drives (A Hershey's Kiss for size comparison.)
2.5" and 3.5" SAS Hard Drives (A Hershey's Kiss for size comparison.)

In computer hardware, Serial Attached SCSI (SAS) is a computer bus technology primarily designed for transfer of data to and from devices like hard drives, CD-ROM drives and so on. SAS is a serial communication protocol for direct attached storage (DAS) devices. It is designed for the corporate and enterprise market as a replacement for parallel SCSI, allowing for much higher speed data transfers than previously available, and is backwards-compatible with SATA drives. Though SAS uses serial communication instead of the parallel method found in traditional SCSI devices, it still uses SCSI commands for interacting with SAS End devices. SAS protocol is developed and maintained by T10 committee. The current draft revision of SAS protocol can be downloaded from SAS 2 draftPDF (5.87 MiB).

Contents

[edit] Introduction

A typical Serial Attached SCSI system would consist of the following basic components:

  1. An Initiator is a device that originates device service and task management requests to be processed 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 is 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 is 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 constitute a service delivery subsystem.
  4. Expanders are devices that are part of a service delivery subsystem and facilitate communication between SAS devices. It facilitates connection of multiple SAS End devices to a single initiator port.

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

A "SAS Domain" is an I/O system consisting 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 to the device manufacturer by IEEE (similar to that of an Ethernet device's MAC address) called as World Wide Name (aka 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 (Serial Attached SCSI) vs parallel SCSI

  • SAS uses Serial transfer protocol to interface multiple devices hence lesser signaling overhead than parallel SCSI, resulting in higher speed.
  • No bus contention as SAS bus is point-to-point while SCSI bus is multidrop. Each device is connected by a dedicated bus to the initiator. Connection through expanders may appear to cause some contention, but this is transparent to the initiator.
  • SAS has no termination issues and does not require terminator packs like parallel SCSI.
  • SAS eliminates clock skew.
  • SAS supports higher number of devices (> 16384) while Parallel SCSI limits it to 8, 16, or 32.
  • SAS supports higher transfer speed (1.5, 3.0 or 6.0 Gbps). The speed is realized on each initiator-target connection, hence higher throughput whereas in parallel SCSI the speed is shared across the entire multidrop bus.
  • SAS supports SATA devices.
  • SAS uses SCSI commands to interface with SAS End devices.

[edit] SAS vs SATA

  • SATA devices are uniquely identified by their port number connected to the Host bus adapter while SAS devices are uniquely identifed by their World Wide Name (WWN).
  • 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 ATA command set and supports hard drives and CD-ROM drives only while SAS supports a wide range of devices including hard drives, scanners, printers, CD-ROM drives etc.
  • SAS hardware allows multipath I/O to devices while SATA does not. Effort is on in SATA 2 to use port multiplier to achieve multipathing.
  • SATA is primarily used for non-critical applications like home PC use while SAS, due to its robustness, can be used for critical server applications.
  • SAS error recovery and reporting are much cleaner than SATA.
  • SAS complements SATA and is not a competitor to SATA.
  • SAS uses higher Signal Voltages (800-1600mV TX, 275-1600mV RX) than SATA (400-600mV TX, 325-600mV RX), so when mixed, SAS-drives fall back to SATA-voltages.
  • SAS can use cables up to 8 m (25ft) long, SATA is limited to 1 m.

[edit] SAS Expanders

A Serial Attached SCSI Expander (SAS Expander) is a component used to 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 an Serial SCSI Protocol target port for access to a peripheral device. An expander is not necessary to interface a SAS initiator and target but if connected it helps a single initiator to communicate to more SAS/SATA targets. An useful analogy could be is that expanders can be considered akin to an ethernet hub in a network that allows multiple systems to be connected using a single port in the network.

There are two different types of expanders: 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 are the ones which can do Direct Table routing, and Subtractive Routing. Brief Discussion of these routing mechanisms are below. Without fan out expander you can use at the max 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 we are going for Fan-Out 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. Subtractive routing port of all edge expanders will be connected to the phys of fan-out expander. Fan out expander can not do subtractive routing, it can only forward subtractive routing requests to the connected edge expanders.
  • A Dual Expander is an expander (either Fanout or Edge) featuring redundant links.

Direct routing is to identify devices directly connected to it. Table routing is for identifying devices connected to the expanders connected to its 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 different branch altogether.

[edit] Connectors

The SAS connector is much smaller than traditional parallel SCSI connectors allowing for the small 2.5 inch drives. SAS 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 is available in several different variants including:

  • SFF 8482 — which is form factor compatible with SATA,
  • SFF 8484 — hi-density internal connector for connecting up to 4 devices,
  • SFF 8470 — hi-density external connector (aka Infiniband connector, also used as an internal connector) for connecting up to 4 devices.
  • SFF 8087 - Molex iPASS reduced width internal 4x connector with future 10 Gbit/s support
  • SFF 8088 - Molex iPASS reduced width external 4x connector with future 10 Gbit/s support

The SFF 8482 connector 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. Conversely, SAS drives are not usable on a SATA bus and have their physical connector keyed to prevent any plugging into a SATA backplane.

[edit] Technical details

Serial Attached SCSI is comprised of 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.

[edit] Topology

An initiator may be directly connected 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).

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

Practical enforcement of this topology is outside the scope of this section.

[edit] External references