`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

+1010
голосов

OLTP-приложения, чувствительные к задержкам отклика дисковой системы серверов, только выиграли бы от размещения данных на SSD – твердотельные накопители на порядки превосходят традиционные жесткие диски HDD по скорости доступа и количеству транзакций, обслуживаемых в секунду. Полностью перейти на SSD пока мешают высокая стоимость хранения и опасение перед ранним износом ячеек памяти. Выделить и вынести на SSD одни только «горячие» данные тоже не всегда возможно, особенно в «длиннохвостых» системах – для этого надо править структуру приложений, анализировать движение данных и уметь их перемещать между носителями.

SSD-кэширование и RAID-контроллеры

Технология SSD-кэширования  объединяет сильные стороны SSD и HDD, не разрушая традиционные подходы к хранению данных. К ее появлению в массовых серверах приложили руку основные производители RAID-контроллеров – Adaptec (by PMC Sierra) и LSI. Свои алгоритмы динамического анализа данных они развили до использования внешних SSD в качестве кэширующего слоя массивов HDD. Копирование горячих данных c HDD на SSD и смещение дисковой активности на флэш-накопители дает прирост производительности в критичных приложениях, а массив HDD обеспечивает надежное и экономичное хранение большого объема плохо структурированных данных. Обходясь без мониторинга дисковых операций и настройки приложений под накопители разного типа, пользователь получает многоуровневую систему хранения, которой управляет RAID-контроллер.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Взаимодействие кэширующего контроллера  с пулами SSD и HDD (источник: www.adaptec.com)

SSD-кэширование средствами RAID-контроллера в серверах бизнес-приложений – это демократичный аналог многоуровневого хранения (tiering) развитых СХД. Суть та же – использование дорогих, но производительных носителей SSD под «горячие» данные, с вытеснением «холодных» на обычные диски HDD SAS/NL-SAS/NL-SATA. Динамический анализ обращений к дискам, формирование температурного профиля запросов и поддержание “высокого градуса” скопированных на SSD данных здесь выполняет сам RAID-контроллер. Эту работу RAID-контроллеры делали и раньше – только в собственной DRAM-памяти. Распространив действие интеллектуальных алгоритмов движения данных на SSD-буфер перед массивом HDD, разработчики контроллеров построили трехуровневую систему обслуживания дискового ввода-вывода: (1) небольшой кэш в оперативной памяти контроллера – (2) достаточной емкий и быстрый кэш на энергонезависимой флэш-памяти SSD – (3) основное хранилище на HDD. Интеграция кэширующих пулов SSD не требует изменения настройки архитектур СХД, программного обеспечения и операционных систем.

Adaptec 7805Q и LSI 9271-8i CC (CacheCade Pro 2.0) - представители современного поколения RAID-контроллеров с поддержкой SSD-кэширования. Оба работают на шине PCIe 3.0, кэшируют операции как чтения, так и записи, переживают второе-третье поколение развития. Технологию можно считать достаточно зрелой. Наибольший эффект от SSD-кэширования достигается в задачах с преобладанием операций чтения произвольного доступа – как в большинстве веб-приложений. Прироста производительности можно ждать во всех бизнес-приложениях, где много дисковых обращений с произвольной выборкой. Остановимся на особенностях каждого из контроллеров. Пошагово пройдем стадии формирования RAID-массива из смеси SSD/HDD. Тесты помогут нам оценить эффект от SSD-кэширования при разной структуре запросов.

Adaptec 7805Q

Базовая логика, исполнение, особенности

Контроллеры Adaptec, поддерживающие SSD-кэширование, традиционно обозначаются суффиксом Q. Их отличие от базовых моделей только в прошивках: Q-контроллеры поставляются с предустановленным ПО (у LSI поддержка SSD-кэширования добавляется к стандартным контроллерам посредством электронных или физических ключей).

Седьмая серия контроллеров Adaptec 7Q оснащена ПО кэширования maxCache 3.0. По мнению производителя, использование SSD в качестве кэш-пула массива HDD может увеличить интенсивность обработки транзакций (IOPS) по чтению до 25 раз, и во столько же раз уменьшить латентность доступа к данным – если сравнивать с производительностью массива из одних только HDD.

В основе всех контроллеров Adaptec серии 7  лежит чип PMC PM8015 ROC, позволяющий обслужить 24 устройства 6Gb SAS напрямую без экспандеров. В сочетании с использованием разъемов увеличенной плотности High Density (HD) mSAS это позволило, к примеру, сделать даже 16-портовые  адаптеры низкопрофильными. Заявлено, что седьмая серия на порядок производительнее предыдущего поколения, при подключении 16 SSD может быть достигнута максимальная пропускная способность 450 K IOPS.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Традиционно для Adaptec, используется технология Zero-Maintenance Cache Protection (ZMCP), которая с помощью энергонезависимой флэш-памяти защищает кэшируемые данные и позволяет отказаться от литий-ионных батарей, подверженных старению. В седьмой серии эту роль выполняет модуль защиты кэша AFM-700,  с 2GB флэш-памяти NAND и суперконденсатором. В поставку Q-контроллеров он включен. С контроллерами Adaptec поставляется ПО Adaptec maxView Storage Manager для мониторинга и конфигурирования RAID-адаптеров через веб-интерфейс, которое может выполняться в любом браузере, включая мобильные.

Adaptec 7805Q – это 6Gb SAS/SATA контроллер на шину x8 PCIe 3.0, c памятью 1GB. На нем два внутренних мини-разъема HD mSAS (SFF-8643) и разъем для подключения флэш-модуля AFM-700 (входит в комплект поставки). Соединительный кабель в поставку не входит, его надо подбирать под условия подключения дисков и тип корзины, всего их есть три типа: HDmSAS-mSAS, HDmSAS-4SATA, HDmSAS-4SAS.

Adaptec maxCache 3.0 – уже третье поколение кэширующего ПО Adaptec, в нем расширен  диапазон рабочих нагрузок, оптимизировано кэширование чтения  и добавлено кэширование записи с полным резервированием (RAID 0, 1, 1E, 5). В maxCache 3.0 применяется новая функция — оптимизированное использование дисков (ODU).  SSD дешевеют, их емкость растет, использование всей их емкости в качестве пула кэширования не всегда неэффективно. Благодаря ODU, накопители SSD можно разделить на пул кэширования и логическое устройство. В отличие от пула кэширования, логический раздел открыт для операционной системы, поэтому его можно использовать для установки ОС или хранения других данных, к которым нужен быстрый доступ без задержек.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Q-контроллеры Adaptec седьмой серии позволяют объединять в буферные SSD-пулы до 8 накопителей SSD общей емкостью до 2 ТБ. Поддерживаются уровни RAID 0, 1, 1E, 5.

Установка ПО и настройка  RAID-массива

Создать и настроить HDD RAID-массив с  кэширующим SSD-пулом на контроллере  Adaptec 7805Q можно из управляющего веб-приложения и с помощью интерфейса командной строки CLI (Command Line Interface). Из BIOS для контроллера Adaptec можно сформировать только основной HDD-массив - стандартной процедурой, которая запускается при старте сервера комбинацией клавиш CTRL-A. Cоберем RAID-массив из 4 HDD RAID 10, с кэширующим пулом из 2 SSD RAID 1 и включенным кэшированием чтения и записи.

Создание  кэширующего SSD-пула HDD RAID-массива при помощи Adaptec Storage Manager

Веб-интерфейс  нового Storage Manager не похож на прежний интерфейс Adaptec. При хорошей оснащенности и функциональном богатстве, в нем нет привычного основного меню. Группы устройств, физических и логических, представлены достаточно наглядно, но старая иерархия операций была строже, что ли. Все действия теперь требуют нажатия на иконки (что не всегда удобно). Визуализация статуса активности кнопок оставляет желать лучшего, различать состояние кнопок нелегко. Большой по времени отклик интерфейса на запросы некомфортен – как будто он зависает.

Кнопки центральной панели управления сгруппированы по объектам воздействия (System, Controller, Logical Disk, Physical Disk, maxCache). Для создания основного RAID-массива из HDD надо нажать соответствующую кнопку (ниже выделено красным) в группе Logical Disk.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Процедура сборки нужного нам кэш-пула RAID 1 из 2 SSD ничем не отличается от создания логических устройств поверх HDD и запускается соответствующей кнопкой в группе maxCache.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

 

Подключить созданный кэш-пул к логическому диску можно двумя способами:

Установкой параметра Max Cache = Enabled при создании логического диска:

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Через меню Set Properties:

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Если часть емкости SSD отводится под хранение постоянных данных (функция оптимизированного использования дисков ODU), сперва создается логический диск нужного объема и уровня RAID под них, а затем остаток места отдается под пул кэширования. Если сделать наоборот и начать с разбиения кэш-пула, остаток места отдать под логическое устройство не получится. (Может, оно и к лучшему: контроллер SSD все незанятое пространство обратит на пользу дискам. Чем больше служебная область, оverprovisioning, тем выше производительность и дольше жизнь SSD).

Разметка массива с SSD-кэшированием при помощи Adaptec CLI

Опытные администраторы пользуются преимуществом  командной строки: одна команда с  набором параметров заменяет ряд  действий над множеством устройств. При разовой настройке, с выбором элементов меню по каждому из устройств в отдельности, веб-интерфейс удобнее – все опции и взаимосвязи наглядны. Другое дело – повторяемые операции.

Команда создания кэш-пула выглядит так:

ARCCONF CREATE 1 MAXCACHE MAX 1 0,4 0,5 NOPROMPT

Здесь

MAX – максимальный объем RAID, 1 – уровень RAID, 0,4 и 0,5 – идентификаторы устройств – дисков SSD (первая цифра – номер канала, вторая цифра – номер устройства);

NOPROMPT – параметр «не подтверждать»

Пример команды создания логического устройства RAID 10 из 4 HDD с подключением к нему maxCache (если он уже создан):

ARCCONF CREATE 1 LOGICALDRIVE Name RAID10_HDD Method QUICK Rcache RON Wcache WBB MaxCacheReadCache ION MaxCacheWriteCache ION MAX 10 0,0 0,1 0,2 0,3 NOPROMPT

Name - имя массива, RAID 10_HDD;

Method - метод инициализации массива, QUICK;

Rcache RON – кэширование чтения с логического устройства включено;

Wcache WBB – кэширование записи логического устройства включено (при наличии флэш-модуля AFM-700);

MaxCacheReadCache ION – кэш на чтение MaxCache включен;

MaxCacheWriteCache ION –кэш на запись MaxCache включен;

MAX – максимальный допустимый объем массива;

10 – уровень RAID;

0,0    0,1  0,2 и 0,3 – идентификаторы устройств.

Результат выполнения на экране выглядит так:

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

LSI MegaRAID 9271-8i

Базовая логика, исполнение, особенности

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

LSI MegaRAID 9271-8i – из второго поколения контроллеров 6Gb SAS, адаптирован под PCIe 3.0. Его производительность обеспечивает двухъядерный чип LSISAS2208 Dual Core ROC 800MHz PowerPC, управляющий кэш-памятью 1GB. На контроллере два разъема mSAS (SFF-8087). Как и его предшественники, контроллер поддерживает ПО кэширования CacheCade Pro 2.0. У LSI SSD-кэширование активируется добавлением к контроллеру электронного или физического ключа, который в поставку контроллера не входит.  К LSI MegaRAID 9271-8i  докупается программная лицензия LSI00293 или аппаратный ключ LSI00290 – и он становится контроллером LSI MegaRAID 9271-8i  CC.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

С помощью CacheCade Pro 2.0 можно собирать буферные SSD-пулы из 32 SSD общей емкостью до 512 GB (в новой версии планируется размер >2 TB). Для них поддерживаются уровни RAID 0, 1, 5 и 10.

Данные защищаются в памяти контроллеров LSI традиционными литиевыми батареями или флэш-модулем на памяти NAND MegaRAID CacheVault. У покупателя LSI MegaRAID 9271-8i  есть выбор между аккумулятором LSIBBU009 и флэш-модулем LSICVM01. В первом случае при сбое питания аккумулятор поддерживает напряжение на памяти контроллера (свежие батареи протянут 72 часа), во втором происходит автоматическая запись данных из динамической кэш-памяти во флэш-память (питание поддерживает супер конденсатор), после восстановления питания выполняется обратная процедура. Батареи подвержены старению, их надо менять раз в год, тогда как флэш-память может хранить данные годами.

Контроллеры LSI работают под управлением ПО MegaRAID Management Suite, включающего MegaRAID Storage Manager, MegaCLI, WebBIOS.

По результатам тестов самой компании LSI в среде OLTP Database, установка СacheCade Pro 2.0 с добавлением одного SSD в массив HDD может втрое сократить время отклика базы данных и вдвое нарастить количество транзакций в секунду – против массива из одних только HDD. Областью применения CacheCade Pro 2.0 помимо OLTP-задач считается работа с хранилищами данных (data warehousing) и их интеллектуальный анализ (data mining).

Установка ПО и настройка RAID-массива с SSD-кэшированием

Сформировать основной HDD-массив, пул кэширования из SSD, назначить им уровни RAID и политики кэширования на контроллере LSI MegaRAID 9271-8i CC можно тремя способами: из BIOS (MegaRAID Config Utility), через веб-интерфейс MegaRAID Storage Manager или в режиме командной строки MegaCLI.

Сборка RAID-массива из BIOS

MegaRAID Config Utility запускается при загрузке сервера комбинацией клавиш CTRL-H.

Если ключ CacheCade не активирован, создать конфигурацию кэш-пула невозможно - на экране просто не будет приглашения (флажка CacheCade-SSD Caching Configuration).

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

При создании кэш-пула автоматически  выбирается весь допустимый объем собираемых в RAID SSD. Конфигурация CacheCade строится в три этапа:

Создание группы устройств:

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Создание массива из группы устройств:

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Задание параметров CacheCade (уровня RAID и политики кэширования):

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Процедура создания основного RAID-массива из HDD – стандартная, на ней останавливаться не будем. Традиционно для LSI, RAID 10 из 4 HDD строится в два приема: сперва создаются два массива RAID 1 по два диска, которые затем объединяются в RAID 0 – то есть, фактически, получается RAID 1+0.

Создание RAID-массива с SSD кэширования при помощи MegaRAID Storage Manager

Действия в MegaRAID Storage Manager фактически такие же, как при использовании BIOS, похожи панели выбора и пункты меню. Так выглядит панель основного интерфейса с результатами настройки SSD кэширования (создан основной RAID массив, к нему подключен CacheCade).

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

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

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Создание кэшированного массива из командной строки CLI

LSI предлагает два варианта CLI:

  • Предустановочный (PCLI) – вызывается при загрузке устройства комбинацией клавиш CTRL-Y (этот режим помогает создать и настроить структуру SSD-кэширования до загрузки ОС, что очень удобно).

  • MEGACli - утилитой, которая запускается из под ОС.

Построение структуры SSD-кэширования сводится к последовательности трех команд:

    1. Создать CacheCade

MegaCli -CfgCachecadeAdd –r1 –Physdrv [252:4:252:5] WB –a0

где r1 – уровень RAID, 0,4 0,5 – идентификаторы двух SSD, а WB - включение режима записи (режим чтения включается по умолчанию)

    1. Создать основной RAID массив

MegaCLI64 -CfgSpanAdd -r10 -Array0[252:0,252:1] -Array1[252:2,252:3] WB NORA Direct NoCachedBadBBU -a0

где

r10 – уровень RAID – 10;

Array0 и Array1 – два RAID 1, из которых создается RAID 10;

[252:0] – первая цифра – идентификатор  устройства, вторая цифра – номер  слота в корзине;

WB – режим Write Back включен;

NORA – нормальный режим упреждающего чтения;

Direct – прямая запись

NoCachedBadBBU – режим, который отключает кэш при отказе BBU (Battery Backup Unit - Модуль Резервной Батареи).

    1. Подключить кэш-пул к виртуальному диску

MegaCli64 -Cachecade –assign (-remove) –L1 -a0

Результат – на экране:

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Сравнительная таблица основных параметров Adaptec 7805Q и LSI MegaRAID 9271-8i CC

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Постановка тестов

В качестве тестового полигона использовался  сервер:

Сервер Entry i2-235:

  • 2U Chenbro RM23508M2-LE w/6G mSAS BP 620w 1+1
  • TYAN S7050GM4NR
  • 2 x CPU Intel Xeon 8-core E5-2650
  • 16 x DDR3-1600 8192MB registered dual-rank Kingston {KVR16R11D4/16}
  • 4 x SAS 15K rpm HDD 300 GB Seagate {ST3300657SS}
  • 2 x SAS SSD 100GB Seagate Pulsar {ST100FM0002}

с  операционной системой Microsoft Server 2008 R2. На контроллерах Adaptec 7805Q и LSI MegaRAID 9271-8i CC поочередно были сконфигурированы основной RAID-массив уровня 10 из 4 HDD и кэш-пул RAID 1 из 2 SSD, со включенным кэшированием чтения и записи.

В качестве тестового ПО использовалась программа IOMeter v. 2008.06.18-RC2. Был выбран тест «База данных» c размером пространства на дисках для тестирования 30 GB (такой объем соответствует среднестатистической базе данных 1С), размером блока тестовой посылки от 4 К до 64К, с произвольной выборкой, соотношением чтение/запись 67:33, под 100 %-й нагрузкой. Результаты тестов снимались после заполнения кэша “горячими” данными. При синтетическом тестировании на это ушло примерно 10 минут у LSI MegaRAID 9271-8i CC и 15-20 минут у Adaptec 7805Q. В реальных условиях качественных эффектов от насыщения кэша можно ждать от нескольких часов до нескольких дней.

Результаты  тестов

На первой группе графиков отражена зависимость производительности (IOPS) и латентности (мс) от длины очереди запросов, при разном размере блока данных тестовой посылки.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

 

Сравним производительность и латентность наших подсистем дискового ввода-вывода на короткой посылке 4 К: при слабой нагрузке (длина очереди 4) и при умеренной нагрузке (длина очереди 64).

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

При слабых нагрузках (блок 4 К/длина очереди 4) контроллер LSI MegaRAID 9271-8i СС немного быстрее. При умеренных нагрузках (блок 4 К/длина очереди 64) вперед вырывается Adaptec 7805Q.

Проверим гипотезу разной реакции  контроллеров на увеличение нагрузки. Сравним те же показатели контроллеров в широком диапазоне изменения длины очереди запросов (от 1 до 256), с размером блока данных 4 К, 8 К (база данных) и 64 К (SQL сервер). В относительном представлении характеристик контроллеров хорошо видны сильные стороны одного и другого. Положительные проценты на графиках производительности означают перевес LSI MegaRAID 9271-8i CC, отрицательные – превосходство Adaptec 7805Q. Для графиков латентности все наоборот.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Получается, что под щадящей  нагрузкой в серверах баз данных (на коротких очередях) LSI 9271-8i CC ведет себя увереннее . С ростом нагрузки (удлинением очереди запросов), Adaptec 7805Q берет реванш. Чем меньше размер блока данных приложения, тем раньше проявляется преимущество Adaptec. При размере блока 64K LSI не сдается до самого конца.

Оценки работы ПО

Субъективные оценки о работе с  ПО RAID-контроллеров сведены в таблицу.

SSD-кэширование в массовых серверах: инструменты Adaptec и LSI

Выводы

Не так принципиально, какой именно контроллер использовать для ускорения дисковых операций. Важно уметь пользоваться на практике таким мощным инструментом роста производительности ввода-вывода как SSD-кэширование. OLTP-приложения в большей степени, OLAP- и data mining в меньшей, работают с объемными массивами данных, которые плохо структурированы и в разной степени актуальны. Насколько хорошо подсистема ввода-вывода сервера парирует нагрузку с произвольной выборкой, характеризуют два показателя: задержки, или скорость отклика дисков (латентность), и количество обслуживаемых транзакций в секунду (IOPS). RAID- контроллеры, снабженные интеллектуальными алгоритмами отслеживания данных активного обращения, улучшают оба. Делают они это в серверах массовых приложений, в рамках стандартной архитектуры, без ломки традиционных подходов к хранению и без адаптации ПО. 

На долю пользователя остается оптимизация  наборов дисков HDD/SDD и настроек массива, с учетом особенностей бизнес-приложений и структуры запросов. Универсальных рецептов по SSD-кэшированию нет – из-за разнообразия моделей нагрузки ввода-вывода. Наибольший эффект от SSD-кэширования будет в системах с преобладанием операций чтения произвольного доступа. А вот запись потоковых данных (с последовательной выборкой) скорее всего не получит прироста быстродействия вовсе. При узкой специализации сервера и его подсистемы ввода-вывода по сходным типам приложений эффект будет больше, чем в среде со смешанной нагрузкой. 

В конце-то концов, цена натурного эксперимента по вводу в HDD-массив буферного кэш-слоя из SSD невелика – кэширующий RAID-контроллер отличается от стандартного на стоимость ПО кэширования, $250-300. В настройках самих приложений не надо менять ничего. Предполагаемой же выгодой может стать радикальное, в разы, сокращение времени отклика базы данных и аналогичное ускорение по транзакциям. Но даже если прок от SSD-кэширования окажется меньше ожидаемого (такая уж структура запросов) и кэширующий слой придется исключить, все равно на руках у пользователя останется современный производительный RAID-контроллер и набор дисков для построения подсистемы ввода-вывода традиционного кроя.

+1010
голосов

Напечатать Отправить другу

Читайте также

хорошая работа

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT