Разъемы sas. Разница между SAS и SATA

В современных компьютерных системах для подключения основных жестких дисков используются интерфейсы SATA и SAS. Как правило, первый вариант устраивает домашние рабочие станции, второй – серверные, поэтому технологии между собой не конкурируют, отвечая разным требованиям. Значительная разница в стоимости и объеме памяти заставляет пользователей задаваться вопросом, чем отличается SAS от SATA, и искать компромиссные варианты. Посмотрим, так ли это целесообразно.

SAS (Serial Attached SCSI) – последовательный интерфейс подключения устройств хранения данных, разработанный на основе параллельного SCSI для исполнения того же набора команд. Используется преимущественно в серверных системах.

SATA (Serial ATA) – последовательный интерфейс обмена данными, базирующийся на основе параллельного PATA (IDE). Применяется в домашних, офисных, мультимедийных ПК и ноутбуках.

Если говорить о HDD, то, несмотря на различающиеся технические характеристики и разъемы, кардинальных расхождений между устройствами нет. Обратная односторонняя совместимость дает возможность подключать к серверной плате диски и по одному, и по второму интерфейсу.

Стоит заметить, что оба варианта подключения реальны и для SSD, но весомое отличие SAS от SATA в этом случае будет в стоимости накопителя: первый может быть дороже в десятки раз при сопоставимом объеме. Поэтому сегодня такое решение если уже и не редкое, то в достаточной мере взвешенное, и предназначено для быстрых центров обработки данных корпоративного уровня.

Сравнение

Как мы уже знаем, SAS находит применение в серверах, SATA – в домашних системах. На практике это означает, что к первым одновременно обращается много пользователей и решается множество задач, со вторыми же имеет дело один человек. Соответственно, серверная нагрузка намного выше, поэтому диски должны быть достаточно отказоустойчивыми и быстрыми. Протоколы SCSI (SSP, SMP, STP), реализованные в SAS, позволяют обрабатывать больше операций ввода/вывода одновременно.

Непосредственно для HDD скорость обращения определяется в первую очередь скоростью вращения шпинделя. Для desktop-систем и ноутбуков необходимо и достаточно 5400 – 7200 RPM. Соответственно, найти SATA-диск с 10000 RPM почти невозможно (разве что посмотреть серию WD VelociRaptor, предназначенную, опять же, для рабочих станций), а все, что выше, – абсолютно недостижимо. SAS HDD раскручивает минимум 7200 RPM, стандартом можно считать 10000 RPM, а достаточным максимумом – 15000 RPM.

Считается, что диски с последовательным SCSI надежнее, у них выше показатели наработки на отказ. На практике стабильность достигается больше за счет функции проверки контрольных сумм. Накопители SATA же страдают от «тихих ошибок», когда данные записываются частично либо повреждены, что приводит к появлению bad-секторов.

На отказоустойчивость системы работает и главное достоинство SAS – два дуплексных порта, позволяющих подключить одно устройство по двум каналам. Обмен информацией в этом случае будет вестись одновременно в обоих направлениях, а надежность обеспечивается технологией Multipath I/O (два контроллера страхуют друг друга и разделяют нагрузку). Очередь помеченных команд выстраивается глубиной до 256. У большинства дисков SATA один полудуплексный порт, а глубина очереди по технологии NCQ – не более 32.

Интерфейс SAS предполагает использование кабелей длиной до 10 м. К одному порту через расширители можно подключить до 255 устройств. SATA ограничивается 1 м (2 м для eSATA), и поддерживает подключение только одного устройства по типу «точка – точка».

Перспективы дальнейшего развития – то, в чем разница между SAS и SATA тоже ощущается достаточно остро. Пропускная способность интерфейса SAS достигает 12 Гбит/с, а производители анонсируют поддержку скорости обмена данными 24 Гбит/с. Последняя ревизия SATA остановилась на 6 Гбит/с и эволюционировать в этом отношении не будет.

Накопители SATA в пересчете на стоимость 1 Гб обладают очень привлекательным ценником. В системах, где скорость доступа к данным не имеет решающего значения, а объем хранимой информации велик, целесообразно использовать именно их.

Таблица

SAS SATA
Для серверных систем Преимущественно для настольных и мобильных систем
Использует набор команд SCSI Использует набор команд ATA
Минимальная скорость вращения шпинделя HDD 7200 RPM, максимальная – 15000 RPM Минимум 5400 RPM, максимум 7200 RPM
Поддерживается технология проверки контрольных сумм при записи данных Большой процент ошибок и bad-секторов
Два дуплексных порта Один полудуплексный порт
Поддерживается Multipath I/O Подключение по типу «точка – точка»
Очередь команд до 256 Очередь команд до 32
Можно использовать кабели до 10 м Длина кабелей не более 1 м
Пропускная способность шины до 12 Гбит/с (в перспективе – 24 Гбит/с) Пропускная способность 6 Гбит/с (SATA III)
Стоимость накопителей выше, иногда значительно Дешевле в пересчете на цену за 1 Гб

Интерфейс SAS.

Интерфейс SAS или Serial Attached SCSI обеспечивает подключение по физическому интерфейсу, аналогичному SATA , устройств, управляемых набором команд SCSI . Обладая обратной совместимостью с SATA , он даёт возможность подключать по этому интерфейсу любые устройства, управляемые набором команд SCSI - не только жёсткие диски, но и сканеры, принтеры и др. По сравнению с SATA, SAS обеспечивает более развитую топологию, позволяя осуществлять параллельное подключение одного устройства по двум или более каналам. Также поддерживаются расширители шины, позволяющие подключить несколько SAS устройств к одному порту.

Протокол SAS разработан и поддерживается комитетом T10. SAS был разработан для обмена данными с такими устройствами, как жёсткие диски, накопители на оптических дисках и им подобные. SAS использует последовательный интерфейс для работы с непосредственно подключаемыми накопителями, совместим с интерфейсом SATA. Хотя SAS использует последовательный интерфейс в отличие от параллельного интерфейса, используемого традиционным SCSI, для управления SAS-устройствами по-прежнему используются команды SCSI. Команды (рис. 1), посылаемые в устройство SCSI представляют собой последовательность байт определенной структуры (блоки дескрипторов команд).

Рис. 1.

Некоторые команды сопровождаются дополнительно "блоком параметров", который следует за блоком дескриптора команды, но передается уже как "данные".

Типичная система с интерфейсом SAS состоит из следующих компонентов:

1) Инициаторы. Инициатор - это устройство, которое порождает запросы на обслуживание для целевых устройств и получает подтверждения по мере исполнения запросов.

2) Целевые устройства . Целевое устройство содержит логические блоки и целевые порты, которые осуществляют приём запросов на обслуживание, исполняет их; после того, как закончена обработка запроса, инициатору запроса отсылается подтверждение выполнения запроса. Целевое устройство может быть как отдельным жёстким диском, так и целым дисковым массивом.

3) Подсистема доставки данных . Является частью системы ввода-вывода, которая осуществляет передачу данных между инициаторами и целевыми устройствами. Обычно подсистема доставки данных состоит из кабелей, которые соединяют инициатор и целевое устройство. Дополнительно, кроме кабелей в состав подсистемы доставки данных могут входить расширители SAS.

3.1) Расширители. Расширители SAS - устройства, входящие в состав подсистемы доставки данных и позволяют облегчить передачи данных между устройствами SAS, например, позволяет соединить несколько целевых устройств SAS к одному порту инициатора. Подключение через расширитель является абсолютно прозрачным для целевых устройств.

SAS поддерживает подключение устройств с интерфейсом SATA. SAS использует последовательный протокол передачи данных между несколькими устройствами, и, таким образом, использует меньшее количество сигнальных линий. SAS использует команды SCSI для управления и обмена данными с целевыми устройствами. Интерфейс SAS использует соединения точка-точка - каждое устройство соединено с контроллером выделенным каналом. В отличии от SCSI, SAS не нуждается в терминации шины пользователем. Интерфейс SCSI использует общую шину - все устройства подключены к одной шине, и с контроллером одновременно может работать только одно устройство. В SCSI скорость передачи информации по разным линиям, составляющим параллельный интерфейс, может отличаться. Интерфейс SAS лишён этого недостатка. SAS поддерживает очень большое количество устройств, в то время как интерфейс SCSI поддерживает 8, 16, или 32 устройства на шине. SAS поддерживает высокие скорости передачи данных (1,5, 3,0 или 6,0 Гбит/с). Такая скорость может быть достигнута при передаче информации на каждом соединении, в то время как на шине SCSI пропускная способность шины разделена между всеми подключёнными к ней устройствами.

SATA использует набор команд ATA и поддерживает жёсткие диски и накопители на оптических дисках, в то время как SAS поддерживает более широкий набор устройств, в том числе жёсткие диски, сканеры и принтеры. SATA-устройства идентифицируются номером порта контроллера интерфейса SATA, в то время как устройства SAS идентифицируются их WWN идентификаторами (World Wide Name). Устройства SATA (версии 1) не поддерживали очередей команд, в то время как устройства SAS поддерживают теггированные очереди команд. Устройства SATA с версии 2 поддерживают Native Command Queuing (NCQ).

Аппаратура SAS поддерживает связь с целевыми устройствами по нескольким независимым линиям , что повышает отказоустойчивость системы (интерфейс SATA такой возможности не имеет). В то же время, интерфейс SATA версии 2 использует дубликаторы портов для достижения аналогичной возможности.

SATA преимущественно используется в некритических приложениях, например в домашних компьютерах. Интерфейс SAS, благодаря своей надёжности, может быть использован в критически важных серверах. Выявление ошибок и обработка ошибочных ситуаций определено в SAS гораздо лучше чем в SATA. SAS считают надмножеством SATA, и не конкурирует с ним.

Разъёмы SAS гораздо меньше разъёмов традиционного параллельного интерфейса SCSI, что позволяет использовать разъёмы SAS для подключения компактных накопителей типоразмером 2,5 дюйма. SAS поддерживает передачу информации со скоростью от 3 Гбит/с до 10 Гбит/с. Существует несколько вариантов разъёмов SAS:

SFF 8482 - вариант, совместимый с разъёмом интерфейса SATA;

SFF 8484 - внутренний разъём с плотной упаковкой контактов; позволяет подключить до 4 устройств;

SFF 8470 - разъём с плотной упаковкой контактов для подключения внешних устройств; позволяет подключить до 4 устройств;

SFF 8087 - уменьшенный разъём Molex iPASS, содержит разъём для подключения до 4 внутренних устройств; поддерживает скорость 10 Гбит/с;

SFF 8088 - уменьшенный разъём Molex iPASS, содержит разъём для подключения до 4 внешних устройств; поддерживает скорость 10 Гбит/с.

Разъём SFF 8482 позволяет подключать устройства SATA к контроллерам SAS, что избавляет от необходимости устанавливать дополнительный контроллер SATA только потому, что необходимо, к примеру, подключить устройство для записи дисков DVD. Наоборот, устройства SAS не могут подключаться к интерфейсу SATA, и на них устанавливается разъём, предотвращающий их подключение к интерфейсу SATA.

В прошлый раз мы с вами рассмотрели все, что касается технологии SCSI в историческом контексте : кем она была изобретена, как развивалась, какие у нее есть разновидности и так далее. Закончили мы на том, что наиболее современным и актуальным стандартом является Serial Attached SCSI, он появился относительно недавно, но получил быстрое развитие. Первую реализацию «в кремнии» показала компания LSI в январе 2004 года, а в ноябре того же года SAS вошел в топ самых популярных запросов сайта storagesearch.com .

Начнем с основ. Как же работают устройства на технологи SCSI? В стандарте SCSI все построено на концепции клиент/сервер.

Клиент, называемый инициатором (англ. initiator), отправляет разные команды и дожидается их результатов. Чаще всего, разумеется, в роли клиента выступает SAS контроллер. Сегодня SAS контроллеры - это HBA и RAID-контроллеры, а также контроллеры СХД, стоящие внутри внешних систем хранения данных.

Сервер называется целевым устройством (англ. target), его задача - принять запрос инициатора, обработать его и вернуть данные или подтверждение выполнения команды обратно. В роли целевого устройства может выступать и отдельный диск, и целый дисковый массив. В этом случае SAS HBA внутри дискового массива (так называемая внешняя система хранения данных), предназначенный для подключения к нему серверов, работает в режиме Target. Каждому целевому устройству (“таргету”) присваивается отдельный идентификатор SCSI Target ID.

Для связи клиентов с сервером используется подсистема доставки данных (англ. Service Delivery Subsystem), в большинстве случаев, это хитрое название скрывает за собой просто кабели. Кабели бывают как для внешних подключений, так и для подключений внутри серверов. Кабели меняются от поколения к поколению SAS. На сегодня имеется три поколения SAS:

SAS-1 или 3Gbit SAS
- SAS-2 или 6Gbit SAS
- SAS-3 или 12 Gbit SAS – готовится к выходу в середине 2013 года




Внутренние и внешние кабели SAS

Иногда в состав этой подсистемы могут входить расширители или экспандеры SAS. Под экспандерами (англ. Expanders, расширители, но в русском языке прижилось слово «экспандер») понимают устройства, помогающие доставке информации от инициаторов к целям и обратно, но прозрачные для целевых устройств. Одним из самых типичных примеров является экспандер, позволяющий подключить несколько целевых устройств к одному порту инициатора, например, микросхема экспандера в дисковой полке или на бэкплейне сервера. Благодаря такой организации, серверы могут иметь более 8 дисков (контроллеры, которые сегодня используются ведущими производителями серверов, обычно 8-портовые), а дисковые полки – любое необходимое количество.

Инициатор, соединенный с целевым устройством системой доставки данных, называют доменом. Любое SCSI устройство содержит как минимум один порт, который может быть портом инициатора, целевого устройства или совмещать обе функции. Портам могут присваиваться идентификаторы (PID).

Целевые устройства состоят из как минимум одного логического номера устройства (Logical Unit Number или LUN). Именно LUN и идентифицирует с каким из дисков или разделов данного целевого устройства будет работать инициатор. Иногда говорят, что target предоставляет инициатору LUN. Таким образом, для полной адресации к нужному хранилищу используется пара SCSI Target ID + LUN.

Как в известном анекдоте («Я не даю в долг, а Первый Национальный Банк не торгует семечками») - целевое устройство обычно не выступает в роли «посылающего команды», а инициатор - не предоставляет LUN. Хотя стоит отметить, что стандарт допускает тот факт, что одно устройство может быть одновременно и инициатором и целью, но на практике это используют мало.

Для «общения» устройств в SAS существует протокол, по «доброй традиции» и по рекомендации OSI, разделенный на несколько слоев (сверху вниз): Application, Transport, Link, PHY, Architecture и Physical.

SAS включает в себя три транспортных протокола. Serial SCSI Protocol (SSP) - используется для работы со SCSI устройствами. Serial ATA Tunneling Protocol (STP) - для взаимодействия с дисками SATA. Serial Management Protocol (SMP) - для управления SAS-фабрикой. Благодаря STP мы можем подключать диски SATA к контроллерам SAS. Благодаря SMP мы можем строить большие (до 1000 дисковых/SSD-устройств в одном домене) системы, а также использовать зонирование SAS (подробнее об этом в статье про SAS-коммутатор).

Уровень связей служит для управления соединениями и передачи фреймов. Уровень PHY - используется для таких вещей как установка скорости соединения и кодировки. На архитектурном уровне находятся вопросы расширителей и топологии. Физический уровень определяет напряжение, форму сигналов соединения и т.д.

Все взаимодействие в SCSI строится на основании команд, которые инициатор посылает целевому устройству и ожидает их результата. Команды эти посылаются в виде блоков описания команды (Command Description Block или CDB). Блок состоит из одного байта кода команды и ее параметров. Первым параметром почти всегда выступает LUN. CDB может иметь длину от 6 до 32 байт, хотя последние версии SCSI допускают CDB переменной длины.

После получения команды целевое устройство возвращает код подтверждения. 00h означает что команда принята успешно, 02h обозначает ошибку, 08h - занятое устройство.

Команды делятся на 4 большие категории. N, от английского «non-data», предназначены для операций, не относящихся к непосредственно обмену данными. W, от «write» - запись данных, полученных целевым устройством от инициатора. R, как не сложно догадаться от слова «read» используется для чтения. Наконец В - для двустороннего обмена данными.

Команд SCSI существует достаточно много, поэтому перечислим только наиболее часто используемые.

Test unit ready (00h) - проверить, готово ли устройство, есть ли в нем диск (если это ленточный накопитель), раскрутился ли диск и так далее. Стоит отметить, что в данном случае устройство не производит полной самодиагностики, для этого существуют другие команды.
Inquiry (12h) - получить основные характеристики устройства и его параметры
Send diagnostic (1Dh) - произвести самодиагностику устройства - результаты этой команды возвращаются после диагностики командой Receive Diagnostic Results (1Ch)
Request sense (03h) - команда позволяет получить статус выполнения предыдущей команды - результатом этой команды может стать как сообщение типа «нет ошибки», так и разные сбои, начиная с отсутствия диска в накопителе и заканчивая серьезными проблемами.
Read capacity (25h) - позволяет узнать объем целевого устройства
Format Unit (04h) - служит для деструктивного форматирования целевого устройства и подготовки его к хранению данных.
Read (4 варианта) - чтение данных; существует в виде 4 разных команд, отличающихся длиной CDB
Write (4 варианта) - запись. Так же как и для чтения в 4 вариантах
Write and verify (3 варианта) - запись данных и проверка
Mode select (2 варианта) - установка различных параметров устройства
Mode sense (2 варианта) - возвращает текущие параметры устройства

А теперь рассмотрим несколько типичных примеров организации хранения данных на SAS.

Пример первый, сервер хранения данных.

Что это такое и с чем его едят? Большие компании типа Amazon, Youtube, Facebook, Mail.ru и Yandex используют сервера этого типа для того, чтобы хранить контент. Под контентом понимается видео, аудио информация, картинки, результаты индексирования и обработки информации (например, так популярный в последнее время в США, Hadoop), почта, и.т.д. Для понимания задачи и грамотного выбора оборудования под нее нужно дополнительно знать несколько вводных, без которых никак нельзя. Первое и самое главное – чем больше дисков – тем лучше.

Дата-центр одной из российских Web 2.0-компаний

Процессоры и память в таких серверах задействуются не сильно. Второе – в мире Web 2.0, информация хранится географически распределено, несколько копий на различных серверах. Хранится 2-3 копии информации. Иногда, если она запрашивается часто, хранят больше копий для балансировки нагрузки. Ну и третье, исходя из первого и второго, чем дешевле – тем лучше. В большинстве случаев все вышесказанное приводит к тому, что используются Nearline SAS или SATA диски высокой емкости. Как правило, Enterprise-уровня. Это значит, что такие диски предназначены для работы 24x7 и стоят значительно дороже своих собратьев, использующихся в настольных PC. Корпус обычно выбирают такой, куда можно вставить побольше дисков. Если это 3.5’’, то 12 дисков в 2U.

Типичный 2U-сервер хранения данных

Или 24 x 2.5’’ в 2U. Или другие варианты в 3U, 4U и.т.д. Теперь, имея корпус, количество дисков и их тип, мы должны выбрать тип подключения. Вообще-то выбор не очень большой. А сводится он к использованию экспандерного или безэкспандерного бэкплейна. Если мы используем экспандерный бекплейн, то контроллер SAS может быть 8-портовым. Если безэкспандерный – то количество портов контроллера SAS должно равняться или превышать количество дисков. Ну и последнее, выбор контроллера. Мы знаем количество портов, 8, 16, 24, например и выбираем контроллер исходя из этих условий. Контроллеры бывают 2х типов, RAID- и HBA. Отличаются они тем, что RAID-контроллеры поддерживают уровни RAID 5,6,50,60 и имеют достаточно большой объем памяти (512MB-2ГБ сегодня) для кэширования. У HBA памяти или cовсем нет, или ее очень мало. Кроме этого, HBA либо не умеют делать RAID вообще, либо умеют олько простые, не требующие большого объема вычислений уровни. RAID 0/1/1E/10 – типичный набор для HBA. Здесь нам нужен HBA, они стоят значительно дешевле, так защита данных нам не нужна совсем и мы стремимся к минимизации стоимости сервера.

16-портовый SAS HBA

Пример второй, почтовый сервер Exchange. А также MDaemon, Notes и другие подобные сервера.

Здесь все не так очевидно, как в первом примере. В зависимости от того, сколько пользователей должен обслуживать сервер, рекомендации будут различными. В любом случае, мы знаем что базу данных Exchange (так называемую БД Jet) лучше всего хранить на RAID 5/6 и она неплохо кэшируется с использованием SSD. В зависимости от количества пользователей определяем необходимые объемы хранения «сегодня» и «на вырост». Помним, что сервер живет 3-5 лет. Поэтому «на вырост» можно ограничить 5-летней перспективой. Потом будет дешевле полностью поменять сервер. В зависимости от объема дисков выберем корпус. С бэкплейном проще, рекомендуется использовать экспандеры, так как требования по цене не такие жесткие, как в предыдущем случае, и в общем случае, удорожание сервера на $50-$100, а иногда и больше, мы вполне переживем в угоду надежности и функциональности. Диски выберем SAS или NL-SAS/Enterprise SATA в зависимости от объемов. Далее, защита данных и кэширование. Выберем современный 4/8-портовый контроллер, поддерживающий RAID 5/6/50/60 и кэширование на SSD. Для LSI, это любой MegaRAID кроме 9240 с функцией кэширования CacheCade 2.0, или Nytro MegaRAID с SSD «на борту». Для Adaptec, это контроллеры, поддерживающие MAX IQ. Для кэширования в обоих случаях (кроме Nytro MegaRAID) нужно будет взять пару SSD на e-MLC-технологии Enterprise-класса. Такие есть у Intel, Seagate, Toshiba, и.т.д. Цены и компании – на выбор. Если вы не порч доплатить за бренд, то в линейках серверов IBM, Dell, HP, найдите подобные продукты и вперед!

SSD- кэширующий RAID-контроллер Nytro MegaRAID

Пример третий, внешняя система хранения данных своими руками.

Итак, самое серьезное знание SAS, конечно же, требуется тем, кто производит системы хранения данных или хочет их сделать своими руками. Мы остановимся на достаточно простой СХД, программное обеспечение для которой производится компанией Open-E. Конечно же, можно делать СХД и на Windows Storage Server, и на Nexenta, и на AVRORAID, и на Open NAS, и на любом другом подходящем для этих целей софте. Я просто обозначил основные направления, а дальше вам помогут сайты производителей. Итак, если это внешняя система, то мы почти никогда не знаем, сколько же дисков потребуется конечному пользователю. Мы должны быть гибкими. Для этого есть так называемые JBOD – внешние полки для дисков. В их состав входит один или два экспандера, каждый из которых имеет вход (4-х портовый разъем SAS), выход на следующий экспандер, остальные порты разведены на разъемы, предназначенные для подключения дисков. Причем, в двухэкспандерных системах первый порт диска разведен на первый экспандер, второй порт – на второй экспандер. Это позволяет строить отказоустойчивые цепочки JBOD-ов. Головной сервер может иметь внутренние диски в своем составе, либо не иметь их совсем. В этом случае используются «внешние» контроллеры SAS. То есть контроллеры с портами «наружу». Выбор между SAS RAID-контроллером или SAS HBA зависит от управляющего ПО, которое вы выбираете. В случае Open-E, это RAID-контроллер. Можно позаботиться и об опции кэширования на SSD. Если ваша СХД будет иметь очень много дисков, то решение Daisy Chain (когда каждый последующий JBOD подключается к предыдущему, либо к головному серверу) в силу многих причин не подходит. В этом случае головной сервер либо оснащается несколькими контроллерами, либо используется устройство, которое называется SAS-коммутатор. Он позволяет подключать один или несколько серверов к одному или нескольким JBOD. Подробнее SAS-коммутаторы мы разберем в следующих статьях. Для внешних систем хранения данных настоятельно рекомендуется использовать диски только SAS (в том числе NearLine) в силу повышенных требований к отказоустойчивости. Дело в том, что протокол SAS имеет в своем составе гораздо больше функций, чем SATA. Например, контроль записываемых-считываемых данных на всем пути с помощью проверочных сумм (T.10 End-to-End protection). А путь, как мы уже знаем, бывает очень длинным.

Многодисковый JBOD

На этом наш экскурс в мир истории и теории SCSI вообще и SAS в частности подошел к концу, и в следующий раз я расскажу вам более подробно о применении SAS в реальной жизни.

Почему SAS?

Интерфейс Serial Attached SCSI - это не просто последовательная реализация протокола SCSI. В нём реализовано намного больше, чем простой перенос функций SCSI, таких как TCQ (Tagged Command Queuing, тэгированная очередь команд), через новый разъём. Если бы нам была нужна наибольшая простота, то тогда мы бы использовали интерфейс Serial ATA (SATA), являющийся простым соединением "точка-точка" между хостом и конечным устройством, таким как жёсткий диск.

Но SAS базируется на объектной модели, определяющей "домен SAS” - систему доставки данных, которая может включать в себя опциональные экспандеры (expander) и конечные устройства SAS, такие как жёсткие диски и host-адаптеры (host bus adapters, HBA). В отличие от SATA, устройства SAS могут иметь несколько портов, каждый из которых может использовать несколько физических соединений, чтобы обеспечивать более скоростные (широкие) подключения SAS. Кроме того, к любой определённой цели могут обращаться несколько инициаторов, а длина кабеля может составлять до восьми метров (для первого поколения SAS) против одного метра у SATA. Вполне понятно, что это обеспечивает немало возможностей для создания высокопроизводительных или избыточных решений хранения данных. Кроме того, SAS поддерживает протокол SATA Tunneling Protocol (STP), позволяющий подключать к SAS-контроллеру устройства SATA.

Стандарт SAS второго поколения увеличивает скорость соединения с 3 до 6 Гбит/с. Данный прирост скорости очень важен для сложных окружений, где требуется высокая производительность из-за высокоскоростных хранилищ. Новая версия SAS также призвана снизить сложность прокладки кабелей, а также число соединений на Гбит/с пропускной способности, увеличивая возможную длину кабелей и улучшая работу экспандеров (разбиение на зоны и автоматическое обнаружение). Чуть ниже мы поговорим об этих изменениях в деталях.

Увеличение скорости SAS до 6 Гбит/с

Чтобы донести преимущества SAS до более широкой аудитории, SCSI Trade Association (SCSI TA) представила учебник по технологии SAS на конференции Storage Networking World Conference, которая прошла чуть раньше в этом году в Орландо (США, Флорида). Так называемый SAS Plugfest, где демонстрировалась работа SAS на 6 Гбит/с, совместимость и функции, прошёл ещё раньше в ноябре 2008 года. LSI и Seagate стали первыми на рынке, кто представил "железо", совместимое с SAS на 6 Гбит/с, но остальные производители тоже должны вскоре подтянуться. В нашей статье мы рассмотрим текущее состояние технологий SAS и некоторые новые устройства.

Функции и основы SAS

Фундаментальные основы SAS

В отличие от SATA, интерфейс SAS работает на основе полного дуплекса, предоставляя полную пропускную способность в обоих направлениях. Как уже упоминалось ранее, соединения SAS всегда устанавливаются через физические подключения, используя уникальные адреса устройств. Напротив, SATA может адресовать только номера портов.

Каждый адрес SAS может содержать несколько интерфейсов физического уровня (PHY), что позволяет создавать более широкие подключения через InfiniBand (SFF-8470) или кабели mini-SAS (SFF-8087 и -8088). Обычно четыре интерфейса SAS с одним PHY на каждом объединяются в один широкий интерфейс SAS, который уже подключается к SAS-устройству. Связь может осуществляться и через экспандеры, которые работают больше как коммутаторы, нежели как устройства SAS.

Такие функции, как разбиение по зонам (zoning) теперь позволяют администраторам привязывать конкретные устройства SAS к инициаторами. Именно здесь будет полезна увеличенная пропускная способность SAS 6 Гбит/с, поскольку у четырёхканального соединения теперь будет в два раза большая скорость. Наконец, устройства SAS могут даже иметь несколько адресов SAS. Поскольку накопители SAS могут использовать два порта, с одним PHY на каждом, то накопитель может иметь два адреса SAS.

Соединения и интерфейсы


Нажмите на картинку для увеличения.

Адресация соединений SAS происходит через порты SAS, используя SSP (Serial SCSI Protocol), но связь на нижнем уровне от PHY до PHY осуществляется, используя одно или несколько физических соединений по причинам увеличения пропускной способности. SAS использует кодирование 8/10 бит, чтобы преобразовывать 8 бит данных в 10-символьные передачи в целях восстановления синхронизации, баланса DC и определения ошибок. В итоге мы получаем эффективную пропускную способность 300 Мбайт/с для режима передачи 3 Гбит/с и 600 Мбайт/с для подключений 6 Гбит/с. Технологии Fibre Channel, Gigabit Ethernet, FireWire и другие работают по схожей схеме кодирования.

Интерфейсы питания и данных SAS и SATA очень похожи друг на друга. Но если у SAS интерфейсы данных и питания объединены в один физический интерфейс (SFF-8482 на стороне устройства), то SATA требует двух раздельных кабелей. Зазор между контактами питания и данных (см. иллюстрацию выше) в случае SAS закрыт, что не позволяет подключать устройство SAS к контроллеру SATA.

С другой стороны, устройства SATA могут прекрасно работать на инфраструктуре SAS благодаря STP или в "родном" режиме, если не используются экспандеры. STP добавляет дополнительную задержку при прохождении через экспандеры, поскольку им нужно устанавливать соединение, что происходит медленнее, нежели прямая связь SATA. Впрочем, задержки всё равно очень малы.

Домены, экспандеры

Домены SAS можно представить в виде древовидных структур наподобие сложных сетей Ethernet. Экспандеры SAS могут работать с большим количеством SAS-устройств, но они используют принцип коммутации каналов, а не более распространённую коммутацию пакетов. Некоторые экспандеры содержат в себе устройства SAS, другие - нет.

SAS 1.1 распознаёт граничные экспандеры (edge expander), которые позволяют инициатору SAS связываться с до 128 дополнительными адресами SAS. В домене SAS 1.1 можно использовать только два граничных экспандера. Впрочем, один экспандер расширения (fanout expander) может подключать до 128 граничных экспандеров, что существенно увеличивает возможности инфраструктуры вашего решения SAS.

Нажмите на картинку для увеличения.

По сравнению с SATA интерфейс SAS может показаться сложным: разные инициаторы обращаются к целевым устройствам через экспандеры, что подразумевает прокладку соответствующих маршрутов. SAS 2.0 упрощает и улучшает прокладку маршрутов.

Следует помнить, что SAS запрещает петли или множественные пути. Все соединения должны быть "точка-точка" и эксклюзивными, но сама по себе архитектура подключений хорошо масштабируется.

Новые функции SAS 2.0: экспандеры, производительность


SAS 1.0/1.1
Функция Сохраняет наследственную поддержку SCSI
Совместим с SATA
Совместим с 3 Гбит/с
Улучшенная скорость и прохождение сигналов
Управление зонами
Улучшенная масштабируемость
Функции хранилищ RAID 6
Малый форм-фактор
HPC
Накопители SAS большой ёмкости
Замена Ultra320 SCSI
Выбор: SATA или SAS
Blade-серверы
RAS (защита данных)
Безопасность (FDE)
Поддержка кластеров
Поддержка более крупных топологий
SSD
Виртуализация
Внешние хранилища
Размер сектора 4K
Скорость передачи данных и пропускная способность кабеля 4 x 3 Гбит/с (1,2 Гбайт/с) 4 x 6 Гбит/с (2,4 Гбайт/с)
Тип кабеля Медь Медь
Длина кабеля 8 м 10 м

Зоны экспандера и автоматическая конфигурация

Граничные (edge) и расширяющие (fanout) экспандеры практически остались в истории. Это часто связывают с обновлениями в SAS 2.0, но причина на самом деле кроется в зонах SAS, появившихся в 2.0, которые позволяют убрать разделение между граничными и расширяющими экспандерами. Конечно, зоны обычно реализуются специфически для каждого производителя, а не как единый индустриальный стандарт.

По сути, теперь на одной инфраструктуре доставки информации можно располагать несколько зон. Это значит, что к целям (накопителям) в хранилище могут обращаться разные инициаторы через один и тот же экспандер SAS. Сегментация домена выполняется через зоны, доступ осуществляется эксклюзивным образом.

Ох, сигейта нет на вас;). Я видел отличную презентацию про отличия SAS и SATA у Игоря Макарова из Seagate. По стараюсь кратко и по существу.

Ответов несколько и с разных сторон.
1. С точки зрения протоколов, SAS - это протокол, направленный на максимальную гибкость, надежность, функциональность. Я бы сравнил SAS с технологией ECC для памяти. SAS - это с ECC, SATA - без. Примером могут служить следующие уникальные фичи (по сравнению с SATA).
- 2 полнодуплексных порта на устройствах SAS в отличие от одного полудуплексного у SATA. Это дает возможность строить отказоустойчивые много дисковые топологии в системах хранения данных.
- end-to-end data protection T.10. - набор алгоритмов SAS, позволяющий с помощью чексумм быть уверенным в том, что данные, подготовленные на запись без искажений записаны на устройство. И прочитаны и переданы на хост без ошибок. Эта уникальная функция позволяет избавиться от так называемых silent errors, то есть когда на диск пишутся ошибочные данные, но никто об этом не знает. Ошибки могут появиться на любом уровне. Чаще всего в буферах в оперативной памяти при приеме-передаче. Silent errors - бич SATA. Некоторые компании утверждают что на диске SATA объемом боле 500 ГБ вероятность повреждения данных хотя бы в одном секторе близка к единице.
- про мультипасинг говорили в предыдущих ответах.
- зонинг T.10 - позволяет разбить домен SAS на зоны (типа VLAN, если такая аналогия ближе).
- и многое-многое другое. Я привел только самые общеизвестные фичи. Кому интересно - читайте спецификации SAS/SATA

2. Не все SAS диски одинаковы. Есть несколько категорий SAS и SATA.
- т.н. Enterprise SAS - обычно 10K или 15K оборотов в минуту. Объемы до 1 ТБ. Используются для СУБД и критичных к скорости приложений.
- Nearline SAS - обычно 7.2K, объемы от 1 ТБ. Механика таких устройств похожа на Enterprise SATA. Но все равно два порта и другие прелести SAS. Используются в enterprise, где нужны большие объемы.
- Enterprise SATA, иногда RAID edition SATA - почти то же самое что и NL SAS, только однопортовый SATA. Чуть дешевле NL SAS. Объемы от 1 TB
- Desktop SATA - то что ставится в PC. Самые дешевые и самые низкокачественные диски.
Первые три категории можно ставить в массивы на контроллерах от LSI и Adaptec. Последний - нельзя категорически. Проблем не оберетесь потом. И не потому, что у нас картельный сговор, а потому, что диски проектируются под разные задачи. То есть 8x5 или 24x7, например. Есть также такое понятие как максимальная допустимая задержка, после которой контроллер считает диск умершим. Для десктопных дисков она в разы больше. Это значит, что под нагрузкой рабочие Desktop SATA будут «вываливаться» из массива.
Короче, ориентируйтесь на конкретные линейки под конкретные задачи. Лучше всего смотреть на сайтах производителей. Есть например специальные мало шумящие и мало греющиеся винты для домашней электроники.

Те же подходы и к SSD, но область еще на сформировавшаяся, поэтому много тонкостей. Здесь мы ориентируемся по параметрам. Хотя все, что сказано в п., справедливо и для SSD.




Top