RAID-контроллеры набираются ума

24 март, 2014 - 19:59Игорь Дражан

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

Архитектура систем хранения становится многослойной, в ней используются разнотипные носители. Однако, просто разнести статические данные по соответствующим дискам мало. Прирост производительности дает анализ обращений, структуризация данных, и перенос их активного ядра на более быстрые устройства. В серверах потоками ввода-вывода на диски управляют RAID-контроллеры или ОС с надстройками. Из-за растущей конкуренции со стороны программно-управляемых сред хранения производителям RAID-контроллеров приходится биться на двух фронтах. Гонка физических достижений продолжается (специализированные процессоры становятся мощнее, стандарты свежее — такие как 12G SAS), но еще быстрее контроллеры прибавляют в «интеллекте». «Поумнев», они принимают на себя управление хранением данных на основании потребностей и сценариев доступа.

Как меняются подходы, хорошо видно на примере Adaptec (до и после вхождения в состав PMC Sierra). Компания идет сходным курсом со вторым основным игроком в бизнесе RAID-контроллеров — LSI (с недавних пор частью Avago). У Adaptec продуктовая линейка короче, тенденции заметнее — к ним и присмотримся.

Доступные по цене SSD дали новый ресурс производительности в тракте хранения данных, стали меняться подходы к обустройству дискового ввода/вывода. Начиная с серии 5, Adaptec оснащает стандартные аппаратные контроллеры дополнительным ПО для ускорения работы приложений. Такие контроллеры обозначаются индексом Q. Работая с общим пулом из энергонезависимого кэша на SSD и массива HDD, они умеют по результатам частотного анализа дисковых обращений определять наиболее востребованные («горячие») данные. Создавая копии «горячих» данных на SSD, контроллер реже обращается к HDD. В приложениях случайного доступа перенос активности на SSD дает прирост производительности против массивов из одних только HDD — за счет низких задержек (latency) и высоких показателей интенсивности чтения/записи (IOPS). Подходы к реализации SSD-кэширования в серверах описаны в статье.

С каждым новым поколением контроллеров Adaptec расширяются функциональные возможности их премиум-класса Q. Последняя по времени серия 8 вышла через год с небольшим после серии 7. Вот что поменялось.

RAID-контроллеры набираются ума

Основных отличий два: стандарт SAS сменился на 12G (это касается всех контроллеров серии 8), появилось управление многоуровневым хранением или tiering (только у контроллеров 8Q). Программное обеспечение контроллеров 8Q Adaptec maxCache Plus унаследовало возможности кэширования maxCache серии 7Q, где диски SSD конфигурируются как кэш массива HDD или как отдельный логический диск. Появившийся в контроллерах 8Q тиринг призван оптимизировать производительность за счет подстраиваемого выбора устройства хранения, отвечающего структуре нагрузки ввода-вывода. Добавка сделана в виде драйвера (то есть, функции реализованы на программном уровне). Решение поддерживает устройства на уровне блоков и позволяет организовать распределение данных по ним, в зависимости от быстродействия устройств и потребностей приложений.

Иллюстрируя эволюцию технологий, Adaptec показывает, что кэширование касается устройств хранения, непосредственно подключенных к RAID-контроллеру Adaptec, тогда как тиринг работает со всеми устройствами ввода/вывода хост-сервера: RAID-контроллером, SAS HBA, флэш-картами на шине PCIe, дисками на бортовых портах материнской платы, и даже удаленными томами, подключенными по iSCSI или FC.

RAID-контроллеры набираются ума

На деле все интереснее: и кэширование, и тиринг работают не только с RAID-контроллером Adaptec 8Q, а со всеми I/O устройствами, видимыми в системе. Скорее всего, Adaptec не хочет запутывать пользователей, и такими картинками противопоставляет новые возможности управления вводом/выводом Adaptec maxCache Plus кэшированию old-style Adaptec maxCache 3.0 — которое относилось исключительно к устройствам хранения, подключенным непосредственно к RAID-контроллеру Adaptec 7Q.

Тиринг и кэширование

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

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

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

В ПО серии 8Q контроллеров Adaptec входит «интеллектуальный» драйвер, работающий в связке с ОС и прошивками самих контроллеров. Процедуру управления тирингом можно условно разбить на два процесса: анализ данных и миграцию данных между уровнями.

Алгоритмы анализа являются «мозгом» тиринга и, естественно, являются закрытым кодом. Они зависят от типов и количества уровней. Программное решение под определенную ОС отвечает за совместимость с прикладным ПО. Аппаратный RAID-контроллер вносит вклад в сам процесс миграции между уровнями. Для выполнения процесса миграции данных необходимо время и дополнительное место (как минимум, 5% свободного пространства при заполнении уровней — так рекомендует Adaptec), эти накладные расходы необходимо учитывать.

В «температурной» терминологии, кэширование — это технология «горячего/холодного». Ее суть — поиск «горячих» точек в общем объеме данных (медленных устройств) и создание на связанных быстрых устройствах копий востребованных блоков данных. Тиринг —более сложная система работы с данными, где по оси «горячие-теплые-прохладные-холодные» проводятся замеры и данные меняют физические адреса хранения.

Что может Adaptec maxCache Plus

Удобнее всего работать с кэшированием и тирингом из Adaptec maxView Storage Manager — управляющей программы, предоставляющей через веб-интерфейс HTML5 весь контроль за системой хранения. Его предыдущим версиям не хватало быстродействия, (вернее, скорости реакции на запрос) — от чего многие предпочитали интерфейс командной строки arcconf. Последняя версия maxView Storage Manager (x64_v1_04_20859) почти избавилась от этого недостатка. При необходимости можно перейти на командный интерфейс maxconf, который был разработан под технологию maxCache Plus.

Преемственность технологий выглядит так. Кэширование «по старому стилю» — как у контроллеров Adaptec 7Q (maxCache 3.0) — сохранено в виде отдельной группы настроек maxCache (см рис). Появившиеся в Adaptec maxCache Plus группы настроек Virtual Pool и Virtual Volume отвечают за реализацию тиринга и кэширования в расширенной трактовке.

RAID-контроллеры набираются ума

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

RAID-контроллеры набираются ума

Adaptec maxCache Plus — кэширование

Контроллеры Adaptec 7Q (maxCache 3.0) могли кэшировать логические устройства (RAID- массивы), собираемые самими контроллерами из непосредственно подключенных к ним физических дисков. В Adaptec maxCache Plus можно кэшировать тома, созданные поверх устройств внешней среды хранения данных.

Доступны два типа кэширования:

  • Cached — создаваемые тома используют два пула различных tier-уровней. Верхний уровень работает как кэш, можно выбрать режим записи Write-through или Write-back.

  • Cached-LD — создается том из уже существующего логического устройства (например, внешней СХД) и пула быстрых носителей (например, нескольких SSD) — кэширующей среды. Здесь кэширование записи работает в режиме Write-through.

Adaptec maxCache Plus — Tiering

Автоматизированные процедуры тиринга контроллеров Adaptec 8Q допускают иерархию из двух уровней: Tier 0 (SSD) и Tier 1 (HDD). В отличие от кэширования, где данные дублируются на HDD и в SSD-кэше, полезный объем при тиринге равен сумме объемов SSD и HDD, и минус 5% на «накладные расходы».

Можно реализовать два типа тиринга: единичный и двойной, как показано на рисунке.

Единичный тиринг

RAID-контроллеры набираются ума

Двойной тиринг

RAID-контроллеры набираются ума

Рис. 1 Типы тиринга

В терминах меню Adaptec maxView Storage Manager есть три условные зоны:

а) физических дисков (это те физические диски, которые подключены к контроллеру);

б) логических устройств (на рисунке — RAID Adapter, включает RAID-массивы, построенные на RAID-контроллере и все видимые системой ресурсы хранения информации, к ним относятся массивы, созданные другими RAID- контроллерами в системе или LUN-ы других СХД, к которым есть доступ);

в) maxCache Plus (зона, в которой и создается структура тиринга)

Используются такие понятия:

Виртуальный пул (Virtual Pool)

В виртуальном пуле группируются ресурсы зоны логических устройств. Виртуальный пул может быть двух типов: более производительный Tier 0 (SSD) и более медленный Tier 1 (HDD). Количество создаваемых виртуальных пулов зависит от количества виртуальных томов и их структуры, которая определяется типом данных и операций, преобладающих при работе прикладного программного обеспечения.

Виртуальные тома (Virtual Volumes)

Структура виртуального тома, обязательно должна включать оба типа виртуальных пулов (Tier 0 — «горячие» данные, Tier 1 — «холодные» данные). Виртуальный том в процессе работы обслуживается драйвером maxCache Plus — то есть, программно.

Тесты

Мы построили стенд для изучения принципов работы Tiering. Структурная схема стенда представлена на рисунке.

RAID-контроллеры набираются ума

Рис. 2 Структура системы Tiering

RAID-контроллеры набираются ума

SAS HBA стороннего производителя (LSI HBA 9212 4i/4e IR) ввели намеренно — для понимания, как Adaptec 81605ZQ работает со «своими» и «чужими» логическими устройствами (RAID-массивами).

Строились два уровня тиринга — единичный и двойной. Единичный уровень реализован на пулах SSD (Pool_SSD_in) и HDD (Pool_HDD_in_02), а двойной — на SSD (Pool_SSD_out), HDD (Pool_HDD_in_01) и HDD (Pool_HDD_out_01).

RAID-контроллеры набираются ума

К системе единичного уровня относятся Pool_In_SSD и Pool_HDD_In_02, а к системе двойного уровня — Pool_HDD_In_01, Pool_HDD_Out и Pool_SSD_Out.

При работе с пулами наткнулись на ограничение по количеству пулов. (По информации Adaptec, определенные ограничения на сегодняшний день существуют):

Minimum volume size — 1GB;
Minimum pool size — 4GB;
Max number of pools — 4;
Max number of virtual volumes — 2.

В следующих релизах их обещают раздвинуть.

Итак, пока реализуем вариант двойного уровня.

Пул (Pool_In_HDD_01) берем в полном объеме, а пул (Pool_Out_SSD) только 200 ГБ, оставляя объем для следующего Virtual Volume.

RAID-контроллеры набираются ума

При создании Virtual Volume предоставляется возможность выбора режима Fetch/Flush Mode (он может быть также изменен после создания Virtual Volume через меню «Set Propertiies»), который позволяет установить интенсивность заполнения/освобождения Tier0 «горячими» данными:

- Aggressive — высокая;

- Normal — средняя (по умолчанию);

- Passive — низкая.

Возможность изменения интенсивности «нагревания» и «охлаждения» данных (то есть, изменения алгоритма тиринга) позволяет оптимизировать систему под конкретные прикладные задачи.

Для проверки работы тиринга была использована тестовая программа IOMeter 2008 со следующими изменениями. Был создан новый виртуальный том Pool_In_SSD + Pool_HDD_Out — чтобы охватить контроллеры Adaptec и LSI (IBM)). Для Tier0 (Pool_In_SSD) были использованы SSD с интерфейсом 12Гб/с. За основу была взята тестовая последовательность чтения/записи (100% Rd или 100% Wr) с произвольной выборкой (размер блока 4К и 8К). Для обеспечения требуемой нагрузки тестовую последовательность генерировали одновременно 8 инициаторов (workers). Время выполнения теста — 1 час. Все тестирование состояло их 9 таких тестов, причем интервал между тестами составлял 15 минут. Это время отводилось для завершения миграции «нагретых» данных с HDD (Tier1) уровня на SSD (Tier0) уровень.

По завершению тестирования можно было сказать с уверенностью, что «горячие» данные полностью переместились на уровень «Tier0». Во-первых, скорость при операциях чтения и записи существенно возросла, во-вторых, визуальный контроль за светодиодами активности дисков на панели индикаторов сервера показал, что обращение осуществляется только к Tier0 и в-третьих, можно проанализировать статистические данные (Advanced statistics), которые собираются maxView Storage Manager. Ниже приведены некоторые из них:

RAID-контроллеры набираются ума

По состоянию этих счетчиков можно косвенно судить о работе с уровнями.

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

RAID-контроллеры набираются ума

RAID-контроллеры набираются ума

Анализируя статистические данные, возможно определить, какой тип операций преобладает в запросах ввода вывода и степень «потепления» данных. Скриншот был сделан в начале тестирования пула с тирингом, поэтому «горячих» данных не много, о чем свидетельствуют маленькие значения параметров SSD Read IO Count: и SSD Write IO Count:.

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

Выводы

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

Это в духе времени. Налицо тенденция подтягивания программных средств управления RAID-массивами для производительной работы с большими объемами неструктурированных данных. Современные ОС обзаводятся программными RAID и накачиваются «интеллектуальными» алгоритмами. Пример тому — Windows Server 2012R2, где среди прочего реализован и тиринг (хотя и с ограничениями: только «single» или «mirror», причем оба уровня должны иметь одинаковый тип RAID).

Производители аппаратных RAID-контроллеров идут той же дорогой, опираясь на многолетний опыт работы с динамическими данными. К слову, аппаратные RAID-контроллеры Adaptec серии 8Q позволяют объединять в виртуальный том пулы с различными типами RAID, и это дает определенную свободу при конфигурировании систем.

Новые RAID-контроллеры дают возможность использовать для верхнего уровня тиринга SSD с интерфейсом SAS 12Гб/с — что позволяет повысить производительность этого уровня или обойтись меньшим числом дисков для достижения требуемого уровня производительности.

«Умные» RAID-контроллеры нужны там, где более всего мешают ограничения систем хранения данных — в корпоративных приложениях с многосвязной и смешанной нагрузкой, с большим количеством операций ввода/вывода: в оперативной обработке транзакций, высокопроизводительных вычислениях, анализе и обслуживании глубоких срезов данных. Или, говоря другими словами, где нет технической возможности вручную разнести «горячие» и «холодные» данные по различным устройствам хранения (например, из-за большого объема хранения).

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