Сравнение масштабируемости внешних RAID-контроллеров

Автор: Glottis, niknik
Дата: 11.11.2005
Все фото статьи

Введение


Сразу скажу, что результаты, публикуемые в этой статье, получены довольно давно. Настолько давно, что пыль на них успела не только осесть ровным слоем, а, пожалуй, уже начала проявлять признаки наличия у неё разума...
Однако, в преддверии грандиозного прорыва на рынке систем хранения данных, мы решили немного подбросить дров в костёр спора "SATA vs. SCSI". Каждый знает, что сухие дрова лучше всего горят... :)
Попутно мы изучим вопрос о масштабируемости производительности дисковых подсистем от количества использованных дисков в различных типах массивов RAID.

Волей случая, некоторое время назад у нас на руках оказались две внешние дисковые подсистемы - Adaptec DuraStor 6320S и Promise VTrak15100. Увы, время, которое было нам отпущено на исследования, было невелико, так как систему Adaptec ждали нетерпеливые клиенты. Поэтому тесты проводились по крайне усеченному варианту нашей методики тестирования. Фактически, для каждого массива проводились только несколько коротких тестов. Другими словами, мы предпочли провести немного тестов на большом количестве вариантов массивов, чем подробно исследовать несколько конкретных режимов.

Подробно описывать конструктивные особенности двух систем хранения мы не будем, так как специалисты знают их и без наших обзоров, а публикация в статье огромного количества фотографий внутренностей дисковых подсистем сделает статью чрезмерно тяжёлой.

Рассмотрим, вкратце, основные параметры систем хранения Promise VTrak 15100 и Adaptec DuraStor 6320SS.

Подсистема дисков Promise VTrak 15100 позволяет поддерживать до 15-ти Serial ATA или Parallel ATA (с использованием дополнительного адаптера Promise) дисков (с поддержкой LBA48, естественно). Система управляется 64-разрядным RAID-контроллером и позволяет создавать следующие типы RAID-массивов: 0, 1, 10, 3, 5, 50 и JBOD. Кэш-память системы составляет 256Мб с возможностью увеличения до 512 Мб. Поддерживаются несколько режимов кэширования, технология адаптивного управления политикой кэширования и изменяемый в широком диапазоне размер stripe-блока. Внешний интерфейс состоит из 2-х портов U160 SCSI. Система управляется через стандартный интерфейс RS-232 или по Ethernet.

Система хранения Adaptec DuraStor 6320SS позволяет установку до 36-ти Ultra 160 SCSI дисков (в блок Durastor 6200SR устанавливается до 12-ти дисков и по 12 дисков в каждый из блоков Durastor 312R)
Система управляется Ultra160 SCSI RAID-контроллером DuraStor 6200S и позволяет создавать следующие типы RAID-массивов: 0, 1, 3, 4, 5, 10, 50 и JBOD. Кэш-память системы составляет 128Мб с возможностью увеличения до 512 Мб. Внешний интерфейс состоит из 2-х портов U160 SCSI, а управляется система через стандартный RS-232 интерфейс или по Ethernet.

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



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

корпус -Intel SC5200
материнская плата – Intel SHG2;
процессор - 2 x Intel Xeon 2.8/400FSB;
память - 2 x 512MB DDR SDRAM PC2100 ECC Registered;
винчестер - IBM DTLA 307015;
видеокарта – onboard ATi Rage XL;
операционная система - Windows 2000 Pro SP4.

Использовался следующий тест:

IOMeter 2003.02.15

Для сравнения скорости работы систем при помощи теста IOMeter использовались паттерны Fileserver & Webserver.

Паттерны 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-серверов.

Кроме того, была исследована способность систем работать с Sequential-запросами переменного размера.
В подсистеме Promise VTrak 15100 были установлены 10 дисков WD360GD (Raptor) по 36Гб (использовались диски первого поколения).

В подсистеме Adaptec DuraStor 6320SS были установлены 24 диска Seagate Cheetah 10K.6 по 36Гб.

Результаты тестов


Начнем тестирование с паттернов Sequential Read&Write

IOMeter: паттерны Sequential Read&Write

Эти паттерны позволяют исследовать подсистемы дисков в режимах последовательного чтения/записи. На массив при помощи программы IOMeter подаётся поток запросов на чтение/запись с глубиной очереди команд, равной четырём. Раз в минуту в тесте меняется размер блока данных, так что после окончания теста мы получаем зависимость скорости линейного чтения или записи от размера блока данных.

Зависимости скорости чтения данных подсистемой Promise VTrak 15100 от размера их блока приведены в таблицах и на графиках:








Как видим, скорость чтения с массивов с числом дисков больше двух упирается в пропускную способность внешнего интерфейса (160МБ/сек).


На графиках RAID5-массивов наблюдается похожая картина. Максимальная скорость чтения достигается разными массивами так же при больших размерах запросов, а масштабируемость от количества дисков видна только на графиках из трех и четырех дисков. С дальнейшим увеличением количества дисков максимальная скорость чтения перестает расти, так как достигнут предел пропускной способности системы.
Неожиданно невелика оказалась скорость чтения с массивов RAID50...


Быстродействие массивов с использованием зеркалирования оказалось крайне чувствительно к размеру запрашиваемого блока данных. Так, например, массив из двух дисков показал низкую скорость чтения на больших блоках, а массив RAID10, наоборот, только на больших блоках вышел на скорость массива RAID0 из двух дисков (очевидно, сработал "0" в составе этого сложноподчинённого типа RAID-массивов). Скорости чтения массивов с большим количеством дисков достигают предела пропускной способности системы.

Основной вывод, который можно сделать из этих результатов такой: скорость последовательного чтения в подсистеме Promise VTrak 15100 ограничивается пропускной способностью внешнего интерфейса.
Так что создание больших дисковых массивов ради увеличения скорости линейного чтения большого смысла не имеет. При работе с мелкими блоками нас ограничивает скорость работы RAID-контроллера системы, а при работе с большими блоками - пропускная система внешнего интерфейса.

К сожалению, на системе Adaptec у нас не так много результатов. Фактически, есть результаты с четырёх массивов.




К нашему удивлению, максимальная пропускная способность интерфейса не была достигнута даже при работе с десяти- и двенадцатидисковыми массивами. А лучший результат достигнут на массиве RAID10 из шести дисков.

Теперь, посмотрим на поведение подсистем при последовательной записи. Скорости прокачки данных подсистемой Promise VTrak 15100, в зависимости от размера их блока приведены в таблицах и на графиках:








Для массивов RAID0 картина практически не отличается от режима Sequential Read. Однако можно заметить, что хотя максимальная скорость всех массивов с числом дисков более трех почти достигает предельной скорости пропускания для внешнего интерфейса, наиболее быстрым оказался массив из четырех дисков. Дальнейшее увеличение количества дисков в массиве приводит к уменьшению скорости записи.


Графики массивов RAID5 и RAID50 выглядят менее понятными. Никакой зависимости между максимальной скорости записи от количества дисков в массиве не просматривается. В то же время, стоит отметить, что максимальная скорость записи на массив RAID5 составила внушительной цифры в 127МБ/секунду!


В отличие от графиков массивов RAID5 и RAID50, здесь всё прозрачно. До определённого момента скорость записи увеличивается с увеличением количества дисков в массиве, а потом скорость начинает снижаться.

Посмотрим на результаты последовательной записи в подсистеме Adaptec DuraStor 6320SS:




По этим графикам сложно понять принципы работы RAID-контроллера... Можно лишь сказать, что как и в режиме Sequential Read скорость работы системы не достигла максимальной пропускной способности интерфейса.

В режимах имитирующих дисковые подсистемы файл- и вебсервера мы хотим посмотреть только соблюдается ли масштабируемость скоростей работы систем, от количества установленных в них дисков в различных типах массивов и у какой из систем эта зависимость более ярко выражена. Для этого, данные для подсистем Promise VTrak 15100 и Adaptec DuraStor 6320SS будем располагать на одном графике при фиксированном значении нагрузки (количества исходящих запросов).

Сначала, результаты тестирования подсистем в режиме имитации файл-сервера:








Что же, при нагрузке в один запрос подсистема на SCSI-дисках оказывается быстрее... Конечно, первое поколение дисков WD Raptor (диск WD360GD) уступает диску Cheetah 10K.6 в таком ключевом параметре, как время доступа - access time (8.3мс против 7.9мс). Но почему для контроллера Promise по мере увеличения количества дисков в массиве их скорость немного уменьшается, в то время, как на контроллере Adaptec мы видим обратное?


Увеличение нагрузки до 16-ти исходящих запросов помогает контроллеру Promise немного реабилитироваться - он по прежнему уступает контроллеру Adaptec, но зато быстродействие массивов в явном виде зависит от количества дисков в нём.


Дальнейшее увеличение нагрузки не меняет расстановки сил, но делает зависимость быстродействия массивов от количества дисков в них всё более близкой к линейной.
Посмотрим, как контроллеры справляются с массивами RAID5:






А вот и первый сюрприз. Контроллер Promise при работе с трёхдисковым массивом умудрился обогнать контроллер Adaptec. Правда, при дальнейшем увеличении количества дисков в массиве, последний берёт убедительный реванш.




При увеличении нагрузки контроллер Adaptec уже не отдаёт лидерства ни в одной из конфигураций.

Перейдём к результатам массивов RAID10:








И с массивами RAID10 подсистема со SCSI-дисками справилась лучше. Однако, если оценить масштабируемость быстродействия от количества дисков в массиве, следует сказать, что она одинакова для обоих контроллеров. Стало быть, основная причина разницы в скорости - используемые диски.

Посмотрим, насколько значительно изменятся результаты в паттерне Webserver, в котором отсутствуют запросы на запись:








При отсутствии в нагрузке запросов на запись мы наблюдаем снижение скорости работы контроллера Promise по мере увеличения количества дисков в массиве.


А при увеличении нагрузки контроллер со SCSI-дисками резко отрывается от оппонента! Что же, запросов на запись в этом паттерне нет и могучая отложенная запись дисков WD уже не может компенсировать отсутствие у них поддержки Command Queuing.

Конечно, внешний интерфейс контроллера Promise обладает поддержкой CQ, но вот внутренний контроллер не может "нагрузить" диски командами, которые диски могут поставить в очередь. Соответственно, диски вынуждены выполнять команды в той последовательности, в которой их получают. Диски же в контроллере Adaptec, обладающие поддержкой очереди команд, в полной мере используют свои преимущества.


Увеличение нагрузки не меняет расстановки сил. Отчасти потому, что самая большая разница в быстродействии массивов из равного количества дисков пришлась на нагрузку в 64 исходящих запроса.

Посмотрим, как контроллеры справятся с массивом RAID5:






Судя по первым впечатлениям, картина аналогична той, что мы видели при работе с RAID0. Собственно, а чего еще ждать от RAID5 при чтении? ;)




Увеличение нагрузки лишь подтверждает вышесказанное. При чтении массивы RAID5 ведут себя точно так же, как и массивы RAID0 и контроллер Adaptec c дисками Cheetah 10K.6 быстрее, нежели контроллер Promise с дисками WD360GD.

Ждать ли нам чуда от массивов RAID10?








Верить в чудаса надо, несмотря на то, что случаются они крайне редко и, как правило, не с нами. ;)

Выводы


Ну, что же, - пора подвести итоги. Надеемся, что это тестирование дало Вам некоторое представление о зависимости скорости работы RAID-массивов от количества дисков в них.
Что же касается участников нашего обзора - оба RAID-контроллера показали хорошую масштабируемость скорости массивов от количества дисков в нём при работе с "серверными" нагрузками. Скорость же контроллеров при работе с линейным чтением и записью, увы, ограничивается невысокой пропускной способностью внешних интерфейсов.

В нашем соревновании победу мы присуждаем контроллеру Adaptec. Хотя, конечно, отдаём себе отчёт, что победа эта во многом достигнута за счёт превосходства диска Cheetah 10K.6 над WD360GD.
Возможно (да, наверняка!) если бы в тот момент у нас нашлось нужное количество дисков WD740GD, то превосходство подсистемы на SCSI-дисках в серверных тестах не было бы таким разительным, но ведь и для SCSI-системы мы, теоретически, могли бы найти диски побыстрее...

Так что давайте дождемся появления нового поколения дисковых подсистем и попробуем провести новые тесты (особенно большие надежды возлагаются на следующее поколение дисков WD с частотой вращения шпинделя 10000 оборотов в минуту).