Сравнение производительности новейших серверных RAID-контроллеров Intel и Adaptec
Аннотация: Сравнение RAID-контроллеров Intel на базе LSI 2208 и Adaptec 7-й серии. Виды тестирования: последовательные и случайные операции чтения и записи. Типы RAID-массивов: RAID 0, RAID 10, RAID 5, RAID 6. Масштабирование производительности подсистемы хранения сервера от 1 до 24 SSD накопителей.
Мы провели сравнительное тестирование RAID-контроллеров Intel и Adaptec нового поколения для различных типов RAID-массивов при количестве накопителей в массиве от 1 до 24-х.
Мы протестировали следующие RAID-контроллеры:
- RAID-модуль Intel RMS25CB080, устанавливаемый в специальный разъем x8 PCIe на серверной системной плате. Результаты тестирования данного модуля применимы также к следующим RAID-модулям и RAID-контроллерам Intel, основанным на том же микропроцессоре LSI SAS2208: RMS25CB040, RMS25PB040, RMS25PB080, RS25DB080, RS25AB080, RS25NB008, RS25SB008. Это семейство 6-гигабитных SAS-контроллеров Intel 2-го поколения, разработанных для использования в серверах Intel на базе процессоров Intel Xeon E5-2600/2400 (серверная платформа Intel Romley EP/EN). В тестах на случайных операциях мы также протестировали данный модуль с ключом "AXXRPFKSSD2 Upgrade Key to enable SSD Cache with Fastpath I/O", который поддерживает режим SSD-кэширования (CacheCade Pro 2.0) и функцию оптимизации операций ввода-вывода при работе с SSD накопителями (FastPath I/O). Отметим, что с текущей версией BIOS модуль работает в режиме x8 PCIe 2.0.
- RAID-контроллер Adaptec 72405 второго поколения с интерфейсом x8 PCIe 3.0. Это контроллер 7-й серии, имеющий 24 внутренних порта с разъёмами HDmSAS. Основное отличие данного контроллера по сравнению с контроллерами Intel с точки зрения серверной архитектуры - отсутствие необходимости в использовании расширителя SAS-портов, поскольку напрямую к контроллеру можно подключить до 24-х дисков.
Мы сравнили производительность контроллеров на операциях последовательного и случайного чтения/записи для различных типов RAID-массивов (RAID 0, RAID 10, RAID 5, RAID 6) при разном количестве накопителей в RAID-массиве - от минимального до максимально возможного (как правило, 24 накопителя). Тестирование выполнялось при помощи программы IOmeter со следующими параметрами: кэш-память контроллера и накопителей отключена, глубина очереди команд - 256, параметр Strip Size - 256KB, размер блока данных - 256KB для последовательных операций и 4KB для случайных операций. Скорость последовательных операций измерялась в MB/s, случайных - в IOPS (количество операций ввода/вывода в секунду).
Для тестов мы использовали сервер Team R2000GZ с дисковой подсистемой в составе:
- Один из тестируемых контроллеров.
- Расширитель SAS-портов Intel RES2CV360 на 36 портов, к которому мы подключали 8 портов контроллера и твердотельные накопители. При тестировании контроллера Adaptec 72405, который имеет 24 внутренних порта, расширитель не использовался.
- 24 твердотельных накопителя Intel 520 Series 120GB 6Gb/s. Следует отметить, что данная модель SSD-накопителя не предназначена для использования в составе серверных систем, но мы выбрали ее за высокие показатели производительности, позволяющие нагрузить контроллеры "по полной программе".
При тестировании использовались SSD-накопители Intel 520-й серии емкостью 120GB с интерфейсом SATA 6Gb/s. Эти твердотельные накопители построены на базе 25-нанометровой высококачественной NAND - флэш-памяти Intel®. Для лучшего понимания статьи приведем результаты измерения производительности одиночного накопителя.
Скорость последовательного чтения и записи для него составляет 542 MB/s и 482 MB/s соответственно, что намного быстрее жестких дисков. Например, для HDD Savvio 10K.5 SAS 6Gb/s скорость последовательного чтения и записи составляет около 167 MB/s.
Скорость случайного чтения и записи тестируемого SSD - 39'000 IOPS и 26'000 IOPS. У жестких дисков эти значения находятся в границах 350-400 IOPS. Такая разница объясняется тем, что в жестких дисках величина IOPS при произвольном доступе зависит от времени позиционирования магнитной головки над заданным сектором, в то время как для SSD показатель IOPS определяется производительностью внутреннего микроконтроллера и скоростью интерфейса памяти.
В массиве RAID 0 данные разбиваются на отдельные фрагменты, которые записываются (или читаются) параллельно на все диски массива. Поэтому производительность такого массива теоретически должна быть равна производительности одного диска, умноженной на количество дисков в массиве.
Именно такую картину мы наблюдаем на графиках до определенного количества накопителей в массиве. Однако начиная с некоторого значения производительность лимитируется пропускной способностью шины - для 8-ми линий PCIe 2.0 (Intel) это 4GB/s в одном направлении, а для x8 PCIe 3.0 (Adaptec) - 8GB/s.
На операциях случайного чтения/записи определяющим фактором становится уже собственно максимальное число операций ввода/вывода, которые контроллер способен выполнить за 1 секунду.
Массив RAID 1 состоит из двух дисков, которые содержат одинаковый набор данных. Поэтому такой массив часто называют "зеркалом". Если объединить несколько массивов RAID 1 в массив RAID 0 для параллельной обработки данных с целью увеличения производительности, получится массив RAID 10.
При последовательном чтении скорость массива RAID 10 вдвое хуже, чем у RAID 0 при одинаковом количестве накопителей. Отметим, что для массива, состоящего из жестких дисков, производительность массивов RAID 0 и RAID 10 при последовательном чтении практически одинакова, поскольку контроллер "умеет" читать данные параллельно с обоих дисков зеркальной пары (см. результаты предыдущего тестирования). В случае твердотельных накопителей мы видим, что это уже не так. Обратите внимание, что контроллер Intel "упирается" в пропускную способность шины x8 PCIe 2.0 (4GB/s).
При последовательной записи необходимо записывать данные на оба накопителя зеркальной пары, поэтому максимальная теоретическая скорость записи в два раза ниже, чем у массива RAID 0. Оба контроллера ограничены здесь пропускной способностью шин PCIe (по шине нужно передать удвоенный объем данных).
На операциях случайного чтения и записи мы также достигаем предела производительности контроллеров, но при большем в два раза количестве накопителей в массиве по сравнению с RAID 0.
В массиве RAID 5 блоки данных записываются (считываются) параллельно на несколько дисков, как и в массиве RAID 0, но число таких "параллельных" блоков на единицу меньше, чем число дисков в массиве. Дело в том, что для каждого набора таких блоков формируется еще блок четности, который записывается на один из дисков массива. Эти блоки четности распределяются равномерно на всех дисках массива. Поэтому при последовательных операциях чтения-записи теоретическая скорость массива RAID 5 должна соответствовать скорости массива RAID 0, в котором на один диск меньше. Однако для твердотельных накопителей это не совсем так. Поскольку здесь не нужно ждать, пока считывающая головка «проедет» над блоком четности, скорости RAID 5 и RAID 0 на последовательных операциях чтения должны быть одинаковы.
При чтении все примерно так и происходит, пока контроллеры не достигают предела пропускной способности шины PCIe. А вот скорость записи, по всей видимости, ограничивается уже возможностями блоков вычисления четности контроллеров.
На операциях случайного чтения массив RAID 5 ведет себя примерно так же, как и RAID 0, довольно быстро выходя на предел максимума контроллера по IOPS'ам.
При случайной записи нужно сначала прочитать блок данных и блок четности соответствующего страйпа, пересчитать четность и записать новый блок данных и измененный блок четности обратно на накопитель. То есть вместо одной операции выполнить четыре. Для оценки производительности массивов RAID 5 используют понятие штрафа на запись. Например, массив RAID 5 из 24 дисков по скорости будет примерно эквивалентен массиву RAID 0 из 6 дисков. Чтобы контроллер мог оптимальным образом обрабатывать запросы на запись в массиве RAID 5, необходимо включение кэш-памяти контроллера. Поскольку мы проводили тестирование с отключенным кэшем, вместо роста производительности массива, мы видим ее деградацию. Единственная польза от этого графика – доказательство необходимости включения кэш-памяти контроллера в режиме «Write Back».
Массив RAID 6 имеет по сравнению с RAID 0 уже два дополнительных диска, поскольку этот массив хранит два независимых набора контрольных сумм. Как и в RAID 5 "избыточные" данные распределяются равномерно по всем дискам массива. Как и вслучае RAID 5, массив RAID 6 из SSD накопителей «обгоняет» теоретический предел для массива из жестких дисков, поскольку не нужно «прокручивать» под головками сектора с четностью.
На операциях последовательного чтения и записи картина аналогична массивам RAID 5 c тем же лимитирующим фактором пропускной способностью шины.
На случайном чтении мы видим ту же картину, что и в массивах RAID 0 и RAID 5.
График случайной записи при выключенной кэш-памяти контроллера, как и для RAID 5, дает неадекватную картину – вместо роста производительности с увеличением количества накопителей в массиве мы наблюдаем ее деградацию. Снова подтверждения того, что в массивах RAID 5 и RAID 6 аппаратный кэш на запись обязателен (и, желательно, энергонезависимый).
Контроллеру Intel явно не хватает поддержки PCIe 3.0, на многих тестах он "упирается" в предел пропускной способности шины. Надеемся, что в самом скором времени новая версия BIOS контроллера решит проблему. Данный контроллер обладает высокой производительностью вычислительного блока, ответственного за формирование блоков четности и контрольных сумм. А установив ключ "AXXRPFKSSD2 Upgrade Key to enable SSD Cache with Fastpath I/O", можно добиться еще лучших результатов на операциях случайного чтения.
Контроллер Adaptec 72405, работающий на шине PCIe 3.0, хорошо проявил себя в операциях последовательного чтения и записи, однако уступает в операциях случайного чтения-записи. Отличительной чертой контроллера является наличие 24 портов, что позволяет использовать его в серверах с количеством дисков более восьми без расширителя SAS-портов, то есть исключить дополнительный аппаратный блок, который может вызвать задержки передачи данных на пути от контроллера к дискам и обратно. К тому же это удешевляет сервер.
20.02.13