Serial Attached SCSI (SAS) — последовательный компьютерный интерфейс, разработанный для подключения различных устройств хранения данных, например, жёстких дисков и ленточных накопителей. SAS разработан для замены параллельного интерфейса SCSI и основывается во многом на терминологии и наборах команд SCSI.
SAS обратно совместим с интерфейсом SATA: устройства 3 Гбит/с и 6 Гбит/с SATA могут быть подключены к контроллеру SAS, но не наоборот.
Последняя реализация SAS обеспечивает передачу данных со скоростью до 24 Гбит/с на одну линию, и на момент начала 2021 года встречается только в линейках Kioxia.
Протокол SAS разработан и поддерживается комитетом T10[1]. Консорциум производителей различного оборудования под названием SCSI Trade Association (SCSITA) занимается продвижением различных технологий, связанных с SCSI, в том числе SAS.
Инициатор — устройство, которое порождает запросы на обслуживание для целевых устройств и получает подтверждения по мере исполнения запросов. Чаще всего инициатор выполняется в виде СБИС.
Целевое устройство содержит логические блоки и целевые порты, которые осуществляют приём запросов на обслуживание, исполняет их; после того, как закончена обработка запроса, инициатору запроса отсылается подтверждение выполнения запроса. Целевое устройство может быть как отдельным жёстким диском, так и целым дисковым массивом.
Подсистема доставки данных (англ.Service Delivery Subsystem)
Является частью системы ввода-вывода, которая осуществляет передачу данных между инициаторами и целевыми устройствами. Обычно подсистема доставки данных состоит из кабелей, которые соединяют инициатор и целевое устройство. Дополнительно, кроме кабелей, в состав подсистемы доставки данных могут входить расширители SAS.
Расширители (экспандеры) SAS — устройства, входящие в состав подсистемы доставки данных и позволяющие облегчить передачу данных между устройствами SAS; например, расширитель позволяет подключить несколько целевых устройств SAS к одному порту инициатора. Подключение через расширитель является абсолютно прозрачным для целевых устройств.
Терминология
Одиночная дифференциальная пара, ведущая от одного устройства к другому (в одном направлении), называется PHY (от physical).
Пара PHY, образующая дуплексный канал, называется «physical link».
Один или несколько physical link образуют port. Если порт содержит более одного physical link, то такой порт называется «wide port».
Каждый port имеет sas_address. Все physical link, анонсирующие один и тот же sas_address, автоматически объединяются в один wide port (например, если у HBA есть 2 4x SAS-интерфейса, то, подключив их все вместе к enclosure, можно получить wide port 8x).
SAS использует последовательный протокол передачи данных между несколькими устройствами и, таким образом, использует меньшее количество сигнальных линий.
Интерфейс SCSI использует общую шину. Таким образом, все устройства подключены к одной шине, и с контроллером одновременно может работать только одно устройство. Интерфейс SAS использует соединения точка-точка — каждое устройство соединено с контроллером выделенным каналом.
В отличие от SCSI, SAS не нуждается в терминации шины пользователем.
В SCSI имеется проблема, связанная с тем, что время распространения сигнала по разным линиям, составляющим параллельный интерфейс, может различаться. Интерфейс SAS лишён этого недостатка.
SAS поддерживает большое количество устройств (> 16384), в то время как интерфейс SCSI поддерживает 8, 16, или 32 устройства на шине.
SAS обеспечивает более высокую пропускную способность (1,5, 3, 6,12 или 24 Гбит/с). Такая пропускная способность может быть обеспечена на каждом соединении инициатор-целевое устройство, в то время как на шине SCSI пропускная способность шины разделена между всеми подключёнными к ней устройствами.
контроллеры SAS могут поддерживать подключение устройств с интерфейсом SATA, при прямом подключении — с использованием протокола SATA, при подключении через SAS-экспандеры — с использованием туннелирования через протокол STP (SATA Tunneled Protocol).
SAS, так же, как и параллельный SCSI, использует команды SCSI для управления и обмена данными с целевыми устройствами.
Сравнение SAS и SATA
SAS имеет частичную совместимость с SATA-устройствами лишь на уровне разъёмов и кабелей для подключения отдельных дисков. Устройства SATA используют другой физический уровень (в том числе разный уровень напряжений[3]) и другой набор команд (ATA). Для подключения SATA-устройства к домену SAS (то есть к SAS-экспандеру) используется специальный протокол STP (англ.Serial ATA Tunneling Protocol), описывающий согласование идентификаторов SAS и SATA[4].
Устройства SATA 1 и SAS поддерживают тегированные очереди командTCQ (англ.Tagged Command Queuing). В то же время устройства SATA версии 2 поддерживают как TCQ, так и NCQ (англ.Native Command Queuing). В современных дисках SAS максимальная глубина очереди равна 256, для дисков SATA — 32.
Современные диски SAS имеют два физических порта. Это позволяет использовать такие диски в схемах с повышенной отказоустойчивостью, например, в 2-контроллерных системах хранения данных. Для некоторых СХД возможно применение дисков SATA в сочетании с дополнительными SATA-интерпозерами, обеспечивающими двухпортовое подключение[5].
Протокол SAS обеспечивает полнодуплексную передачу данных, в то время как SATA работает в полудуплексном режиме[6][7].
С дисками SAS может быть реализована сквозная проверка целостности данных (англ.End-to-end Data Protection)[8].
Инфраструктура SAS
Разъёмы
Как правило, разъёмы SAS значительно меньше разъёмов традиционного интерфейса SCSI, что позволяет использовать разъёмы SAS для подключения компактных накопителей размером 2,5 дюйма.
Форм-фактор, совместимый с SATA-устройствами. Позволяет подключить SATA-диск к SAS-контроллеру или бэкплейну SAS. Однако диски с интерфейсом SAS не могут быть подключены к контроллеру SATA, так как разъём SFF-8482 имеет «ключ», не позволяющий подключить обычный SATA-кабель. На рисунке изображён разъём кабеля.
Для обеспечения совместимости бэкплейнов SAS как с дисками, так и контроллерами SATA используется разъём SFF-8482 со стороны дисков и SATA-разъёмы для подключения контроллера. Кабели с разъёмом SFF-8482 используются для подключения SAS и SATA дисков напрямую к контроллеру.
SFF-8484
SAS 4x 32-pin
Внутренний
32 (19)
4 (2)
Разъём с высокой плотностью контактов; в стандарте SFF определены разъёмы для подключения 2 или 4 устройств. В настоящее время считается устаревшим. Вместо SFF-8484 используются разъёмы SFF-8087 (мини-SAS) и SFF-8643 (мини-SAS HD).
SFF-8485
Определяет en:SGPIO (расширение стандарта SFF 8484) — последовательное соединение, обычно используемое для управления светодиодной индикацией в бэкплейнах SAS.
Внешний разъём с высокой плотностью контактов. В настоящее время считается устаревшим. Вместо SFF-8470 используются разъёмы SFF-8088 (внешний мини-SAS) и SFF-8644 (внешний мини-SAS HD).
SFF-8087
Внутренний мини-SAS, iPASS
Внутренний
36
4
Внутренний разъём с высокой плотностью контактов.
SFF-8088
Внешний мини-SAS
Внешний
26
4
Внешний разъём с высокой плотностью контактов. Разработан для SAS-2 (SAS-2) (6 Гбит/с на каждый линк)
SFF-8643
Внутренний мини-SAS HD
Внутренний
36
4
Внутренний разъём с высокой плотностью контактов. Разработан для SAS-3 (12 Гбит/с на каждый линк)
SFF-8644
Внешний мини-SAS HD
Внешний
36
4
Внешний разъём с высокой плотностью контактов. Разработан для SAS-3 (12 Гбит/с на каждый линк)
Кабели
Спецификациями SAS 2.1 и 3.0 предусмотрена максимальная длина кабелей для внешних подключений[10]: