LSI MegaRAID SAS 9260-8i — тестируем RAID-контроллер с поддержкой SAS 2.0
RAID-контроллер для большинства пользователей является чем-то совершенно запредельным и непонятным. В то же время это самый обычный инструмент для создания надежной и производительной дисковой подсистемы, обслуживающей какой-нибудь популярный сервер или базу данных. Нагрузки, с которыми приходится сталкиваться этим решениям, радикальным образом отличаются от тех, с которыми имеет дело даже самый продвинутый энтузиаст — как по интенсивности, так и по самому характеру взаимодействия.
Все возрастающие потребности бизнеса требуют как можно больше места на дисках серверов, и желательно, чтобы и производительность была высокой, и стоимость оставалась в рамках приемлемого, и защищенность от сбоев присутствовала. Все это можно реализовать только при помощи RAID-массивов. В зависимости от задачи, выбирается тип накопителей и массива. Именно широчайшие возможности по кастомизации сделали RAID столь популярным.
Чем быстрее диски, тем более совершенный контроллер нужен, чтобы раскрыть их потенциал. Помимо аппаратной части, огромную роль играет прошивка. Именно она определяет «поведение» контроллера в зависимости от выбранного массива, используемых накопителей и характера нагрузки. Возможности контроллера и его прошивки особенно сильно влияют на работу массивов с распределенной четностью (RAID5 и производные).
Системы хранения данных, не ориентированные на высокую производительность, часто используют интерфейс SATA. Однако в целом для серверных решений больше характерно использование специальных интерфейсов. Наибольшее распространение на данный момент получили SAS, iSCSI и FibreChannel. SAS сейчас развивается быстрее всего, и многие аналитики прочат ему доминирование на серверном рынке. Пока главным препятствием к этому является относительно малая длина, на которую передается сигнал. Выбор интерфейса и соответствующей инфраструктуры определяется поставленной задачей, поэтому пока все три интерфейса относительно мирно сосуществуют.
LSI Corporation сделала ставку именно на интерфейс SAS. Эта компания принимает участие в разработке новых версий этого стандарта и является участником SCSI Trade Association, которая занимается продвижением SAS. В результате LSI удалось стать одним из лидеров на рынке RAID-контроллеров. В последнее время компания начала также развивать другие направления, но контроллеры всё еще являются приоритетным направлением.
LSI MegaRAID SAS 9260-8i
Для начала разберемся с названием контроллера. В нашем случае «92» в начале обозначает принадлежность контроллера к последнему поколению, а «60» — относит его к серии Value. Более «навороченная» серия Feature несет на борту цифры «80», ну а «40» достались самым простым контроллерам начального уровня, не способным к организации массивов с распределенной четностью. Осталось раскрыть «8i» — эта часть обозначения говорит нам, что контроллер имеет 8 портов, причем все они во внутреннем исполнении. Правда, на плате вы увидите лишь два разъема — каждый из портов SFF-8087 скрывает в себе по 4 порта, и соответствующие интерфейсные кабели больше всего напоминают плетки-четыреххвостки. Сделано это, конечно же, ради экономии пространства — наш контроллер низкопрофильный, формата MD2, и влезет даже в скромные по толщине серверы 2U (планок в комплекте сразу две — обычная и короткая, так что проблем с этим вопросом не будет), а значит, монтаж на его плате весьма плотный, и тут уже не до размещения портов по одному.
Слева CPU, справа модуль оперативной памяти
Кстати, по большому счету две старшие серии различаются лишь портами, по своей «начинке» они одинаковы — во всех контроллерах под пассивным алюминиевым радиатором бьется сердце в виде нового процессора LSI SAS 2108 с частотой 800 МГц. В распоряжении у него находится 512 МБ памяти DDR2 800 МГц. Еще одним радикальным отличием новой серии от предшественников стал переход на PCI-Express 2.0. Казалось бы, мелочь, но на практике удвоение пропускной способности должно во многих случаях помочь контроллеру раскрыть свой потенциал.
Как и полагается у серьезных контроллеров, модели новых серий поддерживают установку батареи питания кэша. Причем все контроллеры используют одну и ту же модель — iBBU07, до этого использовавшуюся лишь на LSI 8880EM2. В принципе, эта батарея является опциональной, но расчетливые администраторы предпочитают не рисковать и пользуются кэшированием данных в контроллере лишь тогда, когда эта батарея установлена — еще раз напомним, что в случае подобных устройств малейший сбой оборачивается просто огромными в финансовом плане потерями для компании.
Вместе с выпуском новых контроллеров LSI подготовила новую прошивку, позволяющую распознавать твердотельные диски и применять для работы с ними специальные алгоритмы. Позже для этих контроллеров были выпущены программы FastPath и CacheCade. Первая позволяет дополнительно повысить I/O производительность контроллера при использовании твердотельных дисков, а с помощью CacheCade можно использовать SSD в качестве кэш-памяти для массива из жестких дисков.
LSI, как и каждая другая крупная компания, производящая RAID-контроллеры, регулярно выпускает обновления прошивок, добавляя туда новые функции, подчищая небольшие баги и улучшая совместимость, так что всегда есть смысл заглянуть на страничку контроллера за самой новой и актуальной версией.
Тестирование
Контроллер тестировался в IOMeter с массивами RAID0, RAID10, RAID5 и RAID6 при количестве дисков от 2 до 8 (мы использовали Seagate Cheetah 15K.7 ST3300657SS). Варианты нагрузки: последовательные и случайные операции чтения и записи при работе с блоками разного размера, а также работа в типичных сценариях. В качестве последних взяты широко распространенные сценарии базы данных, файл-сервера, веб-сервера и рабочей станции. Глубина очереди для всех тестов была равна единице, что серьезным образом ограничивало возможности контроллера. Выбор такого режима обусловлен банальным интересом — как поведет себя контроллер при столь необычной для него нагрузке? К тому же получившиеся результаты будут неплохо иллюстрировать потенциальные возможности нашей дисковой подсистемы при стандартной «десктопной» нагрузке (если допустить, что кто-то решит организовать у себя дома такую систему).
Заранее оговариваем, что все графики у нас состоят из двух диаграмм — на одной результаты для массивов RAID0 и RAID10, на второй — RAID5 и RAID6. Такое разбиение и логично (одна группа с контрольными суммами, а другая без оных), и удобно — два десятка линий на одном графике читать было бы крайне сложно.
Понеслась! Начнем с последовательного чтения.
Результаты тестирования LSI MegaRAID SAS 9260-8i, последовательное чтение, RAID5, RAID6
Всё равно получается немного запутанно, но основные тенденции выделить можно. Во-первых, обратите внимание, что массивам RAID5 и RAID6 удается выйти на максимальную скорость только при количестве дисков не более 5 и 6 соответственно — остальные продолжают идти плотной группой. Лидирует, что логично, массив RAID5 из 8 дисков. Получается, что при минимальной глубине очереди контроллер не успевает выжать максимум из наиболее сложных массивов даже при блоках в 1 МБ. Впрочем, в этом нет ничего удивительного.
Результаты тестирования LSI MegaRAID SAS 9260-8i, последовательное чтение, RAID0, RAID10
На малых блоках результаты этих массивов близки к тем, что мы видели на прошлом графике. Зато дальше RAID0 и RAID10 доходят до максимума вне зависимости от количества используемых дисков. И тут становится видно, что максимум этот не так и велик — всего порядка 700 МБ/с. Это далеко от теоретической суммарной производительности использованных дисков. Собственно говоря, начиная с четырёхдискового RAID0, производительность перестает расти. Видимо, контроллеру попросту не хватает запросов, чтобы «раскидать» их по большему количеству жестких дисков.
Отметим также некоторую нестабильность в результатах массивов RAID10 при работе с малыми блоками. Скорее всего, она обусловлена тем, что диск пытается считывать при работе информацию с обоих зеркальных массивов RAID0 для достижения наибольшей скорости.
Результаты тестирования LSI MegaRAID SAS 9260-8i, последовательная запись, RAID6, RAID6
Картина усугубляется: теперь на полную скорость смог выйти только массив RAID5 из трёх дисков. Интересно, что наиболее «крупные» массивы показали в итоге наименьшую скорость. Наверняка это снова связано с малой глубиной очереди, но как именно? Видимо, нагрузка оказывается недостаточно интенсивной, чтобы контроллер мог постоянно держать «занятыми» все 8 дисков. В итоге для каждого из HDD операции последовательной записи чередуются с записью случайной. Ну а при меньшем количестве дисков количество случайных обращений уменьшается. Опять же, увеличение глубины очереди всё бы исправило.
Результаты тестирования LSI MegaRAID SAS 9260-8i, последовательная запись, RAID0, RAID10
Эта группа массивов снова повела себя гораздо более предсказуемо. С увеличением блока скорость плавно растет, и массивы быстро разделяются на 3 группы по количеству «чередующихся дисков» — 2, 3, 4-8. Использование более 4 дисков в RAID0 снова никакого дополнительного преимущества не дает. В отличие от операций чтения, никаких флуктуаций для RAID10 не наблюдается — при записи массивы RAID0 внутри RAID10 должны работать синхронно.
При работе с малыми блоками вторая группа массивов оказалась гораздо быстрее, но на более актуальных для последовательных операций размерах такой разницы уже не наблюдается. Кстати, во второй группе результатов массивы с большим количеством чередующихся дисков показывают на малых блоках более низкие результаты. Причина та же самая, что и в прошлом случае — большая часть операций не является на самом деле последовательной.
Результаты тестирования LSI MegaRAID SAS 9260-8i, случайное чтение, RAID0, RAID10
Скорость случайного чтения в пике будет практически равна скорости последовательного чтения, но нам для этого снова нужно перейти к гораздо более высоким нагрузкам. Зато здесь производительность не перестает масштабироваться на 4 дисках, каждый новый накопитель немного улучшает результаты. Очень впечатлили показатели RAID10 массивов — они практически аналогичны RAID0 из того же количества дисков. Получается, что на операциях случайного чтения контроллеру удается идеально синхронизовать работу зеркальных RAID0. Обращает на себя внимание странный результат RAID0 на 8 дисков: скорость резко падает при переходе к 1 МБ блокам. Впрочем, это, как мы уже говорили, практически не встречающийся в реальности случай.
Результаты тестирования LSI MegaRAID SAS 9260-8i, случайное чтение, RAID5, RAID6
Теперь на 1МБ блоках заваливается результат RAID5 из 8 дисков — аналогично вел себя восьмидисковый RAID0 в прошлом тесте, так что, скорее всего, это не случайно. К тому же, если приглядеться, то результаты RAID0 из 6 дисков, равно как и результаты RAID5 из 7 дисков, оказываются на больших блоках немного ниже ожидаемого. Самым быстрым среди «сложных» массивов оказался RAID6 из 6 HDD, а RAID5 из 8 дисков показал себя едва ли не хуже всех. Здесь важно понимать, что в массивах с распределенной четностью для считывания одного полного фрагмента нужно прочитать одни и те же сектора на всех дисках, кроме одного (по возможности того, где находится контрольная сумма). При этом синхронизовать работу дисков, чтобы они постоянно были «в деле», не представляется возможным, ведь четность-то распределенная. Можно считать и контрольную сумму, но тогда результат придется высчитывать в памяти контроллера. И чем больше количество «уникальных» дисков в массиве, тем эта задача сложнее. При повышении глубины очереди алгоритм NCQ оптимизировал бы движения головок диска, зная о его будущих задачах. Однако в нашем тесте такой возможности нет.
В таком случае для контроллера было бы оптимальным всё же синхронизовать движение головок на всех дисках — тогда на RAID5 из 8 дисков мы бы могли добиться очень неплохой эффективности. Однако, судя по результатам, этого не произошло — нестандартная нагрузка сбила контроллер с толку.
Результаты тестирования LSI MegaRAID SAS 9260-8i, случайная запись, RAID0, RAID10
Случайная запись. Здесь всё гладко, никаких подводных камней. Все массивы расположились согласно количеству «чередующихся» дисков. После 128 КБ наблюдается резкий спад скорости, так как именно этот объем был выбран нами при создании массивов.
Результаты тестирования LSI MegaRAID SAS 9260-8i, случайная запись, RAID5, RAID6
Случайная запись слабое место RAID5 и RAID6, так как при этом выполняется много «лишних» операций записи, связанных с контрольной суммой. Крупные массивы, вне зависимости от типа, оказываются медленнее всего, ведь там приходится проводить более сложные расчеты. Если ваша задача подразумевает большое количество операций случайной записи, то лучше подумать о RAID10.
Результаты тестирования LSI MegaRAID SAS 9260-8i, база данных
Результаты тестирования LSI MegaRAID SAS 9260-8i, файловый сервер
Результаты тестирования LSI MegaRAID SAS 9260-8i, рабочая станция
Результаты тестирования LSI MegaRAID SAS 9260-8i, веб-сервер
Ну и, наконец, тестирование в типичных сценариях. Здесь явными лидерами выступают массивы RAID0, и идущие следом RAID10. Первые платят низкой надежностью, вторые — объемом, но и те и другие имеют возможность не платить за надежность скоростью. Хотя на нагрузке Webserver, состоящей из запросов на чтение, их выигрыш не так уж и велик. А вот во всех остальных случаях, когда с записью приходится считаться, стоит обратить внимание на RAID10. Еще раз повторим, что в реальной ситуации расстановка сил будет иной; при высокой глубине очереди разница между результатами массивов будет уменьшаться, разве что случайная запись в любом случае дается массивам RAID5 и RAID6 с большим трудом.
Выводы
LSI MegaRAID SAS 9260-8i — мощный SAS 2.0 контроллер, оснащенный всеми функциями, присущими устройствам такого класса. Особенно нас впечатлила его работа с массивами RAID10 на операциях чтения — контроллер «выжимает максимум» из используемых дисков.
Больше того, с помощью программных пакетов FastPath и CacheCade можно расширить его возможности по использованию твердотельных дисков. Нам кажется, что в ближайшее время именно алгоритмы взаимодействия RAID-контроллеров с SSD и гибридными массивами будут представлять наибольший интерес.