Введение
Подход Adaptec к выпуску RAID-контроллеров с поддержкой SAS-накопителей является системным и весьма логичным. После выпуска «пробных» моделей компания перешла к производству контроллеров на единой архитектуре (Unified Serial Architecture). К ним относятся как недорогие четырехпортовые контроллеры начального уровня первой и второй серии (номер серии определяется по первой цифре в обозначении модели), так и контроллеры основной, третьей серии. Конечно же, высокопроизводительная пятая серия, являющаяся, на текущий момент, пиком развития контроллеров Adaptec, стала логичным продолжением предыдущих моделей.
Любопытно, кстати, сравнить контроллеры между собой: первая серия вовсе лишена встроенных процессоров и буферной памяти и довольствуется интерфейсом PCI-Express x4; третья серия обходится 500- и 800-МГц процессорами Intel 80333, объемы встроенной памяти в ней варьируются между 128 и 256 МБ, четырехпортовые модели имеют интерфейс PCI-Express x4, а восьмипортовая — PCI-E x8 (кстати, представитель третьей серии,
ASR-3405, некоторое время назад уже был у нас на тестах). Пятая же серия целиком перешла на PCI-E x8, все модели, кроме четырехпортовой, оснащены 512 МБ памяти (лишь младшая ASR-5405 урезана до 256 МБ), плюс во всех контроллерах серии используется самый мощный процессор среди встречающихся сегодня на RAID-контроллерах — двухъядерный, с частотой 1,2 ГГц. Мы сознательно пропустили вторую серию: такое впечатление, что она получена «упрощением» пятой серии, а вовсе не третьей. Судите сами: обе модели серии четырехпортовые, то есть, с одним внутренним разъемом SFF-8087 или внешним SFF-8088, но при этом они имеют интерфейс PCI-E x8 и оснащены двухъядерным процессором. Правда, частота процессора меньше, чем у пятой серии — «всего» 800 МГц. Да и буферной памяти у второй серии поменьше — 128 МБ, видимо, чтобы сохранить позиционирование серии как младшей, по отношению к третьей. Еще одной ниточкой, указывающей на происхождение второй серии, является то, что модели из нее поддерживают появившееся в пятой серии «умное управление питанием» (Adaptec Intelligent Power Management), заключающееся в отключении неиспользуемых дисков или снижении их потребления за счет перевода в спящее состояние. Главным же отличием второй серии является то, что она поддерживает лишь массивы RAID0, 1 и 10 — то есть полностью лишена возможностей работы с массивами с контролем четности (RAID5, RAID6 и их двухуровневые производные).
Итак, пятая серия, и ее представитель в лице Adaptec ASR-5805.
Adaptec RAID ASR-5805
Сразу отметим, что пятая серия стала одной из самых больших: на текущий момент в нее входят аж семь моделей, от простейшей ASR-5405 до 28-портовой ASR-52445. Разобраться в них несложно, достаточно расшифровать наименование: первая цифра — номер серии, одна или две следующих — количество внутренних портов, далее идут две цифры, указывающие количество внешних портов и тип интерфейса. Поскольку все модели серии имеют интерфейс PCI-E x8, то и заканчиваются они все на «5», а вот на старых моделях можно встретить и «0» — признак PCI-X интерфейса.
Единый дизайн серии означает и единство характеристик — лишь четырехпортовая модель выделяется вдвое меньшим объемом памяти, все остальное же у всех моделей «под копирку»: двухъядерный 1,2 ГГц процессор, 512 МБ памяти, PCI-E x8 в качестве используемого интерфейса, поддержка приобретаемой отдельно батареи питания, до 256 SATA/SAS устройств (естественно, при использовании соответствующих корзин и экспандеров). Кстати, предыдущие серии поддерживали лишь до 128 устройств — в компании Adaptec не только устанавливают более мощные процессоры в новую серию, но и не забывают править прошивку.
Кстати, о прошивках. Есть некоторые технические ограничения по построению массивов, связанные с особенностями работы самих контроллеров. Пожалуй, мало кто из пользователей столкнется с ними, разве что те, кому по долгу службы надо работать с очень большими СХД (системами хранения данных), но все же... Пятая серия (а вместе с ней и вторая) поддерживает до 64 массивов на одном контроллере (третья — лишь 24), до 128 дисков в одном массиве RAID0, до 32 дисков в массивах с вращением четности RAD5 и RAID6.
Контроллеры пятой серии поддерживают практически все популярные типы массивов, а именно:
одиночный диск,
RAID0,
RAID1,
RAID1E,
RAID5,
RAID5EE,
RAID6,
RAID10,
RAID50,
RAID60.
Здесь хочется сделать небольшую остановку. Если привычные RAID0, 1, 5, 6 и их комбинации хорошо знакомы большинству пользователей, то массивы RAID1E и RAID5EE малоизвестны и до сих пор вызывают вопросы о том, как же они работают.
Начнем с RAID1E. Массивы этого типа действительно очень близки к RAID1, так как используют зеркалирование данных. Но в них зеркалируются не диски целиком, а лишь отдельные блоки. Такой подход позволяет использовать для построения массивов три и более дисков (в случае двух дисков RAID1E вырождается в обычный RAID1). Проще всего понять логику расположения страйпов в массиве из диаграммы:
Буквами «М» помечены «зеркальные» блоки. Итак, что же мы имеем в результате? Массивы RAID1E обладают избыточностью данных, то есть прощают потерю одного диска, при этом, в отличие от RAID1 и RAID10, их можно строить на нечетном числе дисков, у них неплохие скорости записи и чтения — за счет «размазанности» страйпов по разным дискам массивы RAID1E будут быстрее, чем RAID1, и как минимум сравнимы с RAID10 (если, конечно, в RAID1 массивах контроллер не умеет читать данные сразу с обоих дисков в зеркальных парах). Но не стоит считать эти массивы идеальными: потеря объема у них такая же, как и у всех массивов на основе зеркалирования, то есть 50 %. Что же касается защищенности данных, то RAID10 оказывается более выгодным: при равном числе дисков он в некоторых случаях выдерживает выход из строя сразу двух винчестеров. Таким образом, ценность RAID1E состоит, в основном, в возможности построить массив с зеркалированием на нечетном количестве дисков, получив при этом еще и некоторое увеличение скорости, что достаточно актуально для тех случаев, когда контроллер не умеет читать сразу с двух дисков в обычных зеркальных парах.
Массив RAID5EE является более забавной штукой. Как и бывший для него исходным RAID5, он построен на принципе защищенности данных при помощи хранения страйпов с контрольными суммами XOR, причем эти страйпы «вращаются», то есть равномерно распределены по всем дискам массива. Отличием является то, что для построения RAID5EE строго необходим прикрепленный к массиву диск горячей замены, который не может быть использован для замены в других массивах. Дело в том, что этот диск замены не ждет несчастного случая, как это обычно бывает, а участвует в работе вполне исправного массива. Информация в массиве в виде страйпов располагается сразу на всех дисках, включая диск замены, а та емкость, которая принадлежит диску замены, равномерно располагается сразу на всех дисках массива. То есть, фактически, диск замены становится виртуальным — сам диск в работе используется, но его емкость занять нельзя, поскольку она резервируется контроллером и для пользователя недоступна. Причем в ранних реализациях, называвшихся RAID5E, эта виртуальная емкость располагалась в конце всех дисков, в то время как в RAID5EE она располагается по всему массиву в виде равномерно распределенных блоков. Чтобы понять, как это выглядит, предлагаем снова обратиться к диаграмме, где P1, P2, P3, P4 — контрольные суммы соответствующих полных страйпов, а HS — та самая равномерно распределенная по всему массиву емкость резервного диска:
Соответственно при выходе из строя одного из дисков потерянная информация восстанавливается в оставшиеся по всему массиву «пустые» страйпы (отмеченные на диаграмме «HS»), и массив превращается в самый обычный RAID5.
В чем преимущество такого подхода? В том, что резервный диск не простаивает, а участвует в работе, увеличивая скорость чтения с массива за счет большего количества дисков, на которые распределяется каждый полный страйп. Недостаток таких массивов также несложно заметить: резервный диск привязывается к массиву намертво, соответственно, если вы строите на одном контроллере сразу несколько массивов, то каждому из них приходится выделять свои диски замены, что увеличивает затраты и требует больше места в сервере.
Однако, вернемся к нашему контроллеру. За счет высокой плотности монтажа компании Adaptec удалось сделать все контроллеры достаточно короткими, а четырех- и восьмипортовые модели — еще и половинной высоты. При этом батарея питания не занимает отдельный разъем в корпусе, а устанавливается на заднюю часть контроллера.
Сама батарея расположена на маленькой дочерней плате, а уж та через маленькие проставки крепится пластиковыми винтами на сам контроллер. Мы настоятельно рекомендуем пользоваться батареями — информация слишком дорога, чтобы терять ее из-за копеечной экономии, а отложенная запись, как показывает
пример Promise, работавшего без батареи, слишком важна для скоростных характеристик массивов. Пользоваться же отложенной записью в небезопасном режиме, то есть без батареи питания буферной памяти, на наш взгляд, слишком рискованно: мы можем позволить себе это иногда на тестах, но никогда бы не позволили такого же в реальных рабочих условиях.
Список поддерживаемых операционных систем очень широк и, пожалуй, охватывает практически все существующие ОС, кроме самых экзотических. Помимо всех версий Windows, начиная с Windows 2000 (64-битные версии не забыты), в него входят несколько популярных дистрибутивов Linux, а также FreeBSD, SCO Unix и Solaris. Более того, есть даже драйвера для работы под управлением VMWare. Для большей части этих операционных систем существуют и свои сборки Adaptec Storage Manager — фирменного программного обеспечения для работы с контроллером. Функционал последнего весьма широк, с его помощью можно проводить любые операции с контроллером и массивами на нем, не переходя в BIOS. Работать в нем весьма удобно: все функции расположены логично и не требуют большого количества времени для поиска. Удобству работы способствует и большое количество наглядной информации и режимах функционирования контроллера.
Методика тестирования
Во время тестирования использовались следующие программы:
IOMeter версии 2003.02.15;
WinBench версии 99 2.0;
FC-Test версии 1.0;
Тестовая система была следующей:
корпус Intel SC5200;
системная плата Intel SE7520BD2;
два процессора Intel Xeon 2,8 ГГц на 800-МГц системной шине;
2 х 512 МБ регистровой памяти DDR PC3200 ЕСС
жесткий диск IBM DTLA-307015 объемом 15 ГБ в качестве системного диска;
видеокарта — встроенное видео ATI Rage XL
операционная система Microsoft Windows 2000 Professional SP4
Kонтроллер во время тестов устанавливался в слот PCI-Express x8 на материнской плате. Для тестирования использовались жесткие диски Fujitsu MBA3073RC, установленные в штатные салазки корпуса SC5200 и закрепленные в них четырьмя винтами за нижнюю грань. Контроллер тестировался с использованием четырех и восьми жестких дисков в следующих режимах:
RAID0;
RAID10;
деградировавший 8-дисковый RAID10 без одного диска;
RAID5;
RAID5;
деградировавший 8-дисковый RAID5 без одного диска;
RAID6;
деградировавший 8-дисковый RAID6 без одного диска;
деградировавший 8-дисковый RAID6 без двух дисков.
Поскольку мы стараемся максимально полно охватить все возможные типы массивов, то включаем в тестирование и рассмотрение деградировавших массивов. Напомним, что таким термином называются массивы с избыточностью данных, в которых один или несколько дисков (в зависимости от типа массива) вышли из строя, но при этом массив все еще хранит все данные и является рабочим.
Для сравнения мы будем везде приводить результаты одиночного диска Fujitsu MBA3073RC, полученные на контроллере LSI SAS3041E-R, считая их неким базовым уровнем производительности. Сразу оговоримся, что у такого сочетания есть одна хорошо известная нам проблема: его скорость записи в «FileCopy Test» всегда очень мала.
По умолчанию, контроллер предлагает для массивов размер страйпа 256 кБ, мы же его везде выставляли на 64 кБ. С одной стороны, это поставит контроллер в равное положение с другими моделями (большинство конкурентов используют именно такой размер), а с другой... именно блоками по 64 кБ осуществляется работа с файлами во всех версиях Windows, вплоть до Windows Vista SP1, соответственно, при совпадении размера блока и размера страйпа, мы вправе ожидать некоторого прироста скорости за счет уменьшения издержек.
Кстати, в общем случае выбор размера страйпа для массива является не самой банальной задачей. С одной стороны, излишнее уменьшение приведет к ненужному увеличению количества операций, что может отрицательно сказаться на быстродействии. С другой стороны, если массив будет большую часть времени работать с приложением (той же базой данных), использующим адресацию исключительно блоками каких-то определенных размеров, то размер страйпа лучше подобрать соответствующим. В свое время на эту тему было сломано много копий. Конечно, программное обеспечение не стоит на месте, и большая его часть уже научилась работать блоками разного размера, да и скорости массивов заметно подросли, но все же этот фактор не стоит сбрасывать со счетов при создании массива.
В контроллер была прошита самая последняя
доступная на сайте производителя на момент тестирования версия BIOS и использовались самые свежие драйвера. Соответственно, мы использовали
прошивку 5.2.0 build 16116 и драйвера 5.2.0.15728.
IOMeter: Database
Как всегда, начнем с, пожалуй, наиболее интересного с точки зрения нагрузки на контроллер теста — «Database», с помощью которого мы выясняем способность контроллеров работать с потоками запросов на чтение и запись 8-кБ блоков данных со случайной адресацией. В ходе тестирования происходит последовательное изменение процентного соотношения запросов на запись от нуля до ста процентов (с шагом 10 %) от общего количества запросов и увеличение глубины очереди команд от 1 до 256.
Численные результаты измерений здесь и далее вы можете, при желании, увидеть в соответствующих таблицах, мы же будем работать с графиками и диаграммами.
Таблицы с результатами тестирования вы можете посмотреть по следующей ссылке:
Результаты IOMeter: Database, RAID1+RAID10
Результаты IOMeter: Database, RAID5+RAID6
На минимальной нагрузке все выглядит очень прилично: масштабируемость на месте, деградировавший RAID10 и не думает снижать производительность, и вместе с «нормальным» RAID10 на восьми дисках совпадает с RAID0 на четырех дисках, как оно и должно быть по теории.
В массивах с использованием контрольных сумм на минимальной нагрузке дела обстоят также весьма хорошо. Если раньше, на четырех SATA-дисках WD Raptor, мы наблюдали резкое снижение производительности на операциях записи, то новое поколение контроллеров демонстрирует, что за счет большего объема буферной памяти, меньшего времени отклика дисков и быстрой архитектуры даже на четырех дисках в RAID6 они способны показать производительность такую же, как у одиночного диска. Массив RAID5 на четырех дисках оказывается уже заметно быстрее одиночного диска на записи, а уж 8-дисковые массивы и подавно уходят вперед.
Лишившийся одного диска RAID6 несколько снижает скорость, но не так чтобы очень сильно. Действительным ударом по его производительности является потеря сразу двух дисков — вынужденный постоянно восстанавливать данные из двух контрольных сумм (а ведь запись на массивы с вращающейся четностью также требует и операций чтения), контроллер резко снижает производительность, в результате чего скорость деградировавшего массива становится меньше, чем у одиночного диска. RAID5 весьма болезненно переживает потерю даже одного диска — его результаты хуже, чем у RAID6, деградировавшего на один диск, но все же он не падает настолько низко, как RAID6 без двух дисков.
Увеличение нагрузки до 16 запросов в очереди приводит к закономерному возрастанию производительности. На записи массивы RAID10, как и полагается, держатся вплотную к RAID0 из вдвое меньшего количества дисков, а на чтении также вплотную подбираются к массивам RAID0 из такого же числа дисков. А вот сколько-нибудь заметно обогнать последние они не могут — видимо, читать с обоих дисков мы умеем, но нет оптимизации чтения, направленной на поиск в зеркальной паре диска с более удачным положением головки над пластиной, способного быстрее отдать данные.
Деградировавший RAID10 при преобладании запросов на запись ведет себя, как и полагается, то есть никак не проявляет своей «ущербности», но вот при большом количестве запросов на чтение он заметно теряет в производительности. Хотя последняя все же не падает до уровня массивов из четырех дисков, а значит, на оставшихся целыми зеркальных парах контроллер читает с обоих дисков в паре.
Массивы RAID5 и RAID6 также увеличивают производительность, но если у RAID6 все почти хорошо, то у RAID5 поведение уже нельзя назвать идеальным — на их графиках появились резкие скачки производительности, что говорит об определенных недоработках в прошивке. Особенно плоха ситуация в случае деградировавшего RAID5.
По отношению к RAID6 мы употребили «почти» из-за результатов массива на четырех дисках — при преобладании запросов на запись этот массив неожиданно проиграл одиночному диску. Восьмидисковый массив с более-менее разумными потерями переживает гибель одного диска, но вот выход из строя второго сказывается сильно — если на чтении такой массив еще способен обогнать одиночный диск, то бороться на записи он уже не в силах.
Дальнейшее увеличение нагрузки приводит к тому, что нам приходится признать высказанное выше предположение несправедливым — на самом деле, массив вполне умеет находить быстрые диски в зеркальных парах. Особенно хорошо это заметно при сравнении четырех дисковых массивов — RAID10 оказывается на чистом чтении очень заметно быстрее, чем RAID0. А вот деградировавший RAID10 разочаровывает — хорошо справляясь с записью, он напрочь проваливает чтение. В результате на большинстве нагрузок он лишь незначительно превосходит RAID0 на четырех дисках.
Любопытно сравнить результаты с тем, что недавно продемонстрировал нам
3ware 9690SA, имеющий процессор совсем другой архитектуры. В целом, можно объявить о паритете: Adaptec чуть более эффективен на записи, в то время как 3ware несколько быстрее при преобладании операций чтения. Правда, на стороне 3ware гораздо меньшая потеря производительности у деградировавшего RAID10.
Особых изменений в этой группе не произошло, разве что RAID5 чуть выправил ситуацию — теперь он просто не очень хорошо справляется с операциями чтения (особенно деградировавший массив). В результате на 8-дисковых массивах мы видим небывалое: RAID6 на чистом чтении обгоняет RAID5. С деградировавшими RAID6 все по-прежнему: без одного диска массив просто изрядно теряет в скорости, а без двух потери уже катастрофические, скорость падает ниже уровня одиночного диска.
Если снова сравнивать этот контроллер с 3ware 9690SA, то видно, что последний лучше справляется с массивами RAID6 на всех нагрузках и заметно быстрее в RAID5 на чтении, в то время как Adaptec выигрывает в RAID5 при преобладании записи.
IOMeter: Disk Response Time
Для измерения времени отклика мы в течении десяти минут при помощи IOMeter отправляем на накопитель поток запросов на чтение или запись блоков данных по 512 байт при глубине очереди исходящих запросов, равной единице. Количество запросов, обработанных накопителем, превышает шестьдесят тысяч, так что мы получаем устоявшееся время отклика накопителя, не зависящее от объема буферной памяти.
На чтении по времени отклика все массивы проигрывают одиночному диску. Причем, у 8-дисковых массивов проигрыш не очень большой, а вот 4-дисковые массивы (кроме RAID10) отстают примерно на миллисекунду — при времени отклика меньше 6 мс это весьма заметный отрыв. Как и полагается, лучше всех себя чувствуют массивы RAID10 за счет выбора в зеркальных парах более «подходящего» диска.
Деградировавший RAID10 чувствует себя весьма неплохо, а вот массивам с вращающейся четностью повезло гораздо меньше — из-за появления накладных расходов на операции по восстановлению данных из контрольных сумм они ушли на последние места. Естественно, что хуже всех ситуация у RAID6 без двух дисков — ему приходится восстанавливать данные на основе сразу двух контрольных сумм.
Наблюдаемая на записи ситуация вполне логична: время отклика определяется суммарным кэшем контроллера и дисков, а значит, восьмидисковые массивы выигрывают у четырехдисковых, а RAID0 опережает RAID10, поскольку у последнего каждую пару можно рассматривать лишь как один диск, с точки зрения кэширования. Среди массивов с контрольными суммами восьмидисковые массивы также оказываются впереди, а RAID5 выигрывает у RAID6 — ему приходится считать лишь одну контрольную сумму, а не две. Приятно впечатляют результаты деградировавших RAID5 и RAID6, особенно последнего, лишившегося двух дисков — издержки, появляющиеся из-за необходимости не только считать данные для расчета контрольных сумм, но еще и вычислить их, весьма малы. За это стоит благодарить использованный мощный процессор: даже при потере двух дисков RAID6 на записи обладает временем отклика, сравнимым с результатом одиночного диска, что является очень хорошим результатом.
IOMeter: Random Read & Write
Оценим теперь зависимости производительности контроллеров в режимах чтения и записи с произвольной адресацией от размера используемого блока данных.
Результаты, полученные при работе со случайной адресацией данных, рассмотрим в двух вариантах, в соответствии с обновленной методикой. На блоках малого размера построим зависимости количества операций в секунду от размера используемого блока. А на больших блоках вместо количества операций возьмем в качестве критерия производительности скорость в мегабайтах в секунду. Такой подход позволяет оценить работу массивов сразу в двух типичных случаях нагрузки: работа малыми блоками характерна для баз данных и для нее более важно количество операций в секунду, чем привычная скорость; а вот работа большими и очень большими блоками близка к реальной работе с файлами малых размеров, и здесь уже на первый план выходит именно скорость в привычных мегабайтах в секунду.
Начнем с чтения.
Результаты IOMeter: Random Read, операций/с
Результаты IOMeter: Random Write, МБ/с
На простом случайном чтении малыми блоками массиву просто не хватает нагрузки, чтобы продемонстрировать свою мощь — все массивы проигрывают одиночному диску. На удивление великолепно держится деградировавший RAID10, особенно с учетом того, что остальные массивы RAID10 как-то слишком мало отличаются от RAID0, хотя должны демонстрировать преимущество за счет чтения с зеркальных пар.
Схожая ситуация и у массивов с записью контрольных сумм — все они чуть медленнее одиночного диска, причем четырехдисковые массивы хуже восьмидисковых. Снова худшим оказывается RAID6, деградировавший на два диска, но его результаты при этом вовсе не провальные.
При работе большими блоками начинает играть скорость линейных операций и массивы RAID0 закономерно выходят вперед. Впрочем, восьмидисковый RAID10 лучше чем RAID0 на четырех дисках, который идет почти вровень с RAID10 из такого же количества дисков — похоже, контроллер умеет читать данные с обоих дисков в зеркальных парах. Даже деградировавший RAID10 быстрее четырехдискового RAID0 — потеря диска в одной паре не мешает ему читать с обоих дисков в остальных парах.
Та же линейная скорость диктует превосходство массивов RAID5 над RAID6, правда, результаты последних как-то слишком уж невелики. Не очень приятно выглядит и падение скорости четырехдискового RAID5 на очень больших блоках — 200 МБ/с не должно быть пределом для этого массива.
Деградировавшие массивы ведут себя на удивление предсказуемо: без одного диска RAID5 и RAID6 заметно теряют в скорости, а без двух дисков RAID6 становится сравним с одиночным диском.
Перейдем к операциям записи со случайной адресацией.
Результаты IOMeter: Random Write, операций/с
Результаты IOMeter: Random Write, МБ/с
На записи малыми блоками все решает ее величество кэш-память. Контроллер демонстрирует просто таки идеальную работу — масштабируемость на месте, форма графиков в порядке, значеня тоже (кстати, они чуть выше, чем у 3ware).
При записи мелких блоков на массивы с контрольными суммами количество дисков по-прежнему имеет значение, но немалую роль играет и время расчета контрольных сумм, являющееся замедляющим фактором. Именно из-за того, что в RAID6 приходится считать сразу две суммы, даже деградировавший RAID5 оказывается быстрее, чем RAID6 на тех же восьми дисках. На удивление неплохо чувствует себя RAID6, лишившийся двух дисков — конечно, он попал на последнее место и пропустил вперед одиночный диск, но все же его результаты весьма неплохи для массива, которому при каждой записи приходится не только считывать данные, но еще и восстанавливать их из двух контрольных сумм сразу.
А вот на записи большими блоками мы видим что-то в корне непонятное: массивы RAID0 при работе с такими блоками неожиданно оказываются медленнее, чем RAID10. Особенно хорошо заметна эта странность на восьмидисковом RAID0 — у этого массива в принципе нет никаких предпосылок к тому, чтобы «упереться» в 120 МБ/с. Нет причин и у четырехдискового RAID0 на больших блоках проигрывать всем, включая одиночный диск. Зато очень хорошо понятно поведение деградировавшего RAID10 — он ведет себя точно также, как массив RAID0, то есть каждая зеркальная пара ведет себя как обычный диск. Но почему этого не произошло с обычными массивами RAID10 и что вообще происходит на больших блоках? Уж в случае RAID0, казалось бы, раскидывай блоки по страйпам и не знай проблем. Загадка.
Да, похоже, что с записью большими блоками у Adaptec что-то не задалось. Массивы с записью контрольных сумм идут практически вровень с одиночным диском, причем четырехдисковые массивы демонстрируют большие скорости, чем восьмидисковые. Зато все три деградировавших массива неожиданно рванули по скорости, обогнав своих полноценных конкурентов. Некоторый прирост скорости еще как-то можно было бы объяснить тем, что эти массивы попросту не рассчитывают контрольные суммы, когда они попадают на отсутствующий у них диск, но тогда бы лидировал RAID6 без двух дисков, да и не даст это настолько большой прибавки скорости. Странные, очень странные результаты демонстрирует Adaptec на записи большими блоками.
IOMeter: Sequential Read & Write
Ну что ж, пора оценить способности контроллеров в последовательных операциях. В данном тесте на накопители подается поток запросов с глубиной очереди команд, равной четырем. Раз в минуту размер блока данных увеличивается. В итоге мы получаем возможность проследить зависимость линейных скоростей чтения и записи массивов от размеров используемых блоков данных и оценить максимальные достижимые скорости.
Результаты IOMeter: Sequential Read
Результаты IOMeter: Sequential Write
О, какие великолепные результаты у восьмидискового RAID0! Да, мощного процессора вполне хватает, чтобы без проблем читать более чем по сто мегабайт в секунду с каждого из восьми дисков. Чтение с обоих дисков в зеркальных парах явно есть, хотя и не идеальное: если четырехдисковый массив RAID10 показал почти такие же результаты, как и RAID0, то вот восьмидисковый заметно отстал от своего собрата без зеркалирования. Зато приятно радует то, что чтение с обоих дисков в зеркальных парах работает уже на весьма небольших блоках.
Массивы с записью контрольных сумм демонстрируют меньшие скорости, чем RAID0, но это отставание вполне логично — за счет записи контрольных сумм мы теряем на каждом страйпе один блок в RAID5 и два блока в RAID6 — соответственно падает и скорость чтения, при одновременном обращении ко всем дискам. Хорошо заметно, насколько «дорого» с точки зрения производительности деградировавшим массивам обходится потеря дисков. Помимо закономерного снижения скорости от уменьшения массива на один диск, деградировавшие массивы теряют в скорости еще чуть больше 200 МБ/с, то есть цена «восстановления» данных с точки зрения производительности массива на чтения сравнима с потерей еще двух дисков. С этой точки зрения любопытно, что потерю второго диска RAID6 переносит почти безболезненно — потери составляют лишь 100 МБ/с, то есть, как раз соответствуют уменьшению массива на еще один диск.
Мда, линейная запись дается контроллеру как-то, мягко говоря, не очень хорошо. Особенно плохо выглядят результаты массивов RAID0 — их скорости меньше, чем у одиночного диска! К ним присоединился и деградировавший RAID10 — его график практически полностью совпал с графиком четырехдискового RAID0 (да, вот оно, объяснение низких результатов записи большими блоками со случайной адресацией). Можно было бы заподозрить контроллер в отключении отложенной записи, но полноценные массивы RAID10 демонстрируют вполне подобающие им скорости. Правда, их графики тоже далеко не идеальны: изломы на них говорят о том, что над прошивкой контроллера или его драйверами стоит поработать в поисках ошибок.
У массивов RAID5 и RAID6 с записью тоже далеко не все в порядке. Массивы на восьми дисках проигрывают одиночному диску, в то время как их четырехдисковые аналоги оказываются ощутимо быстрее, хотя тоже не добирают до значений, которые можно было бы предполагать, зная скорость одиночного диска. А вот деградировавшие массивы во всех смыслах на высоте — их скорости просто великолепны, причем лидирует RAID6 без двух дисков. И снова на графиках большое количество изломов...
Очень хочется надеяться, что это проблемы взаимодействия контроллера и нашего синтетического теста, и что в «FileCopy Test» мы увидим нормальные результаты.
IOMeter: Multi-thread Read & Write
Данный тест позволяет оценить поведение контроллеров при многопоточной нагрузке. В ходе него эмулируется ситуация, когда с накопителем работают от одного до четырех приложений, причем количество запросов от них изменяется от одного до восьми, а адресные пространства каждого приложения, роли которых выполняют worker-ы в IOMeter, не пересекаются.
При желании, вы можете увидеть таблицы с результатами тестирования по соответствующим ссылкам, а мы же в качестве наиболее показательных, рассмотрим диаграммы записи и чтения для ситуаций с глубиной очереди в один запрос, поскольку при количестве запросов в очереди, равном двум и более, значения скоростей практически не зависят от количества приложений.
Результаты IOMeter: Multi-tread Read, RAID1+RAID10
Результаты IOMeter: Multi-tread Read, RAID5+RAID6
Результаты IOMeter: Multi-tread Write, RAID1+RAID10
Результаты IOMeter: Multi-tread Write, RAID5+RAID6
Сразу несколько оправдаем результаты массивов на восьми дисках — максимальные скорости такие массивы показывают лишь при глубинах очереди, больших единицы. Мы с этим уже столкнулись ранее при тестировании мощных контроллеров на SAS-дисках, поэтому знаем, что стоит посмотреть в таблицу с данными. Справедливости ради надо также заметить, что Adaptec и при минимальных глубинах очереди демонстрирует на массивах очень неплохие скорости, его результат в данном плане пока лучший среди виденного нами.
При одном потоке на чтение накопители расположились вполне логично: восьмидисковые массивы лидируют, RAID0 впереди, следом RAID5 и RAID6. Любопытно, что четырехдисковый RAID10 оказался быстрее всех остальных массивов из четырех дисков.
Добавление второго потока в корне меняет расстановку сил. Лучше других себя ведут массивы RAID10 — они хоть и не показывают стремления распараллелить нагрузку, читая потоки с разных дисков в зеркальных парах, но все же демонстрируют минимальное снижение производительности. Более-менее неплохо пережили добавление потока и все восьмидисковые массивы, а вот четырехдисковым пришлось довольно туго. На удивление неплохо прошли это испытание и деградировавшие массивы (даже RAID6 без двух дисков), за исключением RAID10 — без одного диска на чтении двух потоков он стал идентичен четырехдисковому RAID0.
Дальнейшее увеличение количества потоков до трех и четырех привело к тому, что массивы RAID10 потеряли свое преимущество, особенно заметно «упал» восьмидисковый. Остальные же массивы просто понемногу снижают скорость.
При одном потоке на запись мы снова видим все те же непонятные проблемы, в результате которых лучше всех с записью справляются деградировавшие массивы, следом за которыми идут RAID10, в то время как восьмидисковые RAID5 и RAID6, а также оба RAID0 отстают даже от одиночного диска.
Второй поток на запись неожиданно приводит к значительным изменениям результатов, причем объяснить их нельзя, можно лишь констатировать. Так, деградировавшие массивы с записью контрольных сумм и все четырехдисковые массивы, кроме RAID0, теряют в скорости (причем RAID6 и RAID10 на четырех дисках весьма значительно), в то время как все остальные массивы наоборот, улучшают свои результаты. Особенно впечатляет «прыжок» по скорости, совершенный восьмидисковыми массивами RAID5 и RAID6 — их результаты улучшились вдвое. А ведь, казалось бы, ну какое им дело до второго потока, все равно же надо считать все те же контрольные суммы.
Дальнейшее увеличение количества потоков снова значительно снижает скорость восьмидисковых RAID5 и RAID6 настолько, что они опять проигрывают своим четырехдисковым аналогам. Словно для равновесия, снова возрастают скорости RAID10 на четырех и на восьми дисках. И лишь деградировавший RAID10 отличается как от деградировавших массивов, так и от RAID10, и схож с четврехдисковым RAID0 в своей низкой скорости.
IOMeter: Webserver, Fileserver и Workstation
В данной группе тестов накопители исследуются под нагрузками, характерными для серверов и рабочих станций.
Напомню, что в «Webserver» и «Fileserver» эмулируется работа накопителя в соответствующих серверах, в то время как в «Workstation» мы имитируем работу накопителя в режиме типичной нагрузки для рабочей станции, с ограничением максимальной глубины очереди на уровне 32 запросов. Естественно, что «Webserver» и «Fileserver» — не более чем собирательные названия; первый будет весьма схоже эмулировать нагрузку любого сервера, работающего только с запросами на чтение, а второй — сервера с преобладанием запросов на чтение, но при этом с определенной, заметно отличной от нуля долей запросов на запись.
Результаты IOMeter: Fileserver
Результаты IOMeter: Webserver
Результаты IOMeter: Workstation
Результаты IOMeter: Workstation, 32 ГБ
В «Webserver», нагружающем диски исключительно запросами на чтение, RAID10 чуть-чуть, но все же опережает RAID0 — сказывается чтение с «удачного» диска в зеркальной паре, пускай и не самое эффективное (нам встречались результаты и получше). Деградировавший RAID10 очень резко теряет в производительности на больших нагрузках — он лишь незначительно превосходит четырехдисковые массивы. При этом на небольших нагрузках (до восьми запросов в очереди) он держится почти вровень с полноценным массивом.
Массивы RAID5 и RAID6 идут практически вровень при равных количествах дисков. А вот деградировавшим массивам приходится весьма туго. Так, для восьмидискового RAID5 потеря одного диска приводит к тому, что его производительность падает до уровня массива из четырех дисков. У RAID6 в такой же ситуации производительность снижается еще больше, а уж потеря двух дисков приводит к тому, что массив по скорости лишь незначительно опережает одиночный диск.
Итоговый рейтинг демонстрирует, что при такой нагрузке тип массива почти не имеет значения, а вот количество дисков, наоборот, влияет очень сильно.
А вот под нагрузкой, включающей в себя запросы на запись, RAID10 заметно отстает от RAID0 при больших глубинах очереди, хотя на малых нагрузках массивы идут очень близко. Да, у RAID0 с ростом нагрузки производительность растет большими темпами, чем у RAID10.
Появление запросов на запись приводит и к тому, что RAID6 отстает от RAID5. Интересно при этом обратить внимание на поведение деградировавших восьмидисковых массивов: в RAID5 производительность такого массива все же выше, чем у четырехдискового, а вот в RAID6 — ниже. Тот же RAID6, лишившийся сразу двух дисков, чуть опережает одиночный диск лишь на малых нагрузках, а вот на больших уже проигрывает битву и уходит на последнее место.
Количество дисков по-прежнему имеет решающее значение, но тип массива становится совсем немаловажен, если сервер имеет сколько-нибудь существенное количество запросов на запись. За повышенную надежность RAID6 и больший, по сравнению с RAID10, объем массивов с контрольными суммами приходится расплачиваться производительностью.
Под нагрузкой, характерной для рабочих станций, RAID0 ожидаемо лидирует. На удивление неплохо чувствует себя деградировавший RAID10 — он снова на малых нагрузках держится вплотную к полноценному массиву.
Как и следовало ожидать, расчет второй контрольной суммы заметно снижает производительность RAID6 относительно RAID5. Деградировавшие массивы держатся сравнительно неплохо, за исключением RAID6 без двух дисков — его производительность уже на всех глубинах очереди меньше, чем у одиночного диска. Любопытно, что при количество запросов в очереди от восьми до шестнадцати он вплотную приближается к своему конкуренту — видимо, такая нагрузка для него наиболее предпочтительна.
Не стоит, ох не стоит собирать высокопроизводительные рабочие станции на массивах с записью контрольных сумм, если только не требуется соответствующего уровня защиты данных. Четырехдисковый RAID0 обгоняет восьмидисковый RAID6 и вплотную приближается к RAID5. Да и RAID10 на четырех дисках выглядит весьма неплохо.
Уменьшение рабочего объема приводит лишь к увеличению превосходства RAID0 над RAID10.
Также растет и превосходство RAID5 над RAID6. Обращает на себя внимание и еще один момент: при работе с уменьшенной зоной гораздо комфортнее чувствуют себя деградировавшие массивы, тот же RAID6 без двух дисков уже оказывается быстрее, чем одиночный диск.
Уменьшение рабочей зоны дополнительно усиливает позиции RAID0 относительно остальных.
FC-Test
Следующим в нашей программе идет FileCopy Test. На накопителе выделяются два раздела по 32 ГБ, размечаемые на двух этапах тестирования сначала в NTFS, а затем в FAT32, после чего на разделе создается определенный набор файлов, считывается, копируется в пределах раздела и копируется с раздела на раздел. Время всех этих операций фиксируется. Напомним, что наборы «Windows» и «Programs» включают в себя большое количество мелких файлов, а для остальных трех шаблонов («MP3», «ISO» и «Install») характерно меньшее количество файлов более крупного размера, причем в «ISO» используются самые большие файлы.
Не забывайте, что тест копирования не только говорит о скорости копирования в пределах одного накопителя, но и позволяет судить о его поведении под сложной нагрузкой. Фактически, во время копирования накопитель одновременно работает с двумя потоками, причем один из них на чтение, а второй на запись.
Поскольку результатов получается много, то мы будем подробно рассматривать лишь значения, достигнутые на наборах файлов «Install», «ISO» и «Programs» в NTFS, являющихся более характерными для обычного использования массивов. Остальные результаты, вы, при желании, можете узнать из таблиц ниже:
Результаты FC-Test: NTFS
Результаты FC-Test: FAT32
Уф, все же результаты RAID0-массивов не столь плохи, как этого можно было бы ожидать из теста на последовательную запись. Правда, того уровня, который можно было бы предполагать, они все равно не достигают: скорость записи файлов ниже примерно в два с половиной раза. Удивляет и то, что максимальные скорости достигаются на наборе «Install», а не на «ISO», в котором находятся самые большие файлы. В результатах на «ISO» вообще много странного и необъяснимого, помимо общих низких скоростей. Так, восьмидисковый RAID10 оказывается в два раза медленнее, чем RAID0 на четырех дисках, хотя они должны идти вровень. А деградировавший массив каким-то образом оказывается быстрее полноценного. Все-таки, определенные проблемы с записью у контроллера есть.
Не все ладно с записью и у массивов RAID5 и RAID6. Как и в тесте на последовательную запись первые места занимают деградировавшие массивы, что является нонсенсом. Более того, с большими файлами в «ISO» восьмидисковые массивы работают вообще очень медленно (особенно забавна ситуация с RAID5: массив из четырех дисков в полтора раза быстрее, чем из восьми). Лишь на мелких файлах «Programs» расстановка сил более-менее в порядке, но вот значения скоростей там вовсе не радуют.
На чтении контролер явно упирается в какое-то ограничение по скорости: все массивы RAID0 и RAID10 демонстрируют примерно равные скорости. Причем с набором «Install» это приводит к забавному факту: скорость чтения с массивов оказывается ниже скорости записи. Правда, приятно радуют результаты, полученные на больших файлах — предел скорости чтения этого контроллера ощутимо выше, чем у рассмотренных нами ранее. Тот же 3ware 9690SA отказывался демонстрировать более 160 МБ/с, а Adaptec перешагнул за 400 МБ/с.
Кстати, судя по скорости RAID10 из четырех дисков, чтение с обоих дисков зеркальных пар действительно работает, иначе бы мы больше 250 МБ/с не увидели.
И снова тот же предел скорости, наблюдаемый на массивах из восьми дисков при работе с большими файлами. Но все же, в целом расстановка сил такая, какую и следовало ожидать. Даже деградировавшие массивы теряют скорость примерно в соответствии с уменьшением количества дисков в массиве.
На результатах копирования явно сказываются «странности», которые мы видели при записи: все массивы оказываются быстрее на наборе «Install», а не на «ISO». Если же сравнивать массивы между собой, то неожиданно низкие результаты демонстрирует RAID0 на восьми дисках, а вот восьмидисковый RAID10, как и полагается, показывает скорость, схожую с RAID0 из четырех дисков. Превосходно держится и деградировавший RAID10, почти не отстающий от полноценного массива.
Те же проблемы со скоростью работы с большими файлами в «ISO» и у массивов с записью контрольных сумм, правда, не настолько заметные. Опять же, нет и того поразительного лидерства деградировавших массивов — на копировании расстановка сил как раз вполне логична.
Увеличение дальности копирования мало меняет результаты. Единственным серьезым отличием становятся лишь слишком уж малые скорости у RAID5 и RAID6 из четырех дисков все в том же наборе «ISO» (да, даже на общем «пониженном» фоне). Странная, очень странная нелюбовь к большим файлам у этого контроллера, неладно что-то в Датском королевстве, то есть в прошивке.
WinBench 99
Ну и в завершение — привычные графики чтения в «WinBench 99».
График чтения 1 диска Fujitsu_MBA3073RC на LSI
Графики чтения RAID-массивов на контроллере Adaptec ASR-5805:
График чтения RAID10, 4 диска
График чтения RAID10, 8 дисков
График чтения RAID10, 8 дисков минус один
График чтения RAID5, 4 диска
График чтения RAID5, 8 дисков
График чтения RAID5, 8 дисков минус один
График чтения RAID6, 4 диска
График чтения RAID6, 8 дисков
График чтения RAID6, 8 дисков минус один
График чтения RAID6, 8 дисков минус два
Особо внимательные читатели, еще не уставшие от чтения статьи, возможно, обратят внимание на то, что мы не даем графиков для массивов RAID0. Дело тут вовсе не в нашей зловредности, а в том, что Winbench 99 отказывался на этих массивах завершать тестирование, выдавая ошибку. Причем любые действия, включая уменьшение тестируемого объема, не давали положительного эффекта. Так как мы не сомневаемся в надёжности контроллера при работе с массивами RAID0 (многочасовые измывательства над массивами в тестах при помощи IOMeter говорят нам об отсутствии проблем), то спишем этот недостаток на более чем серьезный возраст нашего тестового пакета (как-никак, у него в этом году юбилей — 10 лет).
Сравним массивы по продемонстрированным скоростям чтения в начале и конце получившихся разделов:
Получившиеся результаты приятно радуют своей стройностью — все стоят на своих местах. Если посмотреть на сами графики, то они тоже приятно радуют малым количеством резких скачков скорости, даже деградировавшие массивы работают довольно ровно. Несколько смущает, пожалуй, только RAID5 на дисках своей длинной горизонтальной полкой на графике — такое впечатление, что 700 МБ/с для него является навязанным ограничением. Эх, жаль, что не получились графики RAID0.
Подведение итогов
Вспоминая впечатления, оставшиеся у нас от ASR-3405, хочется сказать, что пятая серия у Adaptec получилась заметно лучше. Сочетание мощнейшего по меркам RAID-контроллеров процессора и основательно переработанной прошивки привело к тому, что ASR-5805 разительным образом отличается от предшественника. Контроллер на всех типах массивов демонстрирует великолепные результаты при работе под серверной нагрузкой, умеет выбирать в зеркальной паре диск с меньшим временем отклика, да и читать с обоих дисков пары одновременно тоже вполне способен. Весьма неплохо контроллер работает и со сложными (с точки зрения создания хорошей прошивки) массивами RAID5 и RAID6, деградировавшие массивы так же были не забыты при оптимизации микрокода. Скорость линейного чтения с массивов у него хоть и далека от теоретической, но все же значительно лучше, чем у виденных нами раньше его конкурентов. И все же, без ложки дегтя не обошлось: ей стала необычайно низкая производительность некоторых массивов при последовательных операциях записи. Особенно плохо контроллеру удается запись больших файлов, так что останавливаться на достигнутом компании Adaptec пока еще рано.
Другие материалы по данной теме
Тестирование SAS RAID-контроллера 3ware 9690SA-8I
Тестирование SAS RAID-контроллера Promise SuperTrak EX8650
Сравнительное тестирование RAID-контроллеров Adaptec