Введение
Окинув недавно взглядом любимый раздел, мы как-то призадумались: давненько у нас не было на тестах RAID-контроллеров, особенно производства HighPoint (последний обзор, посвященный
RocketRAID 2320, был аж два с половиной года назад) и Promise (и вспоминать-то страшно). "Как-то это неправильно", – подумали мы и протестировали по одному представителю SATA RAID-контроллеров вышеназванных компаний. За компанию HighPoint выступила модель RocketRAID 3220 – не самая мощная в ассортименте, но и далеко не самая слабая: на
сайте компании она отнесена к контроллерам промышленного уровня. Конкурента мы ей подобрали вполне достойного и примерно равного по возможностям: Promise SuperTrak EX8350 относится к последнему семейству контроллеров этой компании, оснащенных поддержкой только SATA-дисков.
HighPoint RocketRAID 3220 обладает интерфейсом PCI-X, некоторое время назад считавшимся стандартом "де факто" для контроллеров такого уровня, в то время как Promise SuperTrak EX8350 оснащен интерфейсом PCI-Express, постепенно занимающим все большую долю на рынке. Впрочем, такое вытеснение вполне закономерно: PCI-Express обладает большей пропускной способностью при использовании всех шестнадцати линий, а уж с переходом на сравнительно недавно появившуюся вторую версию стандарта, обладающую вдвое большей скоростью по сравнению с первой, и вовсе обеспечит заведомо избыточную пропускную способность. А вот PCI-X для многодисковых массивов на современных винчестерах может оказаться уже недостаточно. Причем PCI-Express интереснее и с точки зрения проектирования материнских плат: его габаритные размеры меньше, а разводка проще – неудивительно, что он получил гораздо большее распространение не только в качестве разъема для видеокарт, но и на серверных материнских платах. Так что, пожалуй, эта статья будет последней, в которой мы будем говорить о контроллере с интерфейсом PCI-X, если только кто-нибудь неожиданно не выпустит на нем очень уж интересную модель.
Сразу откроем наиболее интересную особенность данного тестирования. Дело в том, что помимо сравнения контроллеров в привычных режимах (от одного до четырех дисков, массивы JBOD, RAID0, 1, 10, 5, 6), мы решили оценить производительность массивов RAID5 и RAID6 в так называемом "деградировавшем" (degraded) состоянии, то есть в том случае, когда один из дисков массива вышел из строя. Нет, конечно, мы не вырывали диски из работающего компьютера и не жгли их, а просто отключали. Таких режимов в данном тестировании набралось целых три: RAID5 с отключенным одним диском, то же самое, но в случае массива RAID6, и RAID6 с отключенными двумя дисками. Конечно, последняя ситуация на практике имеет очень мало шансов на возникновение, но если массив предусматривает выход из строя двух дисков, а мы взялись проверять такие ситуацию, то надо идти до конца.
Казалось бы, ну зачем проверять работу массива в ситуации, когда он, мягко говоря, испытывает затруднения? Самое ведь время бежать по окрестным магазинам в поисках нового диска на замену (ну или рыться в бездонных заначках). Однако, далеко не все оборудование можно вот так вот выключить в случае поломки: многие серверы работают в режиме 24/7 (двадцать четыре часа / семь дней в неделю – распространенный способ указания беспрерывной работы), и отключать их из-за замены диска чревато солидными финансовыми издержками. Тем более, если используется RAID6, выдерживающий выход из строя даже двух дисков – работа должна продолжаться, пока IT-отдел производит замену вышедшего из строя оборудования. Как говорилось в одном старом фантастическом рассказе: "В корпорации, состоявшей из десятков тысяч служащих, ежедневно кто-нибудь мог отправиться на тот свет, но нельзя же из-за этого то и дело прерывать работу".
Итак, что же происходит с деградировавшим массивом? В случае записи все не так уж и страшно: контроллер делает вид, что с массивом все в порядке, просто та часть данных, которая должна была записываться на вышедший из строя диск, не пишется вовсе. Естественно, ничего страшного в этом нет, поскольку контрольные суммы по-прежнему создаются для каждого страйпа и все записанную таким образом информацию можно прочитать. Делается это все для того, чтобы впоследствии, после замены неисправного диска, можно было бы полностью восстановить всю информацию по стандартному алгоритму, а не выяснять, какая часть записанной информации полная и требует перераспределения, а какая часть требует восстановления. В случае же чтения с деградировавшего массива появляется дополнительная нагрузка на контроллер: часть данных ведь находилась на отсутствующем жестком диске, а значит, их необходимо каждый раз при чтении восстанавливать на основе контрольных сумм. Звучит не так страшно, а ведь по сути необходимо, во-первых, считать полный страйп, в котором находились потерянные данные, а во-вторых, восстановить эти потерянные данные, выполнив для них все ту же операцию XOR. Так что производительность деградировавшего массива далеко не равна производительности массива того же типа, но изначально собранного из уменьшенного на один комплекта дисков.
В случае же, если мы нашли жесткий диск на замену и установили его вместо погибшего, RAID-контроллеру на некоторое приходится особенно плохо, поскольку, помимо всех привычных операций, ему приходится "в свободное от работы время" заполнять новый диск теми данными, которые на нем должны находиться. То есть методично перебирать весь объем данных, восстанавливая из контрольных сумм недостающие, или записывая заново контрольные суммы на установленный в качестве замены диск. Несложно догадаться, что при такой запредельной нагрузке контроллеру совсем не до чудес производительности. Впрочем, мы не садисты и в своем тестировании решили обойтись только той нагрузкой, которая возникает при выходе из строя дисков, не рассматривая нагрузку, возникающую при восстановлении массива. В конце концов, для восстановления массива всегда можно выбрать такой интервал времени, когда нагрузка минимальна, а вот выход диска из строя происходит сам по себе (и, обычно, в самый неудобный момент).
Но довольно об ужасах, мы на них еще насмотримся в ходе тестирования, давайте лучше присмотримся поближе к героям текущего обзора.
Участники тестирования
HighPoint RocketRAID 3220Как было сказано чуть выше, HighPoint RocketRAID 3220 не относится к самой мощной серии SATA RAID-контроллеров этой фирмы, поскольку есть еще серия 35ХХ, отличающаяся более мощным процессором Intel IOP341 с частотой 800 МГц (к слову: все модели той серии имеют интерфейс PCI-Express). Впрочем, процессор нашего героя тоже сравнительно неплох – Intel IOP331, работающий на частоте 500 МГц. Не так повезло нашему герою и с имеющейся памятью: на борту установлены лишь 128 МБ DDR2 с коррекцией ошибок, в то время как у старших моделей – 256 МБ (в том числе и у RocketRAID 3320, являющейся аналогом рассматриваемой нами модели, но с интерфейсом PCI-Express).
Что касается комплекта поставки, то он привычно скромен: инструкция, диск с драйверами, да два шнура, каждый из которых позволяет подключить до четырех SATA-накопителей к одному разъему на контроллере.
Несложно заметить, что таких разъемов на плате два, а значит, наш контроллер поддерживает до восьми дисков. К огромному сожалению, контроллер лишен возможности работать с батареей резервного питания, в отличие от своего аналога на PCI-Express – да, производитель вовсю намекает, что серьезным пользователям пора перебираться на новый интерфейс.
Впрочем, те, кто собирается при помощи этого контроллера произвести модернизацию старого оборудования, скорее всего останутся довольны его возможностями по построению массивов: в наличии полный ассортимент, от привычных JBOD,RAID0, RAID1, RAID10 и RAID5 до встречающихся только на мощных контроллерах серьезного уровня RAID6 и RAID50. Для особых ценителей есть даже RAID3 (интересно, сколько наших читателей сможет сходу назвать отличительные особенности этого редко используемого типа массивов?).
Ну и напоследок отметим приятную особенность контроллеров данной серии – за счет весьма плотного монтажа элементов на плате все они выполнены низкопрофильными.
Promise SuperTrak EX8350В отличие от своего противника, SuperTrak EX8350 относится к самому последнему семейству RAID-контроллеров Promise с поддержкой только SATA (то есть, без поддержки SAS-накопителей). Семейство, надо сказать, весьма большое, включающее в себя четырех-, восьми-, двенадцати- и шестнадцатипортовые модели, причем 8- и 16-портовые модели существуют и в PCI-X варианте (их обозначения отличаются тем, что они заканчиваются не на "50", а на "00"). Если рассматривать с точки зрения ресурсов, то испытуемые действительно равны: как и HighPoint RocketRAID 3220, Promise SuperTrak EX8350 оснащен 500-МГц процессором и 128 МБ буферной памяти.
Любопытно, что компания Promise предпочла использовать обычные SATA-разъемы на контроллере, в результате комплект поставки включает в себя аж восемь SATA-шлейфов. К сожалению, они оканчиваются "прямыми", а не "Г"-образными разъемами – подключать такие шлейфы и укладывать их в низкопрофильном сервере может оказаться не очень удобно, ведь порты размещены на плате контроллера очень плотно, в два этажа. Зато в комплект вошел целый набор переходников питания для жестких дисков.
Заметным преимуществом Promise SuperTrak EX8350 является поддержка батареи резервного питания, которую, при желании, можно купить отдельно.
Естественно, что, как и многие другие контроллеры этой фирмы, наш испытуемый имеет разъём для подключения информационного кабеля к корзине SuperSwap 4100 (для мониторинга скорости вращения вентилятора в корзине и температуры жёстких дисков).
Методика тестирования
Во время тестирования использовались следующие программы:
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
Контроллеры устанавливались либо в 64-битный слот PCI-X с частотой 100 МГц, либо в слот PCI-E x8, в зависимости от поддерживаемого контроллером интерфейса.
Для тестирования использовались жесткие диски Western Digital WD740GD (Raptor2), установленные в штатные салазки корпуса SC5200 и закрепленные в них четырьмя винтами за нижнюю грань. Контроллеры тестировались с использованием четырех жестких дисков в режимах:
RAID0 – на двух, трех и четырех дисках;
RAID1 – на двух дисках;
RAID10 – на четырех дисках;
RAID5 – на трех и четырех дисках, а также на четырех дисках в деградировавшем виде;
RAID6 – на четырех дисках и в вариантах с деградировавшим массивом при уменьшении его на один и на два диска.
В процессе тестирования контроллеры устанавливались в режим максимальной производительности "Perfomance" – в этом режиме отложенная запись и упреждающее чтение разрешены как для контроллера (в его собственную буферную память при ее наличии) так и для самих дисков. Не забывайте, что данный режим настоятельно рекомендуется не использовать без резервного питания, поскольку иначе очень велик риск при сбое питания потерять данные.
IOMeter: Database
Начнем с, пожалуй, наиболее интересного с точки зрения нагрузки на контроллер, теста – "Database". С его помощью мы выясняем способность контроллеров работать с потоками запросов на чтение и запись 8-кБ блоков данных со случайной адресацией. В ходе тестирования происходит последовательное изменение процентного соотношения запросов на запись от нуля до ста процентов (с шагом 10 %) от общего количества запросов и увеличение глубины очереди команд от 1 до 256.
Численные результаты измерений здесь и далее вы можете, при желании, увидеть в соответствующих таблицах, мы же будем работать с графиками и диаграммами.
Таблицы с результатами тестирования вы можете посмотреть по следующей ссылке:
Результаты IOMeter: Database, RAID1+RAID10
Результаты IOMeter: Database, RAID0
Результаты IOMeter: Database, RAID5
Результаты IOMeter: Database, RAID6
Рассмотрим диаграммы с результатами для глубин очереди команд, равных 1, 16 и 256.
Контроллер HighPoint на минимальных нагрузках выглядит заметно сильнее: он и с одиночным диском справляется лучше, и на зеркальных массивах RAID1 и RAID10 демонстрирует большую, чем у конкурента, производительность. Надо сказать, что с массивом RAID1 у Promise вообще сложилась ситуация не из лучших – на смешанных нагрузках, когда запросы на запись составляют от 25 до 75 %, массив RAID1 оказывается медленнее одиночного диска, что говорит о определенных недоработках в алгоритмах работы контроллера.
С массивами RAID0 оба контроллера на минимальной нагрузке справились достаточно хорошо, хотя и по-разному: HighPoint лучше в ситуациях, когда поступают только запросы на запись, а Promise чуть быстрее справляется с нагрузкой, в которой есть незначительное количество запросов на чтение.
С массивами RAID5 у обоих контроллеров наблюдаются некоторые проблемы. Так, у HighPoint массив из трех дисков неожиданно оказывается более производительным по сравнении с массивом на четырех дисках. Конечно, выигрыш невелик, но заставляет задуматься о том, какую производительность продемонстрируют массивы из еще большего количества дисков. У Promise оба массива идут практически вровень, но вот при преобладании запросов на запись с ними начинают происходит необъяснимые коллизии, выражающиеся в значительном снижении производительности.
Обратите внимание, насколько заметно падает производительность у деградировавших массивов – "четыре диска минус один" совсем не равны массиву из трех дисков.
На графиков массивов RAID6 плавных линий уже нет, но в целом, сравнить массивы все же можно. В нормальном состоянии Promise справляется ощутимо лучше, проигрывая конкуренту лишь в случае "чистой" записи. Более того, при преобладании запросов на чтение даже его деградировавший на один диск массив оказывается лучше обычного RAID6-массива на HighPoint. Но у Promise мы снова видим проблемы при преобладании запросов на запись – возможно, его процессор не справляется с нагрузкой в виде XOR из-за каких-то особенностей прошивки.
В случае же, когда у нас выходят из строя сразу два диска в массиве, HighPoint вполне способен побороться с Promise, а из-за проблем последнего – на записи и вовсе заметно превзойти его.
Увеличение нагрузки до 16 запросов в очереди приводит к тому, что HighPoint с огромным отрывом побеждает за зеркальных массивах. Проигрыш контроллера Promise при преобладании запросов на чтение настолько велик, что создается впечатление, что у него очень большие проблемы с переупорядочиванием запросов на зеркальных массивах – объяснить чем-либо еще такой провал в левой части графиков невозможно.
На RAID0 у контроллера Promise снова проблемы на всех нагрузках, кроме тех случаев, когда преобладают запросы на запись. Конечно, они не настолько большие, как мы только что видели на зеркальных массивах, но весьма заметные. Особенно плохо этому контроллеру удается смешанная нагрузка при примерно равном количестве запросов на запись. Что это, неумение пользоваться имеющейся буферной памятью? А ведь при благоприятных условиях контроллеры практически равны – это несложно заметить, посмотрев на правую часть диаграммы. Да, важны не только частота процессора и объем памяти, но и алгоритмы работы – и в данном случае компании Promise их лучше пересмотреть.
С массивами RAID5 HighPoint также справляется несколько лучше своего конкурента. Впрочем, у обоих контроллеров наблюдается одна и та же особенность: при преобладании запросов на запись массивы из трех дисков оказываются быстрее, чем четырехдисковые. Видимо, мощности 500-МГц процессора все же несколько недостаточно, чтобы справиться с четырьмя жесткими дисками со скоростью вращения пластин 10000 об./мин.
Что же касается деградировавших массивов, то они снова заметно хуже, чем просто массивы того же типа из трех дисков. Особенно велики потери на контроллере HighPoint.
А вот в RAID6 при нормальных условиях работы заметно лучше оказывается уже Promise, особенно заметно его превосходство при преобладании запросов на чтение. А вот в случае деградировавших массивов HighPoint обгоняет Promise на операциях записи, хотя все еще проигрывает на чтении. Любопытно, что HighPoint гораздо менее болезненно, чем конкурент, переживает выход из строя одного диска.
Дальнейшее увеличение нагрузки до 256 запросов в очереди приводит к тому, что HighPoint заметно увеличивает свою производительность на операциях чтения. А вот Promise, к сожалению, по-прежнему демонстрирует очень и очень скромные результаты, особенно плохо переживая смешанную нагрузку. Похоже, что у него действительно большие проблемы с очередью запросов.
Все те же проблемы с чтением и, в особенности, со смешанной нагрузкой у Promise на RAID0. В результате в некоторых случаях производительность его четырехдискового массива такая же, как у конкурента на двух дисках. Печальный результат, что тут еще скажешь.
На RAID5 картина практически не изменилась: по-прежнему лидирует HighPoint, у массивов из четырех дисков все те же проблемы с производительностью при преобладании запросов на запись.
А вот в RAID6 картина, в общем, тоже осталась прежней, но зато характерные моменты стали видны гораздо ярче. Так, полноценный массив у Promise заметно быстрее на чтении, но серьезно проседает на смешанной нагрузке. HighPoint же демонстрирует заметно большую, по сравнению с конкурентом, производительность на обоих деградировавших массивах.
IOMeter: Disk Response Time
Для измерения времени отклика мы в течении десяти минут при помощи IOMeter отправляем на накопитель поток запросов на чтение или запись блоков данных по 512 байт при глубине очереди исходящих запросов, равной единице. Количество запросов, обработанных накопителем, превышает шестьдесят тысяч, так что мы получаем устоявшееся время отклика накопителя, не зависящее от объема буферной памяти.
На чтении с зеркальных массивов HighPoint оказался явно лучше. Правда, при этом на одиночном диске он умудрился продемонстрировать худший результат, причем с довольно значительным отставанием.
На записи ситуация проще: во всех случаях HighPoint демонстрирует меньшее время отклика, более эффективно работая с запросами.
А вот в RAID0 на чтении заметно лучше во всех случаях Promise, при этом на записи он так же стабильно на всех трех типах массивов проигрывает.
В RAID5 ситуация схожая с RAID0: контроллер Promise явно лучше на чтении и заметно хуже на записи – похоже, что у HighPoint контроллер действительно быстрее обрабатывает запросы на запись. Обратите внимание на результаты деградировавших массивов: оба сохранили время отклика при записи (что, в общем, неудивительно: с точки зрения контроллера ситуация не изменилась), но при этом ощутимо увеличили время отклика на чтении.
На более сложном массиве RAID6 Promise также значительно лучше конкурента на чтении. У контроллера HighPoint, кстати, наблюдается странное поведение: время отклика деградировавшего массива без одного диска хуже, чем у массива без двух дисков. На записи же HighPoint по-прежнему лучше, причем особенно хорошо это видно на деградировавших массивах. Любопытно, что на этом типе массива деградация на обоих контроллерах приводит к ощутимому увеличению времени отклика не только при чтении, но и при записи.
IOMeter: Random Read & Write
Оценим теперь зависимости производительности контроллеров в режимах чтения и записи с произвольной адресацией от размера используемого блока данных.
Результаты, полученные при работе со случайной адресацией данных, рассмотрим в двух вариантах, в соответствии с обновленной методикой. На блоках малого размера построим зависимости количества операций в секунду от размера используемого блока. А на больших блоках вместо количества операций возьмем в качестве критерия производительности скорость в мегабайтах в секунду. Напомню, что такой подход позволяет оценить работу массивов сразу в двух типичных случаях нагрузки: работа малыми блоками характерна для баз данных и для нее более важно количество операций в секунду, чем привычная скорость; а вот работа большими и очень большими блоками близка к реальной работе с файлами малых размеров и здесь уже на первый план выходит именно скорость в привычных мегабайтах в секунду.
Начнем с чтения.
Результаты IOMeter: Random Read, операций/с На малых блоках в зеркальных массивах HighPoint оказывается несколько быстрее. Любопытно, что при этом на совсем малых блоках на одном диске быстрее оказывается все же Promise.
Со случайным чтением малыми блоками в массивах RAID0 происходит что-то странное: у Promise неожиданно самым быстрым массивом оказывается двухдисковый, а у HighPoint – трехдисковый. Впрочем, все шесть массивов демонстрируют очень схожие результаты, по итогам которых Promise выигрывает исключительно "по очкам" – похоже, что в данном случае производительность обоих контроллеров упирается в их способности по обработке столь большого количества блоков малого размера.
В RAID5 снова лучшим оказывается Promise, причем настолько, что даже деградировавший массив на нем работает лучше, чем обычные массивы на HighPoint. Кстати, обратите внимание, насколько сильно снижают производительность деградировавшие массивы.
Ситуация в RAID6 схожа с виденной в RAID5: снова Promise лучше.
Результаты IOMeter: Random Read, МБ/с Упс. А вот с чтением большими блоками у HighPoint явные проблемы, как минимум на зеркальных массивах. В результате RAID10 на этом контроллере проигрывает одиночному диску, причем более чем заметно.
В RAID0 Promise демонстрирует пусть не идеальную, но все же неплохую масштабируемость, а вот HighPoint… он демонстрирует лишь огромные проблемы с чтением большими блоками: на всех трех массивах производительность чудовищно низкая.
В RAID5 Promise поведение имеет странное и необъяснимое: деградировавший массив оказывается быстрее массива из трех дисков. У контроллера HighPoint дела без перемен – все те же проблемы с очень низкой производительностью.
В RAID6 Promise продолжает показывать чудеса: на очень больших блоках деградировавшие массивы оказываются быстрее нормального! Интересно, что разница производительности массивов, лишившихся одного диска и двух, весьма невелика. У HighPoint результаты схожие по сути, но более объяснимые: такое впечатление, что деградирование массивов на нем приводит к выравниванию их производительности до более-менее приличного уровня (хотя, конечно, соперника догнать они не могут в принципе).
Ну а теперь посмотрим, что у нас происходит на записи.
Результаты IOMeter: Random Write, операций/с Совсем мелкие блоки в зеркальных массивах быстрее пишет HighPoint, а вот с более крупными лучше справляется уже Promise.
Та же расстановка сил сохраняется и в RAID0. Приятно, что оба контроллера демонстрируют неплохую масштабируемость.
В RAID5 массивы из трех дисков у обоих контроллеров неожиданно оказываются чуть быстрее, чем из четырех дисков. Деградировавшие массивы демонстрируют очень близкую к обычным производительность – теория наглядно подтверждается практикой. Во всех случаях HighPoint заметно быстрее конкурента.
А вот в RAID6 деградировавшие массивы оказываются уже заметно медленнее нормальных, причем массивы без двух дисков работают еще медленнее, чем массивы без одного диска. Видимо, в массивах этого типа при деградировании контроллер все же меняет свои алгоритмы и получает большую нагрузку. И снова HighPoint значительно опережает Promise.
Результаты IOMeter: Random Write, МБ/с При записи на зеркальные массивы Promise значительно лучше относится к блокам очень большого размера – с увеличением размер блока он догоняет, а потом и обходит конкурента.
В RAID0 у контроллера HighPoint наблюдаются какие-то проблемы – двухдисковый массив на некоторых блоках оказывается быстрее трехдискового и вообще демонстрирует рекорды скорости. В целом же Promise оказывается лучше конкурента (а главное, ведет себя гораздо более предсказуемо).
В RAID5 у обоих контроллеров деградировавший массив оказывается быстрее, чем трехдисковый, и лишь чуть отстает от полного четырехдискового. Promise без проблем переживает блоки любых размеров, а вот у контроллера HighPoint на очень больших блоках вылезают явные проблемы прошивки.
В RAID6 ситуация почти такая же – у HighPoint проблемы на очень больших блоках, деградировавшие массивы выступают практически вровень с нормальными.
IOMeter: Sequential Read & Write
Ну что ж, пора оценить способности контроллеров в последовательных операциях. В данном тесте на накопители подается поток запросов с глубиной очереди команд, равной четырем. Раз в минуту размер блока данных увеличивается. В итоге мы получаем возможность проследить зависимость линейных скоростей чтения и записи массивов от размеров используемых блоков данных и оценить максимальные достижимые скорости.
Результаты IOMeter: Sequential Read
Результаты IOMeter: Sequential Write
Ох, какая свистопляска у обоих контроллеров в зеркальных массивах на чтении. В случае контроллера HighPoint мы видим очень сильную зависимость скорости от размеров блока: в идеальном случае он бы, конечно, продемонстрировал скорости на уровне конкурента, но вот по факту у него это получается лишь на некоторых блоках определенного размера. Впрочем, с уверенностью можно сказать одно: HighPoint явно лучше работает с блоками очень малого размера – по всей видимости, он умеет склеивать несколько запросов малыми блоками в один большой. У контроллера Promise другая проблема – он неожиданно очень плохо работает с одним диском. Впрочем, вряд ли кто-то будет брать его для таких целей.
В RAID0 ситуация уже попроще: оба контроллера демонстрируют на больших блоках хорошую масштабируемость и практически одинаковые скоростные возможности. Обратите внимание, что HighPoint снова заметно быстрее работает с блоками очень маленького размера.
В RAID5 у HighPoint снова начинается зависимость от размера блока, в результате он лишь на очень маленьких блоках обгоняет соперника (похоже, что эту особенность драйверов он пронесет через весь набор тестов), а в остальное время ему очень сильно проигрывает. Интересно, что у Promise деградировавший массив выступает практически вровень с нормальным (причем не из трех дисков, а из четырех), в то время как у HighPoint деградировавший массив заметно хуже нормальных.
А вот в RAID6 уже практически все массивы демонстрируют очень сильную зависимость скорости чтения от размера блока – только Promise без двух дисков избежал этой печальной участи.
На записи же в зеркальных массивах оба контроллера "ведут себя прилично". В итоге HighPoint отличился большими скоростями на малых блоках, а Promise – большими максимальными скоростями.
А вот на записи в RAID0 у контроллера HighPoint снова начались "американские горки", правда, только на четырехдисковом массиве. С масштабируемостью снова все в порядке у обоих контроллеров, но вот максимальные скорости массивов на Promise во всех случаях больше, чем у конкурента.
В RAID5 Promise опять демонстрирует чуть большие максимальные скорости. Что же касается деградировавших массивов, то они работают практически со скоростью оригинала.
Похоже, что в RAID6 Promise обожает демонстрировать странное: в этот раз оба варианта деградировавших массивов оказываются быстрее нормального.
IOMeter: Multi-thread Read & Write
Данный тест позволяет оценить поведение контроллеров при многопоточной нагрузке. В ходе него эмулируется ситуация, когда с накопителем работает от одного до четырех приложений, причем количество запросов от них изменяется от одного до восьми, а адресные пространства каждого приложения, роли которых выполняют worker-ы в "IOMeter", не пересекаются.
При желании, вы можете увидеть таблицы с результатами тестирования по соответствующим ссылкам, а мы же в качестве наиболее показательных, рассмотрим диаграммы записи и чтения для ситуаций с глубиной очереди в один запрос, поскольку при количестве запросов в очереди равном двум и более значения скоростей практически не зависят от количества приложений.
Результаты IOMeter: Multi-tread Read, RAID0
Результаты IOMeter: Multi-tread Read, RAID1+RAID10
Результаты IOMeter: Multi-tread Read, RAID5
Результаты IOMeter: Multi-tread Read, RAID6
Результаты IOMeter: Multi-tread Write, RAID0
Результаты IOMeter: Multi-tread Write, RAID1+RAID10
Результаты IOMeter: Multi-tread Write, RAID5
Результаты IOMeter: Multi-tread Write, RAID6
Пожалуй, более наглядно продемонстрировать особенности алгоритмов при многопоточном чтении было бы невозможно. Если Promise при увеличении числа потоков на чтение с зеркальных массивов просто снижает скорость почти в два с половиной раза, то HighPoimt явно умеет направлять два потока на два разных диска в зеркале. В результате у последнего на двух потоках скорость в зеркальных массивах возрастает вдвое, по сравнению с одним потоком. При дальнейшем увеличении количества потоков скорость у него несколько падает, но все равно остается на уровне сравнимом со скоростью при одном потоке запросов.
На одном потоке чтения с RAID0 HighPoint великолепен, в то время как Promise, мягко говоря, демонстрирует очень низкие скорости. Однако с увеличением числа потоков их возможности практически уравниваются. Кстати, обратите внимание, какое маленькое преимущество имеют массивы из большего числа дисков – в данном случае, производительность масштабируется как-то ну очень уж скромно.
В RAID5 у нас творится что-то странное. На одном потоке неожиданно хорошо ведет себя лишь деградировавший массив на Promise, в то время как все остальные, откровенно говоря, не зажигают. С увеличением числа потоков к нему присоединяется с деградировавший массив на HighPoint.
На RAID6 деградировавшие массивы на Promise снова демонстрируют чудеса производительности, особенно на одном потоке. Какая-то ненормальная ситуация, не находите?
С многопоточной записью на зеркала явно лучше справляется HighPoint – он попросту отказывается снижать скорость. Promise неплохо держится на двух потоках, но вот дальнейшее увеличение из количества уже вынуждает его снизить скорость.
В RAID0 ситуация та же: Promise отлично справляется с двумя потоками, но при трех и более снижает скорость, а вот HighPoint на увеличение количества потоков не реагирует.
Похоже, что два потока действительно являются максимум возможностью контроллера HighPoint на записи. Обратите внимание на поведение деградировавших массивов – они выступают практически вровень с нормальными.
В RAID6 на записи все то же самое – предел в два потока у Promise, не реагирующий на количество потоков HighPoint и выступающие вровень снормальными дегрдировавшие массивы.
IOMeter: Webserver, Fileserver и Workstation
В данной группе тестов накопители тестируются под нагрузками, характерными для серверов и рабочих станций.
Напомню, что в "Webserver" и "Fileserver" эмулируется работа накопителя в соответствующих серверах, в то время как в "Workstation" мы имитируем работу накопителя в режиме типичной нагрузки для рабочей станции, с ограничением максимальной глубины очереди в 32 запроса. Естественно, что "Webserver" и "Fileserver" – не более чем собирательные названия; первый будет весьма схоже эмулировать нагрузку любого сервера, работающего, фактически, только с запросами на чтение, а второй – сервера с преобладанием запросов на чтение, но при этом с определенной, заметно отличной от нуля долей запросов на запись.
Результаты IOMeter: Fileserver
Результаты IOMeter: Webserver
Результаты IOMeter: Workstation
Результаты IOMeter: Workstation, 32 ГБ
На зеркальных массивах в "Fileserver" у Promise нет шансов – он проигрывает на всех типах массивов. Интересно, что если у него RAID1 и одиночный диск имеют равную производительность, то у HighPoint массив RAID1 гораздо быстрее одиночного диска – похоже, что этот контроллер умеет обращаться за данными именно к тому диску, который их может предоставить быстрее.
В RAID0 на этой нагрузке также стабильно лидирует HighPoint.
Да и в RAID5 лидером все так же является HighPoint. Любопытно, что у него и потери от деградирования массива больше, чем у конкурента.
В RAID6 победителем вновь становится HighPoint. Кстати, его потери производительности от деградирования массивов хоть и опять выше, чем у конкурента, но большой запас прочности (а точнее, производительности исходного массива) позволяет ему сохранить лидерство.
Переход к другой нагрузке, в которой нет запросов на запись, лишь увеличил первосходство контроллера HighPoint.
На RAID0 лидер все тот же, даже уже и говорить об этом как-то неудобно.
На RAID5 у HighPoint чуть хуже масштабирование, чем у конкурента, но и это не может скинуть его с пьедестала. Обратите внимание, что насколько серьезно снижение производительности у деградировавших массивов.
На нормальных массивах RAID6 лидер все тот же, а вот на деградировавших при малых нагрузках Promise все же умудряется несколько превзойти конкурента. И снова огромное падение производительности на деградировавших массивах, масштабы "падения" заметно больше, чем на RAID5 – естественно, ведь и считать приходится гораздо больше.
Очередная смена нагрузки по-прежнему не способна сменить расстановку сил – преимущество контроллера HighPoint просто огромно.
Ну вы уже и сами знаете, кто в очередной раз стал лидером, ну о чем тут можно еще говорить?
Не изменилась картина и в RAID5…
А вот здесь есть один интересный момент. Обратите внимание, что с увеличением глубины очереди производительность деградировавших массивов RAID6 на Promise не только не растет, но даже снижается. То есть, чем больше нагрузка на массив, тем хуже результаты он показывает.
На уменьшенной доступной для теста области результаты "Workstation" практически не меняются, так что оставим их без дополнительных комментариев.
FC-Test
Следующим в нашей программе идет FileCopy Test. На накопителе создается два раздела по 32 ГБ, размечаемые на двух этапах тестирования сначала в NTFS, а затем в FAT32, после чего на разделе создается определенный набор файлов, считывается, копируется в пределах раздела и копируется с раздела на раздел. Время всех этих операций фиксируется. Напомним, что наборы "Windows" и "Programs" включают в себя большое количество мелких файлов, а для остальных трех наборов ("MP3", "ISO" и "Install") характерно меньшее количество файлов более крупного размера, причем в "ISO" используются самые большие файлы.
Хотелось бы обратить ваше внимание на то, что тест копирования не только говорит о скорости копирования в пределах одного накопителя, но и позволяет судить о его поведении под сложной нагрузкой. Фактически, во время копирования накопитель одновременно работает с двумя потоками, причем один из них на чтение, а второй на запись.
Поскольку результатов довольно много, то мы будем подробно рассматривать лишь значения, достигнутые на наборах файлов"Install", "ISO" и "Programs" в NTFS, являющихся более характерными для обычного использования массивов. Остальные результаты, вы, прижелании, можете узнать из таблиц ниже:
Результаты FC-Test: NTFS, RAID1+RAID10
Результаты FC-Test: NTFS, RAID0
Результаты FC-Test: NTFS, RAID5
Результаты FC-Test: NTFS, RAID6
Результаты FC-Test: FAT32, RAID1+RAID10
Результаты FC-Test: FAT32, RAID0
Результаты FC-Test: FAT32, RAID5
Результаты FC-Test: FAT32, RAID6
С созданием файлов на зеркальных массивах явно лучше справился Promise. Особенно хорошо это видно на RAID10, который у Promise имеет вполне приличную скорость, а вот у HighPoint, наоборот, демонстрирует неожиданно низкие результаты. Впрочем, у Promise мы снова видим проблему со скоростью работы одного диска – не страшно, но осадочек оставляет.
На RAID0 расстановка сил проста и понятна: HighPoint стабильно лучше создает большие файлы, а Promise – маленькие.
А вот в RAID5 все строго наоборот: HighPoint лучше на малых файлах, а Promise на больших. Обратите внимание, что при работе с файлами деградировавшие массивы не так уж и сильно снижают скорость.
В RAID6 расстановка сил такая же, как и в RAID5, но с одним странным моментом. Снова отличился Promise с деградировавшими массивами: на больших файлах они быстрее, чем нормальный массив. Это что ж такое надо было написать в прошивке?
С чтением с зеркальных массивов все не так и просто. У HighPoint явно не удался RAID10, а у Promise – RAID1. И снова маленькая странность: одиночный диск на HighPoint стабильно работает быстрее, чем массив RAID1. Неужели контроллер ждет, пока данные гарантированно запишутся на оба диска?
Если у HighPoint все в порядке с чтением c RAID0, то про Promise этого сказать нельзя – все массивы обладают очень схожей скоростью. Вот и надейся после такого на масштабируемость…
В RAID5 однозначно лучше читает Promise. Что удивительно, особенно хорошо ему это удается делать на деградировавшем массиве. Нет, все же у этого контроллера какие-то явно волшебные алгоритмы.
По всей видимости, те же волшебные алгоритмы действуют у Promise и на чтении в RAID6 (на самом деле, конечно, это проблемы у обоих контроллеров в обычных режимах, причем весьма немаленькие, судя по скромным результатам). Похоже, что владельцам этого контроллера надо на RAID6 вынимать один диск сразу после создания массива…
О, а на копировании HighPoint неожиданно "вспомнил", что массиву RAID10 полагается быть быстрее, чем RAID1. Правда, достойные результаты мы видим лишь на очень больших файлах. У Promise же по-прежнему как раз только RAID10 более-менее нормально и работает.
В RAID0 на больших файлах вперед заметно вырывается HighPoint, но вот на маленьких Promise идет с ним практически вровень.
В RAID5 у нас снова чудеса, в виде феноменально хороших результатов деградировавших массивов (точнее, феноменально низких результатов обычных массивов). Правда, на этот раз к привычному фокуснику в лице контроллера Promise присоединился и HighPoint.
Не прекращаются "чудеса" и на RAID6, причем Promise в данном плане явно "опережает" своего соперника.
Увеличение дальности копирования практически не меняет расстановку сил – все остаются на своих местах, никуда не деваются и причуды производительности на массивах RAID5 и RAID6.
WinBench 99
Ну и в завершение – привычные графики чтения в "WinBench 99".
График чтения HighPoint RR3220, 1 диск
График чтения HighPoint RR3220, RAID1, 2 диска
График чтения HighPoint RR3220, RAID10, 4диска
График чтения HighPoint RR3220, RAID0, 2 диска
График чтения HighPoint RR3220, RAID0, 3 диска
График чтения HighPoint RR3220, RAID0, 4 диска
График чтения HighPoint RR3220, RAID5, 3 диска
График чтения HighPoint RR3220, RAID5, 4 диска
График чтения HighPoint RR3220, RAID5, 4 диска минус один
График чтения HighPoint RR3220, RAID6, 4 диска
График чтения HighPoint RR3220, RAID6, 4 диска минус один
График чтения HighPoint RR3220, RAID6, 4 диска минус два
График чтения Promise EX8350, 1 диск
График чтения Promise EX8350, RAID1, 2 диска
График чтения Promise EX8350, RAID10, 4диска
График чтения Promise EX8350, RAID0, 2 диска
График чтения Promise EX8350, RAID0, 3 диска
График чтения Promise EX8350, RAID0, 4 диска
График чтения Promise EX8350, RAID5, 3 диска
График чтения Promise EX8350, RAID5, 4 диска
График чтения Promise EX8350, RAID5, 4 диска минус один
График чтения Promise EX8350, RAID6, 4 диска
График чтения Promise EX8350, RAID6, 4 диска минус один
График чтения Promise EX8350, RAID6, 4 диска минус два
Сравним накопители по продемонстрированным скоростям чтения в начале и конце получившихся разделов:
В зеркальных массивах все вполне ожидаемо, только HighPoint продемонстрировал неожиданно чуть худшие результаты в RAID1.
В RAID0 все графики, и, соответственно, скорости, именно такие, какие и должны быть.
В RAID5 HighPoint неожиданно показал очень скромные результаты на деградировавшем массиве, все же остальное – в пределах нормы.
В RAID6 у HighPoint снова проблемы с деградировавшими массивами, причем абсолютно одинаковые как с массивом без одного диска, так и с тем, которые обходится без двух дисков.
Подведение итогов
Оба героя нашего обзора обладают целым набором ярких особенностей – и очень неплохо знать эти особенности перед тем, как принимать решение о покупке контроллера под ту или иную нагрузку. Так, контроллеру Promise SuperTrak EX8350 явно лучше удались массивы RAID6, многопоточное чтение и операции с файлами, в то время как производительность под типично серверной нагрузкой оказалась далеко не самая лучшая. Не все в порядке у него и с многопоточной записью – больше двух потоков одновременно на EX8350 лучше не отправлять. Зато у него меньше падение производительности при выходе дисков из строя и есть возможность установить батарею резервного питания кэша, что для многих может оказаться серьезным плюсом. HighPoint RocketRAID 3220, напротив, весьма неплохо справился с серверной нагрузкой и многопоточной записью, зато продемонстрировал некоторые затруднения при работе с файлами, в деградировавших массивах RAID5 и RAID6 и при работе с очень большими блоками. На последовательных же операциях оба контроллера совсем не блестали, и мы бы рекомендовали тем, кому важен именно этот тип нагрузки, обратить свое внимание на другие модели. В общем, обоим производителям есть над чем поработать, нам же хочется надеяться, что другие их контроллеры (например, относящиеся к выходившим позже сериям с поддержкой SAS) лишены указанных недостатков.
Что же касается работы контроллеров с деградировавшими массивами, то, конечно же, потери производительности есть, и местами довольно значительные. Больше всего, как и следовало ожидать, страдает производительность чтения с таких "полумертвых" массивов, так что скорость реакции всевозможных баз данных на действия пользователей явно снизится. Однако, если этот фактор учесть заранее и предусмотреть определенный запас производительности, то и на массивах с вышедшими из строя дисками вполне можно жить и работать. Главное – не оставлять их в таком виде, а по возможно быстро восстановить – а то ведь, по известному закону подлости, выход из строя еще одного диска может произойти гораздо раньше, чем этого можно было бы ожидать по статистической вероятности.
Возможно, это один из последних обзоров RAID-контроллеров по данной методике. Нет, мы не собираемся менять набор тестов или вовсе отказываться от тестов, просто… Современные серверы все больше переходят на SAS-винчестеры с большими скоростями вращения пластин и, соответственно, меньшими временами отклика и большей производительностью. Даже "обычные" диски уже шагнули за порог 100 МБ/с по скорости линейных операций, появились не очень дорогие, но очень быстрые Western Digital VelociRaptor... В общем, мы всерьез задумались о смене тестовой платформы, поскольку наших довольно старых WD Raptor2 уже несколько недостаточно, чтобы основательно нагрузить мощные современные контроллеры.
Другие материалы по данной теме
Сравнительное тестирование RAID-контроллеров Adaptec
Тестирование RAID-контроллера 3Ware 9650SE
Обзор RAID-контроллера Areca ARC-1220