Реализация Ssd-Кэширования В Системе Хранения Данных Qsan Xcubesan

Технологии повышения производительности, основанные на использовании твердотельных накопителей и широко используемые в системах хранения данных, уже давно изобретены.

Прежде всего, это использование SSD в качестве места хранения данных, что на 100% эффективно, но дорого.

Поэтому используются технологии Tiring и Cache, где SSD используются только для самых популярных («горячих») данных.

Многоуровневое распределение хорошо подходит для сценариев длительного (дни-недели) использования «горячих» данных.

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

Оба эти варианта реализованы в системе хранения данных.

QSAN XCubeSAN .

В этой статье мы рассмотрим реализацию второго алгоритма — SSD-кэширование .



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Суть технологии SSD-кэширования заключается в использовании SSD-накопителей в качестве промежуточного кэша между жесткими дисками и оперативной памятью контроллера.

Производительность SSD, конечно, ниже производительности собственного кэша контроллера, но объём на порядок выше.

Таким образом, мы получаем некий компромисс между скоростью и громкостью.

Показания к использованию SSD-кеша для чтения:

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

Большинство поставщиков систем хранения данных используют в своих продуктах SSD-кэш, доступный только для чтения.

Принципиальная разница КСАН Они также предоставляют возможность использовать кеш для записи.

Для активации функции SSD-кэширования в системах хранения QSAN необходимо приобрести отдельную лицензию (поставляется в электронном виде).

SSD-кэш в XCubeSAN физически реализован в виде отдельных пулов SSD-кеша.

Их в системе может быть до четырех.

Каждый пул, естественно, использует свой набор SSD. И уже в свойствах виртуального диска определяем, будет ли он использовать пул кэша и какой.

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

При создании кэша пула SSD необходимо выбрать, в каком режиме он будет работать: только чтение или чтение+запись.

От этого зависит его физическая организация.

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

Если используется пул кэша только для чтения, он может состоять из 1–8 твердотельных накопителей.

Диски не обязательно должны быть одинаковой емкости и одного производителя, поскольку они объединены в структуру NRAID+.

Все SSD в пуле являются общими.

Система самостоятельно пытается распараллелить входящие запросы между всеми SSD для достижения максимальной производительности.

Если один из SSD выйдет из строя, ничего страшного не произойдет: ведь в кэше находится лишь копия данных, хранящихся на массиве жестких дисков.

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



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Если кеш используется для операций чтения+записи, то количество SSD в пуле должно быть кратно двум, поскольку содержимое зеркалируется на парах накопителей (используется структура NRAID 1+).

Дублирование кэша необходимо, поскольку он может содержать данные, еще не записанные на жесткие диски.

И в этом случае выход SSD из кэш-пула приведет к потере информации.

В случае NRAID 1+ выход из строя SSD просто приведет к переводу кэша в состояние «только для чтения», с сбросом незаписанных данных на массив жестких дисков.

После замены неисправного SSD кэш вернется в исходный режим работы.

Кстати, для большей безопасности можно назначить выделенные горячие резервы для кэша чтения+записи.



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

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



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

В отличие от большинства производителей систем хранения, которые предлагают только возможность включения/выключения кэша SSD, QSAN предоставляет больше возможностей.

В частности, вы можете выбирать режим работы кэша в зависимости от характера нагрузки.

Есть три предустановленных шаблона, наиболее близких по своей работе к соответствующим сервисам: база данных, файловая система, веб-сервис.

Кроме того, администратор может создать собственный профиль, задав необходимые значения параметров:

  • Размер блока (Cache Block Size) – 1/2/4 МБ.

  • Количество запросов на чтение блока для его копирования в кэш (Populate-on-Read Threshold) – 1.4
  • Количество запросов на запись блока для его копирования в кэш (Populate-on-Write Threshold) – 0.4


Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Профили можно менять на лету, но, естественно, со сбросом содержимого кэша и новым его «прогревом».

Рассматривая принцип работы SSD-кэша, можно выделить основные операции при работе с ним:






Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Чтение данных, когда их нет в кеше
  1. Запрос от хоста поступает на контроллер;
  2. Поскольку запрошенные находятся не в кэше SSD, они считываются с жестких дисков;
  3. Считанные данные отправляются на хост. При этом производится проверка, являются ли эти блоки «горячими»;
  4. Если да, то они копируются в кэш SSD для дальнейшего использования.






Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Чтение данных, когда они присутствуют в кеше
  1. Запрос от хоста поступает на контроллер;
  2. Поскольку запрошенные данные находятся в кэше SSD, они считываются оттуда;
  3. Прочитанные данные отправляются на хост.





Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Запись данных при использовании кэша чтения
  1. Запрос на запись от хоста поступает на контроллер;
  2. Данные записываются на жесткие диски;
  3. Хосту возвращается ответ, указывающий на успешную запись;
  4. При этом проверяется, является ли блок «горячим» (сравнивается параметр Populate-on-Write Threshold).

    Если да, то он копируется в кэш SSD для дальнейшего использования.






Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Запись данных при использовании кэша чтения+записи.

  1. Запрос на запись от хоста поступает на контроллер;
  2. Данные записываются в кэш SSD;
  3. Хосту возвращается ответ, указывающий на успешную запись;
  4. Данные из кэша SSD записываются на жесткие диски в фоновом режиме;





Проверьте в действии

Испытательный стенд 2 сервера (ЦП: 2 x Xeon E5-2620v3 2,4 Гц / ОЗУ: 32 ГБ) подключены двумя портами через Fibre Channel 16G напрямую к системе хранения данных XCubeSAN XS5224D (16 ГБ ОЗУ/контроллер).

Мы использовали 16 дисков Seagate Constellation ES, ST500NM0001, 500 ГБ, SAS 6 Гбит/с, объединенных в RAID5 (15+1), для массива данных и 8 дисков HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100 ГБ, SAS 12 Гбит/с в качестве кэша.

Было создано 2 тома: по одному на каждый сервер.



Тест 1. SSD-кэш только для чтения от 1 до 8 SSD

SSD-кэш
  • Тип ввода/вывода: Кастомизация
  • Размер блока кэша: 4 МБ
  • Порог заполнения при чтении: 1
  • Порог заполнения при записи: 0
Шаблон ввода-вывода
  • Инструмент: IOmeter V1.1.0
  • Рабочие: 1
  • Выдающиеся (глубина очереди): 128
  • Характеристики доступа: 4 КБ, 100 % чтение, 100 % произвольный доступ.



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Теоретически, чем больше SSD в пуле кэша, тем выше производительность.

На практике это подтвердилось.

Единственное существенное увеличение количества SSD при небольшом количестве томов не приводит к взрывному эффекту.



Тест 2. SSD-кэш в режиме чтения+записи с 2-8 SSD

SSD-кэш
  • Тип ввода-вывода: Кастомизация
  • Размер блока кэша: 4 МБ
  • Порог заполнения при чтении: 1
  • Порог заполнения при записи: 1
Шаблон ввода-вывода
  • Инструмент: IOmeter V1.1.0
  • Рабочие: 1
  • Выдающиеся (глубина очереди): 128
  • Характеристики доступа: 4 КБ, 100 % запись, 100 % произвольный доступ.



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN

Тот же результат: взрывной рост производительности и масштабирование по мере увеличения количества SSD. В обоих тестах объем рабочих данных был меньше общего размера кэша.

Поэтому со временем все блоки были скопированы в кэш.

А работа, по сути, уже велась с SSD, практически не затронув жёсткие диски.

Целью этих тестов было наглядно продемонстрировать эффективность прогрева кэша и масштабирования его производительности в зависимости от количества SSD. Теперь вернемся на землю и проверим более реалистичную ситуацию, когда объем данных превышает размер кэша.

Чтобы тест прошел за разумное время (период «прогрева» кэша сильно увеличивается с увеличением размера тома), мы ограничим размер тома 120ГБ.



Тест 3. Моделирование работы базы данных

SSD-кэш
  • Тип ввода-вывода: База данных
  • Размер блока кэша: 1 МБ
  • Порог заполнения при чтении: 2
  • Порог заполнения при записи: 1
Шаблон ввода-вывода
  • Инструмент: IOmeter V1.1.0
  • Рабочие: 1
  • Выдающиеся (глубина очереди): 128
  • Характеристики доступа: 8 КБ, 67 % чтение, 100 % произвольный доступ.



Реализация SSD-кэширования в системе хранения данных QSAN XCubeSAN



Вердикт

Очевидный вывод, конечно же, — хорошая эффективность использования SSD-кэша для повышения производительности любой системы хранения.

Применительно к QSAN XCubeSAN Это утверждение справедливо в полной мере: функция SSD-кэширования реализована отлично.

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

Поэтому за вполне разумную стоимость (цена лицензии сопоставима со стоимостью 1-2 SSD) можно существенно повысить общую производительность.

Теги: #Хранение данных #Виртуализация #ИТ-инфраструктура #Хранение данных #Системы хранения #Системы хранения данных #SAN #qsan #qsan #qsan
Вместе с данным постом часто просматривают: