история, примеры организации хранения / Habr
В прошлый раз мы с вами рассмотрели все, что касается технологии 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) — проверить, готово ли устройство, есть ли в нем диск (если это ленточный накопитель), раскрутился ли диск и так далее. Стоит отметить, что в данном случае устройство не производит полной самодиагностики, для этого существуют другие команды.
Send diagnostic (1Dh) — произвести самодиагностику устройства — результаты этой команды возвращаются после диагностики командой Receive Diagnostic Results (1Ch)
Request sense (03h) — команда позволяет получить статус выполнения предыдущей команды — результатом этой команды может стать как сообщение типа «нет ошибки», так и разные сбои, начиная с отсутствия диска в накопителе и заканчивая серьезными проблемами.
Read capacity (25h) — позволяет узнать объем целевого устройства
Format Unit (04h) — служит для деструктивного форматирования целевого устройства и подготовки его к хранению данных.
Read (4 варианта) — чтение данных; существует в виде 4 разных команд, отличающихся длиной CDB
Write (4 варианта) — запись. Так же как и для чтения в 4 вариантах
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-уровня. Это значит, что такие диски предназначены для работы 24×7 и стоят значительно дороже своих собратьев, использующихся в настольных 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
Напоследок, хочется поделиться некоторыми сведениями о текущей адаптации SAS мировыми производителями оборудования. SAS сегодня – это стандарт де-факто для серверных систем и профессиональных рабочих станций. Серверные системы подавляющего большинства как A- так и B- брендов имеют в составе контроллеры SAS, как HBA, так и RAID. В области внешних систем хранения данных, основные производители оборудования (HP, EMC, NetApp, IBM) уже несколько лет как перевели внутренние архитектуры своих систем на SAS. Таким образом, диски Fibre Channel стали за последние пару лет настоящей экзотикой. Fibre Channel продолжает жить и развиваться, в основном, как способ подключения серверов к системам хранения данных, хотя в области Low-End, Mid-Range и профессиональных систем, SAS отвоевывает все большую долю.
На этом наш экскурс в мир истории и теории SCSI вообще и SAS в частности подошел к концу, и в следующий раз я расскажу вам более подробно о применении SAS в реальной жизни.
В чём понт SAS? — Хабр Q&A
Ох, сигейта нет на вас ;). Я видел отличную презентацию про отличия 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. Последний — нельзя категорически. Проблем не оберетесь потом. И не потому, что у нас картельный сговор, а потому, что диски проектируются под разные задачи. То есть 8×5 или 24×7, например. Есть также такое понятие как максимальная допустимая задержка, после которой контроллер считает диск умершим. Для десктопных дисков она в разы больше. Это значит, что под нагрузкой рабочие Desktop SATA будут «вываливаться» из массива.
Короче, ориентируйтесь на конкретные линейки под конкретные задачи. Лучше всего смотреть на сайтах производителей. Есть например специальные мало шумящие и мало греющиеся винты для домашней электроники.
Те же подходы и к SSD, но область еще на сформировавшаяся, поэтому много тонкостей. Здесь мы ориентируемся по параметрам. Хотя все, что сказано в п., справедливо и для SSD.
True System: Прошивка SAS2 экспандеров Supermicro
Еще в середине прошлого года Supermicro выпустила прошивку 55.14.18.0 для своих SAS2 экспандеров. Помимо решения нескольких проблем с SES, данный релиз исправляет известную проблему совместимости с контроллерами Adaptec.Процедура прошивки подробно описана в краткой инструкции к пакету Expander Xtools Lite. Все замечательно работает, можно использовать обычные прошивки для Adaptec и заодно устранить постоянное появление в логах сообщений «Fan failed» (вентиляторы обычно подключают не к бэкплейну, а к материнской плате, в результате бэкплейн через SES постоянно сообщает контроллеру о выходе из строя вентиляторов).
Как выяснилось, при прошивке 2-экспандерных конфигураций в корпусах 216-й серии (бэкплейн BPN-SAS2-216EL2) штатным способом нарушает совместную работу экспандеров (подробности будут ниже). Решение проблемы — прошивать при помощи консольного xflash напрямую, без использования GUI.
Суть проблемы
В dual-domain топологии используется доступ к SAS дискам через два экспандера. SAS диски имеют по два PHY, один из них выходит на первый экспандер, другой — на второй.Такой способ подключения поддерживают все современные RAID-контроллеры Adaptec и LSI. Помимо некоторого увеличения производительности (что можно получить, просто подключившись к единственному экспандеру через x8 линк вместо x4), такая топология позволяет создать отказоустойчивое подключение. В пределах сервера это малоинтересно, но при подключении нескольких SAS JBODов (дисковых полок) каскадом это является крайне необходимым. Чтобы отключение кабеля или питания на любой из дисковых полок не приводило к потере доступа к другим полкам, подключенным ниже по цепочке, для второго порта применяется обратное каскадирование: экспандеры №1 каскадируются по-порядку (контроллер->полка_1->полка_2->полка_3), а экспандеры №2 — в обратном порядке (контроллер->полка_3->полка_2->полка_1).
Контроллеру для осознания того факта, что оба подключенных к нему экспандера находятся на одном бэкплейне (т.е. для корректной работы SES) и являются частью топологии с общими дисками нужны две вещи:
- корректные SAS-адреса на экспандерах (заканчивающиеся на 7F и FF для первого и второго экспандера)
- разные т.н. enclosure id
После прошивки FW 55.14.18.0 штатным способом мы получаем удручающую картину:
Это скриншот LSI MSM, из которого видно, что доступ к дискам осуществляется только через один экспандер. По отдельности они работают, но при совместном подключении один из них «повисает в воздухе». Скриншот здорового человека должен выглядеть так:
Прошивка
Для работы понадобятся:
- Linux или Windows Server 2008/2008R2.
- Контроллер SAS2 HBA LSI 9211-4i/-8i или другой HBA на базе чипов LSI 2004/2008 c IT или IR прошивкой или SAS2 RAID контроллер LSI 9260/9261/9265/9266/9271 или другой на базе чипов LSI 2108/2208.
- Бэкплейн с SAS2 экспандером или экспандерами («SAS2» в партномере. Например BPN-SAS2-216EL2). Будьте осторожны, можно случайно взять и прошить SAS1 экспандер и получить кирпич.
Мы не можем выложить образы прошивок в открытый доступ, только индивидуально, по запросу.
Процесс:
- Получаем WWN экспандеров:
xflash -i get avail
c:\smc>xflash -i get avail ******************************************************************************** Xflash LSI SAS Expander Flash Utility Version: 7.0.0.0 Copyright (c) 2010 LSI Corporation. All rights reserved. ******************************************************************************** Initializing Interface. Expander: SAS2x36 1) SAS2x36 (50030480:00CF9E7F) (0.0.0.0) 2) SAS2x36 (50030480:00CF9EFF) (0.0.0.0)
- Закачиваем FW в region 0 и в region 2 первого экспандера и ресетим его. После ресета может появится окно MSM с сообщением о том, что «communication with enclosure lost».
xflash -i 5003048000CF9E7F down fw sas2xfw_55.14.18.0.fw 0 xflash -i 5003048000CF9E7F down fw sas2xfw_55.14.18.0.fw 2 xflash -i 5003048000CF9E7F reset exp
- Ждем пока экспандер перезагрузится (секунд 10) и шьем MFG. В данном случае выбран файл с «nofan», так как все вентиляторы будут подключены к материнской плате.
xflash -i 5003048000CF9E7F down mfg sc216mfg_primary_fw55_14_18_0_mfg_2_38_nofan.bin xflash -i 5003048000CF9E7F reset exp
- Опять ждем перезагрузки и проверяем версию.
xflash -i 5003048000CF9E7F get ver 1
- Повторяем то же самое для второго экспандера.
xflash -i 5003048000CF9EFF down fw sas2xfw_55.14.18.0.fw 0 xflash -i 5003048000CF9EFF down fw sas2xfw_55.14.18.0.fw 2 xflash -i 5003048000CF9EFF reset exp xflash -i 5003048000CF9EFF down mfg sc216mfg_secondary_fw55_14_18_0_mfg_2_38_nofan.bin xflash -i 5003048000CF9EFF reset exp
Тестирование полки Intel® Storage System JBOD 2000 Family / Тринити corporate blog / Habr
Буквально недавно мне довелось тестировать дисковую полку от компании Intel. «Казалось бы, чего может быть удивительного в обычной дисковой полке,»-подумал я, но после детального рассмотрения полка оказалась не совсем типичной. Собственно, об этом я и расскажу.Зачем нужны дисковые полки и с чем их едят
Intel Storage System JBOD 2000 Family – это не просто системы хранения или дисковая полка, это полноценные DAS (Direct Attach Storage).
Устройства обладают возможностью подключить к одной полке (так и каскаду полок) пару серверов, что позволяет организовать двухузловой кластер. Вендор называет такую схему — Dual SAS Domain Clustered Cascaded.
В своей основе данные дисковые системы используют шасси серверной платформы Intel Server System R2000GZ/GL — это позволило снизить затраты компании Intel на разработку полки и благотворно сказалось на её конечной стоимости, помимо этого данный JBOD очень сложно стало отличить от сервера.
Теперь про внутренний мир
Intel Storage System JBOD2224S2DP:
• 3x бэкплейна по 8x 2.5” диска (всего на 24 диска на полку)
• 2x 36 Port Expanders для обеспечения отказоустойчивости и доступа к SAS дискам
• 2x блока питания по 460W С резервированием по системе 1+1
• 3x 10” Fan для охлаждения корпуса и дисков
• 2x SAS конвертера Primary External, Secondary External)
• 1x SAS Выход для каскадирования полок
Подробнее о конструктиве.
В данной полке максимально может устанавливаться 24 диска, но при этом два 36 портовых SAS экспандера, зачем так много спросите Вы, ведь 2 по 36 – это 72, а у нас максимум 24 диска? Всё очень просто, SAS диски включают в себя 2 порта (2 линии) обмена данными. Соответственно одна линия идёт на первый контроллер, а вторая на второй. Таким образом, мы ускоряем доступ к данным и защищаем себя на случай выхода из строя одного из контроллеров.
А вот для SATA дисков достаточно одного контроллера, т.к. у SATA дисков всего одна линия передачи данных. Так же у полки есть два блока питания и Power Distribution Board с резервированием блоков питания по системе 1+1, т.е. система будет работать, если один из блоков питания выйдет из строя. Помимо этого, каждый блок питания имеет функцию горячей замены и может быть заменён без остановки системы. SAS конвертеры по сути своей выполняют роль переходников с внутренних SFF 8087 на внешние SFF 8088 для подключения к контроллерам серверов.
Немного о тестах.
Тестирование производилось в конфигурации отказоустойчивого файлового кластера из 2х серверов и одной дисковой полки, что обеспечивает непрерывный доступ к данным при падении одного из каналов SAS или полном выходе из строя одного из серверов.
Для тестирования использовались два вида 2,5 дюймовых дисков, а именно: 4xSSD Intel DC S3700 Series (100GB, 2.5in SATA 6Gb/s, 25nm, MLC), 4xHDD Hitachi C10K900 300GB (2.5″, SAS, 10k rpm).
Рассмотрим простейшие конфигурации, такие, как RAID 0 и RAID 1 по 2 диска в каждом массиве.
Для начала посмотрим на SSD:
Пример RAID 0 на 2x SSD
Пример RAID 1 на 2х SSD
Посмотрим на SAS диски:
Пример RAID 0 на 2х SAS дисках
Пример RAID 1 на 2х SAS дисках
Теперь рассмотрим более сложную конфигурацию, а именно том RAID 6 из 4xSAS дисков и 4xSATA SSD:
Пример RAID 6 на 4х SSD
Пример RAID6 на 4х SAS дисках
В заключении отмечу, что данные полки очень конкурентоспособный продукт как по цене, так и по качеству. Немаловажным плюсом является удобство внедрения, и хорошая масштабируемость благодаря возможности каскадирования. Поддержка высокоскоростных дисков SAS/SATA 6 Гб/с и сравнительно малые размеры 2U позволяют повысить максимально возможную дисковую плотность в любом центре обработки данных или офисной серверной.
Решения на основе концепции Shared DAS, в последнее время получают все большую популярность. Объясняется это весьма просто. На них появился спрос со стороны широкого и весьма динамичного сектора рынка, от малого и среднего бизнеса (SMB) до уровня небольших предприятий. Их уже перестали устраивать традиционные решения с малой отказоустойчивостью, но при этом стоимость традиционных сетей хранения данных SAN для них слишком высока. А именно это, высокую отказоустойчивость за счет использования нескольких путей прохождения данных и невысокую стоимость оборудования и обеспечивают решения Shared DAS. Приятным бонусом является достаточно высокая производительность и малые задержки при передаче данных, поскольку в качестве среды коммутации используется SAS. Локомотивом выступила компания Microsoft, предложив Windows Server 2012, в состав которого вошел компонент Storage Spaces, обеспечивающий удобную и комфортную виртуализацию хранения данных на уровне ОС.
Но что делать тем, для кого производительности Storage Spaces недостаточно, но при этом размер проекта не настолько велик, чтобы был смысл говорить о полноценной SAN? Ответ — воспользоваться LSI Syncro.
Прежде, чем мы перейдем к рассмотрению, что же представляет собой LSI Syncro, давайте сформулируем, что именно в Storage Spaces вызывает основные нарекания:
- накопители, входящие в состав Storage Spaces, не могут использоваться для загрузки операционной системы
- производительность виртуальных дисков с контролем четности (Parity или Dual Parity, что является аналогом общеизвестных массивов RAID5 и RAID6, соответственно) на запись невысока из-за особенностей реализации последних
- реализация контроля четности на программном уровне несколько увеличивает нагрузку на процессор и память сервера
А теперь давайте вернемся к герою нашей статьи.
LSI Syncro — это комплект из двух RAID-контроллеров, общающихся друг с другом и умеющих синхронизировать данные в кэш-памяти. Их задача — предоставлять доступ к подключенным накопителям сразу двум серверам. Помимо пары самих контроллеров комплект поставки сразу включает в себя и пару батарей CacheVault, в задачу которых входит обеспечение сохранности данных в кэш-памяти контроллеров в случае, если сервер останется без питания.
У многих вызывает недоумение тот факт, что для обеспечения когерентности данных в кэше контроллеров используется не выделенная среда передачи данных, а те же самые SAS-каналы передачи данных, которые используются и для передачи основного потока данных между контроллерами и экспандерами. Но здраво поразмыслив можно прийти к выводу, что как раз выделенная линия для Heartbeat могла бы стать той самой единственной точкой отказа, а так мы имеем дублированный путь. Что же касается совместного использования канала, то трафик между кэшами не настолько велик, чтобы оказывать ощутимое влияние на производительность.
LSI Syncro, внутреннее исполнение
LSI Syncro, внешнее исполнение
На текущий момент семейство продуктов LSI Syncro включает в себя 4 продукта: 9271-8i, 9286-8e, 9361-8i и 9380-8e. Первые два комплекта представляют собой SAS 6G решения, отличающиеся исполнением портов: на 9271-8i на каждом контроллере расположено по 2 внутренних miniSAS-порта, а на 9286-8e — по два внешних. Появившиеся совсем недавно 9361-8i и 9380-8e представляют собой дальнейшее развитие семейства LSI Syncro и отличаются от предшественников переходом на интерфейс SAS 12G. Так что если вы считаете SAS 6G уже устаревшим или недостаточно производительным и готовы рассматривать инфраструктуру только на 12G, то с этим проблем не будет.
Немножко общих технических характеристик:
Поддерживаемые типы RAID-массивов |
0, 1, 5, 6, 10, 50, 60 |
Количество виртуальных дисков на контроллер |
до 64 в HA домене (High Availability domain, домен высокой доступности) |
Форм-фактор контроллера |
MD2 Low profile (6.6″ x 2.536″) |
Интерфейс |
PCI-Express v.3.0 x8 |
Поддерживаемые устройства |
до 96 SAS SSD/HDD, до 31 SAS экспандера, всего до 120 SAS устройств в HA домене |
Рабочая температура |
55°C |
Начать подробный разговор о возможностях этого решения стоит с того, что в качестве поддерживаемых операционных систем заявлены не только очевидные Windows Server 2008 и 2012, но и Red Hat Enterprise Linux 6.3 и 6.4, SuSE Linux Enterprise Server 11 SP2 и SP3, CentOS 6.4 и 6.5, драйвер для которых лежит на сайте в открытом доступе. Вот оно, счастье и возможности для приверженцев открытого ПО.
Какие же преимущества мы получаем от LSI Syncro?
Производительность
- Разгрузка центрального процессора и оперативной памяти за счет выноса алгоритмов контроля четности в массивах RAID 5/6 на процессор и кэш контроллера
- Емкий и производительный кэш записи с защитой от сбоя питания и зеркалированием
Если обратиться к данным, предоставляемым компанией LSI, то возможности (а вернее сказать превосходство) LSI Syncro в области производительности дисковой подсистемы будут выглядеть следующим образом:
Производительность LSI Syncro в сравнении с Storage Spaces
Что касается максимальных показателей, достигнутых на новом поколении с интерфейсом SAS 12G, то текущая прошивка 2.0 — 23.0.0-0055 позволяет получить с 48 дисков SAS 15000 об/мин в RAID0 8900 МБ/с на чтении и 4500 МБ/с на записи. О проблемах с записью в компании LSI знают, говорят, что это связано с неудачной реализацией синхронизации кэширования записи, и что в следующей прошивке 2.2 эта проблема полностью решена и производительность на записи составляет те же самые 8900 МБ/с — предел производительности самих дисков.
Надежность
- Независимость от программной платформы
- Данные не зависят от сбоя сервера
- Защита от сбоя ОС
- Легкое и удобное построение высокозащищенных СХД с дублированием всех путей прохождения данных
Дополнительные возможности
Помимо перечисленного выше стоит отметить и такую важную и полезную особенность LSI Syncro, как возможность создания не только общедоступных кластерных пулов дисков, но и выделенных пулов для конкретных серверов. Такая возможность важна при построении AlwaysOn Availability Groups на основе MS SQL Server 2012.
В отдельных случаях ценной возможностью окажется и способность загружать операционные системы с дисков, подключенных к LSI Syncro.
Пожалуй, стоит отметить и простоту масштабирования подобных решений: SAS-экспандеры поддерживают как каскадирование, так и самоконфигурирование, а значит расширить общий пул доступных накопителей можно просто добавив еще одну недорогую дисковую полку. Причем с полной свободой выбора ее производителя.
Насколько в принципе реально масштабирование до упора? Это не составляет проблемы: всего лишь две 60-дисковые полки позволят полностью выбрать возможности LSI Syncro и получить в свое распоряжение пул из 96 х 6 ТБ = 576 ТБ, то есть полпетабайта сырой дисковой емкости на недорогих SAS NL дисках. Это, конечно, меньше, чем возможности современных SAN или того же Storage Spaces, но нам кажется, что мало кто среди целевой аудитории сможет назвать это недостаточной масштабируемостью.
Если вернуться к упомянутым в начале статьи недостаткам Storage Spaces, то становится очевидным, что использование LSI Syncro позволяет закрыть большинство слабых мест, расширяя общий спектр возможностей Shared DAS.
Варианты использования
Использование LSI Syncro 9361-8i «кластер в коробке» на примере ETegro RS420 G4
Самым очевидным вариантом использования является применение LSI Syncro с внутренними SAS портами в решениях класса «кластер в коробке», где RAID-контроллеры LSI Syncro заменяют собой в узлах кластера SAS HBA адаптеры, использующиеся для доступа к пулу общих накопителей. Таким образом мы получаем компактное, но при этом высокопроизводительное и защищенное от сбоев решение.
Высокодоступный и производительный файловый сервер небольшой фирмы, удаленного офиса или даже небольшого предприятия, сервер баз данных, веб-сервер, основа для мощных сетевых накопителей, сервер обработки видеоданных, сервер хранения данных виртуальной среды — все это быстро, легко и недорого можно построить на основе LSI Syncro.
Пример использования LSI Syncro 9380-8e с двумя серверами RS530 G4 и дисковой полкой JS300 G3
(синим обозначены линии SAS для каскадирования полок)
Если же вычислительных возможностей «коробочных» кластеров недостаточно (памяти мало, или не хватает производительности двух процессоров узла), то можно взять и полноразмерные сервера, и вот в них уже ставить LSI Syncro с внешними портами. А дальше все ограничивается лишь фантазией системного архитектора и возможностями каскадирования SAS-экспандеров/полок. Область же применения — та же, что и у коробочных кластеров, только с более высокой вычислительной нагрузкой, плюс мощные системы анализа и обработки данных, системы для высокопроизводительных вычислений.
Подводя итоги хочется заметить, что концепция Shared DAS вовсе не призвана стать панацеей и заменить все традиционные варианты хранения данных, а интерфейс SAS никогда не заменит и Ethernet, и FiberChannel и InfiniBand. Но во множестве случаев, когда возможностей интерфейса SAS оказывается вполне достаточно с точки зрения масштабов и дальности действия, решения Shared DAS на базе LSI Syncro могут стать самым выгодным, удобным и производительным способом хранения данных.
Интерфейс SAS-2 и контроллер LSI SAS 9211-8i
Знакомство с интерфейсом Serial Attached SCSI на 6 Гбит/сВ начале 2010 года в продаже появились первые жесткие диски и контроллеры с поддержкой интерфейса Serial ATA Rev. 3.0 со скоростью передачи данных 6 Гбит/с. Несмотря на вдвое возросшую скорость интерфейса и некоторые улучшения в обработке очереди команд (NCQ), новинка пока что особых дивидендов в плане производительности не принесла: будучи примененным в традиционных жестких магнитных дисках, даже имеющих огромный буфер 64 МБ (например, Seagate Barracuda XT), интерфейс SATA 6 Гбит/с явно стреноживался во много раз меньшей скоростью линейного доступа к полезной для пользователя информации на магнитных пластинах (150—160 МБ/с против 400—500 МБ/с у интерфейса SATA Rev. 3.0). Между тем, практическая «обкатка» SATA Rev. 3.0 позволила индустрии достаточно оперативно вслед за ним выпустить его «старшего братца» — интерфейс Serial Attached SCSI 2.0 со скоростью передачи данных 6 Гбит/с. Ведь сигнальный (физический) уровень интерфейсов у них очень похож (у SAS лишь примерно вдвое выше напряжение сигналов, чем у SATA).
В этой статье мы кинем первый взгляд на интерфейс SAS-2 на примере одного контроллера и одного диска, а более детальным исследованиям его возможностей посвятим будущие статьи.
Serial attached SCSI 2.1: что новенького?
Будучи наследником старого доброго параллельного интерфейса SCSI, интерфейс Serial attached SCSI (SAS) изначально задумывался с прицелом на поэтапное удвоение пропускной способности. Первое поколение SAS со скоростью передачи данных 3 Гбит/с появилось в лабораториях еще в 2004 году и широко вышло на рынок в 2005—2006 годах. Спустя «пятилетку», то есть в 2009 году, на-гора был выдан SAS-2 (6 Гбит/с) — устройства с его поддержкой поступили в продажу уже в 2010 году. Наконец, в конце 2012 года индустрия ожидает первых инженерных воплощений SAS-3 со скоростью передачи уже 12 Гбит/с. На рынке устройства с поддержкой третьего поколения SAS следует ждать не ранее 2014 года (см. рис.). Таким образом, у новенького SAS-2 есть как минимум года четыре на окупаемость и «снятие сливок».
План эволюции интерфейса SAS (рисунок с сайта www.scsita.org)
Разрабатывает спецификации интерфейса SAS технический комитет T10 Международного комитета по ИТ-стандартам, или INCITS (International Committee for Information Technology Standards, см. www.incits.org). Практическая разработка и поддержка протокола SAS лежит на SCSI Trade Association (SCSITA или STA, см. www.scsita.org). Разумеется, поколения SAS обратно совместимы, то есть SAS 2.0 поддерживает все функции первого поколения SAS-1.1 со скоростью 3 Гбит/с (полный дуплекс, 10-метровый внешний кабель, расширитель портов до 255 устройств (всего до 65535), поддержку TCQ, совместимость с дисками SATA с NCQ, двухпортовые диски SAS, агрегацию четырех портов с соответствующим увеличением пропускной способности до 24 Гбит/с и мн. др.).
Второе поколение стандарта SAS — это эволюционное развитие предшественника. Стандарт SAS-2.0 вскоре после выхода был усовершенствован до версии 2.1 и нынешние рыночные устройства для SAS 6 Гбит/с поддерживают именно SAS-2.1. Основные нововведения можно свести к следующему:
- Удвоение пропускной способности шины с 3 до 6 Гбит/с (кабель до 10 м).
- Стандартизованное (по SAS-2) зонирование и зонирующий экспандер (см. рисунки ниже) для улучшенной поддержки мультихостинга и функций безопасности.
- Размывание спектра частот (spread spectrum) для уменьшения электромагнитной интерференции (не требуется для соединений на скорости 3 Гбит/с и менее).
- Мультиплексирование соединений (опционально) для увеличения степени использования интерфейса при подключении устройств с SAS-1 и др.
- Разъемы Mini-SAS (SFF-8088 и SFF-8087, см. рис.) для улучшения внешних соединений.
Стандартизованное зонирование по SAS-2
Самоконфигурирующийся зонирующий экспандер SAS-2
Разъем Mini-SAS 4X
Грубо говоря, наиболее важных нововведения в SAS-2, собственно, два — это удвоение скорости передачи и новые зонирующие функции. Именно последние дают возможность создавать такие новые и уникальные пока на рынке модели как, например, первый в индустрии 16-портовый SAS-коммутатор LSI SAS6160 (см. рис.), поступивший в продажу этой осенью по весьма привлекательной для его функциональности цене.
16-портовый SAS-2 коммутатор LSI SAS6160
С его помощью многочисленные серверы можно подключить к одной или нескольким независимым внешним системам хранения данных, используя при этом высочайшую пропускную способность «счетверенного» интерфейса SAS-2. Суммарная же пропускная способность такого коммутатора достигает фантастических 384 Гбит/с. Коммутатор LSI SAS6160 поддерживает до 1000 адресов устройств SAS и SATA в SAS-сетях с зонированием, позволяя пользователям иметь больше соединений и сократить время задержки при обращении к СХД различных классов. Кроме того, поддержка специальных активных кабелей позволяет коммутаторам LSI SAS быть расположенными на расстоянии до 25 м друг от друга, что в четыре раза больше по сравнению с использованием традиционных пассивных медных SAS-кабелей. Впрочем, подробное рассмотрение данного продукта выходит за рамки этой статьи, поэтому вернемся к ее основной теме.
За счет нововведений второе поколение SAS может еще больше потеснить решения на базе Fibre Channel в высокопроизводительных системах хранения данных и шину Infiniband при внешних соединениях модулей СХД. В частности, благодаря более низкой стоимости на один порт и в несколько раз меньшему энергопотреблению на порт (см. слайд).
Преимущества SAS-решений по сравнению с 10 GbE и Fibre Channel
С другой стороны, у SAS-2 улучшена поддержка SATA-накопителей высшей емкости в системах хранения данных (при помощи SATA Tunneling Protocol (STP)/SATA Bridging и Serial SCSI Protocol (SSP)/SATA Bridging, см. www.serialstoragewire.net/Articles/2008_03/opinion28.html), что усиливает универсальность нового интерфейса.
С точки зрения «неискушенного ИТ-потребителя» (которому, впрочем, необязательно связываться с SAS :)) польза от SAS-2, на первый взгляд, не так уж очевидна. Действительно, для обслуживания одиночных накопителей удвоение скорости интерфейса с 280 до 500 с лишним МБ/с по пользовательским данным пока что практически бесполезно — нынешние «магнитные» винчестеры (даже дорогие SAS-диски) едва дотягивают до 200 МБ/с в скорости линейного чтения/записи и им еще как минимум 2—3 года вполне будет хватать скоростей SAS 1.1, особенно если учесть наметившееся в последнее время замедление эволюции (роста плотности) перпендикулярной магнитной записи. Исключение — применение новейших профессиональных SSD со скоростью выше 300 МБ/с (хост SAS-2 поддерживает накопители с SATA 6 Гбит/с), а также активная работа дисков в крупных RAID-массивах, где большая емкость встроенных в диски кэшей вкупе с возросшей скоростью интерфейса способна немного поднять общую производительность. И тут полезно помнить, что узким местом может уже стать шина PCI Express, на которой «сидит» используемый контроллер RAID, — ведь даже PCIe x4 первого поколения в каждом направлении пропустит не более 1 ГБ в секунду (см., например, http://en.wikipedia.org/wiki/List_of_device_bandwidths#Computer_buses), что равно одновременной полной загрузке всего лишь двух линий SAS-2. Таким образом, шина PCI Express x8 фактически является минимально разумным требованием для 4-дисковых хост-контроллеров SAS-2. А для 8-дисковых RAID-хостов использование PCIe x8 поколения 2.0 является просто непременным.
Ну а больше пользы от применения SAS-2 можно получить, если активно использовать другие возможности SAS — в частности, расширители и агрегаторы портов. В этом случае, «посадив», скажем, на один порт SAS-2 пару быстрых SAS-винчестеров, мы можем практически не увидеть падения производительности. Аналогично — для внешних СХД при соединении с хостом по SAS-2 (кабелем длиной до 10 м)…
Контроллер LSI SAS 9211-8i
Первое знакомство с SAS-2 имеет смысл начать с недорогого (около 300 долл.) и достаточно простого, то есть HBA (Host Bus Adapter) 8-портового контроллера компании LSI Corporation (www.lsi.com).
8-портовый HBA-контроллер LSI SAS 9211-8i с интерфейсом SAS 6 Гбит/с
LSI SAS 9211-8i не имеет собственной кэш-памяти (если не принимать во внимание не больно-то емкие регистры HBA-чипа) и основан на чипе LSI SAS2008 (ядро PowerPC 440 с частотой 533 МГц; производительность до 290 тыс. операций ввода/вывода в секунду).
Процессор 8-портового HBA-контроллера LSI SAS 9211-8i
Плата LSI SAS 9211-8i имеет низкий профиль (форм-фактор MD2), оснащена двумя внутренними разъемами Mini-SAS 4X (каждый из них позволяет подключать до четырех SAS-дисков), рассчитана на шину PCI Express x8 2.0 и поддерживает простейшие RAID-массивы уровней 0, 1, 1Е и 10, а также динамическую функциональность SAS, включая dual-port drive redundancy, может работать в общей сложности с 256 физическими дисками SAS и SATA (свыше восьми — через порт-мультипликаторы) и мн. др.
8-портовый HBA-контроллер LSI SAS 9211-8i с интерфейсом SAS 6 Гбит/с
Контроллер LSI SAS 9211-8i можно устанавливать как в корпуса ATX и Slim-ATX (для рабочих станций), так и в рэковые серверы формата 1U и 2U (серверы классов Mid- и High-End). Поддержка RAID производится аппаратно — встроенным процессором LSI SAS2008, что снижает общую нагрузку на ЦП рабочей станции или сервера.
Контроллер LSI SAS 9211-8i: основные технические характеристики
Параметр | Значение |
---|---|
Системный интерфейс | PCI Express x8 2.0 (5 Гбит/с), Bus Master DMA |
Дисковый интерфейс | SAS-2 6 Гбит/с (поддержка протоколов SSP, SMP, STP и SATA) |
Число портов SAS | 8 (2 разъема x4 Mini-SAS SFF8087) |
Поддержка RAID | уровни 0, 1, 1E и 10 |
Процессор | LSI SAS2008 (PowerPC 440@533 МГц), до 290 тыс. IOps |
Встроенная кэш-память | отсутствует |
Энергопотребление, не более | 13,5 Вт (питание от +12 В шины PCIe) |
Диапазон температур работы/хранения | 0…+70 °С / −45…+105 °С |
Форм-фактор, габариты | MD2 low-profile, 168×64,4 мм |
Значение MTBF | >2 млн. ч |
Гарантия производителя | 3 года |
В комплекте поставки в красочной коробке содержатся: плата контроллера, брекеты для ее установки в корпуса ATX, Slim-ATX и пр., два 4-дисковых кабеля с разъемами Mini-SAS на одном конце и обычным SAS (с питанием от Molex) — на другом (для подключения до восьми дисков к контроллеру), а также CD с PDF-документацией и драйверами для Windows, Linux (SuSE и RedHat), Solaris и VMware.
Тестирование
Для первого знакомства с HBA-контроллером нового интерфейса мы решили воспользоваться одиночными дисками SAS-2 и SATA Rev. 3, поддерживающими скорость передачи данных до 6 Гбит/с. Это позволит нам сосредоточиться на анализе интерфейса в чистом виде, оставив «заморочки» с RAID различных уровней на будущее. Первым диском с поддержкой SAS-2 в нашей лаборатории оказался накопитель Toshiba MBF2600RC компактного форм-фактора 2,5 дюйма, но при этом отнюдь не маленькой емкости — 600 ГБ.
Жесткий диск Toshiba MBF2600RC емкостью 600 ГБ с интерфейсом SAS-2
При скорости вращения пластин около 10000 об/мин и восьми головках (в тонком корпусе диска размещается аж четыре магнитных пластины) данный накопитель имеет весьма малое время случайного доступа (около 7 мс, что вдвое лучше, чем у типичных десктопных SATA-накопителей) и предназначен для малогабаритных высокопроизводительных хранилищ данных (в линейке Toshiba MBF2-RC присутствуют также модели на 450 и 300 ГБ). По сравнению с непосредственными предшественниками новинки отличаются не только вдвое большей вместимостью и скоростью интерфейса — в них также заметно улучшена экономичность благодаря применению специальной технологии. В частности, в моменты бездействия вращение пластин диска замедляется и энергопотребление падает на 28%. Заявленные 4,5 Вт в режиме ожидания сравнимы с энергопотреблением экономичных 3,5-дюймовых SATA-накопителей емкостью 1—2 ТБ со скоростью вращения пластин 5-6 тыс. об/мин. Хотя по нынешним временам кэш-память этого диска не очень велика — 16 МБ, — это не является недостатком, поскольку накопители данного класса предназначены преимущественно для задач последовательного чтения и записи информации, например, в системах хранения мультимедийного контента.
Жесткий диск Toshiba MBF2600RC: основные технические характеристики
Параметр | Значение |
---|---|
Форматированная емкость | 600 млрд. байт |
Число пластин/головок | 4/8 |
Скорость вращения пластин | 10 025 об/мин |
Среднее время поиска, чтение/запись | 4 мс / 4,4 мс |
Латентность вращения | 2,99 мс |
Интерфейс | SAS 2.0, 6 Гбит/с |
Стартовый ток, не более | 1,5 А для +12 В и 1,0 А для +5 В |
Потребление в бездействии, не более | 4,5 Вт |
Диапазон температур работы/хранения | +5… +55 °С / -40… +70 °С |
Емкость кэш-памяти | 16 МБ |
Акустический шум вращения | 29 дБА |
Ударостойкость, работа/хранение | 100 g (1 мс) / 400 g (1 мс) |
Габариты, масса | 100×70×15 мм, 220 г |
Максимальная скорость последовательного чтения/записи полезных данных для Toshiba MBF2600RC составляет около 150 МБ/с (см. график).
График скорости последовательного чтения диска Toshiba MBF2600RC
Безусловно, это гораздо меньше предельных возможностей интерфейса SAS даже первого поколений (3 Гбит/с; около 270 МБ/с по полезным данным), уже не говоря о SAS-2. Тем не менее, благодаря более быстрому случайному доступу и профессиональным алгоритмам кэширования в буфере SAS-диска мы можем надеяться на то, что выгода от подключения этого диска к более скоростному интерфейсу будет более заметна, чем в случае с ранее исследованной нами Seagate Barracuda XT ST32000641AS — первым диском для интерфейса SATA 6 Гбит/с. Впрочем, поскольку последний также поддерживается контроллерами SAS-2 (и LSI SAS 9211-8i в частности), его мы также включили в наше тестирование.
Диск Toshiba MBF2600RC мы испытывали при подключении к двум контроллерам: к LSI SAS 9211-8i по интерфейсу SAS-2 (6 Гбит/с) и к HighPoint RocketRAID 2642 по SAS 1.0 (3 Гбит/с). Дело в том, что в настройках BIOS Setup контроллера LSI SAS 9211-8i не предусмотрено пункта принудительного перевода портов SAS на скорость первого поколения интерфейса — 3 Гбит/с. Поэтому для сравнения двух скоростей SAS нам и пришлось привлечь другой HBA SAS-контроллер примерно той же ценовой категории (вышеназванный HPT RR2642 на популярном чипе Marvell 88SE6445 для шины PCI Express x4). Безусловно, это не является сравнением двух скоростей SAS в чистом виде (на одном и том же контроллере), что было бы полезно с чисто теоретической точки зрения, однако практический смысл имеет немалый, поскольку сопоставляет производительность диска SAS, подключенного к HBA-контроллерам сходного класса производительности старого и нового интерфейсов.
Кроме того, поскольку с HBA-контроллером LSI SAS 9211-8i на практике могут использоваться и SATA-накопители (как одно из целевых применений), мы протестировали его с «семитысячником» Seagate Barracuda XT ST32000641AS, также поддерживающим скорость интерфейса 6 Гбит/с. Для сопоставления Barracuda XT была также протестирована на скорости интерфейса 3 Гбит/с с двумя простыми RAID-контроллерами — вышеупомянутым 4-портовым SAS HighPoint RocketRAID 2642 и 6-портовым SATA, интегрированным в южный мост Intel ICh20R. Это также позволит нам сравнить производительность одного из самых быстрых нынче «семитысячников» на разных популярных контроллерах и скоростях интерфейса.
Тестовая система была основана на процессоре Intel Xeon 3110, материнской плате с чипсетом Intel P45 и 1 ГБ памяти DDR2-800. SAS-контроллеры устанавливались в слот PCI Express x16. Испытания проводились под управлением операционных систем Windows 7 x64 Ultimate и Windows XP SP3 Professional. В качестве тестов использовались программы AIDA64, ATTO Disk Benchmark 2.41, C’T h3BenchW 4.13, Futuremark PCMark05, Futuremark PCMark Vantage x64, Intel IOmeter 2006, Intel NAS Performance Toolkit 1.7 и др. Все тесты проводились пятикратно и результаты усреднялись. По сравнению с текущей методикой нашего сайта, предназначенной для тестирования десктопных SATA-накопителей, мы здесь добавили определенный круг задач, чтобы лучше выявить разницу между контроллерами и интерфейсами и более разносторонне представить производительность накопителей и контроллеров в приложениях — как профессиональных, так и пользовательских.
Результаты тестирования
Сперва взглянем на «физику» дисков. Оба имеют максимальную скорость чтения/записи полезных данных на пластины около 150 МБ/с, о чем наглядно говорят результаты теста ATTO Disk Benchmark на предельную скорость чтения и записи крупных (256 МБ) файлов большими блоками.
Немного разные результаты этого теста для разных контроллеров объясняются различиями в обработке и кэшировании потоковых данных. Отметим слабость SAS-контроллера HPT RR2642 при работе с SATA-диском (ниже мы убедимся в этом еще неоднократно), хотя с SAS-диском претензий к нему практически нет. Контроллер LSI SAS 9211-8i демонстрирует здесь почти эталонную работу (несколько уступив лишь интеловскому «южнику» с SATA-диском) — возможно, дело как раз в более высокой скорости интерфейса 6 Гбит/с. График скорости последовательного чтения для Toshiba MBF2600RC мы приводили чуть выше, а результаты для Seagate ST32000641AS можно найти здесь.
По среднему времени случайного доступа к информации на дисках закономерно более чем вдвое выигрывает SAS-десятитысячник Toshiba. Причем здесь на контроллере LSI результаты оказываются несколько хуже, чем на хосте HighPoint — возможно, «набегает» латентность от более активного кэширования данных, которое положительно сказалось на результатах потокового чтения/записи (см. выше).
Интересно, что несмотря на вчетверо меньший объем дисковой кэш-памяти у Toshiba MBF2600RC (16 против 64 МБ у Seagate ST32000641AS), эффективность работы алгоритмов отложенной записи при случайных обращениях (определяемое нами по отношению результатов этого теста при чтении и записи) у профессионального SAS-диска существенно выше, чем у десктопного SATA-накопителя — сказывается специфика оптимизации его firmware. Аналогичные результаты получены нами в программах IOmeter и AIDA64.
Теперь о «вкусном» — о скорости самого интерфейса, коль уж мы сравниваем диски и контроллеры при работе по SAS/SATA 3 и 6 Гбит/с. Этот параметр мы измеряли в нескольких программах и здесь демонстрируем результаты для трех из них — AIDA64, HD Tach 3 RW и h3BenchW 4.13.
Как видим, разные утилиты дают порой существенно различающиеся предельные значения скорости интерфейса при чтении. Тем не менее, с уверенностью можно сказать, что 6 Гбит/с работают — и работают при этом не так уж плохо, хотя наблюдаемых в некоторых лабораториях значений в 500 и выше МБ/с мы пока и не получили. Впрочем, и текущих 340-480 МБ/с более чем достаточно для нужд одиночных дисков (как, впрочем, и 250 МБ/с у интерфейсов с 3 Гбит/с). Снова отметим некоторую «заторможенность» HPT RR2642 при работе с SATA-диском, хотя по SAS к нему претензий нет.
Теперь перейдем к тестам производительности дисков в различных пользовательских задачах, которые эмулируются при помощи бенчмарков Intel NASPT, PCMark Vantage и PCMark05, а также тестом приложений из пакета C’T h3BenchW 4.13. Чтобы не перегружать верстку статьи многочисленными диаграммами, мы здесь приведем лишь усредненные показатели для этих четырех комплексных бенчмарков, а результаты по отдельным паттернам каждого из бенчмарков, также представляющие определенный интерес для анализа, сведем в таблицу.
В популярном PCMark Vantage, ориентированном на типичные применения персонального компьютера, несколько выгоднее смотрится SATA-диск Seagate (у него более эффективна работа с данными, распложенными на пластинах близко друг от друга). Выгоды от использования интерфейсов на скорости 6 Гбит/с здесь практически нет — скорее даже небольшой проигрыш, который, впрочем, легко объяснить более прозаическими причинами: особенностями работы того или иного контроллера (в данном случае HighPoint RR2642 всем дает фору). Если взглянуть на таблицу по паттернам, то видно, что с SAS-диском оба контроллера идут ноздря в ноздрю, а с SATA-винчестером контроллер LSI вырывается вперед в задаче Media Center, но немного отстает в Photo Gallery, Vista Startup, Movie Maker и Media Player.
Чуть иная картинка в стареньком PCMark05: тут LSI на диске SAS вырывается вперед, хотя на поверку «виноват» в этом лишь один паттерн (Virus Scan, который активно использует кэширование, что отлично видно из результата, явно превышающего скорость физического доступа к пластинам как для SAS, так и для SATA-дисков). То есть мы находим подтверждение более активного использования кэширования контроллером LSI SAS 9211-8i. С другой стороны, это несколько снижает его показатели в других тестовых паттернах PCMark05 по сравнению с контроллерами HPT RR2642 и Intel ICh20R.
Особо отметим высокий показатель «южника» Intel в этом тесте (хотя шина DMI, по которой он общается с системой, и не превосходит по скорости PCI Express x4/x8 у обоих SAS-контроллеров) — для персональных применений дисков «южник», видимо, оптимален.
Еще один «трековый» тест дисков — C’T h3BenchW 4.13 — использует достаточно старенькую базу приложений, хотя и оригинальных (см. табл.). Здесь на удивление SAS-диск оказался ниже всякой критики — спишем это на особенности бенчмарка, который, по-видимому, очень критичен к разнице в объеме буфера диска 16 и 64 МБ. Нас в данном случает интересует лишь то, что интерфейсы со скоростью 6 Гбит/с снова не дают дискам никакого заметного выигрыша в производительности, а разница показателей объясняется различиями алгоритмов работы самих контроллеров (снова отметим прыть ICh20R и отставание LSI при работе с SATA).
В более свежем тесте Intel NAS Performance Toolkit, который использует несколько иную, более реалистичную, философию бенчмаркинга, нежели «трековые» PCMark и h3BenchW, а именно: непосредственную работу с файловой системой тестируемого диска, а не воспроизведение заранее записанных (в другой системе) команд обращения к диску внутри предварительно созданного временного файла, — ситуация еще более любопытная.
Здесь контроллер LSI (и его 6-гигабитный интерфейс) явно не в фаворитах. И если с SAS отставание в среднем в 5—6% еще не фатально (особенно страдают паттерны с записью на диск — HD Video Record, Content Creation и File/Dir Copy to NAS), то для SATA проигрыш просто фатальный, что можно списать только на недоработки firmware этого контроллера. Зато радуют показатели HPT RR2642, причем не только для SAS, но и для SATA-диска.
Напоследок для особо пытливых в качестве бонуса (и вне общего зачета) приведем результаты старенького теста приложений WinBench 99 Disk WinMark. Интересен он прежде всего тем, что многие его паттерны в большой степени зависят от кэширования буфером самого диска.
И здесь SATA-накопитель с буфером 64 МБ демонстрирует заметное преимущество, а контроллер LSI, невзирая на вдвое более высокую скорость работы интерфейса, смотрится явным аутсайдером. В лидеры же выходит HPT RR2642 с его «более прозрачными» по отношению к диску алгоритмами работы.
Чтобы подытожить эту часть обзора, приведем усредненный показатель производительности дисков/контроллеров в приложениях (среднее геометрическое по тестам h3BenchW, PCMark05, PCMark Vantage x64 и NAS Performance Toolkit).
Как видим, непосредственной (потребительской) выгоды от применения более скоростного интерфейса 6 Гбит/с с современными одиночными магнитными винчестерами SAS и SATA нет, а разница между контроллерами объясняется скорее алгоритмами их функционирования (архитектурой, прошивкой и драйверами).
Тесты в Intel IOmeter
Отдельную часть нашего обзора посвятим тестам в пакете IOmeter, поскольку они помогут понять некоторые тонкости работы исследуемых интерфейсов, дисков и контроллеров. Для этого мы воспользуемся стандартными серверными паттернами DataBase, File Server и Web Server (более показательными в случае SAS-дисков), а также паттернами на чтение и запись крупных (0,5 МБ) и мелких файлов с очередью команд 1, 4, 16 и 64. Для начала (и в качестве альтернативы предыдущей диаграмме) приведем усредненное значение производительности дисков/контроллеров в этих семи паттернах (геометрически по всем очередям команд всех паттернов с весом 1).
Справедливость, наконец, торжествует — серверный диск Toshiba MBF2600RC более чем вдвое опережает настольный Seagate ST32000641AS с той же линейной скоростью чтения/записи. Более того, налицо положительная разница от применения контроллера LSI SAS 9211-8i с 6-гигабитным интерфейсом. Посмотрим, из чего же складывается этот успех?
В паттерне базы данных с обращениями блоками по 8 КБ для SAS-диска на обоих контроллерах наблюдается полное равенство при очередях команд 1, 4 и 16 с почти линейной зависимостью производительности от глубины очереди. И лишь при очереди 64 контроллер LSI продолжает линейный рост, тогда как для HPT RR2642 виден выход на насыщение — чип Marvell уже не справляется с обработкой такого потока запросов. Более того, для SATA-случая контроллер HPT при неединичной глубине очереди команд вообще демонстрирует заметно более низкую производительность, чем чипы LSI и Intel (последние два здесь примерно равноценны). Это похоже на ситуацию, когда RR2642 не использует NCQ при работе с SATA-диском.
В паттернах File Server и Web Server эта тенденция сохраняется: с SAS-диском контроллер HPT «затыкается» на очередях выше 16, тогда как мощный процессор LSI, как тот заяц, продолжает «работать и работать». В этих серверных паттернах более чем двухкратное преимущество диска Toshiba MBF2600RC над Seagate ST32000641AS по скорости случайного доступа напрямую выливается в 2—3-кратный выигрыш в серверной производительности. Даже несмотря на то, что накопители класса Toshiba MBF2600RC предназначены преимущественно для задач последовательного чтения и записи информации в соответствующих серверах и системах хранения данных (это все же не ультрарезвые 3,5-дюймовые 15-тысячники).
Еще более любопытная картинка — в паттернах чтения и записи крупных (полумегабайтных) файлов (или блоков) случайным образом в пределах всего объема диска.
Если при единичной глубине очереди команд диски Toshiba MBF2600RC и Seagate ST32000641AS не сильно различаются по быстродействию, то уже при глубине очереди, равной четырем, производительность SAS-модели возрастает почти вдвое, тогда как у SATA — остается на прежнем уровне. При дальнейшем увеличении глубины очереди SAS-система сохраняет достигнутый при QD=4 уровень производительности (причем, одинаково эффективно для обоих протестированных нами SAS-контроллеров), тогда как SATA-система начинает заметно тормозить! Впрочем, тут есть одно исключение — если с SATA-диском используется контроллер HPT RR2642, то скорость системы не падает с ростом глубины очереди — это своеобразная реабилитация чипа Marvell после проигрыша в серверных паттернах.
А вот при случайном чтении и записи мелких файлов в пределах всего объема диска мы видим смешанную картину. С одной стороны, при чтении она отчасти напоминает ситуацию в серверных паттернах — насыщение контроллера HPT при QD=64, его индифферентность к глубине очереди с SATA-диском (здесь хост-контроллер Intel даже обходит мощный процессор LSI). А с другой — при записи за счет эффективного кэширования производительность на мелких файлах в 1,5—2 раза опережает таковую при случайном чтении таких же файлов и динамика от глубины очереди сходна с таковой при работе этих систем c крупными файлами. За исключением того, что производительность всех трех контроллеров с SATA-диском практически не меняется от глубины очереди команд (и почти втрое ниже таковой у SAS-диска).
Отдельно отметим, что все эти паттерны практически не выявили никаких преимуществ между системами от применения более скоростного интерфейса 6 Гбит/с — разница либо отсутствует вовсе, либо объясняется собственно архитектурой и алгоритмами работы использованных хост-контроллеров.
Ценовая информация
8-портовый SAS-контроллер LSI SAS 9211-8i с полным комплектом предлагается по цене в районе 300 долларов, что можно считать весьма привлекательным. Четырехпортовый аналог — LSI SAS 9211-4i — стоит еще дешевле. Более точная текущая средняя розничная цена устройства в Москве, актуальная на момент чтения вами данной статьи:
LSI SAS 9211-8i | LSI SAS 9211-4i |
---|---|
$280(25) | $206(30) |
Заключение
Итак, новый интерфейс SAS 2.1 со скоростью передачи данных 6 Гбит/с и новыми зонирующими функциями в этом году начал уверенно завоевывать рынок. Все новые модели SAS-дисков этого года поддерживают именно эту версию интерфейса, хотя прекрасно работают и с контроллерами SAS-1. В продажу начали поступать и контроллеры для SAS-2. И один из первых таких девайсов в лице недорогого 8-портового Host-Bus-адаптера LSI SAS 9211-8i оказался весьма неплохим продуктом, способным работать на скорости 6 Гбит/с как с SAS-, так и SATA-дисками. Некоторые недостатки нового процессора LSI SAS2008 (особенно при работе с SATA) в задачах потребительского класса с лихвой компенсируются его высокой производительностью на серверных нагрузках при большой глубине команд.
Вместе с тем, можно констатировать, что для одиночных жестких дисков даже SAS-класса применение скорости 6 Гбит/с пока что явно избыточно и не приносит никаких дивидендов по сравнению с 3 Гбит/с. Впрочем, использованный здесь нами SAS-десятитысячник Toshiba MBF2600RC — это не самый топовый диск, и применение более резвых 3,5-дюймовых SAS-накопителей со скоростью вращения шпинделя 15 тыс. об/мин, скоростью чтения/записи пластин свыше 200 МБ/с и буфером 64 МБ, возможно, поможет выявить хоть какое-то положительное влияние удвоение полосы пропускания интерфейса. И, безусловно, преимущества от новой скорости интерфейса следует искать в многодисковых конфигурациях. А новые функции зонирования в SAS-2 позволят сделать многодисковые SAS-системы еще более удобными и гибкими в использовании.
40. Канальный уровень sas, способы маршрутизации. Архитектура экспандера.
Канальный уровень
Канальный уровень– обеспечивает идентификацию подключенных устройств и управления соединениями.
идентификация устройства, т.е. определение типа устройства (конечное, экспандер) и адреса порта
согласование скоростей путем добавления в передаваемый поток специальных заполнителей, не несущих информативности
обеспечивает управление соединением
Для открытия соединения инициатор посылает запрос либо непосредственно целевому устройству, если оно подключено непосредственно к инициатору, либо экспандеру, через который это целевое устройство подключено. Целевое устройство либо подтверждает, либо отклоняет запрос на соединение, но если между ними находится экспандер, то, как только к нему поступил запрос, он пересылает его далее, а обратно посылает специальный сигнал, информирующий инициатора о том, что запрос находится в процессе арбитража.
Для закрытия соединения необходимо, чтобы приемник ипередатчик переслали друг другу сообщения об окончании передачи, после чего оба устройства передают сигнал о закрытии соединения.
В случае если к одному порту устройства приходит одновременно несколько запросов на соединение, преимущество отдается запросу с наибольшим временем ожидания. Используя такой вариант доступа к разделяемому ресурсу, обеспечивается справедливость арбитража и ограниченная задержка обслуживания.
Способы маршрутизации
Маршрутизация может выполняться одним из трех способов:
Прямая – по SAS-адресуPhy.
Табличная – по таблице соответствия SAS-адресов физическимPhy.
Субтрактивная – для каналов восходящих (к хост-адаптеру или экспандеру).
SAS-адрес– уникальный адрес устройстваSAS.
Архитектура экспандера
Устройства-экспандерыслужат для объединения конечных устройств в сложных конфигурациях. Экспандер имеет собственный SAS-адрес для управления его функциями по протоколу SMP. Экспандер может содержать и внутренние устройства SAS (со своими SAS-адресами), подключаемые к его портам с виртуальными трансиверами (портами). Эти устройства могут, например, использоваться для управления блоком (питание, климат, защита и т. п.).
Каждый трансивер экспандера имеет собственный идентификатор (номер), уникальный в пределах экспандера. Порты экспандера могут служить для подключения инициаторов и целевых устройств SAS, а также других экспандеров. По этим портам будут передаваться кадры любых протоколов (SSP, STP, SMP). Экспандер может (не обязательно) содержать мосты STP/SATA (один или несколько), позволяющие к портам экспандера (узким) подключать устройства SATA. По этим портам будут передаваться только кадры SATA.
Экспандер не только физически коммутирует устройства, но и занимается маршрутизацией пакетов между Phy(Phy–physicallayer, физический слой), подключенными к различным его портам.Устройства могут обмениться данными через порты экспандера, минуя хост-адаптер.
На рисунке: в центре – экспандер, его можно подключать к другому экспандеру или напрямую к SASпорту, так же к нему подключаетсяSMPtargetportдля управления внутренними функциями (вверху). Снизу – к экспандеру можно подключать другие экспандеры либоSTP/SATAbridge(для возможности подключенияSATAустройств).
Транспортный уровень SAS. Формат кадров, порядок обмена.
Транспортный уровень
Транспортный уровень– определяет структуры кадров и транспортные сервисы. Уровни приложений, включающие драйверы и собственно приложения, создают специфические задания для транспортного уровня, который, инкапсулирует команды, данные, статусы и пр. в SAS-фреймы и перепоручает их передачууровню портов.
Поскольку интерфейс SASобеспечивает возможность подключенияSСSIиSATAустройств, на транспортном уровне реализована поддержка двух протоколов, а также же протокола для управления устройствами.
SSP – дляSCSI устройств
STP– дляSATA устройств
SMP – протокол для управления устройствами
Формат кадров
Формат кадра позаимствован у протокола FC-AL.
Всего предусмотрено 5 видов кадров:
Command
Data
XFER_READY
Response
Task
Назначения кадров вытекают из названий.
Транспортный протокол SSP является дуплексным. Перед обменом требуется установление соединения (SATA не требует установления соединения). Кадр состоит из примитива SOF (StartOfFrame), двойных слов с данными и EOF. Ответом на каждый кадр является примитив ACK или NAK. Управление потоком на основе кредитов (ниже), примитив RRDY. SSP кадр состоит из заголовка (24 байта), данных (до 1024 байт), заполнителя (от 0 до 2 байт), CRC (4 байта).
Порядок обмена
Транспортный уровень также отвечает за прием SAS-фреймов с уровня портов, дизассемблирование принятых фреймов и передачу контента уровню приложений.
Для гарантированной доставки данных, передаваемых по интерфейсу SAS, для каждого кадра данных, полученных целевым устройством, генерируется квитанция о принятии, либо непринятии кадра.
Инициатор, после отправки кадра, ожидает квитанции в течении 1 мс, если в течении этого времени пришла квитанция о принятии, то кадр считается успешно отправленным, иначе, если пришла квитанция о непринятии, либо квитанция не пришла в течении 1 мс, то кадр считается не переданным и влечет за собой закрытие соединения.
Передача данных является не блокирующей, т.е. передатчик не ожидает приема квитанции об успешной доставки предыдущего кадра, а сразу же передает следующий.
Управление потоком передачи основано на кредитах. Для того, чтобы передать кадр данных, передатчик должен иметь ненулевой кредит.
Кредит передатчику выдает приемник, при этом приемник должен иметь возможность принять полноразмерный кадр данных. Значение кредита может достигать 255.