Promise FastTRAK100 TX4

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

Контроллер


Начнём с того, что контроллер FastTRAK TX4 на рынке доступен уже достаточно давно (если мне не изменяет память, то уже около года). Почему же так случилось, что я пишу про этот контроллер только сейчас? Дело было так: когда я попробовал этот контроллер в первый раз (это было ещё в том году), я сразу столкнулся с необъяснимыми проблемами. Во-первых, контроллер не показывал "правильных" результатов, а во-вторых, контроллер не работал на некоторых материнских платах, таких, например, как ASUS CUBX-E, на которой я тогда тестировал все остальные контроллеры. На плате SuperMicro 370DLE контроллер работал, но не демонстрировал подобающей ему скорости. С установкой драйверов контроллера у меня также были приключения... Так как в моей тестовой машине к тому времени уже побывал контроллер FastTRAK100 TX2, то он, по существующей традиции, оставил в Windows свой след в виде драйверов. Как только в испачканную таким образом систему устанавливался FastTRAK100 TX4, то Windows при обнаружении нового устройства не могла понять разницы между TX2 и TX4 (устройства-то родственные и используют одинаковые чипы) и благополучно висла...
При попытке установить более новые драйвера с сайта взамен поставлявшихся вместе с контроллером 2.00 b11 система висла ещё охотнее. В общем, желания выплёскивать свои эмоции на читателей у меня не было...
По прошествии некоторого времени я повторил манипуляции с контроллером TX4 на драйверах 2.00 b18 и, о чудо, всё заработало! А тут как раз подоспел контроллер HighPoint и...

Итак, что же такое контроллер Promise FastTRAK100 TX4:
В коробке любимого Promise цвета лежит контроллер:

Обратите внимание, что контроллер Promise состоит из трёх чипов, в отличие от контроллера HighPoint, у которого на всё про всё один чип. Чип Promise PDC20270 представляет собой двухканальный ATA100 RAID-контроллер, но здесь он исполняет функцию ATA-чипа. Каждый из двух чипов Promise PDC20270 работает с двумя IDE-каналами, но на каждом канале поддерживается только один винчестер.


Чипы Promise общаются с шиной через мост PCI-PCI от Intel (который, правда, получил его в наследство от поглощённой DEC). Не заметить эту микросхему трудно - это самая крупная и заметная микросхема на плате контроллера:


Согласно документации на этот чип, он поддерживает работу с 66МГц PCI-шиной:


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

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


Четырёхканальный контроллер Promise FastTRAK100 TX4 тестировался по той же методике, что и двухканальные контроллеры (не претерпела изменений и тестовая система), что позволит мне в дальнейшем сравнить результаты двух и четырёхканальных контроллеров между собой.
Перед тем, как перейти к результатам тестов, хотелось бы отметить два момента:

1. контроллер FastTRAK100 TX4 - ATA100 RAID-контроллер и винчестеры Maxtor D740X-6L, которые применялись для тестов, работали на нём в ATA100-режиме (что, впрочем, мало повлияло на результат...).

2. Контроллер FastTRAK100 TX4 тестировался на 33МГц PCI (битвы на 66МГц PCI у нас ещё впереди!)

Winbench


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

FAT32


Обратите внимание на значения Average Access time для RAID1 и RAID01-массивов! Как и положено, для массивов, где применяется зеркалирование, время доступа к случайному сектору уменьшается за счёт чередования запросов на чтение на оба винчестера в массиве.
В остальном же картина очень знакомая - скорость массивов в Business-тесте мало зависит от типа массива, а результаты High-End-теста, наоборот, очень чётко реагируют и на тип массива, и на количество винчестеров в нём.
Если сравнить скорости массивов между собой по двум интегральным тестам:


То мы увидим, что у RAID0-массива нет конкурентов. :)
Массив RAID1 показал абсолютно такую же скорость, что и одиночный диск, а вот RAID01 уступил по High-End Disk Winmark массиву RAID0 из двух дисков.

NTFS

Примерно ту же картину мы видим и под NTFS:



Для почитателей живописи привожу графики линейного чтения, полученные при помощи Winbench99:

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

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

IOMeter: Database


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


Для получения удовольствия при просмотре нижеследующих диаграмм рекомендую вам устроиться перед экраном поудобнее:


При глубине очереди команд, равной 1 скорость массивов RAID0 с различным количеством дисков мало отличается при небольшой доле операций записи в потоке. При увеличении доли операций записи контроллеры очень быстро расходятся по своим местам. Чем больше винчестеров в массиве, тем больше его скорость в режиме, близком к RandomWrite (интересно, что было бы, если у винчестеров выключить отложенную запись...).
Бросается в глаза необычное поведение RAID1 и RAID01-массивов. То есть то, что они в режиме RandomRead покажут большую скорость, чем одиночный винчестер или массив RAID0 из двух дисков, было вполне прогнозируемо, но ведь скорость RAID1 была равна скорости RAID01 до режима с 40%-ной долей операций записи, опережая при этом RAID0 из двух винчестеров! Скорость у RAID01-массива больше чем у RAID0 из двух винчестеров при доле операций записи меньше 50%, затем их скорости сравниваются.



WOW! Какая стройность линий, какое совершенство!
Обратите внимание, нет, не на "параллельность" графиков RAID0-массивов, хотя и это "правильно", а на график RAID01-массива! Такого мы ещё не видели... В режиме RandomRead массив RAID01 показывает большую скорость, чем RAID0 из четырёх винчестеров! Действительно, за счёт принудительного чередования запросов на чтение на оба элемента зеркала, которыми в данном случае являются страйп-пары, в режиме RandomRead можно было (теоретически) получить большую скорость, чем у RAID0 из четырёх винчестеров. А теперь мы видим, что этого можно добиться и на практике!



При дальнейшем увеличении глубины очереди команд, графики вместо "выпуклых" становятся "вогнутыми" - видимо за счёт того, что при большой глубине очереди команд контроллер может подобрать оптимальный порядок их обработки (кстати, при увеличении глубины очереди команд сильно растёт и скорость). Но, изменился только внешний вид графиков, но не их порядок. Графики JBOD и RAID0-массивов по-прежнему параллельны (нуу.. почти :) ), а графики массивов RAID1 и RAID01 в режиме RandomRead обгоняют RAID0-массивы из двух и четырёх винчестеров соответственно. При большой доле операций записи отлично видно, что скорость RAID1 и RAID01-массивов выше, чем у RAID0-массивов только за счёт наличия в потоке команд запросов на чтение (которые у массивов RAID1 и RAID01 чередуются на оба элемента зеркала).

IOMeter: SequentialRead


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


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


Вопреки ожиданиям, контроллер не показал супер-результатов. Несмотря на то, что контроллер имеет двухчиповую архитектуру и каждый винчестер на нём подключается к своему IDE-каналу (т.е. ситуация, когда два винчестера сталкиваются лбами (я хотел сказать - данными :) ) в одном шлейфе исключена), скорость контроллера TX4 при работе с последовательным чтением оказалась лишь немного выше, чем у двухканальных контроллеров.
А если мы посмотрим на следующую диаграмму, на которой приведены графики для RAID1 и RAID01-массивов:


то можем увидеть некоторую закономерность... Отлично видно, что "неприятности" на графиках этих массивов начинаются в области, где размер запрашиваемого блока данных близок к 64КБ для RAID1 (64КБ - размер страйп-блока и, в то же время, максимальный объём данных, который можно адресовать одной ATA-командой...) и к 128КБ для RAID01 (т.е. опять по 64КБ для каждого винчестера в страйп-группе).
Вполне возможно, что здесь применённая Promise технология чередования запросов на запись на элементы зеркальной пары срабатывает "со знаком минус"...
Если это так, то при записи никаких проблем быть не должно.

IOMeter: SequentialWrite




Как видим, таких явных проблем нет, но скорость записи на двух, трёх и четырёх дисковые массивы RAID0 явно не оправдывает затрат на их создание.


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

IOMeter: Workstation


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




Картина, которую мы здесь наблюдаем, противоречит распространённому мнению, что RAID для работы с Windows-приложениями не нужен... Причём, чем больше глубина очереди команд (читай - больше нагрузка), тем более очевидна "польза" от RAID-массива! Массив RAID1 конкурирует по скорости с RAID0 из двух дисков, а RAID01 "схватился" с RAID0 из трёх дисков.

IOMeter: SR2002


Итак, мы добрались до серверных паттернов:


Обратите внимание, что при более менее серьёзной нагрузке массивы RAID0 показывают реальное превосходство над одиночным винчестером. Скорость RAID0-массива из четырёх винчестеров оказалась, как минимум, в три раза большей, чем скорость одиночного винчестера. А вспомните тесты IDE RAID-контроллеров год назад - разве можно было тогда мечтать о таких скоростях?
Скорость массива RAID01 заметно больше, чем у массива RAID0 из трёх винчестеров, и это тоже огромный шаг вперёд! Как там сказал Армстронг: - "Это маленький шаг для человека, но громадный для человечества!" :)


Как мы помним, паттерн Webserver интересен тем, что в нём присутствуют только запросы на чтение! В сочетании с технологией попеременного чтения с элементов зеркальной пары у контроллера Promise получились весьма любопытные результаты.
Смотрите сами: - RAID1-массив легко и непринуждённо опережает RAID0 из двух винчестеров при всех вариантах нагрузки. То же самое можно сказать и о паре массивов RAID01 и RAID0 на четырёх винчестерах! Это - фантастика! :) Но, это медицинский факт!
Как мы видели выше, при обсуждении результатов паттерна Database, массивы RAID1 и RAID01 на контроллере Promise работают БЫСТРЕЕ, чем массивы RAID0 на двух и четырёх винчестерах если работа идёт в режимах с малой долей запросов на запись. А именно этот режим и характерен для вебсерверов.

Выводы


Несмотря на то, что этот обзор запоздал по времени, зато он появился аккурат к обзору конкурента. :)
Тестирование контроллера FastTRAK100 TX4 принесло мне чувство морального удовлетворения и изнало из моей памяти неприятные воспоминания. Однако, тесты проводятся не для морального удовлетворения тестера, а для выявления сильных и слабых стороны исследуемого объекта. ;)

К сильным сторонам контроллера FastTRAK100 TX4 смело можно отнести

великолепную масштабируемость в RAID0,
отличную скорость RAID1
просто блестящую работу в RAID01

К недостаткам контроллера следует отнести его невысокую скорость при работе с Sequential-запросами на запись.

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