Sas пропускная способность. Твердотельные накопители SAS против SATA. Что выбрать

Интерфейс 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.

Serial Attached SCSI

Serial Attached SCSI (SAS ) - компьютерный интерфейс, разработанный для обмена данными с такими устройствами, как жёсткие диски и ленточные накопители. SAS использует последовательный интерфейс для работы с непосредственно подключаемыми накопителями (англ. Direct Attached Storage (DAS) devices ). SAS разработан для замены параллельного интерфейса SCSI и позволяет достичь более высокой пропускной способности, чем SCSI; в то же время SAS обратно совместим с интерфейсом SATA : устройства 3Гбит/с и 6Гбит/с SATA могут быть подключены к контроллеру SAS, но устройства SAS нельзя подключить к контроллеру SATA. Хотя SAS использует последовательный интерфейс в отличие от параллельного интерфейса, используемого традиционным SCSI, для управления SAS-устройствами по-прежнему используются команды SCSI. Протокол SAS разработан и поддерживается комитетом T10. Текущую рабочую версию спецификации SAS можно скачать с его сайта. SAS поддерживает передачу информации со скоростью до 6 Гбит/с; ожидается, что к 2012 году скорость передачи достигнет 12 Гбит/с . Благодаря уменьшенному разъему SAS обеспечивает полное двухпортовое подключение как для 3,5-дюймовых, так и для 2,5-дюймовых дисковых накопителей (раньше эта функция была доступна только для 3,5-дюймовых дисковых накопителей с интерфейсом Fibre Channel).

Введение

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

Инициаторы (англ. Initiators ) Инициатор - устройство, которое порождает запросы на обслуживание для целевых устройств и получает подтверждения по мере исполнения запросов. Чаще всего инициатор выполняется в виде СБИС . Целевые устройства (англ. Targets ) Целевое устройство содержит логические блоки и целевые порты, которые осуществляют приём запросов на обслуживание, исполняет их; после того, как закончена обработка запроса, инициатору запроса отсылается подтверждение выполнения запроса. Целевое устройство может быть как отдельным жёстким диском, так и целым дисковым массивом. Подсистема доставки данных (англ. Service Delivery Subsystem ) Является частью системы ввода-вывода, которая осуществляет передачу данных между инициаторами и целевыми устройствами. Обычно подсистема доставки данных состоит из кабелей, которые соединяют инициатор и целевое устройство. Дополнительно, кроме кабелей в состав подсистемы доставки данных могут входить расширители SAS . Расширители (экспандеры) (англ. Expanders ) Расширители (экспандеры) SAS - устройства, входящие в состав подсистемы доставки данных и позволяют облегчить передачи данных между устройствами SAS; например, расширитель позволяет подключить несколько целевых устройств SAS к одному порту инициатора. Подключение через расширитель является абсолютно прозрачным для целевых устройств.

Спецификации на SAS регламентируют физический, канальный и логический уровни интерфейса.

Сравнение SAS и параллельного SCSI

  • SAS использует последовательный протокол передачи данных между несколькими устройствами, и, таким образом, использует меньшее количество сигнальных линий.
  • Интерфейс SCSI использует общую шину. Таким образом, все устройства подключены к одной шине, и с контроллером одновременно может работать только одно устройство. Интерфейс SAS использует соединения точка-точка - каждое устройство соединено с контроллером выделенным каналом.
  • В отличие от SCSI, SAS не нуждается в терминации шины пользователем.
  • В SCSI имеется проблема, связанная с тем, что время распространения сигнала по разным линиям, составляющим параллельный интерфейс, может отличаться. Интерфейс SAS лишён этого недостатка.
  • SAS поддерживает большое количество устройств (> 16384), в то время как интерфейс SCSI поддерживает 8, 16, или 32 устройства на шине.
  • SAS обеспечивает более высокую пропускную способность (1.5, 3.0 или 6.0 Гбит/с). Такая пропускная способность может быть обеспечена на каждом соединении инициатор-целевое устройство, в то время как на шине SCSI пропускная способность шины разделена между всеми подключёнными к ней устройствами.
  • контроллеры SAS могут поддерживать подключение устройств с интерфейсом SATA , при прямом подключении - с использованием протокола SATA, при подключении через SAS-экспандеры - с использованием туннелирования через протокол STP (SATA Tunneled Protocol).
  • SAS, также как и параллельный SCSI, использует команды SCSI для управления и обмена данными с целевыми устройствами.

Сравнение SAS и SATA

Разъёмы

Как правило, разъёмы SAS значительно меньше разъёмов традиционного интерфейса SCSI, что позволяет использовать разъёмы SAS для подключения компактных накопителей размером 2,5 дюйма.

Существует несколько вариантов разъёмов SAS:

  • SFF 8482 - вариант, механически совместимый с разъёмом интерфейса SATA . За счет этого возможно подключать устройства SATA к контроллерам SAS. Подключить же SAS-устройство к интерфейсу SATA - не получится, этому препятствует отсутствие посередине разъема специального выреза-ключа (см. изображение разъема в таблице ниже);
  • SFF 8484 - внутренний разъём с плотной упаковкой контактов; позволяет подключить до 4 устройств;
  • SFF 8470 - разъём с плотной упаковкой контактов для подключения внешних устройств (разъём такого типа применяется в интерфейсе Infiniband , а кроме того, может использоваться для подключения внутренних устройств); позволяет подключить до 4 устройств;
  • SFF 8087 - уменьшенный разъём Molex iPASS, содержит разъём для подключения до 4 внутренних устройств;
  • SFF 8088 - уменьшенный разъём Molex iPASS, содержит разъём для подключения до 4 внешних устройств;
Изображение Кодовое название Также известен как Внешн./внутр. К-во линий К-во устр-в Комментарий
SFF 8482 SAS разъём Внутренний 1 Форм-фактор, совместимый с SATA-устройствами: позволяет SATA-устройствам соединяться с SAS-контроллером или планкой SAS-разъёмов, что устраняет необходимость в дополнительном SATA контроллере для подключения SATA-устройств типа DVD-рекордеров. Однако жёсткие диски с интерфейсом SAS не могут подключаться к шине SATA, потому что их физический разъём имеет «ключ», не позволяющий подключение к шине SATA. Изображённый на рисунке разъём является разъёмом «дисковой» стороны интерфейса.

SFF 8484 SAS 4x 32-pin Внутренний 32 (19) 4 (2) Разъём с высокой плотностью контактов; в стандарте SFF определены разъёмы для подключения 2 или 4 устройств.
SFF 8485 Определяет SGPIO (расширение стандарта SFF 8484) - последовательное соединение, обычно используемое для подключения светодиодных индикаторов.

SFF 8470 Разъём типа Infiniband Внешний 32 4 Внешний разъём с высокой плотностью контактов (также может использоваться в качестве внутреннего разъёма).

SFF 8087 Внутренний мини-SAS Внутренний 4 Внутренний разъём типа Molex

SFF 8088 Внешний мини-SAS Внешний 32 4 Внешний разъём типа Molex iPASS уменьшенной ширины с подключением до 4-х устройств.

Примечания

Ссылки


Wikimedia Foundation . 2010 .

Ох, сигейта нет на вас;). Я видел отличную презентацию про отличия 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.

В этой статье мы заглянем в будущее интерфейса SCSI и рассмотрим некоторые преимущества и недостатки интерфейсов SCSI, SAS и SATA.

На самом деле, вопрос является немного более сложным, чем простая замена SCSI на SATA и SAS. Традиционный параллельный SCSI является испытанным и проверенным интерфейсом, используемым давно. В настоящее время, SCSI предлагает очень быструю скорость передачи данных в 320 Мегабайт в секунду (Mб/сек), используя современный интерфейс Ultra320 SCSI. Кроме того, SCSI предлагает большой выбор возможностей, среди которых Command-Tag Queuing (метод оптимизирования I/O команд для увеличения производительности). Жесткие диски SCSI отличаются надежностью; на коротком расстоянии можно создать последовательную цепь из 15 устройств, подключенную к каналу SCSI. Эти особенности делают SCSI замечательным выбором для производительных десктопов и рабочих станций, вплоть до серверов предприятий, по настоящее время.

Жесткие диски SAS используют набор команд SCSI и обладают схожей надежностью и производительностью, как и SCSI диски, однако используют последовательную версию интерфейса SCSI, со скоростью 300 Mб/сек. И хотя это немного медленнее, чем SCSI с 320 Mб/сек, интерфейс SAS способен поддерживать до 128 устройств на бОльших расстояниях, чем Ultra320, и может расширяться до 16000 устройств на канал. Жесткие диски SAS предлагают такую же надежность и скорости вращения (10000-15000), как и диски SCSI.

Диски SATA являются немного другими. Там, где SCSI и SAS диски уделяют внимание производительности и надежности, диски SATA жертвуют ими в пользу существенного увеличения емкости и снижения стоимости. К примеру, диск SATA в настоящий момент достиг емкости в 1 терабайт (ТБ). SATA используется там, где нужна максимальная емкость, например, для резервного копирования данных или архивирования. Сейчас SATA предлагает соединения точка-точка со скоростью до 300 Mб/сек, и легко опережает традиционный параллельный интерфейс АТА, со скоростью 150 Mб/сек.

Итак, что же случится с SCSI? Работает он прекрасно. Проблема с традиционным SCSI заключается в том, что просто подходит к окончанию его срок эксплуатации. Параллельный интерфейс SCSI, обладающий скоростью в 320 Mб/сек, не сможет работать значительно быстрее на существующих в настоящий момент длинах SCSI кабелей. Для сравнения, диски SАТА достигнут скорости в 600 Mб/сек в ближайшем будущем, SAS имеют планы для достижению 1200 Mб/сек. Диски SАТА могут, кроме того, работать с интерфейсом SAS, таким образом эти диски могут использоваться одновременно в некоторых системах хранения. Потенциал к увеличению расширяемости и производительности передачи данных гораздо превышает имеющийся у SCSI. Но SCSI не уйдет со сцены в ближайшее время. Мы будем видеть SCSI в малых и средних серверах еще несколько лет. Так как аппаратные средства обновляются, SCSI будет систематически заменяться дисками SAS/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 в реальной жизни.