RAID-контроллер LSI 3ware SAS 9750-8i

Сергей Пахомов

Коротко о современных RAID-контроллерах

Характеристики RAID-контроллера 3ware SAS 9750-8i

Уровни RAID-массивов

RAID 0

RAID 1

RAID 5

RAID 6

RAID 10

RAID 50

Методика тестирования контроллера LSI 3ware SAS 9750-8i

Результаты тестирования

RAID 0

RAID 5

RAID 6

RAID 10

RAID 50

RAID 1

Выводы

 

В настоящей статье мы детально рассмотрим 8-портовый RAID-контроллер LSI 3ware SAS 9750-8i, который ориентирован на серверный сегмент рынка и позволяет подключить до восьми дисков с интерфейсом SAS 2.0 (6 Гбит/с).

Коротко о современных RAID-контроллерах

В настоящее время RAID-контроллеры как отдельное решение ориентированы исключительно на специализированный серверный сегмент рынка. Действительно, все современные материнские платы для пользовательских ПК (не серверные платы) имеют интегрированные программно-аппаратные SATA RAID-контроллеры, возможностей которых с избытком хватает для пользователей ПК. Правда, нужно иметь в виду, что эти контроллеры ориентированы исключительно на использование операционной системы Windows. В операционных системах семейства Linux RAID-массивы создаются программным методом, и все расчеты переносятся с RAID-контроллера на центральный процессор.

В серверах традиционно применяются либо программно-аппаратные, либо чисто аппаратные RAID-контроллеры. Аппаратный RAID-контроллер позволяет создавать и обслуживать RAID-массив без участия операционной системы и центрального процессора. Такие RAID-массивы видятся операционной системой как один диск (SCSI-диск). При этом никакого специализированного драйвера не нужно — используется стандартный (входящий в состав операционной системы) драйвер SCSI-диска. В этом плане аппаратные контроллеры являются платформенно-независимыми, а настройка RAID-массива производится через BIOS контроллера. Аппаратный RAID-контроллер не задействует центральный процессор при расчете всех контрольных сумм и т.п., поскольку для расчетов применяет свой специализированный процессор и оперативную память.

Программно­аппаратные контроллеры требуют обязательного наличия специализированного драйвера, который подменяет собой стандартный драйвер SCSI-диска. Кроме того, программно-аппаратные контроллеры комплектуются утилитами управления. В этом плане программно-аппартные контроллеры привязаны к конкретной операционной системе. Все необходимые расчеты в этом случае также выполняются процессором самого RAID-контроллера, но использование программного драйвера и утилиты управления позволяет управлять контроллером через операционную систему, а не только через BIOS контроллера.

Учитывая тот факт, что на смену серверным SCSI-дискам уже пришли SAS-диски, все современные серверные RAID-контроллеры ориентированы на поддержку либо SAS-, либо SATA-дисков, которые также применяются в серверах.

В прошлом году на рынке начали появляться диски с новым интерфейсом SATA 3 (SATA 6 Гбит/с), который стал постепенно вытеснять интерфейс SATA 2 (SATA 3Гбит/с). Ну а на смену дискам с интерфейсом SAS (3 Гбит/с) пришли диски с интерфейсом SAS 2.0 (6 Гбит/с). Естественно, новый стандарт SAS 2.0 полностью совместим со старым стандартом.

Соответственно появились RAID-контроллеры с поддержкой стандарта SAS 2.0. Казалось бы, какой смысл переходить к стандарту SAS 2.0, если даже самые скоростные SAS-диски имеют скорость чтения и записи данных не выше 200 Мбайт/с и для них вполне достаточно пропускной способности протокола SAS (3 Гбит/с или 300 Мбайт/с)?

Действительно, когда каждый диск подключается к отдельному порту на RAID-контроллере, пропускной способности 3 Гбит/с (что в теории составляет 300 Мбайт/с) вполне достаточно. Однако к каждому порту RAID-контроллера могут подключаться не только отдельные диски, но и дисковые массивы (дисковые корзины). В этом случае один SAS-канал делят между собой сразу несколько накопителей, и пропускной способности в 3 Гбит/с будет уже недостаточно. Ну и, кроме того, нужно учитывать наличие SSD-дисков, скорость чтения и записи которых уже преодолела планку в 300 Мбайт/с. К примеру, в новом диске Intel SSD 510 скорость последовательного чтения составляет до 500 Мбайт/с, а скорость последовательной записи — до 315 Мбайт/с.

После краткого знакомства с текущей ситуацией на рынке серверных RAID-контроллеров давайте рассмотрим характеристики контроллера LSI 3ware SAS 9750-8i.

Характеристики RAID-контроллера 3ware SAS 9750-8i

Данный RAID-контроллер выполнен на базе специализированного XOR-процессора LSI SAS2108 с тактовой частотой 800 МГц и архитектурой PowerPC. Этот процессор использует 512 Мбайт оперативной памяти DDRII 800 МГц с коррекцией ошибок (ECC).

Контроллер LSI 3ware SAS 9750-8i совместим с SATA- и SAS-дисками (поддерживаются как HDD-, так и SSD-диски) и позволяет подключать до 96 устройств с помощью SAS-экспандеров. Немаловажно, что данный контроллер поддерживает диски с интерфейсом SATA 600 Мбайт/с (SATA III) и SAS 2.

Для подключения дисков на контроллере предусмотрено восемь портов, которые физически объединены в два разъема Mini-SAS SFF-8087 (по четыре порта в каждом разъеме). То есть если диски подключать напрямую к портам, то всего можно подключить к контроллеру восемь дисков, а при подключении к каждому порту дисковых корзин общий объем дисков может быть увеличен до 96. Каждый из восьми портов контроллера имеет пропускную способность 6 Гбит/с, что соответствует стандартам SAS 2 и SATA III.

 

Рисунок

Естественно, при подключении дисков или дисковых корзин к этому контроллеру потребуются специализированные кабели, которые c одного конца имеют внутренний разъем Mini-SAS SFF-8087, а на другом конце — разъем, который зависит от того, что именно подключается к контроллеру. К примеру, при подключении к контроллеру напрямую SAS-дисков необходимо использовать кабель, у которого с одной стороны разъем Mini-SAS SFF-8087, а с другой — четыре разъема SFF 8484, которые позволяют непосредственно подключать SAS-диски. Отметим, что сами кабели не входят в комплект поставки и приобретаются отдельно.

У контроллера LSI 3ware SAS 9750-8i есть интерфейс PCI Express 2.0 x8, что обеспечивает пропускную способность 64 Гбит/с (по 32 Гбит/с в каждом направлении). Понятно, что такой пропускной способности вполне достаточно для полностью загруженных восьми портов SAS с пропускной способностью 6 Гбит/с каждый. Также отметим, что на контроллере имеется специальный разъем, в который опционально можно подключить батарею резервного питания LSIiBBU07.

 

Рисунок

Немаловажно, что данный контроллер требует инсталляции драйвера, то есть является программно-аппаратным RAID-контроллером. При этом поддерживаются такие операционные системы, как Windows Vista, Windows Server 2008, Windows Server 2003 x64, Windows 7, Windows 2003 Server, MAC OS X, LinuxFedora Core 11, Red Hat Enterprise Linux 5.4, OpenSuSE 11.1, SuSE Linux Enterprise Server (SLES) 11, OpenSolaris 2009.06, VMware ESX/ESXi 4.0/4.0 update-1 и другие системы семейства Linux. В комплект поставки также входит программное обеспечение 3ware Disk Manager 2, которое позволяет управлять RAID-массивами через операционную систему.

Контроллер LSI 3ware SAS 9750-8i поддерживает стандартные типы RAID-массивов: RAID 0, 1, 5, 6, 10 и 50. Пожалуй, единственный тип массива, который не поддерживается, — RAID 60. Это связано с тем, что данный контроллер способен создать массив RAID 6 только на пяти дисках, подключаемых напрямую к каждому порту контроллера (теоретически RAID 6 может быть создан на четырех дисках). Соответственно для массива RAID 60 данному контроллеру требуется минимум десять дисков, которых просто нет.

 

Рисунок

Понятно, что поддержка массива RAID 1 неактуальна для такого контроллера, поскольку данный тип массива создается только на двух дисках, а использовать такой контроллер только для двух дисков нелогично и крайне расточительно. А вот поддержка массивов RAID 0, 5, 6, 10 и 50 весьма актуальна. Хотя, возможно, с массивом RAID 0 мы и поторопились. Всё же этот массив не обладает избыточностью, а соответственно не обеспечивает надежности хранения данных, поэтому в серверах он используется крайне редко. Однако теоретически этот массив является самым быстрым по скорости чтения и записи данных. Впрочем, давайте вспомним, чем разные типы RAID-массивов отличаются друг от друга и что они собой представляют.

Уровни RAID-массивов

Термин «RAID-массив» появился в 1987 году, когда американские исследователи Паттерсон, Гибсон и Катц из Калифорнийского университета в Беркли в своей статье «Избыточный массив недорогих дисков» (“A case for redundant arrays of inexpensive discs, RAID”) описали, каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так, чтобы в результате повышались емкость и быстродействие системы, а отказ отдельных дисков не приводил к отказу всей системы. С момента выхода этой статьи прошло уже почти 25 лет, но технология построения RAID-массивов не утратила актуальности и сегодня. Единственное, что изменилось с тех пор, — это расшифровка аббревиатуры RAID. Дело в том, что первоначально RAID-массивы строились вовсе не на дешевых дисках, поэтому слово Inexpensive («недорогие») поменяли на Independent («независимые»), что больше соответствовало действительности.

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

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

Совместную работу дисков в массиве можно организовать с помощью либо параллельного, либо независимого доступа. При параллельном доступе дисковое пространство разбивается на блоки (полоски) для записи данных. Аналогично информация, подлежащая записи на диск, разбивается на такие же блоки. При записи отдельные блоки записываются на разные диски, причем запись нескольких блоков на различные диски происходит одновременно, что приводит к увеличению производительности в операциях записи. Нужная информация также считывается отдельными блоками одновременно с нескольких дисков, что тоже способствует росту производительности пропорционально количеству дисков в массиве.

Следует отметить, что модель с параллельным доступом реализуется только при условии, что размер запроса на запись данных больше размера самого блока. В противном случае осуществлять параллельную запись нескольких блоков практически невозможно. Представим ситуацию, когда размер отдельного блока составляет 8 Кбайт, а размер запроса на запись данных — 64 Кбайт. В этом случае исходная информация нарезается на восемь блоков по 8 Кбайт каждый. Если имеется массив из четырех дисков, то одновременно можно записать четыре блока, или 32 Кбайт, за один раз. Очевидно, что в рассмотренном примере скорость записи и скорость считывания окажутся в четыре раза выше, чем при использовании одного диска. Это справедливо лишь для идеальной ситуации, однако размер запроса далеко не всегда кратен размеру блока и количеству дисков в массиве.

Если же размер записываемых данных меньше размера блока, то реализуется принципиально иная модель — независимый доступ. Более того, эта модель может использоваться и в том случае, когда размер записываемых данных больше размера одного блока. При независимом доступе все данные отдельного запроса записываются на отдельный диск, то есть ситуация идентична работе с одним диском. Преимущество модели с независимым доступом в том, что при одновременном поступлении нескольких запросов на запись (чтение) все они будут выполняться на отдельных дисках независимо друг от друга. Подобная ситуация типична, например, для серверов.

В соответствии с различными типами доступа существуют и разные типы RAID-массивов, которые принято характеризовать уровнями RAID. Кроме типа доступа, уровни RAID различаются способом размещения и формирования избыточной информации. Избыточная информация может либо размещаться на специально выделенном диске, либо распределяться между всеми дисками.

В настоящее время существует несколько RAID-уровней, которые широко используются, — это RAID 0, RAID 1, RAID 5, RAID 6, RAID 10, RAID 50 и RAID 60. Ранее также применялись уровни RAID 2, RAID 3 и RAID 4, однако в настоящее время эти уровни RAID не используются и современные RAID-контроллеры их не поддерживают. Отметим, что все современные RAID-контроллеры поддерживают также функцию JBOD (Just a Bench Of Disks). В данном случае речь идет не о RAID-массиве, а просто о подключении отдельных дисков к RAID-контроллеру.

RAID 0

RAID 0, или страйпинг (striping), — это, строго говоря, не RAID-массив, поскольку такой массив не имеет избыточности и не обеспечивает надежности хранения данных. Однако исторически его тоже называют RAID-массивом. Массив RAID 0 (рис. 1) может строиться на двух и более дисках и используется в том случае, когда необходимо обеспечить высокую производительность дисковой подсистемы, а надежность хранения данных некритична. При создании массива RAID 0 информация разбивается на блоки (эти блоки называют страйпами (stripe)), которые одновременно записываются на отдельные диски, то есть создается система с параллельным доступом (если, конечно, позволяет размер блока). Благодаря возможности одновременного ввода­вывода с нескольких дисков, RAID 0 обеспечивает максимальную скорость передачи данных и максимальную эффективность использования дискового пространства, поскольку не требуется места для хранения контрольных сумм. Реализация этого уровня очень проста. В основном RAID 0 применяется в тех областях, где требуется быстрая передача большого объема данных.

 

Рисунок

Рис. 1. Массив RAID 0

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

Надежность массива RAID 0 заведомо ниже надежности любого из дисков в отдельности и снижается с увеличением количества входящих в массив дисков, так как отказ любого из них приводит к неработоспособности всего массива. Если время наработки на отказ каждого диска составляет MTTFdisk, то время наработки на отказ массива RAID 0, состоящего из n дисков, равно:

 

MTTFRAID0 = MTTDdisk/n.

 

Если обозначить вероятность выхода из строя за определенный промежуток времени одного диска через p, то для массива RAID 0 из n дисков вероятность того, что хотя бы один диск выйдет из строя (вероятность падения массива), составит:

 

Р (падение массива) = 1 – (1 – р)n.

 

К примеру, если вероятность выхода из строя одного диска в течение трех лет эксплуатации составляет 5%, то вероятность падения массива RAID 0 из двух дисков равна уже 9,75%, а из восьми дисков — 33,7%.

RAID 1

Массив RAID 1 (рис. 2), который также называют зеркалом (mirror), — это массив из двух дисков со 100-процентной избыточностью. То есть данные полностью дублируются (зеркалируются), за счет чего достигается очень высокий уровень надежности (как, впрочем, и стоимости). Отметим, что для реализации RAID 1 не требуется предварительно разбивать диски и данные на блоки. В простейшем случае два диска содержат одинаковую информацию и являются одним логическим диском. При выходе из строя одного диска его функции выполняет другой (что абсолютно прозрачно для пользователя). Восстановление массива выполняется простым копированием. Кроме того, теоретически в массиве RAID 1 должна удваиваться скорость считывания информации, так как эта операция может выполняться одновременно с двух дисков. Подобная схема хранения информации используется в основном в тех случаях, когда цена безопасности данных гораздо выше стоимости реализации системы хранения.

 

Рисунок

Рис. 2. Массив RAID 1

Если, как в предыдущем случае, обозначить вероятность выхода из строя за определенный промежуток времени одного диска через p, то для массива RAID 1 вероятность того, что оба диска выйдут из строя одновременно (вероятность падения массива), составит:

 

Р (падение массива) = р2.

 

К примеру, если вероятность выхода из строя одного диска в течение трех лет эксплуатации составляет 5%, то вероятность одновременного выхода из строя двух дисков равна уже 0,25%.

RAID 5

Массив RAID 5 (рис. 3) — это отказоустойчивый дисковый массив с распределенным хранением контрольных сумм. При записи поток данных разбивается на блоки (страйпы) на уровне байтов, которые одновременно записываются на все диски массива в циклическом порядке.

 

Рисунок

Рис. 3. Массив RAID 5

Предположим, что массив содержит n дисков, а размер страйпа — d. Для каждой порции из n–1 страйпов рассчитывается контрольная сумма p.

Cтрайп d1 записывается на первый диск, страйп d2 — на второй и так далее вплоть до страйпа dn–1, который записывается на (n–1)-й диск. Далее на n-й диск записывается контрольная сумма pn, и процесс циклически повторяется с первого диска, на который записывается страйп dn.

Процесс записи (n–1) страйпов и их контрольной суммы производится одновременно на все n дисков.

Для вычисления контрольной суммы используется поразрядная операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. Так, если имеется n жестких дисков и d — блок данных (страйп), то контрольная сумма рассчитывается по следующей формуле:

 

pn = d1 d2 ... dn–1.

 

В случае выхода из строя любого диска данные на нем можно восстановить по контрольным данным и по данным, оставшимся на исправных дисках. Действительно, воспользовавшись тождествами (a b) A b = a и a a = 0 , получим, что:

 

pn (dk pn) = dl dn ...... dn–l (dk pn).

 

dk = d1 dn ... dk–1 dk+1 ... pn.

 

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

В случае RAID 5 все диски массива должны иметь одинаковый размер, однако общая емкость дисковой подсистемы, доступной для записи, становится меньше ровно на один диск. Например, если пять дисков имеют размер 100 Гбайт, то фактический размер массива составляет 400 Гбайт, поскольку 100 Гбайт отводится на контрольную информацию.

Массив RAID 5 может быть построен на трех и более жестких дисках. С увеличением количества жестких дисков в массиве его избыточность уменьшается. Отметим также, что массив RAID 5 может быть восстановлен при выходе из строя только одного диска. Если же одновременно выходят из строя два диска (или если второй диск выходит из строя в процессе восстановления массива), то массив не подлежит восстановлению.

RAID 6

Массив RAID 5, как было показано, может быть восстановлен при выходе из строя одного диска. Однако иногда требуется обеспечить более высокий уровень надежности, чем в массиве RAID 5. В этом случае можно использовать массив RAID 6 (рис. 4), который позволяет восстановить массив даже при выходе из строя одновременно двух дисков.

 

Рисунок

Рис. 4. Массив RAID 6

Массив RAID 6 похож на RAID 5, но в нем применяется не одна, а две контрольные суммы, которые циклически распределяются по дискам. Первая контрольная сумма p рассчитывается по тому же алгоритму, что и в массиве RAID 5, то есть это операция XOR между блоками данных, записываемыми на разные диски:

 

pn = d1 d2 ... dn–1.

 

Вторая контрольная сумма рассчитывается уже по другому алгоритму. Не вдаваясь в математические подробности, скажем, что это также операция XOR между блоками данных, но каждый блок данных предварительно умножается на полиномиальный коэффициент:

 

qn = g1d1 g2d2 ... gn–1dn–1.

 

Соответственно под контрольные суммы выделяется емкость двух дисков в массиве. Теоретически массив RAID 6 может быть создан на четырех и более дисках, однако во многих контроллерах он может быть создан минимум на пяти дисках.

Нужно иметь в виду, что производительность массива RAID 6, как правило, на 10-15% ниже производительности массива RAID 5 (при равном количестве дисков), что вызвано большим объемом расчетов, выполняемых контроллером (необходимо рассчитывать вторую контрольную сумму, а также считывать и перезаписывать больше дисковых блоков при записи каждого блока).

RAID 10

Массив RAID 10 (рис. 5) представляет собой сочетание уровней 0 и 1. Минимально для этого уровня требуются четыре диска. В массиве RAID 10 из четырех дисков они попарно объединяются в массивы RAID 1, а оба эти массива как логические диски объединяются в массив RAID 0. Возможен и другой подход: первоначально диски объединяются в массивы RAID 0, а затем логические диски на основе этих массивов — в массив RAID 1.

 

Рисунок

Рис. 5. Массив RAID 10

RAID 50

Массив RAID 50 представляет собой сочетание уровней 0 и 5 (рис. 6). Минимально для этого уровня требуется шесть дисков. В массиве RAID 50 сначала создаются два массива RAID 5 (минимум по три диска в каждом), которые потом как логические диски объединяются в массив RAID 0.

 

Рисунок

Рис. 6. Массив RAID 50

Методика тестирования контроллера LSI 3ware SAS 9750-8i

Для тестирования RAID-контроллера LSI 3ware SAS 9750-8i мы использовали специализированный тестовый пакет IOmeter 1.1.0 (версия от 2010.12.02). Тестовый стенд имел следующую конфигурацию:

  • процессор — Intel Core i7-990 (Gulftown);
  • системная плата — GIGABYTE GA-EX58-UD4;
  • память — DDR3-1066 (3 Гбайт, трехканальный режим работы);
  • системный диск — WD Caviar SE16 WD3200AAKS;
  • видеокарта — GIGABYTE GeForce GTX480 SOC;
  • RAID-контроллер — LSI 3ware SAS 9750-8i;
  • SAS-диски, подключаемые к RAID-контроллеру, — Seagate Cheetah 15K.7 ST3300657SS.

Тестирование проводилось под управлением операционной системы Microsoft Windows 7 Ultimate (32-bit).

Мы использовали Windows-драйвер RAID-контроллера версии 5.12.00.007, а также обновили прошивку контроллера до версии 5.12.00.007.

Системный диск подключался к SATA, реализованному через контроллер, интегрированный в южный мост чипсета Intel X58, a SAS-диски подключались напрямую к портам RAID-контроллера с использованием двух кабелей Mini-SAS SFF-8087 ->4 SAS.

RAID-контроллер устанавливался в разъем PCI Express x8 на системной плате.

Контроллер тестировался со следующими RAID-массивами: RAID 0, RAID 1, RAID 5, RAID 6, RAID 10 и RAID 50. Количество дисков, объединяемых в RAID-массив, варьировалось для каждого типа массива от минимального значения до восьми.

Размер страйпа на всех RAID-массивах не изменялся и составлял 256 Кбайт.

Напомним, что пакет IOmeter позволяет работать как с дисками, на которых создан логический раздел, так и с дисками без логического раздела. В случае если проводится тестирование диска без созданного на нем логического раздела, то IOmeter работает на уровне логических блоков данных, то есть вместо операционной системы передает команды контроллеру на запись или чтение LBA-блоков.

Если на диске создан логический раздел, то первоначально утилита IOmeter создает на диске файл, который по умолчанию занимает весь логический раздел (в принципе, размер этого файла можно изменять, указав его в количестве 512 байтных секторов), и далее уже работает с этим файлом, то есть считывает или записывает (перезаписывает) отдельные LBA-блоки в пределах этого файла. Но опять-таки IOmeter работает в обход операционной системы, то есть непосредственно посылает запросы контроллеру на чтение/запись данных.

Вообще, при тестировании HDD-дисков, как показывает практика, разницы между результатами тестирования диска с созданным логическим разделом и без него практически нет. В то же время мы считаем, что более корректно проводить тестирование без созданного логического раздела, поскольку в таком случае результаты тестов не зависят от используемой файловой системы (NTFA, FAT, ext и т.д.). Именно поэтому мы выполняли тестирование без создания логических разделов.

Кроме того, утилита IOmeter позволяет задавать размер блока запроса (Transfer Request Size) на запись/чтение данных, а тест можно проводить как для последовательных (Sequential) чтения и записи, когда LBA-блоки считываются и записываются последовательно друг за другом, так и для случайных (Random), когда LBA-блоки считываются и записываются в произвольном порядке. При формировании сценария нагрузки можно задавать время теста, процентное соотношение между последовательными и случайными операциями (Percent Random/Sequential Distribution), а также процентное соотношение между операциями чтения и записи (Percent Read/Write Distribution). Кроме того, утилита IOmeter позволяет автоматизировать весь процесс тестирования и сохраняет все результаты в CSV-файл, который затем легко экспортируется в таблицу Excel.

Еще одна настройка, которую позволяет делать утилита IOmeter, — это так называемое выравнивание блоков запросов на передачу данных (Align I/Os on) по границам секторов жесткого диска. По умолчанию IOmeter выравнивает блоки запросов по границам 512-байтных секторов диска, однако можно задать и произвольное выравнивание. Собственно, большинство жестких дисков имеют размер сектора 512 байт и только в последнее время стали появляться диски с размером сектора 4 Кбайт. Напомним, что в HDD-дисках сектор — это минимальный адресуемый размер данных, который можно записать или считать с диска.

При проведении тестирования необходимо устанавливать выравнивание блоков запросов на передачу данных по размеру сектора диска. Поскольку в дисках Seagate Cheetah 15K.7 ST3300657SS размер сектора составляет 512 байт, мы использовали выравнивание по границам 512-байтных секторов.

С помощью тестового пакета IOmeter мы измеряли скорость последовательного чтения и записи, а также скорость случайного чтения и записи созданного RAID-массива. Размеры блоков передаваемых данных составляли 512 байт, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 и 1024 Кбайт.

В перечисленных сценариях нагрузки время теста с каждым запросом на передачу блока данных составляло 5 мин. Также отметим, что во всех перечисленных тестах мы задавали в настройках IOmeter глубину очереди задачи (# of Outstanding I/Os) равной 4, что типично для пользовательских приложений.

Результаты тестирования

Проанализировав результаты тестирования, мы были удивлены работой RAID-контроллера LSI 3ware SAS 9750-8i. Причем настолько, что стали просматривать наши скрипты на предмет выявления в них ошибки, а потом многократно повторили тестирование с другими настройками RAID-контроллера. Мы меняли размер страйпа и режим работы кэша RAID-контроллера. Это, конечно же, отражалось на результатах, однако не меняло общего характера зависимости скорости передачи данных от размера блока данных. А эту зависимость мы как раз и не смогли объяснить. Работа данного контроллера представляется нам совершенно нелогичной. Во­первых, результаты нестабильны, то есть при каждом фиксированном размере блока данных скорость периодически изменяется и усредненный результат имеет большую погрешность. Отметим, что обычно результаты тестирования дисков и контроллеров с использованием утилиты IOmeter стабильны и различаются весьма незначительно.

Во­вторых, при увеличении размера блока скорость передачи данных должна возрастать или оставаться неизменной в режиме насыщения (когда скорость достигает своего максимального значения). Однако в случае контроллера LSI 3ware SAS 9750-8i при некоторых размерах блоков наблюдается резкое падение скорости передачи данных. Кроме того, для нас так и осталось загадкой, почему при одном и том же количестве дисков для массивов RAID 5 и RAID 6 скорость записи выше скорости чтения. Одним словом, объяснить работу контроллера LSI 3ware SAS 9750-8i мы не можем — остается лишь констатировать факты.

Результаты тестирования можно классифицировать по-разному. К примеру, по сценариям загрузки, когда для каждого типа загрузки приводятся результаты для всех возможных RAID-массивов с разным количеством подключенных дисков, или по типам RAID-массивов, когда для каждого типа RAID-массива указываются результаты с различным количеством дисков в сценариях последовательного чтения, последовательной записи, случайного чтения и случайной записи. Также можно классифицировать результаты по количеству дисков в массиве, когда для каждого количества подключенных к контроллеру дисков приводятся результаты для всех возможных (при данном количестве дисков) RAID-массивов в сценариях последовательного чтения и последовательной записи, случайного чтения и случайной записи.

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

RAID 0

Массив RAID 0 можно создать с количеством дисков от двух до восьми. Результаты тестирования для массива RAID 0 представлены на рис. 7-15.

 

Рисунок
Рисунок
Рис. 7. Скорость последовательного чтения и записи
при восьми дисках в массиве RAID 0
Рис. 8. Скорость последовательного чтения и записи
при семи дисках в массиве RAID 0
Рисунок
Рисунок
Рис. 9. Скорость последовательного чтения
и записи при шести дисках в массиве RAID 0
Рис. 10. Скорость последовательного чтения и записи
при пяти дисках в массиве RAID 0
Рисунок
Рисунок
Рис. 11. Скорость последовательного чтения и записи
при четырех дисках в массиве RAID 0
Рис. 12. Скорость последовательного чтения и записи
при трех дисках в массиве RAID 0
Рисунок
Рисунок
Рис. 13. Скорость последовательного чтения и записи
при двух дисках в массиве RAID 0
Рис. 14. Скорость случайного чтения
в массиве RAID 0
Рисунок
Рис. 15. Скорость случайной записи в массиве RAID 0

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

Нельзя не отметить и характерные провалы в скорости последовательного чтения и записи при определенных размерах блоков. К примеру, при восьми и шести дисках в массиве такие провалы наблюдаются при размере блоков данных 1 и 64 Кбайт, а при семи дисках — при размере 1, 2 и 128 Кбайт. Аналогичные провалы, но при других размерах блоков данных имеются и при четырех, трех и двух дисках в массиве.

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

Случайный доступ в массиве RAID 0 тоже довольно интересен. Скорость случайного чтения при каждом размере блока данных пропорциональна количеству дисков в массиве, что вполне логично. Причем при размере блока 512 Кбайт при любом количестве дисков в массиве наблюдается характерный провал по скорости случайного чтения.

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

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

RAID 5

Массив RAID 5 можно создать с количеством дисков от трех до восьми. Результаты тестирования для массива RAID 5 представлены на рис. 16-23.

 

Рисунок
Рисунок
Рис. 16. Скорость последовательного чтения и записи
при восьми дисках в массиве RAID 5
Рис. 17. Скорость последовательного чтения и записи
при семи дисках в массиве RAID 5
Рисунок
Рисунок
Рис. 18. Скорость последовательного чтения и записи
при шести дисках в массиве RAID 5
Рис. 19. Скорость последовательного чтения и записи
при пяти дисках в массиве RAID 5
Рисунок
Рисунок
Рис. 20. Скорость последовательного чтения и записи
при четырех дисках в массиве RAID 5
Рис. 21. Скорость последовательного чтения и записи
при трех дисках в массиве RAID 5
Рисунок
Рисунок
Рис. 22. Скорость случайного чтения
в массиве RAID 5
Рис. 23. Скорость случайной записи
в массиве RAID 5

Понятно, что наиболее высокая скорость чтения и записи достигается при восьми дисках. Стоит обратить внимание на то, что для массива RAID 5 скорость последовательной записи в среднем выше, чем скорость чтения. Однако при определенном размере запроса скорость последовательного чтения может превышать скорость последовательной записи.

Нельзя не отметить и характерные провалы по скорости последовательного чтения и записи при определенных размерах блоков при любом количестве дисков в массиве.

По скорости последовательного чтения и записи в конфигурации с восемью дисками массив RAID 5 уступает массивам RAID 0 и RAID 50, но превосходит массивы RAID 10 и RAID 6. В конфигурациях с семью дисками массив RAID 5 по скорости последовательного чтения и записи уступает массиву RAID 0 и превосходит массив RAID 6 (остальные типы массивов невозможны при данном количестве дисков).

В конфигурациях с шестью дисками массив RAID 5 по скорости последовательного чтения уступает массивам RAID 0 и RAID 50, а по скорости последовательной записи — только массиву RAID 0.

В конфигурациях с пятью, четырьмя и тремя дисками массив RAID 5 по скорости последовательного чтения и записи уступает лишь массиву RAID 0.

Случайный доступ в массиве RAID 5 подобен случайному доступу в массиве RAID 0. Так, скорость случайного чтения при каждом размере блока данных пропорциональна количеству дисков в массиве, а при размере блока 512 Кбайт при любом количестве дисков в массиве наблюдается характерный провал по скорости случайного чтения. Причем нужно отметить, что скорость случайного чтения слабо зависит от количества дисков в массиве, то есть для любого количества дисков она примерно одинакова.

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

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

По скорости случайной записи массив RAID 5 в конфигурации с восемью дисками уступает лишь массивам RAID 0 и RAID 50, а в конфигурации с семью и пятью, четырьмя и тремя дисками — только массиву RAID 0.

В конфигурации с шестью дисками массив RAID 5 уступает по скорости случайной записи массивам RAID 0, RAID 50 и RAID 10.

RAID 6

Контроллер LSI 3ware SAS 9750-8i позволяет создать массив RAID 6 с количеством дисков от пяти до восьми. Результаты тестирования для массива RAID 6 представлены на рис. 24-29.

 

Рисунок
Рисунок
Рис. 24. Скорость последовательного чтения и записи
при восьми дисках в массиве RAID 6
Рис. 25. Скорость последовательного чтения и записи
при семи дисках в массиве RAID 6
Рисунок
Рисунок
Рис. 26. Скорость последовательного чтения и записи
при шести дисках в массиве RAID 6
Рис. 27. Скорость последовательного чтения и записи
при пяти дисках в массиве RAID 6
Рисунок
Рисунок
Рис. 28. Скорость случайного чтения
в массиве RAID 6
Рис. 29. Скорость случайной записи
в массиве RAID 6

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

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

По скорости последовательного чтения массив RAID 6 уступает всем остальным массивам в конфигурациях с любым (от восьми до пяти) количеством дисков.

По скорости последовательной записи ситуация несколько лучше. В конфигурации с восемью дисками RAID 6 опережает массив RAID 10, а в конфигурации с шестью дисками — и массивы RAID 10 и RAID 50. Правда, в конфигурациях с семью и пятью дисками, когда создание массивов RAID 10 и RAID 50 невозможно, этот массив оказывается на последнем месте по скорости последовательной записи.

Случайный доступ в массиве RAID 6 подобен случайному доступу в массивах RAID 0 и RAID 5. Так, скорость случайного чтения при размере блока 512 Кбайт при любом количестве дисков в массиве имеет характерный провал по скорости случайного чтения. Отметим, что максимальная скорость случайного чтения достигается при шести дисках в массиве. Ну а при семи и восьми дисках скорость случайного чтения практически одинакова.

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

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

В конфигурации с шестью дисками массив RAID 6 уступает массивам RAID 10 и RAID 50 по скорости случайного чтения, а в конфигурации с пятью дисками — массивам RAID 0 и RAID 5.

По скорости случайной записи массив RAID 6 при любом количестве подключенных дисков уступает всем остальным возможным массивам.

В целом можно констатировать, что массив RAID 6 уступает по производительности и массивам RAID 0, RAID 5, RAID 50 и RAID 10. То есть по производительности этот тип массива оказался на последнем месте.

RAID 10

Массив RAID 10 можно построить на четырех, шести или восьми дисках. Результаты тестирования для массива RAID 10 представлены на рис. 30-34.

 

Рисунок
Рисунок
Рис. 30. Скорость последовательного чтения и записи
при восьми дисках в массиве RAID 10
Рис. 31. Скорость последовательного чтения и записи
при шести дисках в массиве RAID 10
Рисунок
Рисунок
Рис. 32. Скорость последовательного чтения и записи
при четырех дисках в массиве RAID 10
Рис. 33. Скорость случайного чтения
в массиве RAID 10
Рисунок
Рис. 34. Скорость случайной записи в массиве RAID 10

Характерно, что в массивах из восьми и шести дисков скорость последовательного чтения выше скорости записи, а в массиве из четырех дисков эти скорости практически совпадают при любом размере блока данных.

Для массива RAID 10, так же как и для всех остальных рассмотренных массивов, характерно падение скорости последовательного чтения и записи при определенных размерах блоков данных при любом количестве дисков в массиве.

В сценарии случайного чтения, как и для всех остальных рассмотренных массивов, наблюдается характерный провал производительности при размере блока 512 Кбайт.

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

По скорости последовательного чтения массив RAID 10 идет вслед за массивами RAID 0, RAID 50 и RAID 5 в конфигурации с восемью, шестью и четырьмя дисками, а по скорости последовательной записи он уступает даже массиву RAID 6, то есть идет вслед за массивами RAID 0, RAID 50, RAID 5 и RAID 6.

Зато по скорости случайного чтения массив RAID 10 опережает все остальные массивы в конфигурации с восемью, шестью и четырьмя дисками. А вот по скорости случайной записи этот массив проигрывает массивам RAID 0, RAID 50 и RAID 5 в конфигурации с восемью дисками, массивам RAID 0 и RAID 50 в конфигурации с шестью дисками и массивам RAID 0 и RAID 5 в конфигурации с четырьмя дисками.

RAID 50

Массив RAID 50 можно построить на шести или восьми дисках. Результаты тестирования для массива RAID 50 представлены на рис. 35-38.

 

Рисунок
Рисунок
Рис. 35. Скорость последовательного чтения и записи
при восьми дисках в массиве RAID 50
Рис. 36. Скорость последовательного чтения и записи
при шести дисках в массиве RAID 50
Рисунок
Рисунок
Рис. 37. Скорость случайного чтения
в массиве RAID 50
Рис. 38. Скорость случайной записи
в массиве RAID 50

Характерно, что для массива RAID 50 скорость последовательного чтения выше скорости записи.

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

В сценарии случайного чтения, как и для всех остальных рассмотренных массивов, наблюдается характерный провал производительности при размере блока 512 Кбайт.

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

По скорости последовательного чтения массив RAID 50 уступает лишь массиву RAID 0 (в конфигурации с восемью и шестью дисками). По скорости последовательной записи массив RAID 50 также уступает лишь массиву RAID 0 в конфигурации с восемью дисками, а в конфигурации с шестью дисками он проигрывает массивам RAID 0, RAID 5 и RAID 6.

Зато по скорости случайного чтения и записи массив RAID 50 уступает лишь массиву RAID 0 и опережает все остальные возможные при восьми и шести дисках массивы.

RAID 1

Как мы уже отмечали, массив RAID 1, который может быть построен только на двух дисках, использовать на таком контроллере нецелесо-образно. Однако для полноты картины мы приводим результаты и для массива RAID 1 на двух дисках. Результаты тестирования для массива RAID 1 представлены на рис. 39 и 40.

Рисунок

Рис. 39. Скорость последовательной записи и чтения в массиве RAID 1

Рисунок

Рис. 40. Скорость случайной записи и чтения в массиве RAID 1

Для массива RAID 10, так же как и для всех остальных рассмотренных массивов, характерно падение скорости последовательного чтения и записи при определенных размерах блоков данных.

В сценарии случайного чтения, как и для прочих массивов, наблюдается характерный провал производительности при размере блока 512 Кбайт.

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

Массив RAID 1 можно сопоставить только с массивом RAID 0 (поскольку в случае двух дисков никакие больше массивы невозможны). Нужно отметить, что массив RAID 1 проигрывает по производительности массиву RAID 0 с двумя дисками во всех сценариях нагрузки, кроме случайного чтения.

Выводы

Впечатление от тестирования контроллера LSI 3ware SAS 9750-8i в сочетании с SAS-дисками Seagate Cheetah 15K.7 ST3300657SS у нас сложилось довольно неоднозначное. С одной стороны, у него прекрасные функциональные возможности, с другой — настораживают провалы по скорости при определенных размерах блоков данных, что, безусловно, отражается на скоростных показателях RAID-массивов при их функционировании в реальной среде.

 

В начало В начало

КомпьютерПресс 03'2011


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует