Введение
Наконец-то закончено тестирование последнего доступного на текущий момент 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.