В прошлый раз мы с вами рассмотрели все, что касается технологии 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), почта, и.т.д. Для понимания задачи и грамотного выбора оборудования под нее нужно дополнительно знать несколько вводных, без которых никак нельзя. Первое и самое главное – чем больше дисков – тем лучше.- Дисковые корзины Supermicro CSE-M28E1 и CSE-M28E2, содержащие один или два экспандера LSI SASX12, несовместимы с контроллерами Adaptec 6-й серии и контроллерами LSI MegaRAID SAS-2 (все контроллеры на базе чипов LSI 2108 и 2208): экспандер не определяется, иногда с ошибкой «Invalid SAS topology» при запуске контроллера.
SAS-экспандер и кластеры Первая идея, которая приходит в голову человеку, впервые увидевшему JBOD с двумя SAS-экспандерами: «А нельзя ли подключить два хоста с SAS RAID контроллерами к этому JBOD и использовать получившуюся конструкцию для кластера, требующего общий LUN?» Стоимость подобного решения в сравнении с готовыми 2-контроллерными СХД начального уровня выглядит привлекательно. Но, увы, работать ничего не будет*:
- Обычные RAID контроллеры не рассчитаны на такое подключение (но сейчас есть и исключения в виде LSI Syncro CS). Их firmware ничего не знает о том, как поделить доступ к дискам с другим контроллером. Если бы даже не существовало этой проблемы, то возникает проблема синхронизации кэшей и так далее. На практике вы увидите зависание одного или обоих контроллеров при инициализации, возможно с сообщением об ошибочной топологии SAS.
- Заблуждение о том, что «SAS-JBOD — это бюджетная система хранения данных» — основная логическая ошибка, которую многие почему-то не сразу замечают. JBOD — это просто корпус с дисками и SAS-экспандером, а от системы хранения данных мы должны получить готовый LUN, а не набор дисков.
- Единственное, что можно сделать с JBOD’ом подручными средствами применить зонирование, отдав каждому хосту свой набор дисков. Переключив зонирование дисков с отказавшего хоста на исправный, можно быстро получить доступ к данным, но это не решает проблему с данными, находившимися в кэше. Зонирование требует подключения дисков к SAS-2 экспандеру, а для управления зонированием можно использовать SAS-коммутатор, например, LSI 6160, которому уже были посвящены несколько статей.
*Обновление от 14.10.2013. Времена меняются, и утверждение «SAS JBOD — не для кластеров» уже теряет актуальность. С появлением поддержки Parity Spaces для Failover Cluster’а в Microsoft Windows Server 2012 R2 использование Storage Spaces для кластеров Microsoft становится вполне обоснованным. Для vSphere есть VSA и с появлением vSphere 5.5 — еще и VSAN (наследие Virsto).
SAS-экспандеры в продуктах Supermicro
Корпуса с SAS-экспандерами. Развновидностей много: от 2U до 4U, с SAS-1 или SAS-2 экспандерами, с одним или с двумя экспандерами, под SFF и LFF диски, с обычным и двухсторонним размещением дисков. Подробнее ознакомится с этим многообразием можно на сайте Supermicro. Особенности:
- 2U корпуса (и 4U с двухсторонним размещением дисков) имеют разновидности «LP» и «U» (например, SC216E26-R1200LPB и SC216E26-R1200UB). Первая предназначена для обычный плат размером до E-ATX, платы расширения — только низкопрофильные, устанавливаются напрямую, без райзера. Вторая — для системных плат форм-фактора UIO (с вырезом для размещения платы в нижний слот райзера) и позволяет устанавливать до 4-х плат полной высоты + 3-х низкопрофильных плат.
- Большинство экспандерных бэкплейнов Supermicro имеют один вход и два выхода (с разъемами 4x SAS SFF-8087) для удобства каскадирования: последовательное подключение более 6-ти экспандеров LSI крайне не желательно, а два выхода позволяют построить топологию с ответвлениями. Вот пример топологии с каскадом из двух 2-экспандерных бэкплейнов на чипе LSI SAS2X36 (12 phy экспандера — на вход и выходы, оставшиеся 24 — для подключения дисков):
- Корпуса с поддержкой более 24-х дисков содержат несколько бэкплейнов, каждый из которых — со своим экспандером. Пример: корпус 847E16-R1400LPB — это 4U корпус с двухсторонним размещением дисков. Спереди — бэкплейн SAS2-846EL1 на 24 диска (SAS2X36), сзади — SAS2-826EL1 на 12 дисков (LSI SAS2X24). Тут возникает свобода подключения: подключить первый бэкплейн к 4-портовому контроллеру и второй бэкплейн каскадом к первому, подключить оба бэкплейна к одному 8-портовому контроллеру или к разным контроллерам.
- Платы многих 2-экспандерных бэкплейнов имеют ошибочную маркировку портов второго экспандера. Например, на 826EL2 порты второго экспандера SEC_J0 и SEC_J1 (вход и выход) промаркированы наоборот. Правильную информацию нужно искать в инструкции.
- На основе корпусов Supermicro можно сделать SAS-JBOD. Для этого вместо системной платы устанавливается небольшая плата управления питанием, а входы и выходы бэкплейна выводятся наружу при помощи кабеля-переходника SFF8087->SFF8088. Более того, некоторые варианты корпусов существуют исключительно в JBOD-исполнении, системную плату просто некуда установить (417E16-RJBOD1 на 88 дисков SFF).
И еще есть отдельные дисковые корзины на 8 SFF дисков CSE-M28E1 и CSE-M28E2. Занимают 3 отсека 5.25″, имеют съемный вентилятор на задней стенке и 1 или 2 экспандера LSI SASX12. Интересной особенностью является подключение при помощи обычный SATA разъемов (по 4 на экспандера) и использованием нестандартных «перекрестных» кабелей 4xSAS->4 SATA. Сделано это потому, что два из четырех phy можно использовать не только на вход, но и на выход — для каскадирования. В комплекте идут два кабеля: с современными SFF-8087 разъемом и старым широким SFF-8484. Проблема номер один — кабели длиной 50см, такой длины хватает не всегда. Проблема номер два — несовместмость с SAS2 контроллерами, о чем уже упоминалось выше. Альтернативой является корзина M28SAB с обычным бэкплейном без экспандера. Вот и все. Задавайте дополнительные вопросы по почте и в комментариях, а за продукцией Supermicro, LSI и Adaptec обращайтесь в компанию True System.
- Цена: $9.00
Если дисков компьютере пара-тройка, подключение их простое. Но если дисков захотелось много — возникают особенности. На КДПВ SAS кабель с Али, уже проскакивавший в прошлом обзоре про ленту, так неожиданно тепло встреченным сообществом. Спасибо, камрады. Попробую затронуть тему, потенциально полезную чуть более широкому кругу. Хотя и специфическую. Начну с этого кабеля и обязательной программы, но только для затравки. Разные кусочки пазла приходится собирать в разных местах. Хочу сразу предупредить, что текст получился плотный и довольно тяжёлый. Заставлять себя читать и понять всё это уж точно не обязательно. Много картинок! Кто-то скажет, 9 баксов за тупой кабель? Что делать, в быту это применяется крайне редко, а на промышленные вещи тиражи ниже, а цены — выше. За сложный SAS кабель и сотню-другую баксов могут не моргнув глазом выставить. Так что китайцы ещё кратно снижают 🙂
Доставка и упаковка
Заказ 6 мая 2017, получено 17 мая — просто ракета. Трек был. Обычный серый пакет, внутри ещё один — вполне достаточно, товар не хрупкий.
Спецификация
Мама-папа SFF-8482 SAS 29 пин кабель. Длина 50 см Масса нетто 66 г Картинка продавца Реальный внешний вид, как видите — отличается
Про SAS и SATA разъёмы
Что такое SFF-8482 и с чем его едят? Во-первых, это самый массовый разъём на SAS устройствах (Вика о SAS), например, на моём лентопротяге
А ещё SFF-8482 прекрасно садится на SATA диск (но не наоборот)SAS контроллеры и экспандеры
Ну и что, спросит читатель. Что я выигрываю от такой совместимости? Мне и SATA контроллеров достаточно! Истинная правда! Если достаточно — на этом месте можно нужно бросать читать. Вопрос был что делать, если МНОГО дисков? Вот так выглядит простенький SAS контроллер из моего зипа — DELL H200. Мой прошит в HBA, то есть все диски оси видны отдельно А это древний SAS RAID HP
У обоих мы видим внутренние разъёмы (называются sff 8087 или, чаще, miniSAS) и один внешний — sff 8088 Сколько дисков можно подключить на один miniSAS? Ответ зависит. Тупым кабелем — 4шт, то есть 8 на такой контроллер. Кабель из моего ЗИП выглядит вот так
На одном конце miniSAS, на другом — 4шт SATA (и ещё один разъём, о нём ниже) Но можно взять miniSAS-miniSAS кабель и подключить к экспандеру, то есть размножителю портов. И контроллер потянет до 256 (двухсот пятидесяти шести) дисков. Причём скорости канала хватит уж на десятки дисков — точно. Экспандер как отдельная карта выглядит, например, как мой Ченбро
А может быть распаян на дисковой корзине. Тогда в неё может идти всего один miniSAS канал (а может — больше). Вот такими кабелями.
Согласитесь, кабель менеджмент несколько упрощается 🙂
Корзины
Понятно, диски прекрасно могут работать и без специальных корзин. Но иногда корзины могут быть полезны. Вот так выглядит SATA корзинка старой модели Супермикро. Можно найти за 1000 р, но скорее за 5+ тыс. Её лоток для диска
Вид изнутри, видно, что там SATA разъёмы.
Если корзинка SAS — ещё лучше, меньше проводов. Если SCSI или FC — использовать её вы не сможете. Я взял одну 19″ FC на пробу — ничего полезного не сделал. Там, правда, лома цветмета оказалось почти на те деньги, за которые купил.
Вид сзади, видим 4 SATA, 2 MOLEX и тот самый порт, что был на кабеле. Предназначен для управления LED активности дисков. Вот так выглядит одна из самых простых корзинок (моделей много разных, но похожих) Именно такие уже не продают, так что детали не важны. Просто кусок металла с амортизаторами и карлсоном впереди. Вот так это выглядело в 2013 году, когда я переводил железо в корпус побольше Картонный костыль внизу и третья корзина были только на момент для перекачки данных с 2T дисков на 4T. С тех пор работает 24/7.
SAS+SATA у меня
Точнее работало до того, как мне понадобилось подключить лентопротяг. Первым делом я воткнул второй SAS контроллер, купил кабель miniSAS на sff 8482, примерно такой И включил. Всё заработало, но в режиме 24/7 каждый ватт стоит денег. Я искал переходники с sff 8482 на SATA, но решение оказалось ещё проще. Вы же помните, что SATA диск подключается на SAS sff 8482? Вот я теперь тоже помню, но тогда пару месяцев тупил 🙂 А потом вынул лишний контроллер, переключил один из дисков на чипсетный порт SATA порт, три остальных на sff 8482. Пришлось менять подключение питания, был разветвитель Molex-SATA, пришлось покупать на Али Molex-много Molex. Вот такойБрал здесь, всё хорошо. А лентопротяг переехал в другой корпус именно с использованием обозреваемого кабеля. Но это отдельная песня, а, караул, чувствую, устал 🙂
Где всё это выгоднее искать
Цены на новое серверное железо для дома запретительны. Так что бу, в том числе из ЗИП от выводимого из эксплуатации оборудования. Кабели можно найти на месте. За сравнимые деньги на e-bay. На Али — несколько менее вероятно, но бывают исключения — я же купил.Контроллеры — прежде всего на e-bay, причём из Европы. Можно из США, там сильно дешевле, если как-то решить вопрос с доставкой. Можно найти на Родине — авито. (На комке — дорого). В Китае покупать очень опасно. Множество жалоб на подделку из отбраковки. То работает, то нет. Никому ничего не докажешь.Корзины разумнее искать локально. Есть даже варианты простейшие корзины покупать новые. Простые корзины без электроники можно брать и в Китае и в Европе и на барахолке. Корзины с экспандерами — см пункт про контроллеры. ВАЖНО Запутаться — проще, чем потеряться в лесу. Консультируйтесь на форуме. SAS бывает разный -3, 6 и 12 Gb/s. Одни контроллеры шьются в то, что можно использовать с десктоп железом, другие нет, третьи вообще не заживут нигде, кроме матери родного производителя. И так далее.Конференция про NAS своими руками Конференция про SAS/SATA контроллеры и экспандеры На хоботе я MikeMac PS Если для вас это стало выступлением Капитана Очевидность — прошу прощения за отнятое время. Если бредом сивой кобылы — тем более мои искренние извинения. Трудно балансировать, хотелки, задачи и исходные у каждого свои. Да, про кабель же! Продавца рекомендую, кабелем доволен, доставка молниеносная. Используемые источники:
- https://habr.com/post/175313/
- http://true-system.blogspot.com/2011/09/sas.html
- https://mysku.ru/blog/aliexpress/54667.html