Введение
Мы продолжаем тестирование RAID-контроллеров на новой платформе, включающей в себя высокопроизводительные жесткие диски с интерфейсом SAS. И сегодня наше внимание достается лучшему контроллеру компании, чья продукция пользуется весьма большой популярностью. Мы говорим о компании 3ware, выпускающей контроллеры под чутким управлением компании AMCC. Впрочем, взаимосвязь Applied Micro Circuits Corporation и 3ware гораздо более тесная: первого апреля 2004 года (без всяких шуток) первая из этих двух компаний завершила поглощение второй.
Однако, вернемся к контроллерам. Нас, конечно же, интересует, справится ли архитектура контроллера 3ware 9690SA с восемью современными «пятнадцатитысячниками».
3ware 9690SA
3ware 9690SA является единственной серией контроллеров этой компании, поддерживающих жесткие диски с интерфейсом SAS – все остальные работают с SATA-дисками (а серия 7506 и вовсе с PATA). Серия контроллеров 9690SA состоит из четырех моделей, различающихся лишь установленными на них разъемами. Так, на попавшей к нам модели 8I находятся два внутренних разъема SFF-8087, каждый из которых обеспечивает до четырех SAS-портов. Модель -8E имеет два внешних разъема SFF-8088, а -4I4E – один внешний и один внутренний порт. И, наконец, модель -4I оснащена лишь одним внутренним портом.
В остальном же все контроллеры серии одинаковы: они построены на одном процессоре, оснащены 512 МБ памяти DDR2, работающей на частоте 533 МГц (черт побери, еще совсем недавно такой объем памяти был совсем типичным не для контроллеров, а для системных блоков) и имеют интерфейс PCI-Express x8.
Любопытно, что основной процессор контроллера точно такой же, как и у уже рассматривавшегося нами
3ware 9650SE, маркировка отличается лишь в серийном номере –
AMCC Power PC405CR. Компания 3ware по-прежнему нигде не указывает частоту, на которой он функционирует, но если судить по маркировке, то она равна 266 МГц. На фоне продукции конкурентов цифра довольно скромная, у того же
Promise SuperTrak EX8650, побывавшего у нас ранее (кстати, если вы не читали ту статью – очень рекомендуем сделать это: мы будем довольно много на нее ссылаться), она составляет 800 МГц, а на старшей модели и вовсе 1200 МГц. Но не стоит заранее делать выводы о производительности контроллера, ведь его чип использует совсем другую архитектуру, отличную от привычной Intel XScale.
Комплект поставки абсолютно привычен: помимо контроллера, в него входит краткая инструкция, диск с драйверами и программным обеспечением, сменная планка на заднюю панель для установки контроллера в низкопрофильные корпуса и два кабеля. В нашем случае это были кабели CBL-SFF8087-05M для подключения корзин с разъемом SFF-8087. Для подключения же жестких дисков непосредственно к контроллеру необходимо использовать другие кабели – CBL-SAS8087OCF-06M, заканчивающиеся четырьмя разъемами для подключения к дискам.
Контроллер поддерживает практически все популярные типы массивов, которые можно построить на восьми портах, а именно:
одиночный диск,
RAID0,
RAID1,
RAID5,
RAID6,
RAID10;
RAID50.
Пожалуй, не хватает разве что RAID60 – страйпа из двух массивов RAID6, но, честно говоря, невелика потеря: подавляющее большинство предпочитает к защите данных в комплект выбрать либо объем и, соответственно, RAID6, либо скорость, а значит, RAID10.
После того, как у нас в прошлый раз Promise EX8650 отказался без батарейки включать отложенную запись, что самым серьезным образом сказалось на его производительности на операциях записи, мы постарались к контроллеру найти и батарею резервного питания кэш-памяти. Можно было обойтись и без нее, благо контроллер позволяет принудительно включить отложенную запись и без батареи, но мы решили не рисковать (тем более, что и батарея нашлась).
В отличие от предыдущих контроллеров этой компании, серия 9690SA работает с батареями нового типа – BBU-Module-04. Впрочем, их можно использовать также с контроллерами 9650SE и 9550SXU. Отличия видны невооруженным взглядом – батарея теперь устанавливается не на сам контроллер, а на отдельную плату, занимающую еще один слот в системном блоке. Конечно, никакого разъема на материнской плате она не требует, а просто занимает место над любым из слотов, имеющих заглушку на задней панели. К самому же контроллеру батарея подключается через шнурок и специальную миниатюрную дочернюю плату, крепящуюся через пластиковые подставки к контроллеру и сообщающуюся с ним специальным разъемом.
Управление контроллером по-прежнему осуществляется двумя способами: через BIOS или посредством фирменного приложения 3DM, позволяющего осуществлять любые изменения настроек из операционной системы. Что приятно, существуют версии 3DM не только под Windows, но и под Linux и FreeBSD, причем как для 32-битных версий, так и для 64-битных версий ОС.
Методика тестирования
Во время тестирования использовались следующие программы:
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;
деградировавший RAID10 без одного диска;
RAID5;
деградировавший RAID5 без одного диска;
RAID6;
деградировавший RAID6 без одного диска;
деградировавший RAID6 без двух дисков.
Тут надо сделать одну существенную ремарку: вы не увидите тестов RAID6 на четырех дисках, хотя они и входят в нашу стандартную методику тестирования. Все дело в том, что компания 3ware осталась верна себе: в ее контроллерах программно, при помощи драйверов и BIOS, закрыта возможность создать такой массив. Мы уже сталкивались с этим
ранее, и нельзя сказать, что нас радует такое положение вещей. С одной стороны, понятно, что RAID10 на тех же дисках при точно таком же полезном объеме будет заметно быстрее. Но с другой, его защищенность все же несколько ниже, чем у RAID6: хотя четырехдисковый массив RAID10 и переживает выход из строя сразу двух дисков, но только в тех случаях, когда эти диски относятся к разным зеркальным парам, в то время как для RAID6 таких ограничений нет – этот тип массивов спокойно переносит выход из строя любых двух дисков. Так что нам все же хотелось бы самим выбирать, хотим мы максимальной защищенности или большей скорости.
Поскольку мы стараемся максимально полно охватить все возможные типы массивов, то решили все же включить в тестирование деградировавшие массивы. Напомним, что таким термином называются массивы с избыточностью данных, в которых один или несколько дисков (в зависимости от типа массива) вышли из строя, но при этом массив все еще хранит все данные и является рабочим.
Для сравнения мы будем везде приводить результаты одиночного диска Fujitsu MBA3073RC, полученные на контроллере LSI SAS3041E-R, считая их неким базовым уровнем производительности. Сразу оговоримся, что у такого сочетания есть одна хорошо известная нам проблема: его скорость записи в «FC-Test» всегда очень мала.
В контроллер была прошита самая последняя доступная на
сайте производителя на момент тестирования версия BIOS и использовались самые свежие драйвера. Соответственно, мы использовали единый пакет версии 9.5.1.
IOMeter: Database
Как всегда, начнем с, пожалуй, наиболее интересного с точки зрения нагрузки на контроллер теста – «Database», с помощью которого мы выясняем способность контроллеров работать с потоками запросов на чтение и запись 8-кБ блоков данных со случайной адресацией. В ходе тестирования происходит последовательное изменение процентного соотношения запросов на запись от нуля до ста процентов (с шагом 10 %) от общего количества запросов и увеличение глубины очереди команд от 1 до 256.
Численные результаты измерений здесь и далее вы можете, при желании, увидеть в соответствующих таблицах, мы же будем работать с графиками и диаграммами.
Таблицы с результатами тестирования вы можете посмотреть по следующей ссылке:
Результаты IOMeter: Database, RAID1+RAID10
Результаты IOMeter: Database, RAID5+RAID6
Рассмотрим диаграммы с результатами для глубин очереди команд, равных 1, 16 и 256.
Чтобы излишне не засорять диаграммы линиями, мы будем отдельно рассматривать массивы RAID0 и RAID10, и отдельно – требующие вычисления контрольных сумм RAID5 и RAID6.
На минимальной нагрузке работает лишь отложенная запись, так что особых неожиданностей ждать не приходится. Приятно радует, что восьмидисковый RAID10 практически совпадает по производительности с RAID0 на четырех дисках, как и должно быть в теории. При этом на их графики накладываются и результаты деградировавшего RAID10, то есть, снижения производительности в нем при потере одного диска не происходит.
В массивах с использованием контрольных сумм все несколько сложнее. В первую очередь, радуют великолепные результаты при преобладании запросов на запись – обычно контроллеры на такой нагрузке снижают производительность, поскольку упираются в скорость вычисления контрольных сумм (и сопутствующих накладных расходов в виде дополнительных операций чтения и записи). В данном же случае такого не происходит: видимо, огромный объем буферной памяти контроллера и его архитектура позволяют ему очень успешно справляться с небольшими нагрузками.
RAID6 ожидаемо чуть медленнее, чем RAID5 из такого же количества дисков – сказывается то, что не один, а два диска «выпадают» из командной работы, вынужденные обрабатывать контрольные суммы. Деградировавший на один диск RAID6 держится весьма неплохо, почти столь же хорош и RAID5, лишившийся одного диска, но его портит поведение в ситуации, когда на него поступают лишь запросы на запись – его производительность внезапно очень сильно снижается. Очень скромные результаты демонстрирует лишь RAID6, деградировавший аж на два диска, то есть находящийся на грани отказа.
Увеличение нагрузки до 16 запросов массивы RAID0 и RAID10 переносят без особых проблем, равномерно увеличивая производительность. Массивы RAID10 по-прежнему на записи выдают такую же производительность, как и RAID0 из вдвое меньшего числа дисков.
Обратите внимание, что при преобладании запросов на чтение массивы RAID10 оказываются ощутимо лучше, чем RAID0 из такого же числа дисков. Ничего удивительного, просто здесь сказывается то, что контроллер может чередовать запросы на чтение между дисками в каждой зеркальной паре в зависимости от того, какой из дисков может выполнить запрос быстрее (поскольку у него головка ближе к нужному положению на диске).
Весьма неплох и деградировавший RAID10 – он снижает производительность относительно «нормального» собрата прямо пропорционально числу запросов на чтение. Неудивительно, ведь в одной из зеркальных пар у него лишь один диск, соответственно, чтение и страдает, а вот запись по-прежнему вся уходит в буферную память и «нечувстительна» к потере одного из дисков.
Массивам RAID5 и RAID6 приходится похуже, их графики приобретают ломаную форму, что говорит о некотором несовершенстве прошивок. Обратите внимание, что у этих массивов выросла производительность лишь на операциях чтения, на чистой записи количество операций в секунду осталось тем же: даже самые эффективные архитектуры имеют свой предел, и его мы и видим на записи. В любом случае, результаты очень высоки, если сравнивать со всем, что мы видели ранее.
Удивительно, но в случае чистого чтения RAID6 из восьми дисков обгоняет RAID5, что говорит о явных проблемах прошивки в отношении последнего, хотя и не особо сильных.
Что же касается деградировавших массивов, то RAID6 без одного диска по-прежнему держит весьма неплохой уровень производительности, а вот потеря второго диска его буквально «убивает». У деградировавшего RAID5 мы снова видим необъяснимое огромное снижение производительности в случае, когда на него поступают лишь запросы на запись.
Дальнейшее увеличение нагрузки до 256 запросов в очереди не приносит в случае RAID0 и RAID10 почти ничего, достойного внимания – все просто работает так, как и должно. Пожалуй, несколько удивляет лишь поведение восьмидискового RAID0: если обычно график имеет некоторый провал в центральной зоне, где количество запросов на запись и на чтение примерно равное, то здесь мы видим, наоборот, прирост производительности.
Для массивов RAID5 и RAID6 дальнейшее увеличение глубины очереди приводит к «сглаживанию» формы графиков, то есть большей предсказуемости их работы. Теперь уже нет неожиданных проигрышей, даже RAID6 без двух дисков постарался подтянуться в меру своих сил к остальным. И лишь RAID5 без одного диска немножко «чудит», слишком уж снижая производительность на операциях с преобладанием запросов на чтение.
IOMeter: Disk Response Time
Для измерения времени отклика мы в течении десяти минут при помощи IOMeter отправляем на накопитель поток запросов на чтение или запись блоков данных по 512 байт при глубине очереди исходящих запросов, равной единице. Количество запросов, обработанных накопителем, превышает шестьдесят тысяч, так что мы получаем устоявшееся время отклика накопителя.
На чтении время отклика всех массивов оказывается чуть хуже, чем у одиночного диска. Правда, для массивов RAID10 этот проигрыш минимален и незаметен: задержка от работы контроллера компенсируется чтением с зеркальных пар, которое, как мы видели выше, позволяет выбрать нужный диск, с которого чтение пройдет быстрее.
Остальным массивам повезло меньше, некоторые из них отстают более чем на миллисекунду, что весьма много, когда время отклика одиночного диска составляет около 6 мс. Особой логики в поведении массивов не видно: среди восьмидисковых массивов лучшим оказывается RAID6, а все четырехдисковые им заметно проигрывают. Даже с деградировавшими массивами происходит что-то непонятное: все они не блещут скоростями, но если неплохой результат RAID10 еще можно объяснить, то почему лучшее время отклика демонстрирует RAID6 без двух дисков?
На записи время отклика определяется суммарным кэшем массива и контроллера, при этом зеркальные пары массивов RAID10 надо рассматривать как один диск. Для массивов с расчетом контрольной суммы это правило уже не работает, поскольку им приходится не только кидать данные в буферную память, но и совершать дополнительные операции. Впрочем, их время отклика все равно находится на приличном уровне, оно меньше, чем у одиночного диска, а значит, расчет контрольных сумм проходит без проблем и с минимальными потерями времени. «Отличился» большим временем отклика лишь RAID6 без двух дисков, но этого можно было ожидать в связи с резким повышением нагрузки на массив – контроллер вынужден «эмулировать» наличие отказавших дисков, читая информацию с еще живых дисков и вычисляя данные, которые должны лежать на отказавших. Впрочем, результат все равно не ужасен: у Promise EX 8650 без батарейки времена отклика на записи превышали 20 мс.
IOMeter: Random Read & Write
Оценим теперь зависимость производительности контроллеров в режимах чтения и записи от размера используемого блока данных при случайной адресации.
Результаты, полученные при работе со случайной адресацией данных, рассмотрим в двух вариантах, в соответствии с обновленной методикой. На блоках малого размера построим зависимости количества операций в секунду от размера используемого блока. А на больших блоках вместо количества операций возьмем в качестве критерия производительности скорость в мегабайтах в секунду. Такой подход позволяет оценить работу массивов сразу в двух типичных случаях нагрузки: работа малыми блоками характерна для баз данных и для нее более важно количество операций в секунду, чем привычная скорость; а вот работа большими и очень большими блоками близка к реальной работе с файлами малых размеров, и здесь уже на первый план выходит именно скорость в привычных мегабайтах в секунду.
Начнем с чтения.
Результаты IOMeter: Random Read, операций/с
Результаты IOMeter: Random Write, МБ/с
На чтении малыми блоками вне конкуренции оказываются оба массива RAID10 – даже восьмидисковый RAID0 не способен соревноваться с очень эффективным чтением с зеркальных пар. Неплохо чувствует себя и деградировавший RAID10 – его снижение производительности хоть и есть, но очень невелико.
Чтение с массивов с контрольными суммами проходит одинаково: все массивы чуть хуже по производительности, чем одиночный массив. При этом деградировавшие массивы, даже RAID6 без двух дисков, оказываются лишь чуть медленнее нормальных, то есть восстановление данных из контрольных сумм проходит для них почти безболезненно.
На очень больших блоках более высокая линейная скорость массивов RAID0 берет свое, и они выигрывают у RAID10 с таким же числом дисков. Но похоже, что контроллер умеет читать с обоих дисков в зеркальных парах, иначе восьмидисковый RAID10 не смог бы опередить RAID0 из четырех дисков. А вот деградировавший RAID10 хорошо «осознает», что одна из зеркальных пар у него неполноценная, и читает лишь с одного диска в каждой паре.
Та же линейная скорость является определяющим фактором при работе с очень большими блоками и для массивов RAID5 и RAID6, в результате чего 8-дисковые массивы уходят в явный отрыв. Деградировавшие массивы закономерно заметно медленнее «нормальных», правда, если у RAID5 падение весьма небольшое, то RAID6 снижает скорость гораздо ощутимее.
Перейдем к операциям записи со случайной адресацией.
Результаты IOMeter: Random Write, операций/с
Результаты IOMeter: Random Write, МБ/с
Как и полагается, все решает количество дисков в массиве и суммарный объем буферной памяти. Обратите внимание на практически идеальную масштабируемость производительности в зависимости от числа дисков и форму графиков – да, именно так им и полагается выглядеть.
Для массивов с контрольными суммами количество дисков по-прежнему имеет значение, что и демонстрируют результаты RAID5 на восьми и на четырех дисках. И все же, существенную роль играют операции расчета контрольных сумм: для RAID6, в котором их приходится считать не одну, а две, они являются причиной заметного отставания от RAID5.
И снова мы видим чудовищное падение производительности на RAID6 без двух дисков – да, лучше не доводить его до такого состояния, без одного диска он чувствует себя намного лучше.
И на больших блоках количество дисков имеет основное значение, а зеркальные пары приходится рассматривать как один диск. Удивляют низкие результаты RAID0 на четырех дисках – у него явно какие-то неожиданные проблемы с большими блоками. Потрясающе хорош деградировавший RAID10 – его производительность временами даже чуть выше, чем у такого же исправного массива.
На больших блоках массивам с контрольными суммами важно лишь количество дисков. Никаких заметных провалов нет, все контрольные суммы рассчитываются с достаточной скоростью. Деградировавшие массивы чувствуют себя достаточно хорошо – они просто «не замечают», что у них не хватает одного диска. И лишь RAID6 без двух дисков в очередной раз демонстрирует очень плохие результаты – это явная недоработка прошивки.
IOMeter: Sequential Read & Write
Ну что ж, пора оценить способности контроллеров в последовательных операциях. В данном тесте на накопители подается поток запросов с глубиной очереди команд, равной четырем. Раз в минуту размер блока данных увеличивается. В итоге мы получаем возможность проследить зависимость линейных скоростей чтения и записи массивов от размеров используемых блоков данных и оценить максимальные достижимые скорости.
Результаты IOMeter: Sequential Read
Результаты IOMeter: Sequential Write
Контроллер явно умеет читать с обоих дисков в зеркальных парах – об этом очень явно говорят характерные увеличения скоростей на больших блоках после горизонтальных «полок» на графиках. Несколько неприятно удивляют результаты RAID0 на восьми дисках: в то время как на Promise EX8650 мы видели скорость более 900 МБ/с, 3ware 9690SA дает не более 700, и то лишь на блоках размером 128 кБ. При этом на четырехдисковом RAID0 и горизонтальной полке восьмидискового RAID10 все почти в порядке: 450 МБ/с довольно близки к результату одиночного диска, умноженному на четыре. Неужели сказываются особенности архитектуры?
Массивы RAID5 и RAID6 из четырех дисков также имеют пик скорости на блоках 128 кБ, после чего снижают производительность. Интересно, что у всех восьмидисковых массивов, кроме RAID10, скорости на пике и на очень больших блоках примерно одинаковые и составляют, соответственно, 650 МБ/с и 550 МБ/с.
Интересно поведение деградировавших массивов: все они читают с примерно равной зависимостью скорости от размера блока. Похоже, что эта зависимость определяется скоростью восстановления данных контрольных сумм. Интересно, что та же зависимость сохраняется и для RAID6 без двух дисков – видимо, своеобразная архитектура контроллера очень эффективно позволяет восстанавливать данные сразу из двух контрольных сумм, практически без снижения производительности.
На линейной записи снова обращает на себя внимание недостаточно высокая скорость массива RAID0 из восьми дисков. Правда, результаты RAID0 из четырех дисков и вовсе очень неприятно удивляют – они в два раза хуже чем то, что демонстрирует одиночный диск! Любопытно ведут себя массивы RAID10: во-первых, у них наблюдаются некоторые, хотя и весьма слабые колебания скорости на больших блоках. А во-вторых, деградировавший массив оказывается чуть быстрее исходного. Конечно, можно предположить, что массиву не приходится дожидаться подтверждения записи от вышедшего из строя диска, но вряд ли это окажет настолько заметный эффект.
Скорость линейной записи всех восьмидисковых массивов почти одинакова и достаточно высока – производительности контроллера хватает всем, и RAID6, как и полагается, очень незначительно отличается от RAID5. Интересно, что деградировавшие массивы снова чуть быстрее исходных. Правда, это не относится к RAID6 без двух дисков: его скорость записи такова, что проще сказать, что он не пишет вовсе.
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
Результаты чтения на одном потоке обескураживают: все массивы, кроме деградировавших массивов с записью контрольных сумм, демонстрируют одну и ту же скорость на уровне 160 МБ/с. При тестировании Promise EX8650 у нас была схожая ситуация: контроллер на одном потоке доходил лишь до определенного предела (тогда он составлял 210 МБ/с), а максимальные скорости демонстрировал лишь на глубинах очереди, больших единицы. Заглядываем в таблицы выше и видим, что ситуация повторяется: максимальные скорости достигаются лишь при очередях длиной 3–4 запроса и выше (к слову: контроллеру Promise зачастую требовалось больше). Так что не ждите на простом чтении даже очень большого файла скоростей, заметно превышающих полтораста мегабайт в секунду.
Вернемся к работе с несколькими потоками. Увеличение количества потоков до двух приводит к некоторому снижению скоростей массивов RAID0, RAID5 и RAID6. Приятно видеть, что в целом контроллер достаточно успешно справился с многопоточной нагрузкой: лишь у четырехдискового RAID5 снижение скорости составило более 25 %. Что же касается массивов RAID10, то на них контроллер сумел очень эффективно распараллелить нагрузку, читая разные потоки с разных дисков в зеркальных парах. Соответственно выросла и итоговая скорость, увеличившись почти в два раза. Удивительно, но увеличили свою скорость и деградировавшие массивы RAID5 и RAID6.
Дальнейшее увеличение числа потоков до трех «подтягивает» снизившие скорости массивы вверх и снижает результаты на массивах RAID10, причем последние внезапно «разучиваются» читать с двух дисков в зеркальных парах, судя по результатам. Видимо, контроллер не может разобраться, кому отдавать два потока, а кому один, а жаль. В итоге, снова начинает играть роль количество дисков: четырехдисковые массивы уходят в самый конец. Чуть выбивается из этого правила лишь RAID6 на восьми дисках – все же, он должен быть быстрее, чем RAID0 на четырех дисках.
Интересный эффект оказывает дальнейшее увеличение количества потоков до четырех: все массивы, кроме RAID10, на четырех дисках прибавляют в скорости. К сожалению, RAID10 не собирается давать значительную прибавку к скорости: видимо, контроллер не в силах распознать нагрузку и направить по два потока на каждый диск в зеркальной паре.
На записи при одном потоке скорости уже выше, но все равно достигают максимальных значений лишь при увеличении глубины очереди. Ожидаемо, после всех прошлых тестов, плохо выступает RAID6 без двух дисков, но вот почему такая низкая скорость записи у RAID0 на четырех дисках? Непонятно. Добавление второго потока на запись приводит к тому, что скорости всех массивов, кроме указанных двух с явными проблемами, возрастают, причем в случае восьмидисковых массивов – весьма значительно. Минимальным приростом отличаются лишь четырехдисковый RAID5 да массивы RAID10. В случае последнего нет ничего удивительного: на записи каждая зеркальная пара выступает как одиночный диск.
Обратите внимание, насколько хорошо ведут себя деградировавшие массивы – как и положено, контроллер действительно просто не обращает внимания, что из их состава выпал один из дисков. Причем, судя по тому, что их скорости даже выше, чем у оригинальных массивов, контроллер пропускает расчет контрольных сумм в тех случаях, когда они должны попадать на нерабочий диск.
Дальнейшее увеличение количества потоков приводит лишь к некоторому снижению скоростей, без каких-либо примечательных особенностей.
IOMeter: Webserver, Fileserver и Workstation
В данной группе тестов накопители тестируются под нагрузками, характерными для серверов и рабочих станций.
Напомню, что в «Webserver» и «Fileserver» эмулируется работа накопителя в соответствующих серверах, в то время как в «Workstation» мы имитируем работу накопителя в режиме типичной нагрузки для рабочей станции, с ограничением максимальной глубины очереди на уровне 32 запросов. Естественно, что «Webserver» и «Fileserver» – не более чем собирательные названия; первый будет весьма схоже эмулировать нагрузку любого сервера, работающего, фактически, только с запросами на чтение, а второй – сервера с преобладанием запросов на чтение, но при этом с определенной, заметно отличной от нуля долей запросов на запись.
Результаты IOMeter: Fileserver
Результаты IOMeter: Webserver
Результаты IOMeter: Workstation
Результаты IOMeter: Workstation, 32 ГБ
При серверной нагрузке в виде потока запросов на чтение RAID10 стабильно выигрывает у RAID0 – да-да, все то же чтение с более «удачного» диска в зеркальной паре.
Столь же аккуратные графики и у массивов с расчетом контрольных сумм – никаких неожиданностей.
Итог в виде рейтинга абсолютно логичен: зеркальные массивы впереди, производительность остальных зависит лишь от числа дисков. Благодаря тому, что характер запросов близок к случайному, массивы RAID5 и RAID6 выступают практически наравне с RAID0. Даже у деградировавших массивов мощный процессор позволяет минимизировать пагубное влияние восстановления данных из контрольных сумм, снижение скорости схоже с тем, как если бы можо было просто уменьшить массив на один диск.
Появление в нагрузке небольшого количества запросов на запись приводит к тому, что RAID10 выигрывают теперь лишь на малых глубинах очереди, в то время как на больших лидерство забирают RAID0.
Те же запросы на запись приводят к тому, что RAID6 начинает заметно отставать от RAID5. Ну и конечно, довольно ощутимо, особенно на малых очередях, падает производительность RAID6 без двух дисков.
Поскольку наш рейтинг дает больший вес результатам на малых глубинах очереди, то RAID10 получают лишь чуть меньше баллов, чем RAID0 (при равном количестве дисков, разумеется).
И снова на малых нагрузках RAID10 немножко выигрывает у RAID0, но не в силах противостоять ему на больших глубинах очереди.
Из массивов RAID5 и RAID6 для рабочих станций предпочтительнее RAID5 – расчет второй контрольной суммы является весьма серьезной дополнительной нагрузкой, снижающей производительность. RAID6 без двух дисков окончательно падает по производительности, пропуская вперед даже одиночный винчестер.
Теперь RAID10 и RAID0 получают практически равное количество баллов. А вот массивы с расчетом контрольных сумм уже не в силах выдержать конкуренцию – как ни крути, а дополнительные операции сделать совсем уж бесплатными с точки зрения производительности невозможно. В результате даже восьмидисковый RAID5 пропускает вперед RAID0 и RAID10, собранные всего на четырех дисках.
После уменьшения доступного объема до 32 ГБ рабочие станции уже совершенно однозначно предпочитают RAID0 массивам с зеркалированием.
Среди массивов с расчетом контрольных сумм все практически без перемен, разве что 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 явно лучшие. Правда, даже на больших файлах скорости далеки от того, что можно было бы ожидать на многодисковых массивах из столь быстрых дисков. Напомню, что если отрешиться от результатов одиночного диска на контроллере LSI, которые явно слишком малы, то скорость записи массивов должна быть примерно кратна количеству дисков, умноженному на 100 МБ/с (да, именно столько выдают «с пластины» современные винчестеры).
Очень удивляют результаты RAID0 на четырех дисках – у него опять проявляются необъяснимые проблемы со скоростью, причем лишь на некоторых наборах файлов.
Удивительно, но массивы RAID5 и RAID6 пишут очень хорошо, проигрывая лишь восьмидисковому RAID0. Лидером и вовсе становится деградировавший RAID5 – похоже, что он действительно «экономит» на расчете контрольных сумм. Конечно, все это ни в коей мере не касается RAID6 без двух дисков – этот массив пишет очень и очень медленно.
На чтении мы снова приходим к тому пределу, который видели в многопоточном тесте: чтение в системе обычно идет с минимальной глубиной очереди. В итоге получается забавная ситуация: контроллер пишет быстрее, чем читает.
На массивах с расчетом контрольных сумм мы снова видим тот же предел скорости для глубины очереди в один запрос. Правда, относится он лишь к полноценным массивам – деградировавшие заметно теряют от необходимости восстановления данных из контрольных сумм. Стоит отметить, что RAID6 как в полноценном виде, так и лишившийся одного диска, по скорости совпадает с RAID5.
На копировании в пределах раздела, похоже, основную роль играет скорость чтения. Массивы очень схожи между собой по результатам, и выигрыш восьмидисковых массивов минимален.
О, а вот на копировании в пределах раздела RAID5 оказывается чуть лучше, чем RAID6 на таком же количестве дисков – видимо, на ограничение скорости чтения накладывается то, что массивы RAID5 пишут все же чуть быстрее. Все деградировавшие массивы, кроме RAID6 без двух дисков, чувствуют себя достаточно неплохо.
Увеличение «дальности» копирования ни к чему интересному не приводит: все сказанное выше остается в силе.
WinBench 99
Ну и в завершение – привычные графики чтения в WinBench 99.
График чтения 1 диска Fujitsu_MBA3073RC на LSI
Графики чтения RAID-массивов на Promise SuperTrak EX8650:
График чтения RAID0, 4 диска
График чтения RAID0, 8 дисков
График чтения RAID10, 4 диска
График чтения RAID10, 8 дисков
График чтения RAID10, 8 дисков минус один
График чтения RAID5, 4 диска
График чтения RAID5, 8 дисков
График чтения RAID5, 8 дисков минус один
График чтения RAID6, 8 дисков
График чтения RAID6, 8 дисков минус один
График чтения RAID6, 8 дисков минус два
Сравним накопители по продемонстрированным скоростям чтения в начале и конце получившихся разделов:
Да, RAID6 без двух дисков действительно сильно «слабеет». Обращают на себя внимание результаты массивов из восьми дисков: все они, кроме RAID10, имеют равные скорости в начале и в конце и, соответственно, практически горизонтальные линии на графиках, причем значения этих скоростей как-то слишком уж малы. Похоже, что у контроллера действительно есть ограничение по максимальной линейной скорости, вызванное особенностями архитектуры – где-то внутри него есть «бутылочное горлышко», участок тракта передачи данных, скорость работы которого явно недостаточна для чтения сразу с восьми дисков, способных отдавать более 100 МБ/с каждый.
Подведение итогов
Суммируя впечатления от проведенных тестов, мы можем сказать, что новая серия контроллеров 3ware 9690SA идеально подходит для применения в серверах. Среди положительных сторон этого контроллера очень хорошие и стабильные результаты в «IOMeter: Database», особенно в массивах RAID5 и RAID6 на записи, великолепные результаты массивов с зеркалированием дисков (выбор из пары диска с меньшим временем доступа к запрашиваемому блоку, линейное чтение с обоих дисков), неплохие способности к мультипоточным операциям. А вот в качестве способа получить максимальные линейные скорости этот контроллер подойдет, наоборот, плохо – его архитектура хорошо справляется со множеством разнотипных операций, но имеет ограничение по максимальной возможной скорости в районе 650 МБ/с. И еще: используя массивы RAID6 на этом контроллере, постарайтесь не доводить их до состояния, когда сразу два диска в них будут нерабочими – мало того, что это очень небезопасно для данных (выход из строя третьего диска полностью разрушит массив), так еще и скорость записи упадет почти до нуля.
Что же делать тем, кому нужны рекорды линейных скоростей? Будем банальны: оставайтесь с нами – у нас еще много других претендентов.
Другие материалы по данной теме
Тестирование SAS RAID-контроллера Promise SuperTrak EX8650
Тестирование RAID-контроллера 3Ware 9650SE
Сравнительное тестирование RAID-контроллеров HighPoint RR3220 и Promise EX3850