Обзор Promise SX6000

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

Введение


Наконец-то закончено тестирование последнего доступного на текущий момент IDE RAID-контроллера с поддержкой RAID 5-го уровня - Promise SX6000. Из шести подключаемых к этому контроллеру дисков он позволяет создавать RAID-массивы уровней 0,1,01,3,5. Таким образом, количество конфигураций RAID-массивов для тестирования достигло 17-ти вариантов, что, как Вы понимаете, потребовало значительного расхода niknik-о-часов...

В этом обзоре мы подробно рассмотрим скорость и функциональность этого контроллера, а в следующем мы сравним шесть контроллеров (3Ware Escalade 6400, 3Ware Escalade 7810, Adaptec AAA-UDMA, Adaptec 2400A, Promise SuperTRAK100 и Promise SuperTRAK SX6000) между собой.

Если вспомнить первый RAID5-контроллер Promise, который нам довелось тестировать - SuperTRAK100, то он, на наш взгляд, получился не очень удачным. Тем интереснее нам будет оценить то, насколько инженеры Promise сумели выявить недостатки SuperTRAK100, и лишен ли этих недостатков SuperTRAK SX6000.

Контроллер


Контроллер SX6000 поставляется в яркой, достаточно большой коробке.


Внутри этой коробочки есть ещё одна, но на сей раз – белая: :)


Вместе с контроллером, который я покажу Вам чуть ниже, во второй коробочке находились:

руководство по эксплуатации контроллера
дискеты с драйверами и утилитами
три разветвителя питания
шесть UDMA100/66-шлейфов
рекламный проспект

Особо хочу отметить наличие в комплекте контроллера очень симпатичных разветвителей питания.

Не все корпуса, к сожалению, имеют достаточное количество разъёмов питания для инсталляции того количества винчестеров, которые можно подключить к SX6000. Впрочем, мой тюнингованный стенд на базе корпуса SuperMicro SC701D вполне справился с такой проблемой (а разветвители были прикарманены «на чёрный день»).
А теперь позвольте предложить вашему вниманию сам контроллер:

Как видим, расположение элементов на плате несколько отличается от архитектуры SuperTrak100. Главный процессор теперь закрыт радиатором (который мне так и не удалось оторвать, настолько хорошо он был приклеен), разъём для установки кэш-памяти перемещён под IDE-чипы, а те, соответственно, сдвинулись поближе к IDE-разъёмам.


На обратной стороне платы никаких элементов не разведено.


Каждый из расположенных на плате IDE-чипов отвечает за два IDE-канала.


Но чипы-то на контроллере не простые! Судя по маркировке (PDC20276), на контроллере SX6000 установлены новейшие UDMA133 IDE-контроллеры от Promise!


На костыль заглушки выведены индикаторы рабочего состояния контроллера, а рядом мы можем видеть нечто, подозрительно похожее на недоразведённый COM-интерфейс для удалённого управления контроллером. Но на этом интересности не заканчиваются! Если мы бросим взгляд на противоположный край платы, то увидим:


посадочное место для крепления backup-батареи для кэш-буфера контроллера! Такой "фичи" у IDE RAID-контроллеров я до сих пор не встречал.
В комплект контроллера, к сожалению, не входит модуль кэш-памяти! Это, конечно, придаёт опытным пользователям возможность не платить за "поставляемый по умолчанию" модуль кэш-памяти, так как он заведомо будет малого объёма для снижения стоимости контроллера, но, с другой, стороны, купленный контроллер без памяти просто не включится! Мне кажется, что имеет смысл всё же комплектовать контроллер модулем кэш-памяти, хотя бы и минимально возможной ёмкости - 16МБ.

Спецификации Promise SX6000
  
 Controller type PCI 2.2 Card
 Core I/O Processor 100MHz Intel i960RM
 Cache Memory 16-128MB 168pin DIMM SDRAM ECC/non-ECC
 PCI Bus 32bit / 33MHz
 UltraATA100 Support up to 6 UltraATA100 drives
 Drive type support UltraATA100/66/33
 ATA RAID Levels support 0, 1, 0+1, 3, 5, JBOD
 RAID Stripe Block size support 4-64KB
 O/S support MS Windows NT4/2000, RedHatLinux 7.0/7.1, TurboLinux 6.0/6.1, SuSe Linux 7.0/7.1, etc…


Что же, контроллер SX6000 оснащён более скоростным XOR-процессором (i960RM - 100МГц), чем SuperTrak100 (i960RD66 - 66МГц). Он имеет более быструю кэш-память, поддерживает винчестеры с объёмом более 137ГБ (правда, непонятно, почему для него не заявлена поддержка ATA133-винчестеров, ведь чипы PDC20276 поддерживают ATA133 в полном объёме, а не только спецификацию BigDrive).

Контроллер умеет делать HotSpare (автоматическую замену вышедшего из строя винчестера в массиве на резервный), а также HotSwap (при условии, что к контроллеру подключены корзины Promise SuperSwap).

Единственное, что настораживает - отсутствие поддержки PCI 32/66МГц, ведь у Promise уже есть продукты с поддержкой такой шины - Ultra100 TX2, FastTRAK100 TX2, Ultra133 TX2, SX2000...

Дравера и утилиты


На текущий момент (16 января) была доступна только одна версия драйверов для SX6000:

Впрочем, она работоспособна и никаких "приключений" у меня с этим контроллером не было.
К контроллеру прилагается утилита Promise Array Management (PAM),


при помощи которой можно удалённо (или локально) управлять работой массива - создавать, удалять или восстанавливать работоспособность.


Не сказать, что бы её интерфейс был удобным для "неадминистратора", но функции свои она выполняет. Доступ к администрированию массивов предоставляется только по паролю, так что "враг не пройдёт"! :)

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


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

Для создания массивов использовались шесть дисков IBM DTLA 307015. Испытать контроллер SX6000 в работе с дисками большой ёмкости (>137ГБ) пока у нас возможности нет (этих дисков пока нет в Москве).

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


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

WinBench 99 1.2
IOMeter 1999.10.20

Для IOMeter использовались следующие паттерны:

Паттерны для Intel IOMeter
 % of Access Specification Transfer Size Request % Reads % Random
 File Server Access Pattern   
 10% 0.5 KB 80% 100%
 5% 1 KB 80% 100%
 5% 2 KB 80% 100%
 60% 4 KB 80% 100%
 2% 8 KB 80% 100%
 4% 16 KB 80% 100%
 4% 32 KB 80% 100%
 10% 64 KB 80% 100%
 Workstation Access Pattern   
 100% 8 KB 80% 80%
 Database Access Pattern   
 100 8 KB 67% 100%
 RandomWrite   
 100 8 KB 0% 100%
 SequentialWrite   
 100% 256 KB 0% 0%
 RandomRead   
 100% 8 KB 100% 100%
 SequentialRead   
 100% 256 KB 100% 0%

Исследование влияния размера stripe-блока на производительность проводилось на RAID 0 массиве из четырёх винчестеров. Контроллер тестировался с 32МБ модулем кэш-памяти PC100 SDRAM с таймингами 2-2-2. Проверка зависимости скорости контроллера от объёма кэш-буфера не проводилась.

Результаты WinBench 99


Из всех результатов Winbench99 я привожу только результаты Business Disk Winmark, Hi-End Disk Winmark и скорость линейного чтения в начале и конце диска.

Результаты Winbench: RAID0
  JBOD 2HDD 3HDD 4HDD 5HDD 6HDD
 Business Disk WinMark 99 7100 8160 8810 9160 9020 8730
 High-End Disk WinMark 99 12700 17200 20700 21800 20500 21200
       
 Disk Transfer Rate:Beginning 36500 43300 51900 51600 44200 50700
 Disk Transfer Rate:End 19400 38500 51100 51100 43700 50600

Как видим, максимальная скорость в тестах была достигнута на RAID 0 из четырёх дисков, а при увеличении количества дисков в массиве скорость немного упала. В то же время, нельзя не отметить, что скорость массива меньше, чем скорость одного винчестера IBM DTLA 307015 на обычном UDMA100-контроллере.

Результаты Winbench: RAID1 & RAID3
  RAID 1 JBOD RAID3-3HDD RAID3-4HDD RAID3-5HDD RAID3-6HDD
 Business Disk WinMark 99 6990 7100 6730 6820 6130 6400
 High-End Disk WinMark 99 12700 12700 13300 15200 13400 13600
       
 Disk Transfer Rate:Beginning 36400 36500 41200 48900 41500 41300
 Disk Transfer Rate:End 20600 19400 39700 48900 41500 41300

Скорость RAID1 практически не отличается от скорости одиночного винчестера, а на RAID3 максимум скорости опять пришёлся на четырёх-винчестерную конфигурацию.
Отметим, что при реализации RAID1 чтение, судя по всему, производится только с одного винчестера из пары.

Результаты Winbench: RAID01 & RAID5
  RAID01-4HDD RAID01-6HDD RAID5-3HDD RAID5-4HDD RAID5-5HDD RAID5-6HDD
 Business Disk WinMark 99 7390 8430 6640 6760 6350 6020
 High-End Disk WinMark 99 15900 17300 14000 15000 15000 13600
       
 Disk Transfer Rate:Beginning 42800 43700 40600 48400 47700 40900
 Disk Transfer Rate:End 40800 43800 38900 48300 47900 41000

К сожалению, скорость контроллера в тестах WinBench крайне невелика... Судя по графикам линейного чтения, вся работа с массивом ведётся через относительно медленный кэш, что не даёт массиву показать производительность, адекватную скорости дисков.
И, конспективно, результаты контроллера под NTFS:

Результаты Winbench99 в NTFS.
        
  JBOD RAID0 2HDD RAID0 3HDD RAID0 4HDD RAID0 5HDD RAID0 6HDD
 Business Disk WinMark 99 4850 5870 6480 6780 6760 6190
 High-End Disk WinMark 99 10000 13200 15500 17400 15500 16200
       
  RAID 1 JBOD RAID3 3HDD RAID3 4HDD RAID3 5HDD RAID3 5HDD
 Business Disk WinMark 99 5180 4850 4590 4730 4050 4080
 High-End Disk WinMark 99 10200 10000 10200 11700 9430 9610
       
  RAID 10-4HDD RAID 10-6HDD RAID5 3HDD RAID5 4HDD RAID5 5HDD RAID5 5HDD
 Business Disk WinMark 99 5500 6260 4590 4730 4050 4080
 High-End Disk WinMark 99 12100 13300 10200 11700 9430 9610

Результаты IOMeter


Результаты IOMeter также будут представлены в наиболее компактном и удобном для анализа виде, – только значения Total I/O (т.е. количество отработанных массивом запросов):

Результаты IOMeter: RAID0
  1HDD 2HDD 3HDD 4HDD 5HDD 6HDD
 Fileserver      
 1 70,12 76,06 80,54 82,68 84,38 84,90
 4 78,82 121,68 160,63 189,44 213,53 215,63
 16 86,17 140,91 199,48 257,48 311,02 291,25
 64 106,89 168,03 236,48 297,29 357,64 378,37
 256 127,45 204,20 287,98 363,71 436,30 496,14
 Workstation      
 1 81,12 84,63 87,74 89,91 92,42 91,93
 4 84,20 131,04 169,35 196,99 218,84 201,07
 16 92,36 153,23 215,46 272,92 326,76 260,22
 64 109,45 178,20 249,19 313,15 372,13 381,84
 256 132,36 217,16 302,47 380,54 454,08 505,51
 Database      
 1 70,07 80,36 87,44 91,51 94,88 95,25
 4 77,21 124,16 167,53 201,59 228,79 197,99
 16 81,89 137,60 198,69 253,62 305,88 265,21
 64 104,62 169,57 237,05 297,00 354,76 376,63
 256 126,43 207,93 291,45 368,13 440,38 496,63
 RandomWrite      
 1 83,03 130,48 178,03 216,11 248,06 273,26
 4 83,21 130,45 178,33 215,82 248,24 273,49
 16 83,39 130,76 177,77 216,42 247,62 277,66
 64 106,34 169,16 227,78 276,86 310,65 344,36
 256 128,71 206,27 277,25 336,19 381,62 415,61
 SequentialWrite      
 1 24,70 47,40 71,25 95,24 116,97 138,67
 4 24,70 47,21 71,00 95,07 117,44 138,80
 16 24,70 47,13 70,87 94,77 117,55 138,68
 64 24,70 47,04 70,63 95,01 117,57 138,53
 256 24,66 47,01 70,35 94,16 117,43 138,19
 RandomRead      
 1 72,96 72,94 73,72 73,58 74,17 72,31
 4 84,78 128,61 162,94 187,22 205,10 151,10
 16 107,33 173,80 239,85 298,21 351,84 249,23
 64 119,75 199,43 278,46 351,74 419,77 410,50
 256 139,98 234,19 330,69 419,61 503,44 550,51
 SequentialRead      
 1 110,64 197,16 239,09 252,98 250,30 246,08
 4 110,71 209,81 265,66 274,95 274,22 265,07
 16 110,64 214,32 263,30 272,82 272,95 275,14
 64 110,66 214,67 263,23 272,84 272,99 275,13
 256 109,55 213,60 262,51 272,25 272,42 274,93

Анализ мы сделаем при помощи диаграмм чуть позже, а сейчас нас ждут результаты RAID1 & RAID3:

Результаты IOMeter: RAID1 & RAID3
  RAID 1 JBOD RAID3-3HDD RAID3-4HDD RAID3-5HDD RAID3-6HDD
 Fileserver      
 1 77,08 70,12 71,85 73,43 79,37 81,56
 4 121,98 78,82 107,37 132,23 163,44 176,55
 16 134,73 86,17 119,05 152,03 190,20 191,78
 64 160,45 106,89 144,43 181,04 225,46 226,69
 256 196,40 127,45 173,44 218,16 274,26 280,79
 Workstation      
 1 86,35 81,12 76,89 77,46 82,93 84,85
 4 125,22 84,20 116,31 138,44 164,50 173,94
 16 133,43 92,36 130,94 163,43 189,87 191,83
 64 155,92 109,45 153,84 190,68 220,35 217,26
 256 192,74 132,36 186,45 229,09 273,22 270,12
 Database      
 1 75,01 70,07 72,34 75,23 84,61 88,01
 4 109,63 77,21 100,70 120,49 116,85 116,92
 16 117,11 81,89 105,38 128,62 116,59 115,71
 64 145,01 104,62 133,34 158,54 149,00 148,00
 256 179,46 126,43 162,05 192,12 179,93 179,39
 RandomWrite      
 1 81,24 83,03 63,51 67,60 38,82 38,49
 4 81,31 83,21 64,06 67,47 38,71 38,45
 16 81,60 83,39 64,34 67,58 38,60 38,44
 64 107,67 106,34 88,36 93,32 56,49 56,00
 256 128,00 128,71 107,35 110,91 65,21 64,88
 SequentialWrite      
 1 23,85 24,70 48,01 72,38 92,96 116,41
 4 23,75 24,70 47,58 71,65 93,49 116,32
 16 23,74 24,70 47,65 71,17 93,71 116,83
 64 23,83 24,70 47,68 71,14 93,41 116,39
 256 23,85 24,66 47,24 70,32 90,45 112,72
 RandomRead      
 1 86,38 72,96 72,96 73,77 74,00 74,43
 4 153,36 84,78 129,09 164,19 189,05 206,36
 16 196,42 107,33 174,23 241,70 299,42 353,19
 64 220,54 119,75 197,90 280,06 352,92 420,74
 256 260,74 139,98 234,30 331,27 421,64 504,40
 SequentialRead      
 1 91,10 110,64 188,72 225,36 225,63 224,36
 4 113,47 110,71 205,23 250,63 254,02 250,86
 16 113,56 110,64 206,27 246,10 252,77 250,65
 64 113,54 110,66 209,85 245,79 252,82 250,44
 256 112,78 109,55 209,37 245,48 252,22 250,18


Результаты IOMeter: RAID01 & RAID5
  RAID01-4HDD RAID01-6HDD RAID5-3HDD RAID5-4HDD RAID5-5HDD RAID5-6HDD
 Fileserver      
 1 83,95 88,52 73,99 74,72 76,56 76,87
 4 183,37 229,74 128,36 145,40 162,30 139,52
 16 218,08 312,08 145,69 169,08 194,98 188,14
 64 254,15 354,22 173,08 198,64 228,84 254,03
 256 313,92 442,19 212,14 244,01 277,21 312,70
 Workstation      
 1 90,60 94,64 78,18 78,24 81,00 81,09
 4 188,16 229,82 135,86 149,31 163,90 134,93
 16 223,99 314,55 156,63 179,85 207,39 180,67
 64 254,95 355,58 182,58 206,83 237,36 255,15
 256 317,67 440,42 224,66 254,02 287,96 320,80
 Database      
 1 85,61 93,08 75,25 76,50 79,22 80,64
 4 172,36 224,16 115,24 128,00 142,21 126,77
 16 198,44 283,87 122,08 136,43 155,77 161,07
 64 236,30 328,60 150,80 167,11 188,62 212,41
 256 294,50 412,96 186,20 205,12 230,79 258,71
 RandomWrite      
 1 126,39 173,03 64,58 66,15 71,64 80,52
 4 126,29 173,44 64,53 66,15 71,58 80,65
 16 126,38 173,17 65,04 66,17 71,24 87,24
 64 165,33 224,87 87,97 90,15 97,00 109,68
 256 204,42 273,10 107,62 109,36 115,65 128,70
 SequentialWrite      
 1 47,15 70,13 47,70 70,61 92,82 115,29
 4 47,20 70,01 47,61 70,90 93,39 115,22
 16 47,33 70,09 47,50 71,33 92,58 115,17
 64 47,35 70,10 47,34 71,42 92,56 115,05
 256 47,32 70,03 47,00 70,30 91,64 113,20
 RandomRead      
 1 85,71 85,95 73,55 74,10 74,48 71,74
 4 226,64 260,14 163,95 189,48 206,60 153,03
 16 312,96 428,73 240,24 300,37 353,16 247,08
 64 361,45 498,70 279,01 353,51 420,25 410,06
 256 435,93 607,77 331,86 421,74 502,28 552,20
 SequentialRead      
 1 199,26 237,53 176,13 200,20 224,93 216,37
 4 225,79 265,91 216,87 253,11 251,84 238,99
 16 226,39 267,59 217,36 251,70 250,94 250,73
 64 226,42 267,46 217,37 243,97 251,12 250,76
 256 225,50 267,16 216,37 251,28 250,43 250,32

А вот теперь построим графики зависимости количества отработанных запросов от количества винчестеров в массиве для каждого паттерна:


Очень интересная картина. Смотрите – RAID1-массив работает со скоростью RAID0 на двух винчестерах! То есть случайные запросы на RAID1-массив контроллер чередует на оба винчестера. Впечатляет также небольшое отставание RAID01 от RAID 0. Непонятным, правда, остаётся поведение массива RAID3 – увеличение скорости при увеличении количества винчестеров в массиве есть, но оно резко замедляется при подключении шестого винчестера.


Практически точное повторение картины предыдущего паттерна, разве что результаты здесь чуть выше. RAID1 немного отстал от RAID 0 на двух винчестерах, RAID 3 опять «насытился» на пяти винчестерах.


Обратите внимание на то, что с RAID3 сделало увеличение доли операций записи до 33 процентов! Рост производительности этого типа массива прекратился уже при подключении пятого винчестера.


Что любопытно, массив RAID1 уже не показывает результатов, заметно превышающих скорость одиночного винчестера. Запросы на запись исполняются для обоих винчестеров в массиве, и никакое «ускорение» невозможно.
С массивами RAID5 и RAID3 творится что-то ужасное... Для RAID3, в силу его организации, вполне дозволительно снизить свою скорость ниже скорости одиночного винчестера, а на RAID 5 контроллеру SX6000 можно было бы быть и чуть быстрее...


Вот пример великолепной работы – прекрасная масштабируемость для всех типов массива. Но абсолютные значения полученной скорости, увы, невелики. Для RAID0 контроллер записывал по 6 МБ/сек на каждый подключенный винчестер! Что уж тут говорить про остальные типы массивов...


Яркой демонстрацией того, что Promise применяет какую-то оптимизацию при работе со случайными запросами на чтение служит работа контроллера в этом паттерне. Взгляните - скорость RAID1 и RAID 01 массивов выше, чем у RAID 0!
Скорость RAID5 аналогична скорости контроллера в RAID0, а скорость RAID3 повторяет график RAID0 со сдвигом на один винчестер (тот самый, который в RAID 3 хранит контрольную сумму).


В этом паттерне мы впервые отчётливо видим, как несколько типов массивов – RAID0, RAID5 и RAID3 выходят на насыщение на четырёх винчестерах. Правда, скорость при этом довольно приличная - 62-68МБ/сек...
Забавно, но RAID1 опять «деградировал» до скорости одиночного винчестера. Видимо, фирмваре контроллера не разрешает чтение с обоих винчестеров в массиве при таком характере запросов. А зря... ;)
При всё при этом, RAID 01 показал очень хорошую скорость. Неужели «то, что позволено Юпитеру, не позволено быку»?

Влияние размера Stripe block


Попробуем разобраться, каков будет прирост (и будет-ли) скорости обработки контроллером запросов при последовательном увеличении размера страйп-блока, и как зависит этот прирост от глубины очереди команд. Для исследования был выбран массив RAID 0 на четырёх винчестерах.

Текущее фирмваре контроллера SX6000 позволяет изменять размер Stripe-блока в интервале 4-64КБ, а вариантов выбора блока не так уж и много - всего пять (4, 8, 16, 32, 64КБ).

Влияние размера stripe-блока на скорость
  4K 8K 16K 32K 64K
 Fileserver     
 1 71,21 75,16 78,04 80,75 82,68
 4 127,48 144,50 158,54 175,41 189,44
 16 151,79 177,76 200,02 230,00 257,48
 64 184,13 212,72 235,95 269,40 297,29
 256 222,99 258,65 287,87 329,12 363,71
 Workstation     
 1 67,54 71,64 81,42 86,68 89,91
 4 105,77 137,28 165,74 186,25 196,99
 16 121,76 169,03 215,82 251,18 272,92
 64 146,92 199,79 250,75 290,15 313,15
 256 177,64 242,93 306,56 352,34 380,54
 Database     
 1 65,93 74,78 83,09 88,59 91,51
 4 98,48 133,48 164,77 187,51 201,59
 16 109,06 155,65 199,79 231,33 253,62
 64 139,50 191,20 239,20 273,99 297,00
 256 169,35 235,02 294,32 339,61 368,13
 RandomWrite     
 1 104,85 142,57 175,83 200,78 216,11
 4 104,97 142,37 176,22 200,70 215,82
 16 105,27 141,99 176,31 200,95 216,42
 64 141,22 188,72 227,75 258,99 276,86
 256 167,15 226,09 277,32 314,67 336,19
 SequentialWrite     
 1 28,43 28,44 28,45 53,77 95,24
 4 28,36 28,41 28,42 53,58 95,07
 16 28,35 28,42 28,39 53,48 94,77
 64 28,31 28,42 28,39 53,37 95,01
 256 28,03 28,22 28,12 53,27 94,16
 RandomRead     
 1 63,23 66,70 70,42 72,42 73,58
 4 102,28 132,48 159,08 176,44 187,22
 16 135,80 188,09 237,34 274,29 298,21
 64 161,22 224,88 279,83 322,76 351,74
 256 189,25 264,96 334,76 385,77 419,61
 SequentialRead     
 1 125,56 126,05 126,69 195,46 252,98
 4 125,97 126,30 127,05 201,16 274,95
 16 123,57 123,90 124,60 197,03 272,82
 64 123,63 123,93 124,61 196,98 272,84
 256 122,87 123,20 123,95 196,31 272,25

В первой диаграмме приведена зависимость скорости обработки контроллером запросов во всех интересующих нас паттернах при глубине очереди команд равной 1.


Очевидно, что лучше всего реагируют на увеличение размера stripe-блока паттерны RandomWrite и SequentialRead. Менее всего увеличение размера stripe-блока влияет на скорость контроллера в паттерне RandomRead.
Отметим, что в двух Sequential-паттернах – SequentialRead и SequentialWrite максимум производительности достигается при размере страйп-блока, равном 64КБ. Что же, всё правильно, ведь у нас массив из четырёх винчестеров, а размер пакета данных в этом паттерне равен 256КБ. Таким образом, при обработке каждого запроса на долю каждого винчестера приходится 64КБ. Контроллер в таком режиме не выполняет дробление пакета на мелкие части, не перегружает свою внутреннюю шину и не усложняет работу винчестерам.



Заметно «оживляются» паттерны Fileserver, Workstation и Database, но еще большую чувствительность к размеру stripe-блока демонстрирует паттерн RandomRead! Что же, при увеличении длины очереди запросов контроллер имеет возможность выбрать наиболее оптимальный порядок их выполнения. При этом некоторые запросы стали выполняться чуть дольше (ибо их «задвигают» в самый конец очереди), но средняя скорость обработки запросов растёт.



Увеличение глубины очереди запросов лишь подтверждает найденную закономерность. Паттерны, основанные на случайном характере обращений демонстрируют прирост скорости как от увеличения размера stripe-блока, так и от увеличения глубины очереди команд. Паттерны же, которые содержат запросы на последовательное чтение или запись, практически индифферентны к глубине очереди команд, и скорость контроллера в этих паттернах зависит в большей степени от размера stripe-блока.
Очень жаль, что текущая версия фирмваре контроллера ограничивает размер stripe-блока 64 килобайтами, ведь, судя по нашим экспериментам, рост производительности массива продолжился бы на большем размере страйп-блока.

Надёжность


Для проверки способности контроллера восстанавливать работоспособность массива при отказе одиночного диска были смоделированы аварийные ситуации в массивах уровней 1, 01, 3, 5 (для массивов уровней 01, 3, 5 количество дисков было выбрано равным четырём).
Запускался тест IOMeter, после нескольких минут работы теста одному из дисков отключалось питание, и он вместе с реком извлекался из корзины. Через некоторое время, когда массив дисков начинал устойчиво работать в аварийном режиме, работа теста IOMeter прекращалась, диск устанавливался на своё место, и на него подавалось питание.
Замерялось время, прошедшее с этого момента до полного восстановления функциональности массива.
Время восстановления целостности массивов составило:


RAID1 – 12 минут
RAID01 – 16 минут
RAID3 – 40минут
RAID5 – 45минут


Время восстановления массива под нагрузкой значительно больше, чем 45 минут...

Выводы


Контролер Promise SX6000 продемонстрировал неплохую скорость по нашим тестам и значительно превзошёл своего «предка» - контроллер SuperTrak100. Превзошёл по всем статьям, в любой конфигурации и в любом паттерне. Контроллер SX6000 также показал отличную масштабируемость от количества подключаемых дисков (чем SuperTrak100 похвалится никак не мог).
Ещё одним «плюсом» контроллера является отличное соотношение его цены и количества IDE-каналов. Шесть каналов позволяют создать при помощи одного контроллера SX6000 два отказоустойчивых массива, сочетающих скорость и объём (RAID3, RAID5) или три массива RAID1, что увеличивает рыночную нишу этого контроллера.

Из недостатков контроллера SX6000 следует отметить невысокую скорость обработки Sequential-запросов и низкую скорость всех типов массива в тестах WinBench.

Как соотносится скорость работы SX6000 со скоростями его основных соперников – контроллеров 3Ware 7810 и Adaptec 2400A, Вы узнаете из нашего следущего обзора.
Оставайтесь с нами! :)

Благодарим компанию Promise Technology Inc. за предоставленный на тестирование контроллер SX6000.