HighPoint RocketRAID 404

Автор: niknik
Дата: 26.07.2002
Все фото статьи

Контроллер


Интересно, но в отличие от компании Promise (которая выпустила свой FastTRAK100 TX4 чуть раньше) инженеры HighPoint, увеличив количество каналов контроллера до четырёх, не лишили контроллер возможности работы с двумя винчестерами на шлейфе. Получилось, что четырёхканальный RocketRAID 404 может работать с восемью винчестерами! Однако, не спешите кричать "ура". Памятуя о проблеме "одного шлейфа", инженеры HighPoint разрешили контроллеру RR404 объединять восемь винчестеров только в RAID0, запретив поддержку RAID 01 для шести и восьмивинчестерной конфигураций.

Контроллер поддерживает горячую замену отказавшего винчестера в массиве на резервный (hot spare) и отключение/подключение винчестеров "на лету" (hot swap), но при условии использования правильного HS-mobile rack-а. О правильных mobile rack (в том числе и о RocketMate, рекомендуемой самой HighPoint) можно прочесть в нашей статье, посвящённой mobile rack-ам...

Сам контроллер выглядит следующим образом:

HighPoint RocketRAID 404

На фотографии отлично виден чип HPT374 - "серце" контроллера, микросхема BIOS, "аварийный" динамик и гребёнка контактов для индикаторов работы винчестеров. Неплохо получились и четыре разъёма для подключения IDE-шлейфов. :)

Контроллер поставляется в довольно крупной зелёной коробке:

Коробка и комплект поставки

В комплект поставки контроллера кроме него самого входят:

руководство пользователя
дискеты с драйверами и утилитами
4 IDE-шлейфа на два устройства каждый

Спецификации RocketRAID 404:

Спецификации RocketRAID 404
 Host side interface  32bit 33 MHz PCI Bus
  Device side interface  ATA133
  RAID controller IC HPT 374
  Number of IDE channels 4 Channels
  Maximum number of drives 8 hard disk drives
  Supported Hard drives  Up to ATA133
  Supported RAID Levels  JBOD, RAID 0, RAID 1, RAID 0+1
  Supported OSs Windows 98/ME, Windows NT4.0, Win2000, Linux (SuSE, Red Hat, Caldera, Turbo)
  Additional Features: Bootable disk or disk array support
  Disk hot spare for automatic mirror rebuilding
  Hot-swapping failed hard drives for RAID 1 or 0/1
  Error alarm with on-card beeper


Тестовая система и методика тестирования


Четырёхканальный контроллер HighPoint RocketRAID 404 тестировался по той же методике, что и двухканальные контроллеры (не претерпела изменений и тестовая система), что позволит мне в дальнейшем сравнить результаты двух и четырёхканальных контроллеров между собой.

Контроллер HighPoint RocketRAID 404 тестировался с BIOS 1.21 на драйверах 1.21.

Winbench


Первый наш тест - Winbench99. Как мы помним из обзора RocketRAID 133, результаты контроллеров HighPoint в тесте Winbench весьма высоки, поэтому ничему не удивляйтесь. :)
Результаты RR404 в Winbench99 (FAT32)

Если обратить внимание на результаты массивов в приложениях, то мы увидим, что при работе с небольшими файлами скорость RAID0-массивов немного меньше, чем скорость одиночного диска, а при работе с большими файлами скорость RAID0-массивов ощутимо превышает скорость одиночного винчестера.
Если же посмотреть на результаты


То мы увидим, что на скорость в Business-тесте объединение винчестеров в RAID-массив влияет отрицательно. :)
Ну а в тесте High-End, наоборот, скорость массивов сильно зависит от его типа и, в случае RAID0, от количества винчестеров в нём.




Под NTFS абсолютные значения результатов меньше, чем под FAT32, но тенденция, которую мы видели под FAT32, проявляется и здесь. То есть на результаты в High-End-тесте тип массива и количество винчестеров в нём влияет в большей степени, чем на результат в Business-тесте.

Графики линейного чтения

JBOD
RAID1
RAID0 2HDD
RAID0 3HDD
RAID0 4HDD
RAID01

IOMeter: Database


В этом полусинтетическом паттерне мы исследуем поведение драйверов контроллера при изменении соотношения операций чтения и записи при различных вариантах нагрузки. Размер блока данных равен 8КБ.


Хорошая таблица, не правда ли? :)
Хотите посчитать, сколько времени работал стенд, чтобы эта таблица была построена? Алгоритм очень прост: каждая клеточка с цифрой - 10 минут...

Таблицы - это, конечно, хорошо, но нагляднее всего результаты можно представить в виде диаграмм:


При глубине очереди команд в один запрос скорости различных массивов начинают различаться только при существенной доле операций записи от общего числа.
Скорость RAID1-массива аналогична скорости одиночного диска (JBOD), а RAID01 аналогичен по скорости RAID0 из двух дисков.



Увеличение глубины очереди команд до 16-ти кардинально меняет картину. Мне даже некуда было вставить "легенду" - так плотно расположились на диаграмме графики...
Обратите внимание - графики RAID0-массивов с различным количеством дисков выстроились "террасами", причём, судя по виду графиков, при увеличении количества винчестеров скорость работы массива не ограничивается контроллером. Наоборот, массив из четырёх винчестеров при доле операций записи в 80 процентов решил выпрыгнуть за пределы диаграммы, но, видимо испугавшись, сильно упал при работе в режиме RandomWrite.
Весьма любопытно также поведение RAID1-массива. В режиме RandomRead (т.е. когда доля операций записи=0) скорость RAID1-массива вдвое превышает скорость работы одиночного диска (т.е. запросы на чтение чередуются на оба винчестера в массиве), но по мере увеличения доли операций записи, скорости этих двух массивов сближаются. Всё правильно: увеличивается доля операций записи и, соответственно, уменьшается доля операций чтения. Всё меньшее количество запросов можно "распараллеливать" на оба винчестера массива и скорость RAID1 приближается к скорости одиночного диска. В режиме RandomWrite чередовать запросы на чтение не удаётся (их просто нет), и скорости RAID1 и JBOD абсолютно одинаковы.
Что интересно, к массиву RAID01 применять ту же технику программисты HighPoint не стали... Странно, ведь RAID01 - то же зеркало, но только его элементы не отдельные винчестеры, а страйп-группы из двух винчестеров (а в общем случае n-винчестеров). Так и получилось, что скорость RAID01-массива равна скорости одной страйп-пары (RAID0 на двух винчестерах).



При такой глубине очереди команд можно быть уверенным, что все запросы уже отсортированы, и контроллер показывает максимально возможную скорость работы с каждым массивом (правда, в спецификациях некоторых SCSI-контроллеров я видел упоминание о глубине очереди команд в 512 запросов...).
Из этой диаграммы мы видим, что RAID1 всегда быстрее одиночного винчестера, кроме режима RandomWrite, а скорость RAID01 равна скорости RAID0 на двух дисках.

IOMeter: SequentialRead


Второй синтетический паттерн - последовательное чтение. В нём на контроллер посылаются запросы на чтение (queue=4), причём размер запроса изменяется от 512байт до 1МБ.


Разобьем результаты этого паттерна на две группы. В первой группе мы сравним скорость чтения с массивов JBOD и RAID0:


И что мы видим? Только RAID0 из двух винчестеров смог смаштабировать результаты одиночного винчестера в два раза (сообразно количеству винчестеров в массиве), а RAID0 из трёх и четырёх винчестеров не смогли преодолеть гроссмейстерскую планку в 100МБ/сек... Иэх, этот бы контроллер на PCI64 или, на худой конец, на PCI32/66МГц...

Во вторую группу объединим результаты JBOD, RAID0 на двух винчестерах, RAID1 и RAID01.


С небольшими отклонениями (ну, неинтересно без них), но скорости RAID0 на двух винчестерах и RAID01 оказались равными, так же как и скорости RAID1 и JBOD.

IOMeter: SequentialWrite


Следующий наш паттерн - последовательная запись. Всё то же самое, что и в предыдущем паттерне, только меняется знак операции - мы не читаем с массивов, а пишем на них.


Как и в предыдущем случае, разнесём результаты на две диаграммы:


Обратите внимание, какой спокойный и "правильный" характер приобрели наши графики... Я как-то всегда думал, что читать обзоры проще, чем писать их. :)
Но, как и в случае SequentialRead только RAID0 на двух винчестерах сумел пропорционально повысить скорость записи относительно одиночного винчестера. Массивы RAID0 на трёх и четырёх винчестерах, что любопытно, показали одинаковую скорость при всех размерах блока данных.


Как видим, RAID0 из двух винчестеров вдвое быстрее, чем одиночный винт, а RAID1 показывает точно такую же скорость (естественно, я говорю о максимальных достигнутых значениях скорости). Скорость же RAID01-массива не впечатляет - он лишь ненамного быстрее одиночного винчестера. Судя по всему, так пагубно на результатах массива сказалась необходимость двойного зеркалирования (ведь операция зеркалирования осуществляется над страйп-группами).

IOMeter: Workstation


Паттерн эмулирует работу пользователя с различными приложениями при NTFS5:


Сразу перейдём к диаграмме:


Сразу бросаются в глаза уже виденные нами чуть раньше "террасы" - графики RAID0 массивов с разным количеством винчестеров пролегли через диаграмму, как рельсы Транссиба... То, что между графиками RAID0-массивов сохраняется "равное расстояние" говорит о хорошей масштабируемости контроллера (т.е. об отсутствии "узких мест").
Что интересно, массив RAID01 показал лучшие результаты, чем RAID0, а RAID1 поначалу (при малой глубине очереди команд) оказался даже медленнее одиночного диска, но при увеличении глубины очереди команд резко отрывается от JBOD, и скорость RAID1-массива лишь немного меньше, чем у RAID0 из двух дисков.

IOMeter: SR2002


Посмотрим, как контроллер справится с паттернами, эмулирующими работу файл- и веб-серверов:


Самый наглядный вид агитации - плакат. :)



И в паттерне Fileserver, и в паттерне Webserver контроллер показал прекрасную масштабируемость в RAID0, отличную скорость при работе с RAID1-массивом (обратите внимание, что RAID1 быстрее, чем RAID0 из двух винчестеров). Особенно это заметно в паттерне Webserver! :)
Как мы помним, в нём отсутствуют запросы на запись, а запросы на чтение можно чередовать на оба винчестера зеркальной пары. К сожалению, программисты HighPoint применили эту тактику только к RAID1-массиву, а RAID01 так и работает по старинке... Потому и скорость его оказалась в точности такая же, как у RAID0 на двух винчестеров. Кстати графика RAID0-массива из двух винчестеров на диаграмме "Webserver" не видно, потому что он оказался под графиком RAID01-массива! С одной стороны это говорит о недоработках программистов HighPoint, а с другой - о точности наших измерений. :)

Выводы


Четырёхканальный контроллер HighPoint показал отличную скорость во всех наших тестах, скорость контроллера при работе в RAID0 отлично масштабируется от количества винчестеров в массиве. Очень неплохо, если не сказать блестяще, реализован RAID1 - в некоторых режимах RAID1 на HighPoint RocketRAID 404 обгоняет по скорости RAID0 из двух дисков. К сожалению, должен отметить, что RAID01 реализован на RR 404 не так здорово, как хотелось бы. Так что расслабляться программистам HighPoint еще рано. :)

Конечно, многое в этом обзоре осталось за кадром. Например, не показана работа RocketRAID404 с восемью винчестерами. Т.е. результаты контролера на 1-8-ми винчестерах у меня есть, но, во-первых, это другие винчестеры (DTLA 307015), и, во-вторых, результаты сняты на контроллере со старыми драйверами и BIOS-ом... Как только я увидел разницу в результатах RocketRAID133 на старых и новых драйверах, стенд с RocketRAID404 был остановлен... Второй раз вдохновить себя на подвиг я не смог. :(

Сравнение RocketRAID404 с Promise FastTRAK100 TX4 и с двухканальными контроллерами RocketRAID133 и FastTRAK TX2000.