Serial Attached SCSI

From Wikipedia, the free encyclopedia

A 15,000 RPM SAS hard drive.
Enlarge
A 15,000 RPM SAS hard drive.

In computer hardware, Serial Attached SCSI (SAS) is a computer bus technology primarily designed for transfer of data to and from devices like hard disk, cd-rom 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. 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 draft.

Contents

[edit] Introduction

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

Initiators
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.
Targets
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.
Service Delivery Subsystem
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.
Expanders
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

An I/O system consisting of a set of SAS devices that communicate with one another by means of a service delivery subsystem constitute a "SAS Domain". 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 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 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).
  • SATA 1 devices do not support command queuing while SAS devices support Tagged Command Queuing. Effort is on in SATA 2 to support command queuing using Native Command Queuing (NCQ).
  • 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 mulitpathing.
  • 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.

[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 a 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 initator to communicate with these additional devices.
  • 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.

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

SAS supports point data transfer speeds up to 3 Gbit/s, but is expected to reach 10 Gbit/s by the year 2010. The SAS connector is much smaller than traditional parallel SCSI connectors allowing for the small 2.5 inch drives.

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 useable on a SATA bus and have their physical connector keyed to prevent any plugging into a SATA backplane.

[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

In other languages