Serial Attached SCSI (SAS) chipsets — Linux support status

Revised: Fri Jun 9 13:24:56 PDT 2006


Linux on Serial Attached SCSI

Serial Attached SCSI (SAS) is a architectural standard for high-speed mass storage, proposed by the SCSI Trade Association in 2003 and approved by the ANSI INCITS organisation's T10 Committee in January 2004 as a replacement for Ultra320 (U320) SCSI. Unlike its U320 predecessor and like its Serial ATA cousin, it relies on a serial-type signaling standard, using two pairs of differential cables supporting point-to-point connections. (Thus, each connected storage device "node" has a unique, predefined address, unlike the case with FiberChannel, which uses loop addressing rather than point-to-point addressing.) A SAS host-bus adapter (HBA), whose circuit design is very similar to that of 10 gigabit Ethernet switches, defaults to four high-speed "channels" that can either connect to storage nodes or to "expander" circuitry to increase the number of possible nodes. Using one level of "expanders", dubbed "fanout expanders", permits addressing of 128 nodes. Adding subsidiary "edge expanders" to the first set increases maximum node count to 16,256. SAS-compliant hardware first appeared in mid-2005, and it should rapidly and completely replace U320 during 2006 as midmarket storage (between FibreChannel on the top end and pure Serial ATA at the bottom).


Why SAS?

Implementing the same ideas tested with the Serial ATA (SATA) standard, SAS permits SCSI devices and cabling to simultaneously be significantly cheaper, faster (initial 3GB/sec bus speed, soon going to 20GB/sec and up), with longer cable runs (6 metres), with less cooling impairment (thin cables), running at lower voltage (hence cooler), and with much greater scalability as mentioned above. Although the the U320 spec's extrapolation to a faster U640 parallel-SCSI standard did reach a completed draft stage, SAS has turned out to have such compelling advantages that very likely no U640 hardware will ever come to market.

Because SATA and SAS share a cabling/signaling standard, any SAS HBA may serve simultaneously both SAS and SATA nodes (hard drives, and in theory similar devices). Both types of devices will enjoy the common high bus bandwidth. However, only SAS nodes benefit from SAS device-arbitration abilities and the full SCSI command set. (Those drives are managed using an implementation of SCSI called Serial SCSI Protocol, or SSP.) SATA devices monopolise the bus segments they live on, and use the simpler ATA command set. (Those drives are managed using Serial ATA Tunneling Protocol, or STP. Expander circuitry, if present, is managed using Serial Attached SCSI Management Protocol, or SMP.)


Known SAS HBAs and Their Linux Drivers

Known HBAs are listed below, with our current information on suitable Linux drivers.

Adaptec:

ATTO Technology, Inc.:

Broadcom:

Dell Computer:

Hewlett-Packard:

ICP (Intelligent Computer Peripherals, aka ICP Vortex Computersysteme GmbH, an Adaptec property):

LSI Logic:

Any other cards based on LSI SAS1064 / SAS1064a / SAS1064E / SAS1066 / SAS1066E / SAS1068 / SAS1068E / SAS1078 chips can be counted on being compatible with the mptsas driver.

Tyan:

Linux Distributions' Support Status

The Linux kernel community have not achieved consensus on the SAS driver model, in part because of some contentious history: An LSI megaraid_sas driver had existed in the mainline kernel for a while, when Adaptec employee Luben Tuikov released a radically different "adp94xx" driver and proposed it for adoption by mainline. That work was then harshly criticised by Andrew Patterson (of Hewlett-Packard), Christoph Hellwig, and other principal SCSI kernel programmers, as being gratuitously Adaptec-specific, and was not accepted. No unifying overall framework has yet been worked out, so support has been largely so far (a/o June 2006) relegated to vendor kernels and third-party patches.

SLES9 Service Pack 3:

RHEL4 Update 3 (w/kernel 2.6.9):

RHEL3 Update 6 (w/kernel 2.4.21-37):

Notable Server Hardware and Drivers


Disclaimer:

I've created this document from public sources in order to learn about the subject, but cannot claim any expertise. Accordingly, it may contain significant errors — and corrections are greatly appreciated. Please send all such to rick@linuxmafia.com.