Сравнение трёх ATA133 RAID контроллеров.

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

Введение


После написания отдельных обзоров по всем доступным на текущий момент ATA133 RAID-контроллерам:

Контроллер HighPoint RocketRAID 133
Контроллер Promise TX2000
ATA133 RAID-контроллер от Silicon Image

вполне логичной выглядела мысль сравнить контроллеры между собой, тем более, что тестировались контроллеры в одинаковых условиях и по единой методике...
Единственное, что подверглось корректировке, так это результаты контроллера HighPoint RocketRAID133. Как Вы помните, в конце статьи по этому контроллеру я упомянул, что собираюсь повторить тесты на драйверах 2.31. Как только тесты закончились, и результаты были обработаны, я, буквально, не поверил своим глазам! Скорость контроллера так увеличилась, как будто я заменил не драйвера, а сам контроллер. :)
По совести говоря, в некоторых режимах производительность контроллера уменьшилась, но эта ситуация встречается сплошь и рядом и прекрасно описывается поговоркой "Нос вытащили - хвост увяз...". Так как скорость контроллера HighPoint RR133 на новых драйверах в большинстве тестов была выше, чем на старых, то в сравнении контроллеров между собой использованы результаты HighPoint RR133 на новых драйверах (v 2.31).

Методика


Тестовая система

материнская плата - SuperMicro 370DLE
процессор - Intel Coppermine 600MHz;
память - 2*128Mb SDRAM Micron PC133 ECC Registered;
винчестер - Quantum FB EL 10GB;
видеокарта - Matrox Millennium 4Mb;
операционная система - Windows 2000 Pro SP2;

для контроллера Promise TX2000 использовался драйвер 2.00.0.24
для контроллера Silicon Image Sil680 использовался драйвер 1.0.1.4
для контроллера HighPoint RocketRaid 133 использовался драйвер 2.31

Для создания массивов использовались четыре диска Maxtor D740X-6L (6L020J1).
Размер stripe-блока при создании массивов устанавливался в 64КБ. Для тестов в WinBench массивы размечались в FAT32 и NTFS одним разделом с размером кластера по умолчанию.
Тесты проводились по четыре раза, результаты усреднялись. Винчестеры между тестами не охлаждались.
Использовались следующие тесты:

WinBench 99 1.2
IOMeter 1999.10.20

Для сравнения скорости работы контроллеров в различных типах RAID-массивов при помощи теста IOMeter использовались новые паттерны StorageReview, анонсированные в третьей редакции их методики тестирования жёстких дисков.

Паттерны StorageReview
  File Server Web Server
  80% Read, 100% Random 100% Read, 100% Random
 512b 10% 22%
 1KB 5% 15%
 2KB 5% 8%
 4KB 60% 23%
 8KB 2% 15%
 16KB 4% 2%
 32KB 4% 6%
 64KB 10% 7%
 128KB 0% 1%
 512KB 0% 1%

Эти паттерны призваны измерить производительность дисковой подсистемы при нагрузке, типичной для file&web-серверов.
На основании проведённого Storagereview исследования о характере нагрузки на дисковую подсистему при работе с обычными Windows-приложениями наш автор, Романов Сергей aka GReY, создал паттерн для теста IOMeter:

Паттерн Workstation
 Transfer Size Request % of Access Specification % Reads % Random
 Workstation   
 512B 1 0 100
 1KB 2 0 100
 2KB 1 0 100
 4KB 50 60 80
 8KB 4 50 100
 16KB 6 50 100
 20KB 2 50 100
 24KB 2 50 100
 28KB 1 50 100
 32KB 13 70 70
 48KB 1 50 100
 52KB 1 50 100
 64KB 14 80 60
 64KB+512B 2 50 100

Этим паттерном мы будем руководствоваться для оценки привлекательности винчестеров и RAID-контроллеров для обычного Windows-пользователя.

Ну и, наконец, была проверена способность контроллера работать с Sequential-запросами переменного размера на чтение и запись в различных типах RAID-массивов.
После сведения результатов контроллеров во всех тестах в один xls-файл я долго экспериментировал с формой представления результатов... Получалось либо очень громоздко, либо совершено ненаглядно. :(
После многочисленных экспериментов, я выбрал табличную форму представления результатов, но, если у кого-нибудь из Вас возникнут идеи на этот счёт, был бы благодарен. :)
В таблицах, красный цвет обозначает худший результат среди трёх контроллеров, а синий - лучший.
Итак, начнём, потихоньку.

Winbench99


Для Winbench99 приводятся только результаты контроллеров по двум тестам - Business Disk Winmark и High-End Disk Winmark:
Winbench99 (FAT32)

Winbench99 (NTFS)

Как видим, в этом тесте полную и безоговорочную победу одержал контроллер HighPoint RR133! "Кэширующий" драйвер применяется компанией HighPoint уже давно, но в этом тестировании мы видим, что специальная оптимизация драйверов под WB99 доведена программистами HPT до недосягаемых высот. :)
На второе место в этом тесте претендует контроллер Silicon Image, а Promise TX2000, совершенно неожиданно для меня, занял третье место.

IOMeter: SequentialRead


Этот тест очень простой - на контроллер посылаются запросы на чтение (глубина очереди команд = 4) и измеряется поступающий с контроллера поток данных. В таблице приведены скорости чтения с массивов (в МБ/сек) при разном размере блока данных.
SequentialRead: JBOD & RAID0

Как видим, режимы JBOD и RAID0 на трёх винчестерах вчистую выиграл Promise TX2000. Да и в остальных режимах он выглядит неплохо. Хуже всего, судя по обилию клеток, окрашенных в красный цвет, пришлось контроллеру HighPoint, а контроллер Silicon Image хорошо выглядит только в RAID0 на четырёх винчестерах (обратите внимание, как падает скорость Sil680 на RAID0 из трёх винчестеров!).
SequentialRead: RAID1 & RAID01

Интересно, что контроллер Promise выигрывает в массивах, созданных на одном канале и делит первое место с контроллером Silicon Image при работе с массивами, созданными на разных каналах контроллера (контроллер Promise работает быстрее с запросами малого размера, а контроллер Sil680, наоборот, быстрее при работе с большими блоками данных).
Обратите внимание, что скорость контроллера Promise при работе с RAID01-массивом оказалась критичной к соотношению размера блока данных и размера страйп-блока. Всплеск скорости работы массива при работе с блоком данных, размером в 256КБ можно объяснить только тем, что в этом режиме размер запрашиваемого блока данных идеально "делится" на четыре винчестера массива.
Контроллер HighPoint не может похвастать супер-результатами ни в одном режиме, а в "RAID1-1Ch" его скорость упала до неприлично малых значений. :(

IOMeter: SequentialWrite


Единственное отличие этого паттерна от предыдущего - то, что в нём мы не читаем с массивов, а пишем в них.
SequentialWrite: JBOD & RAID0

Promise TX2000 показал лучшие результаты при работе с одиночным винчестером, а в остальных режимах он неплох при малых размерах блока данных. Справедливости ради отметим, что в RAID0 на трёх и четырёх винчестерах контроллер Promise немного уступил в скорости записи контроллеру HighPoint, но разница в скорости между этими контроллерами меркнет по сравнению с той пропастью, которая отделяет от них контроллер Silicon Image. Этот контроллер легко преодолел планку в 100МБ/сек и вплотную приблизился к максимально возможной для шины PCI32/33МГц пропускной способности.
SequentialWrite: RAID1 & RAID01

Опять контроллер Promise неплохо выглядит при малых размерах блоков, а контроллер Silicon Image, наоборот, при больших размерах блока данных. Контроллер HighPoint в этом паттерне показал средние результаты, но зато у него нет явных провалов (как это произошло при последовательном чтении).

IOMeter: Fileserver


Для сравнения контроллеров при помощи IOMeter используется только параметр Total I/O (т.е. количество отработанных контроллером запросов в секунду).
Fileserver: JBOD & RAID0

Как видим, табличка получилась пятнистой, как шкура леопарда. :)
Ни один из контроллеров не имеет явного преимущества, но, как написал старик Шекспир: - "Если это и безумие, то в своем роде последовательное"...
Контроллер Silicon Image показал лучшие результаты во всех режимах и при всех типах нагрузок, исключая режим RAID0 на трёх винчестерах. В этом режиме скорость контроллера почему-то снижается до скорости одиночного винчестера...
Контроллер Promise в этом тесте выглядит бледно - посмотрите, как много красного цвета в его ячейках. :(
Контроллер HighPoint, наоборот, выглядит неплохо - он даже выиграл в трёх-винчестерной конфигурации (так как контроллер Silicon Image этот режим провалил...).

Посмотрим, как контроллеры работают в более сложных, чем RAID0 режимах:
Fileserver: RAID1 & RAID01

Здесь нам придётся рассматривать скорость контроллеров в каждом режиме:

Два винчестера в RAID0 на одном канале

Контроллер HighPoint победил при всех вариантах нагрузки, контроллер Promise занял второе место, а третье место досталось контроллеру Silicon Image. Что интересно, все контроллеры решили, что RAID0 на одном канале ненастоящий и не показали увеличения скорости по сравнению с одиночным винчестером.

RAID1 на двух каналах

При линейной нагрузке (queue=1) с громадным отрывом лидирует контроллер Promise, но при увеличении нагрузки вперёд выходит HighPoint RR133, буквально, на десятые доли процента опережая контроллер Promise. Обратите внимание, что скорость работы обоих контроллеров с RAID1-массивом значительно выше, чем при работе с одиночным винтом! По всей видимости, запросы на чтение блока данных адресуются поочерёдно на оба винчестера в массиве.
Контроллер же от Silicon Image считает, что массив RAID1 создаётся только для увеличения надёжности хранения данных и скорость его работы с массивом RAID1 равна скорости одиночного винчестера.

RAID1 на одном канале

В этом режиме при линейной нагрузке у нас опять лидирует Promise, но затем вперёд выходит... нет, не HighPoint, а Silicon Image!

RAID01

При невысоких нагрузках лидирует контроллер Promise, а при увеличении нагрузки вперёд выходит контроллер Silicon Image. Контроллер от HighPoint и в этом режиме работает со скоростью одиночного винчестера, как это ни прискорбно...
Усреднив результаты контроллеров, показанные при разных вариантах нагрузки мы получим вот такую картину:



IOMeter: Webserver


В паттерне Webserver присутствуют только с операции чтения, поэтому результаты контроллеров могут быть немного другими, чем в паттерне Fileserver.
Webserver: JBOD & RAID0

Если просуммировать количество лучших (синий цвет) и худших (красный цвет) результатов для трёх контроллеров, получим интересные результаты. Победу со счётом 11:3 одержал контроллер Promise FastTRAK TX2000. На втором месте, с результатом 6:4 оказался контроллер Sil680 от SiliconImage. Контроллер HighPoint RocketRaid 133 замыкает список с результатом 3:12
Webserver: RAID1 & RAID01

Картина примерно та же, что и в паттерне Fileserver - контроллер Silicon Image "проваливает" режим "RAID1 - 2Ch", а контроллер HighPoint - "RAID1 - 1Ch". Контроллер Promise не имеет стойкой синей окраски, но и не попятнан красненьким. :)
Посчитаем "баллы", набранные контроллерами:

Promise FastTRAK100 TX2000: 9:2
SiliconImage Sil680: 6:7
HighPoint RocketRaid 133: 5:13

Говорят, стабильность - признак мастерства.
Если же мы усредним результаты контроллера при всех вариантах нагрузки (признавая все нагрузки равновероятными), то картина получится несколько иная:


Как видим, при работе в JBOD и RAID0 контроллеры примерно одинаковы по скорости, а вот при реализации RAID1 и RAID01 контроллер Promise TX2000 оказался постабильнее соперников. Контроллер HighPoint плохо реализует RAID 01 и RAID1 на одном канале, а Sil680 имеет явные проблемы при работе с RAID1 (при этом он лучше всех сделал RAID 01!).

IOMeter: Workstation


Надеюсь, что те, кто дочитал обзор до этого места, смогут самостоятельно трактовать результаты контроллеров самостоятельно:
Workstation: JBOD & RAID0

Workstation: RAID1 & RAID01

Правда, это не сложно? :)
А после усреднения скорости контроллеров на разных нагрузках, сравнивать их становится совсем простой задачей:


Контроллер Sil680 лидирует в JBOD и RAID0-режимах, исключая RAID0 на трёх винчестерах, и при работе с RAID01. Контроллер Promise опять стабильно хорош во всех режимах, да и контроллер HighPoint RR 133 "оступился" только в режиме RAID01. В остальных режимах он весьма неплох.

Выводы


Проведённые тесты ATA133 RAID-контроллеров показали, что на современном этапе RAID-массив на IDE-винчестерах может дать пользователю не только увеличение объёма дисковой подсистемы, но и увеличение скорости его работы. Вместе с тем очевидно, что ограничения, накладываемые архитектурой ATA (в частности - работа двух устройств на одном шлейфе) не позволяют добиться максимального эффекта от увеличения количества винчестеров в массиве.

Лидером среди трёх протестированных ATA/133 RAID контроллёров можно без натяжки назвать продукт от Silicon Image, скорость которого в типичных конфигурациях (JBOD, RAID0, RAID01) примерно на 4% превосходит конкурентов. Однако есть у него и "ахилесова пята" - зеркалирование (RAID1), где он проигрывает около 30%.

За победу в соревновании SI680 награждается орденом "герой ATA-строения"

Контроллёр от Promise ни в одном тесте не проиграл конкурентам более 5%, а в RAID1 ему вообще нет равных.

Promise TX2000 награждается медалью "за стойкость"

Контроллёр HighPoint с новыми BIOS и драйверами заметно "повзрослел", вплотную приблизившись к лидерам по производительности, однако это не позволило ему показать лучший результат ни в одной типичной конфигурации. Исключением стали массивы RAID0 из трёх винчестеров и двух винчестеров на одном шлейфе. Также контроллёр не смог показать достойных результатов в массиве RAID01, но это, вполне вероятно, будет исправлено в следующих релизах BIOS.

RocketRaid133 награждается значками ГТО и "за смекалку" :)

Резюме: Контроллёр Promise одинаково хорош для любых типов массивов. В небольшой сервер с двумя "зеркальными винтами" неплохо подойдёт контроллёр HighPoint, однако для четырёхвинчестерного RAID01 уже следует предпочесть Silicon Image. При страйпинге все претенденты примерно равны, за небольшим лидерством изделия Silicon Image.

P.S. Так как все описанные в сравнении контроллёры RAID являются "программными", выход новых версий драйверов может в одночасье привести к смене лидера.