Репортаж с семинара LSI по технологиям Nytro WarpDrive – решения для ускорения приложений

Репортаж с семинара LSI по технологиям Nytro WarpDrive – решения для ускорения приложенийи На страницах cheklab.ru мы уже публиковал репортаж с ежегодного мероприятия, проводимого российским представительством компании LSI, которое было посвящено обзору текущей и будущей продукции компании, а также проводимым партнерским программам. Нынешнее мероприятие носило скорее технический, нежели маректинговый характер, целью которого было затронуть тему настройки производительности аппаратной продукции, вернее показать, как это делают в компании LSI. Стоит оговориться, что тесты на семинаре проводились в рамках одного семейства продуктов LSI Nytro WarpDrive, и который, в свою очередь, компания довольно успешно продвигает уже второй год подряд.


Автор: Эдуард Педро

Оглавление

Введение

На страницах cheklab.ru мы уже публиковал репортаж с ежегодного мероприятия, проводимого российским представительством компании LSI, которое было посвящено обзору текущей и будущей продукции компании, а также проводимым партнерским программам. Нынешнее мероприятие носило скорее технический, нежели маректинговый характер, целью которого было затронуть тему настройки производительности аппаратной продукции, вернее показать, как это делают в компании LSI. Стоит оговориться, что тесты на семинаре проводились в рамках одного семейства продуктов LSI Nytro WarpDrive, и который, в свою очередь, компания довольно успешно продвигает уже второй год подряд.

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

  • коммуникацонные процессоры;
  • медиа процессоры;
  • сетевые процессоры;
  • Gigabit Ethernet процессоры;
  • IEEE 1394;
  • встроенные модемы;
  • микрочипы для жестких дисков, экспандеров и контроллеров;
  • FSP (Flash Storage Processor) SandForce для твердотельных накопителей;
  • прошивки для RAID контроллеров и HBA;
  • ПО мониторинга состояния RAID контроллеров.

Выше перечисленные компоненты LSI использует как при выпуске собственной продукции, например широко известной линейки контроллеров MegaRAID, контроллеров 3ware, коммутаторов SAS и других устройств, так и поставляет компоненты своим OEM-партнерам (DELL, IBM, Brocade, INTEL, Oracle и многим другими).

Напомним, так же, что в российском представительстве компании работают два человека (Александр Зейников, который в качестве регионального менеджер LSI в России исполняет свои обязанности в течение трех лет, и Ярослав Надпорожский, который в качестве инженера по продуктам и решениям LSI в России трудится почти полтора года).

Александр Зейников

Перед тем, как затронуть тему performance tuning, Александр сделал обзор о том, какие изменения произошли в компании и на что они повлияли, рассказал о новых продуктах, их особенностях и сфере применения.

В четвертом квартале 2012 г. прибыль компании составила 600 млн. долларов США и около двух с половиной миллиардов за весь год. Компания избавилась от многих непрофильных активов, в том числе продав свое подразделение Engenio компании NetApp, занимавшееся разработкой внешних дисковых систем. Это, в свою очередь, позволило компании сосредоточиться на двух основных направлениях – сети и системы хранения данных (RAID контроллеры, HBA, LSI Nytro [увеличение производительности систем хранения]). Практически сразу была приобретена компания SandForce – лидер в производстве FSP (Flash Storage Processor — узкоспециализированных процессоров для работы с флэш-памятью). Процессоры под брендом SandForce используются многими именитыми производителями SSD и различных flash-устройств (OSZ, Kingston, Intel, Seagate и др.). В процессорах SandForce используется технология собственной разработки – DuraClass, включающая в себя различные средства управления и алгоритмы, повышающие надежность флэш-памяти и ее производительность. По словам Александра на данный момент на стадии тестирования находится трехтысячная версия процессоров, которая уже передана большинству производителей SSD.

Продукты, о которых далее пойдет речь, — детища подразделения LSI, под названием Accelerated Solutions Division (ASD). ASD берет свое начало от предыдущего подразделения Raid Storage Devices (RSD), которое выпускало контроллеры MegaRAID и ПО CacheCade. Nytro MegaRAID – это продукт уже ASD, но тем не менее он содержит в себе улучшенные наработки CacheCade 2.0, доставшиеся от контроллеров MegaRAID. В Nytro MegaRAID помимо CacheCade появится дополнительный функционал. Например, ближе к лету, будет внедрено одно из новшеств, под названием ElasticCache, которое позволит распараллеливать данные, предназначенные для записи, на два диска, при этом данные, использующиеся для чтения, будут храниться только на одном диске. Еще одна функция Application hinting является своего рода аналогом TRIM для SAS. Внедрение Application hinting обусловленно тем, что TRIM – это исключительно команда интерфейса ATA (ее внедрение в SAS в дальнейшем не предусматривается). Появлением двух новых функций дело не ограничится. SSD устройства, сами по себе, все еще дороги, поэтому основные разработки подразделения ASD нацелены на ускорение работы систем хранения данных. Отчасти ситуацию с ценой исправляют многоуровневые системы хранения данных.

DELL, HP, IBM, Cisco, Oracle и многие другие известные производители используют в своих решениях продукцию компании LSI. Данные производители являются гарантами качества и востребованности продукции LSI.

В сухих цифрах продажи LSI (количество штук) за все время существования подразделения ASD выглядят следующим образом:

  • 330 млн. SAS портов;
  • 9 млн. контроллеров MegaRAID;
  • 33 млн. SAS контроллеров;
  • 18 млн. процессоров SandForce.

Выше описанные возможности продукции компании LSI, а также ее перспективы на российском рынке могут заинтересовать потенциальных производителей готовых решений и укрепить позиции среди уже обретенных. Но есть ли смысл в продвижении решений, ускоряющих работу систем хранения данных?

По словам Александра Зейникова существует большой разрыв в скорости передачи данных между оперативной памятью и системами хранения (Tier 1), примерно в 100 тыс. нс. Ускорители семейства Nytro как раз и позволяют сократить данный разрыв примерно до 50 тыс. нс.

Семейство продуктов Nytro

Семейство продуктов архитектуры Nytro – это основной продукт подразделения ASD, который включает в себя три вида устройств.

Nytro WarpDrive – плата низкопрофильного форм-фактора (md2). На плате располагаются 4 SSD производства компании Toshiba с FSP SandForce. В ближайшем будущем выйдет полноразмерная плата с 8 SSD объемом 3,2 Тбайт для больших баз данных. Данный продукт не предусматривает интеллектуальное кэширование данных. Информация, к которой требуется получить быстрый доступ, записывается на WarpDrive. Устройство представляется в двух модификациях: c литерой «W» — это тип памяти SLC, с литерой «B» — тип памяти E-MLC.

Nytro XD, c точки зрения «железа», — это абсолютно тот же самый Nytro WarpDrive но в комплект входит так же еще и драйвер (ПО кэширования). В настоящий момент есть драйвер для Linux и для Windows, через месяц или два будет выпущен драйвер для VMware (NytroXDV). Драйвер позволяет интеллектуально кэшировать данные на любом блочном устройстве.

Nytro MegaRAID – прямой наследник CacheCade и контроллера MegaRAID. На плате располагается 6-гигабитный SAS контроллер SAS2008 с одним портом mini-SAS SFF-8087. Помимо контроллера на борту расположены два SSD для кэширования размером 50 Гбайт, 100 Гбайт или 400 Гбайт. Из имеющихся двух SSD можно сформировать два уровня RAID на выбор – RAID0 или RAID1. У данного контроллера присутствует два уровня кэширования на запись. Первый уровень кэширования представляет собой оперативную память. В этом случае потребуется батарея питания. Второй уровень – это непосредственно flash-память. В этом случае кэш на запись поддерживается питанием от конденсаторов. В качестве рекомендации LSI предлагает использовать только кэш NytroMegaRAID.

Помимо аппаратных продуктов, присутствует программная утилита, которую, по сути, продуктом назвать сложно. Тем не менее, она является неотъемлемой частью продуктов Nytro. Утилита носит название NytroPredictor, на нее возложены функции помощника при выборе одного из трех выше перечисленных устройств. Утилита состоит из двух модулей – непосредственно сам NytroPredictor, который запускается на сервере, например, с БД Oracle, SQL или MySQL, и собирает информацию о блочных устройствах, а именно о прочитанных блоках данных на этих устройствах. За тем вся информация направляется во второй модуль NytroProfiler, который определяет количество «горячих» данных и объем кэша, который потребуется для увеличения производительности. Также стоит отметить, что ПО NytroPredictor полностью бесплатное. Найти его можно у партнеров LSI, например, у компании DEPO или Trinity.

Вопрос целесообразности кэширования

Александр отметил, что вопрос о целесобразности кэширования возникает довольно часто. Насколько хорошо будет работать кэш в отдельно взятой задаче? При наличии сервера баз данных кэширование однозначно необходимоо. Но более актуальный вопрос – это количествотребуемого кэша. Если установить Nytro MegaRAID с объемом кэша равным 100 Гбайт, а "горячих" данных 200 Гбайт, то большого прироста производительности ждать не стоит, в этом случае она увеличится в 1,5 раза. Все "горячие" данные не уместились на SSD, и производительность базы данных увеличилась на незначительный процент, который фактически будет не заметен.

В качестве рекомендации компания LSI предлагает партнерам перед продажей установить NytroPredictor потенциальному заказчику, определиться с объемом кэша и только потом предлагать какое-либо решение.

Относительно кэширования баз данных, к примеру, Oracle, стоит отметить, что для приложений, которые используют таблицы и индексы совместно при доступе к данным, физическая независимость таблиц и индексов является обязательной, то есть желательно, чтобы они находились на разных физических дисках. Устройства семейства Nytro «умеют» кэшировать одновременно несколько разных блочных устройств. При помощи оснастки MegaRAID StorageManager можно выбрать любое видимое в системе блочное устройство.

Устройства линейки Nytro не зависят от архитектуры системы хранения данных. Например, есть некая ERP-система (Enterprise resource planning – система планирования ресурсов предприятия), в которой присутствует таблица с клиентами, и некоторые элементы таблица востребованны чаще, чем другие. Для LSI Nytro элементы таблицы – это блоки, к которым происходит обращение. FSP вычисляет, какие именно блоки запрашиваются чаще, и эти блоки помечаются как «горячие», и за тем переносятся на флеш-память.

Если вернуться к CacheCade версии 1.0, который не поддерживает режим записи, то по тестам TPCC производительность дисковой подсистемы при его использовании повышалась в пять раз. Следующая версия CacheCade 2.0 включала в себя функцию кэширования на запись, и производительность в этом случае вырастала в 13 раз. Например для Exchange сервера ускорение без включенного кэша на запись составляло 15%, с включенным кэшем на запись около 150%. Для базы данных, где чтение составляет 70%, а запись — 30%, при использовании только кэша на чтение, скорость работы базы возрастает в пять раз, а при использовании кэша на чтение и на запись — уже в 13 раз. Рост количества операций ввода и вывода (IOps) составляет 30-40 раз. При использовании Nytro MegaRAID совместно с жесткими дисками, помимо выше перечисленных преимуществ, возрастает скорость восстановления RAID-массива. Процесс восстановления RAID-массива значительно снижает производительность дисковой подсистемы или системы хранения. Алгоритмы кэширования Nytro позволяют уменьшить время восстановления RAID-массива примерно в четыре раза, что в свою очередь снижает вероятность потери данных при выходе из строя последующего диска.

Александр также отметил, что продукты Nytro хорошо зарекомендовали себя в системе распределенных вычислений Hadoop. Основное применение Hadoop – это осуществление поисковых задач на web-сайтах с высокой нагрузкой, например Yahoo!, Amazon, Facebook, и на различных web-магазинах и web-площадках с online-рекламой. Hadoop работает над конкретно определенными для него задачами. Например, web-магазин может с его помощью проанализировать весь массив данных о покупателях, выбрать из них тех, которые покупали книгу Пелевина «Empire V», чтобы затем им можно было рекомендовать продолжение этой книги. Очень похожую систему использует Yandex. В среднем прогонка по всему массиву данных на кластере Yandex занимает 20-30 часов. В частности, если Hadoop без использования ускорения выполняет прогонку небольшой задачи за 18 минут, то с использованием Nytro MegaRAID время прогонки сокращается на 33% и составляет 12 минут.

Продукция семейства Nytro также хорошо зарекомендовала себя в работе с виртуализацией. Виртуальные машины, в рамках сервера или системы хранения, как правило, используют одни и те же дисковые ресурсы, что в итоге сказывается на производительности ввода-вывода (IOps), особенно, если речь идет о виртуальных web-серверах. Web-серверы часто используют MySQL, поэтому применение Nytro MegaRAID, в случае работы виртуальных машин на дисковой подсистеме сервера или NytroXD при использования внешней системы хранения данных, позволяет увеличить количество виртуальных машин либо увеличить производительность уже имеющихся на 30%.

Несмотря на все преимущества, которые предоставляют продукты линейки LSI Nytro, необходимо принимать во внимание, что в связке сервер плюс система (подсистема) хранения данных, существуют четыре основных элемента, которые могут повлиять на ее производительность. Во-первых – это сеть или, если быть точным, сетевой интерфейс. Во-вторых, — непосредственно система хранения. В-третьих, — память и, в-четвертых, — процессор. При оптимизации одного из компонентов мы обязательно упремся в недостаточную производительность другого (bottleneck – "бутылочное горлышко"). К примеру, если система хранения имела низкие показатели ввода-вывода, и после оптимизации эти показатели повысились, то возможно, что производительность системы в целом «упрется» в процессор, т.е. предсказать, насколько можно поднять производительность системы, довольно сложно.

Nytro Predictor. Нагрузочное тестирование

Нагрузочное тестирование – это процесс, которому присуще много условностей по части настройки оборудования и выбора оптимальных тестов, которые могли бы в процессе своей работы показать реальное поведение тестируемого оборудования. Довольно часто, производители «железа», как и разработчики программного обеспечения, не могут с точностью сказать, как поведет себя их продукт во время тестирования, особенно под большой нагрузкой. Поэтому производители предлагают потенциальному заказчику или партнеру провести свои тесты. В этом случае заказчик остается один на один с оборудованием и не всегда понимает, как и что тестировать, особенно, если это оборудование обладает новым функционалом, для которого не разработаны актуальные тесты. Отсюда следует, что нагрузочное тестирование – это сложный процесс, поэтому Александр и Ярослав, как представители компании-производителя аппаратного обеспечения предложили тестовые примеры продуктов семейства Nytro.

Прежде всего рассмотрим конфигурация стенда:

  • сервер SuperMicro на платформе X8ST3-F, OS Windows 2008 Server R2;
  • система хранения данных JBOD LSI 630J;
  • контроллер 9266-8i с функцией CacheVault и блоком CVM01;
  • жесткие диски HDD Seagate Cheetah 146Gb 15K – 10 шт.;
  • Nytro MegaRAID 8110 (200 Gb).

В качестве тестового программного обеспечения использовалось Microsoft SQL Server Management Studio, NytroProfiler, NytroPredictor, а так же IOmeter.

Перед началом тестирования Ярослав порекомендовал запускать NytroProfiler на «боевой» системе, который позволит определить, требуется ли кэширование для тестируемой системы, а также объем необходимого кэша. Также NytroProfiler позволяет определить процент операций записи и чтения, производимых в системе.

При помощи Microsoft SQL Server Management Studio был сформирован скрипт, при помощи которого создавалась база, куда вносилось 5000 записей. За тем производилось резервное копирование базы и следующим этапом в базу вносились новые 5000 записей взамен предыдущих. Данная процедура кэшировалась на контроллере Nytro MegaRAID 8110.

В течение времени работы скрипта NytroProfiler собирал отладочную информацию (trace). NytroProfiler — консольное приложение, и как у любого приложения такого типа, NytroProfiler имеет различные ключи, расширяющие его функционал. Например, ключ «C», указывающий количество времени, в течение которого будет собираться trace; ключ «D», при помощи которого производится выбор виртуального диска, и ключ «O», задающий имя выходного trace-файла, а так же многие другие ключи. Рекомендуется запускать NytroProfiler на длительное время для получения более объективных данных.

После того, как отладочный файл сформирован, его необходимо открыть в NytroPredictor, который проанализирует его и выдаст рекомендации относительно кэша. Предварительно можно выбрать тип устройства, на основе которого требуется провести анализ. Это либо Nytro XD, либо Nytro MegaRAID (MR).

Так как NytroProfiler собирал trace на системе, в которой был установлен кэш, то в качестве рекомендации (как показано на рисунке) предложено запустить его повторно и на более длительный срок.

И совершенно иная картина, если NytroPredictor собирает trace с системы, у которой отсутствует кэш. На изображении видно, что объем горячих данных составляет 546 Мбайт, а также в разделе «Cache hits and fills» видна высокая интенсивность удачного обращения в кэш за требуемыми данными.

В разделе Charts можно посмотреть график, отражающий информацию о количестве операций на чтение и запись, а также о размерах блоков данных и их количестве.

Еще один график иллюстрирует, на какие блоки приходятся операции чтения, а на какие — операции записи.

Процесс работы NytroPredictor достаточно прост. При этом не требуется устанавливать какие-либо драйверы, так как NytroPredictor для анализа использует стандартные средства ОС.

На следующем изображении показан анализ trace-файла «боевой» системы одного из заказчиков. Здесь «горячие» данные определены как интенсивная запись, и их объем составляет 5 Гбайт. Оранжевой кривой показан процесс заполнения кэша, который прошел достаточно быстро, примерно за 1,2 с. Голубая кривая показывает результат обращения в кэш за нужными данными.

Следующие два теста, продемонстрированные Ярославом, показывают разницу при работе сервера с внешней системой хранения данных без использования кэша и с использованием в качестве кэша NytroMegaRAID 8110.

Количество операций без использования кэша зафиксировано на отметке 5503 операций в секунду. Для этого теста был построен RAID 5 на контроллере 9266-8i из дисков, находящихся в системе хранения JBOD LSI 630J. Параметры, заданные в IOmeter для тестов – это стопроцентное последовательное чтение блоков размером 16 кбайт.

Результат теста, при котором использовался NytroMegaRAID 8110, выглядят следующим образом.

При запуске теста с теми же параметрами, но при наличии кэша, количество IOps возросло чуть более, чем в 10 раз.

Заключение

В то время как SSD-устройства все еще остаются дорогими, компания LSI удачно нашла нишу, в которой реализовала свои идеи по применению flash-памяти. На наш взгляд, при создании продукта Nytro была проделана огромная работа. Из одного решения WarpDraive-SLP300 выросло целое семейство продуктов Nytro, которые могут быть использованы практически в любой сфере, где требуется высокая скорость доступа обработки данных. Особенно интересно совмещение контроллера и flash-памяти в качестве кэша в Nytro MegaRAID. Такой гибрид, как нам кажется, затмит популярность контроллеров MegaRAID.

Тесты, приведенные на семинаре, показали, что применение кэша положительным образом сказывается на скорости работы системы. А при помощи программного обеспечения NytroProfiler можно легко определить необходимость использования кэша.

Author: Редакция

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *