30 апр. 2013 г.

Обзор контроллера LSI Nytro MegaRAID NMR 8110-4i

Если вы еще не знакомы с реализацией SSD-кэширования в SAS RAID контроллерах LSI и Adaptec, то вам помогут статьи из этого блога:
CacheCade 2.0 в контроллерах LSI
Анонс контроллеров Adaptec 7
или информация от производителей: LSI и Adaptec.

Вкратце: подобное решение позволяет кэшировать обращения чтения и записи к массиву из HDD на массиве из SSD, что благотворно влияет на производительность при наличии случайного доступа малыми блоками и подходящем распределении нагрузки (когда область с наиболее часто запрашиваемыми блоками сопоставима по объему с SSD-массивом). Примеры: web-серверы, почта, СУБД. Помимо банального роста IOPS'ов снижается латентность (про которую часто забывают), и в качестве бонуса - сокращается время ребилда HDD-массива за счет снижения нагрузки на него.

Выбор SSD для кэша

Главное - подобрать правильный SSD, с большим ресурсом и хорошей производительностью на запись, т.к. нагрузка на запись идет не только при кэшировании операций записи, но и при кэшировании операций чтения, ведь SSD-кэш нужно заполнять данными. Бытовые SSD в качестве кэша не подходят совершенно: низкий ресурс, падение производительности на запись через несколько часов непрерывной нагрузки с заявленных десятков тысяч до нескольких сотен IOPS вместе с ростом латентности. В итоге SSD умирают за несколько месяцев (при высокой нагрузке), а "прогрева" кэша приходится ждать по нескольку часов, что сводит на нет пользу в таких сценариях, как ускорение доступа к СУБД с плавающей в течение дня "горячей зоной" (днем часто запрашиваются одни данные, вечером снимаются отчеты - "горячая зона" смещается). SSD высшей ценовой категории (SLC и eMLC от Stec, Hitachi, Toshiba) по карману не всем, к тому же речь идет о сравнительно бюджетном решении для тех заказчиков, в бюджет которых не вписываются внешние СХД midrange класса, SSD для которых стоят от $1-2k. Эпоха Intel X25-E давно прошла, пришедший ему на смену 710 ожиданий не оправдал (жалкие 2k с небольшим IOPS на запись при латентности подскакивающей до 70-80мс - это приговор), альтернативы в виде Kingston E100 в дефиците. На некоторое время "оружием победы" стал долгожданный Intel S3700, пока и он не оказался в дефиците - на сегодняшний день более-менее доступны лишь варианты емкостью 100ГБ.

LSI Nytro MegaRAID

Выход из создавшегося положения есть. Компания LSI после приобретения SandForce, известного производителя контроллеров для SSD выпустила на рынок еще в прошлом году серию SAS RAID контроллеров с SSD на борту.
Линейка называется Nytro MegaRAID, представляет собой контроллер на базе чипа LSI 2208 (как и в обычных контроллерах LSI 9265/66/70/71), c парой eMLC SSD различной емкости, размещенными непосредственно на плате контроллера. Выпускается в трех вариантах:

Объем RAM-кэша - 1ГБ, осталась возможность его защиты при помощи модуля с флэш-памятью и ионисторами (парт-номер модуля - SCM01). Портов для подключения - только четыре (один 4x разъем SFF-8087, он же miniSAS), что, впрочем не должно мешать подключению нужного количества HDD через экспандер. Полосы в 2,4ГБ/с хватит для большинства задач, тем более что речь идет о доступе малыми блоками.

Тест

Для тестов нам достался контроллер 8110-4i. Набортные 200ГБ SSD выполнены как и на других контроллерах Nytro MegaRAID, в виде двух модулей с реальной емкостью примерно 93ГБ каждый. Использовать их можно только в качестве кэша, объединив их в RAID-0 либо в RAID-1. Вариант с RAID-1 рекомендуется для write-back кэша, т.к. обеспечение целостности кэша на запись является обязательным.
Тестовый стенд:
  • Корпус Supermicro 836E16-R1200B (3U, 16xLFF, SAS2 экспандер)
  • Системная плата Supermicro X9DR7-LN4F
  • 2 процессора E5-2620
  • 8 модулей памяти Samsung 8ГБ DDR3 1333МГц ECC Registered
  • 8 дисков 300ГБ SAS 15000об/мин Hitachi HUS156030VLS600 (RAID-10, write-back кэш, режим no read ahead)

ОС - Linux CentOS 6.4. На контроллере обновлена прошивка до последней - 23.6.1-0006, использовался драйвер v00.00.06.18. Для сравнения использовался тот же массив на контроллере LSI 9266-8i и CacheCade 2.0 с парой Intel SSD 520 120ГБ (с дополнительным over-provisioning'ом до 90ГБ) в RAID-1. В обоих случаях режим работы SSD-кэша устанавливался в write-back.
Нагрузка - fio-2.0.13. Использовались три типа достаточно примитивных тестов: чтение, запись, чтение + запись 1:1 (блоки 4k, случайный доступ, ioengine=libaio, buffered=0, direct=1, iodepth=32) на области в 80ГБ. Конечно, для полномасштабного тестирования следовало бы имитировать дополнительную нагрузку, выходящую за пределы "горячей области" и снять графики изменения IOPS и латентности, использовать write-through и write-back режимы кэша. Но целью было не проведение многодневного всестороннего исследования, а простое сравнение универсального решения с недорогими SSD (LSI 9266 + CacheCade 2.0 + 2x Intel SSD 520) и контроллера LSI Nytro MegaRAID. Нагрузка, встречающаяся в реальности, как правило, сложнее любых синтетических тестов, и для ее анализа замечательно подходит инструмент под называнием Nytro Predictor.
Процесс создания кэш-пула и управления им на контроллерах Nytro MegaRAID ничем не отличается от обычных контроллеров LSI с опцией CacheCade. Вместо "CacheCade SSD Caching" у нас "Nytro Cache":

Для включения/выключения кэширования для томов используется контекстное меню "Manage Nytro Cache":


Результаты получились предсказуемыми:

IOPS (QD=32)
latency


Все виды нагрузки на массиве без кэша показывают обычные для RAID-10 из 8 дисков результаты (с учетом того, что использовалась фиксированная глубина очереди - латентность не контролировалась).
100% чтение: при включении кэша IOPS'ы начинают расти вплоть до насыщения. Самый наглядный режим работы SSD кэша: наблюдается рост IOPSов почти в 20 раз при 2-кратном снижении латентности. И это не предел, можно получить прирост еще почти в 2 раза, если использовать кэш только на чтение и сделать кэш-пул в RAID-0. Пара Intel 520 практически не уступает Nytro MegaRAID.
При появлении записи ситуация становится более интересной. Intel 520 не спасает даже дополнительный OP, отрыв от некэшированного доступа уже не столь впечатляющий, хотя все равно, например в нагрузке 50/50 чтение+запись мы получаем 2-кратный прирост по IOPS'ам и 3-кратное снижение латентности. Но не стоит забывать по низкий ресурс - Intel гарантируется для SSD 520 пять лет при 20ГБ записи в день. LSI Nytro MegaRAID за счет использования производительных eMLC SSD вырывается вперед: 2-3 кратный отрыв по IOPS'ам и латентности.

Заключение

Контроллер LSI Nytro MegaRAID 8110-4i (как и другие контроллеры в этой линейке) - хорошо сбалансированный продукт, отлично подходящий для увеличения производительности дисковой подсистемы при благоприятной для SSD-кэша нагрузке. Недавно произошло существенное снижение цен, и теперь Nytro MegaRAID может конкурировать с раздельными решениями: LSI MegaRAID + CacheCade 2.0 (или Adaptec серии 7Q) + SSD корпоративного класса.
Недостатки:

  • Встроенные SSD-модули нельзя использовать для создания обычных томов
  • И обратное - нельзя использовать дополнительные SSD в качестве кэша

Достоинства:

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


За консультациями и приобретением Nytro MegaRAID и других продуктов LSI лучше всего обращаться к premier-партнеру LSI, компании True System.