Введение
Контроллеры Broadcom RAIDCore SATA RAID, построенные на архитектуре Fulcrum, буквально ошеломили конкурентов в прошлом году, установив новую планку производительности. И это, несмотря на таких именитых игроков на этом рынке, как 3Ware, Adaptec и LSI Logic.
Решение Broadcom RAIDCore во многом опирается на “Controller Spanning” – часть архитектуры Fulcrum, которая позволяет создавать массив из нескольких контроллеров. Максимум, можно использовать четыре контроллера, при этом распределение массива по приводам ничем не ограничено. Преимущество такого подхода очевидно, ведь чем больше дисков, тем больше ёмкость. К тому же, хорошее распределение контроллеров и приводов по слотам PCI-X позволяет достичь оптимальной производительности (если, конечно, всё правильно настроить).
Мы захотели нагрузить наши четыре контроллера Broadcom RAIDCore восемью приводами SATA каждый, то есть в сумме мы использовали 32 жёстких диска. Broadcom RAIDCore снабдила нас требуемыми картами-контроллерами и 32 приводами Hitachi 7K250. В качестве основы для системы мы использовали двухпроцессорную плату Xeon от Supermicro, которая предоставляет требуемую пропускную способность PCI-X.
Контроллер Broadcom RAIDCore BC4000
Как мы уже отмечали раньше, по функциональности контроллер Broadcom RAIDCore выходит на первое место. Выпускаются карты PCI-X с четырьмя или восемью портами SATA (BC4452/4852). Никакого особого аппаратного обеспечения на картах нет, поскольку архитектура Fulcrum является полностью программным решением.
По сравнению с аппаратными RAID-контроллерами (которые повсеместно встречаются в high-end сегменте) с выделенными XOR-процессорами для вычисления информации избыточности, подход Broadcom RAIDCore значительно нагружает системный процессор. Чем выше будет скорость ввода/вывода, тем больше потребуется вычислительной мощности.
Если ваша серверная система относительно старая, то лучше будет выбрать контроллеры с аппаратным XOR-процессором. В то же время, если нужна максимальная производительность (что мы и пытались достичь в нашем проекте), то здесь более интересен программный подход Broadcom RAIDCore, поскольку в работу включается мощный центральный процессор. Дело в том, что один или, тем более, два high-end центральных процессора работают быстрее, чем выделенный RISC-процессор на контроллере. Благодаря технологии Intel Hyper-Threading и двуядерным процессорам от AMD и Intel, которые появятся в следующем году, очевидно, что будущее – за программными решениями. Но данный сценарий справедлив, только если сервер будет обладать достаточной вычислительной мощностью и не будет заниматься другими задачами, кроме как работой с массивами RAID.
Наконец, программный подход позволяет достичь интересного уровня гибкости. Без особых усилий архитектуру Fulcrum можно адаптировать к различным типам аппаратного обеспечения. То есть здесь можно легко перейти с контроллеров SATA на модели SAS или Ultra320. Да и возможность интегрировать контроллеры Fulcrum на материнскую плату тоже любопытна.
Материнская плата Supermicro X5DPE-G2
Нажмите для увеличения.
Чтобы в полную силу задействовать комбинацию 8×4 SATA-приводов, необходимо использовать производительную архитектуру. Все контроллеры Broadcom RAIDCore оснащены интерфейсом PCI-X, который может работать с частотой до 133 МГц. Это даёт максимальную пропускную способность в 1 Гбайт/с, до которой приводы всё равно добраться не могут. Если взять реалистичную скорость чтения 60 Мбайт/с, то, в теории, восемь жёстких дисков дадут 480 Мбайт/с. Впрочем, в реальных условиях до этого значения добраться ещё не получается (пока).
Мы использовали плату X5DPE-G2 от Supermicro, которая оснащена двумя шинами PCI-X. Каждая шина может работать с двумя картами PCI-X (с частотой 66 МГц), при этом мы получаем достаточную пропускную способность 4×512 Мбайт/с.
Для нашего проекта понадобилось два моста PCI-X. Только так мы смогли обеспечить достаточную пропускную способность шины для четырёх контроллеров.
Препятствие для больших разделов: максимум, 2 Тбайт под Windows
Объём раздела 2048 Гбайт или 2 Тбайт является максимальным, который можно получить под NTFS в Windows при использовании MBR (Master Boot Record). Переход на динамический раздел заставит Windows использовать базу данных вместо таблицы разделов, что позволяет достичь объёма разделов до 232 кластеров (16 Тбайт при размере кластера 4 кбайт).
Массив RAID 50
Для простоты мы решили создать один большой массив RAID 5 на 32 привода. Однако архитектура Fulcrum поддерживает, максимум, 16 приводов на массив RAID 5. Поэтому нам пришлось перейти на RAID 0, который не обладает отказоустойчивостью.
Чтобы всё же в полной мере оценить производительность RAID 5, мы также создали массив RAID 50 – два массива RAID 5 по 16 приводов, связанных чередованием.
Тестовая конфигурация
Четыре контроллера, к каждому из которых подключено восемь приводов.
Тестовая конфигурация Процессор |
|
Socket 604 | Dual Intel Pentium 4 Xeon, 2,8 ГГц, кэш 512 кбайт, FSB533 |
Системные компоненты | |
DDR SDRAM | 2x 512 Мбайт PC3200 Samsung, ECC, регистровая |
Материнская плата | Supermicro X5DPE-G2 Чипсет Intel E7501 |
Графическая карта | ATi RageXL, 8 Мбайт |
Жёсткий диск | Система: Western Digital WD800JB Тестовые приводы: массив RAID 5, состоящий из 32x Hitachi HDS722516VLSA80, 160 Гбайт, 7200 об/мин, кэш 8 Мбайт |
Контроллер | 4x Raidcore BC4000 8 портов |
Программное обеспечение | |
Чипсет Intel | Intel Chipset Installation Utility 5.1.1.1002 Intel Application Accelerator RAID Edition Ver. 3.53 |
DirectX | 9.0b |
OS | Windows XP Professional Build 2600 Service Pack 1 |
Тесты и настройки | |
Производительность ввода/вывода | IOMeter 2003.05.10 Fileserver Benchmark Pattern Webserver Benchmark Pattern Database Benchmark Pattern Workstation Benchmark Pattern Throughput Benchmark Pattern |
Производительность приложений | Winbench 99 2.0 Disk Winmarks |
IOMeter 2003
Результаты тестов, продолжение
ZD Winbench 99 2.0
Заключение: нас не догонят
Результаты оказались очень впечатляющими: до 1,1 Гбайт/с в RAID 0 и максимум около 1 Гбайт/с в RAID 50 – раньше мы такого не видели. И это – с накопителями, использующими магнитную запись.
Чтобы полностью задействовать такую производительность, необходимо использовать блоки максимально возможного размера. Они позволят лучше распределить нагрузку по 32 приводам. Например, блоки по 64 кбайт совершенно бессмысленны, поскольку получаемые 250 Мбайт/с можно достичь и при использовании шести (или более) приводов.
Исследование производительности ввода/вывода тоже стало весьма интересным, поскольку в серверном окружении она даже более важна, чем максимальные скорости чтения. В RAID 0 тестовая система обеспечила около 2000 операций ввода/вывода в секунду для сценариев файлового сервера, сервера баз данных и рабочей станции. Чтобы получить представление отметим, что один привод обычно обеспечивает около 150 операций ввода/вывода в секунду. Кстати производительность массивов RAID 0 и RAID 50 оказалась близка только для сценария web-сервера, поскольку операции записи здесь относительно редки.
При переходе на более дорогие аппаратные компоненты типа Ultra320 нам следует ожидать ещё большую производительность, особенно в сфере операций ввода/вывода. Но и это будет нелегко, так как на данный момент другие архитектуры RAID не поддерживают “Controller Spanning”.