Сайт о телевидении

Сайт о телевидении

» » Кэширование ssd диска. Использование SSD-накопителей в качестве кэш-памяти дисковой подсистемы сервера. Невысокая производительность накопителя

Кэширование ssd диска. Использование SSD-накопителей в качестве кэш-памяти дисковой подсистемы сервера. Невысокая производительность накопителя

  • Сравнение производительности различных типов серверных накопителей (HDD, SSD, SATA DOM, eUSB)
  • Сравнение производительности новейших серверных RAID-контроллеров Intel и Adaptec (24 SSD)
  • Сравнение производительности серверных RAID-контроллеров
  • Производительность дисковой подсистемы серверов Intel на базе Xeon E5-2600 и Xeon E5-2400
  • Таблицы сравнительных характеристик: RAID-контроллеры , Серверные HDD , Серверные SSD
  • Ссылки на разделы прайс-листа: RAID-контроллеры , Серверные HDD , Серверные SSD

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

Жесткие диски имеют среднее время доступа к произвольному блоку данных порядка нескольких миллисекунд. Это время необходимо для позиционирования головки диска над нужными данными. За одну секунду жесткий диск может прочитать (или записать) несколько сотен таких блоков. Этот показатель отражает производительность жесткого диска на случайных операциях ввода-вывода и измеряется величиной IOPS (Input Output per Second, операций ввода-вывода в секунду). То есть производительность случайного доступа для жесткого диска составляет несколько сотен IOPS.

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

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

Радикальным способом увеличения производительности дисковой подсистемы является использование твердотельных накопителей (SSD-накопителей), в которых информация записывается в энергонезависимую flash-память. У SSD-накопителей время доступа к произвольному блоку данных составляет несколько десятков микросекунд (то есть на два порядка меньше, чем у жестких дисков), благодаря чему производительность даже одного SSD-накопителя на случайных операциях достигает 60"000 IOPS.

На следующих графиках приведены сравнительные показатели производительности RAID-массивов из 8-ми жестких дисков и 8-ми SSD-накопителей. Приведены данные для четырех различных типов RAID-массивов: RAID 0, RAID 1, RAID 5 и RAID 6. Чтобы не перегружать текст техническими подробностями, информацию о методике тестирования мы поместили в конце статьи.


Из диаграмм видно, что применение SSD-накопителей повышает производительность дисковой подсистемы сервера на операциях произвольного доступа от 20 до 40 раз. Однако широкому использованию SSD-накопителей мешают следующие серьезные ограничения.

Во-первых, современные SSD-накопители имеют небольшую емкость. Максимальная емкость жестких дисков (3TB) превосходит максимальную емкость серверных SSD-накопителей (300GB) в 10 раз. Во-вторых, SSD-накопители примерно в 10 раз дороже жестких дисков, если сравнивать стоимость 1GB дискового пространства. Поэтому построение дисковой подсистемы из одних только SSD-накопителей в настоящее время применяется довольно редко.

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

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

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

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

Практически механизм кэширования на SSD-накопителях может быть реализован на любом шести-гигабитном RAID-модуле или RAID-контроллере Intel второго поколения на базе микроконтроллера LSI2208: RMS25CB040, RMS25CB080, RMT3CB080, RMS25PB040, RMS25PB080, RS25DB080, RS25AB080, RMT3PB080. Эти RAID-модули и контроллеры применяются в серверах Team на базе процессоров Intel E5-2600 и E5-2400 (платформа Intel Sandy Bridge).

Чтобы использовать режим SSD-кэширования, необходимо установить на RAID-контроллер аппаратный ключ AXXRPFKSSD2. Кроме поддержки SSD-кэширования, этот ключ также ускоряет работу контроллера с "чистыми" SSD-дисками, когда они используются не в качестве кэш-памяти, а как обычные накопители. В этом случае можно достичь производительности на операциях случайного чтения-записи в 465"000 IOPS (режим FastPath I/O).

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



Мы выполнили тестирование для двух вариантов организации SSD-кэш. В первом варианте 4 SSD-накопителя были объединены в RAID-массив нулевого уровня (R0), а во-втором случае из этих 4-х SSD-накопителей был образован зеркальный массив (R1). Второй вариант немного медленнее на операциях записи, зато он обеспечивает резервирование данных в SSD-кэш, поэтому предпочтительнее.

Интересно, что производительность чтения и записи практически не зависит от типа "основного" RAID-массива жестких дисков, а определяется только скоростью работы SSD-накопителей кэш-памяти и типом ее RAID-массива. Более того, "кэшированный" RAID 6 из жестких дисков на операциях записи оказывается быстрее, чем "чистый" RAID 6 из SSD-накопителей (29"300 или 24"900 IOPS против 15"320 IOPS). Объяснение простое - фактически мы измеряем производительность не RAID 6, а RAID 0 или RAID 1 кэш-памяти, а эти массивы быстрее на записи даже при меньшем числе дисков.

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

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

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

Серверная платформа — Team R2000GZ
Расширитель SAS-портов Intel RES2CV360 36 Port Expander Car
RAID-контроллер — Intel RS25DB080 с ключом AXXRPFKSSD2
HDD — 8 дисков SAS 2,5" Seagate Savvio 10K.5 300GB 6Gb/s 10000RPM 64MB Cache
SSD — 8 или 4 накопителя SSD SATA 2.5" Intel 520 Series 180GB 6Gb/s

Тестирование выполнялось при помощи программы Intel IO Meter.

Для каждого варианта аппаратной конфигурации выбирались оптимальные настройки кэш-памяти контроллера.

Объем виртуального диска для тестирования — 50GB. Такой объем был выбран для того, чтобы тестируемый диск мог полностью поместится в SSD-кэш.

Прочие параметры:
Strip Size — 256KB.
Размер блока данных для последовательных операций — 1MB.
Размер блока данных для операций случайного доступа — 4 KB.
Глубина очереди — 256.

Здравствуйте админ! Хочу купить жёсткий диск объёмом 1-2 Тб, один знакомый компьютерщик посоветовал купить диск SSHD (гибрид жёсткого диска и твердотельного накопителя SSD), так как он работает заметно быстрее обычного HDD, но не такой дорогой, как твердотельный накопитель SSD. Что вы можете сказать о таких дисках?

Привет друзья! Очень хороший вопрос. Да, гибридный жёсткий диск SSHD (Solid State Hybrid Drive) работает быстрее обычного жёсткого диска на 30 %, и дороже примерно на столько же. Если обычный жёсткий диск на 1 Тб стоит 4 000 рублей, то SSHD можно купить за 5 400 рублей. Выпускаются такие диски, как для обычных компьютеров, так и для ноутбуков.

Во-первых, ч то из себя представляет гибридный жёсткий диск

Технология производства жёстких дисков (единственного комплектующего компьютера имеющего движущиеся механические части) давно зашла в тупик и увеличить быстродействие работы жёсткого диска производственным путём практически невозможно, что доказывает появление на рынке твердотельных накопителей SSD и гибридных жёстких дисков SSHD. Но если твердотельный накопитель представляет из себя полностью немеханическое запоминающее устройство на основе микросхем памяти, то гибридный жёсткий диск, это в первую очередь обычный жёсткий диск с распаянной на нём платой быстрой флеш-памяти MLC (объём 8 Гб), применяемой в производстве твердотельных накопителей, то есть получается, что SSHD, это гибрид обычного жёсткого диска и твердотельного накопителя SSD .

Во-вторых, почему гибридный жёсткий диск SSHD работает быстрее обычного жёсткого диска

В гибридных дисках SSHD от Seagate применяется технология самообучения - Seagate Adaptive Memory , исследующая с первых секунд работы установленную на диске операционную систему, в результате чаще всего используемые программы и файлы копируются на флеш-память диска SSHD, к таким файлам относятся прежде всего элементы участвующие в загрузке операционной системы, а значит Windows со второго, третьего раза будет загружаться быстрее, ведь загрузка винды будет происходить уже из флеш-памяти. Например, на моём компьютере загрузка Windows 8.1, установленной на обычный HDD, происходит в течении 35-40 секунд, а на SSHD - 20 секунд, на обычном твердотельном накопителе SSD - 15 секунд. Тоже самое относится к постоянно используемым вами приложениям, запускаться они будут несколько быстрее. Возьмём например, требовательную к ресурсам компьютера современную игру, в которую вы постоянно играете, по моим наблюдениям, загружаться такая игра будет в три раза быстрее, чем на обычном HDD.

Гибридные жёсткий диск SSHD, это золотая середина

Вообще, идеальный вариант конфигурации накопителей в системном блоке обычного домашнего пользователя выглядит так: покупается два накопителя, первый - твердотельник SSD (объём 120-240 Гб) под установку операционной системы, а второй - обычный HDD для хранения файлов (объём) 2-3 ТБ, нужно на всё это примерно 10 000 рублей. А если вы приобретёте один гибридный диск SSHD на 1 ТБ, то он обойдётся вам в 5 400 рублей, а SSHD на 2 ТБ - 7 000 рублей. Конечно летать всё (как в случае с SSD) не будет, но может вам такие скорости и не нужны. Выходит гибридный диск SSHD, это золотая середина - за небольшие деньги вы приобретаете хорошее быстродействие и большой объём дискового пространства.

Какой SSHD купить

До недавнего времени гибридные диски SSHD производила компания, которая их и разработала - Seagate. Всего сейчас на рынке присутствуют три модели Seagate Desktop SSHD объемом 1, 2, 4 Тбайт.

Seagate Desktop SSHD ST1000DX001 1 Тб

Seagate Desktop SSHD ST2000DX001 2 Тб

Seagate Desktop SSHD ST4000DX001 4 Тб

Также с недавнего времени SSHD стала выпускать Western Digital, но на рынке они представлены мало, а та модель, которая попалась мне - WD Blue SSHD, WD40E31X объёмом 4 Тб ничем не отличалась по скоростным характеристикам от аналогичной модели Seagate ST4000DX001 4 Тб.

Предлагаю вам в сегодняшней статье рассмотреть модель Seagate Desktop SSHD ST2000DX001 объём 2 Тб и вот почему. Если взять модель Seagate Desktop SSHD 1 Тб, то размера дискового пространства 1 Тб уже мало для современного пользователя компьютера. Если взять модель Seagate Desktop SSHD 4 Тб, то наоборот, большой объём 4 Тб дискового пространства не всем нужен, да и цена его достаточно высокая (11 500 рублей), и что ещё немаловажно - скорость вращения шпинделя этого накопителя: 5900 об/мин, то есть он чуть медленнее, чем другие SSHD объемом 1 и 2 Тбайт (скорость вращения шпинделя 7200 об/мин) и на быстродействии операционной системы это обязательно скажется.

Итак, я вас уговорил и перед нами модель Seagate Desktop SSHD ST2000DX001 2 Тб

При ближайшем рассмотрении гибридный диск Seagate Desktop SSHD ST2000DX001 2 Тб оказался обычным жёстким диском, только вот написано на нём SSHD.

Объем дискового пространства - 2 Тб

Объем SSD буфера - 8 Гб

Объем кэш-памяти - 64 Мб

Скорость вращения шпинделя - 7200 rpm

На обратной стороне накопителя видим специальную печатную плату Adaptive Memory, с распаянными 8 Гбайт быстрой MLC-памяти и контроллером «гибрида».

Очень просто устанавливаем накопитель в системный блок.

SMART винчестера в программе CrystalDiskInfo и Виктории.

Гибридный диск новый и отработал 0 часов.

Тесты на чтение и запись

Чтобы убедиться в том, что наш диск на самом деле хорош, произведём несколько тестов на чтение и запись с помощью специальных программ: CrystalDiskMark 2.0, ATTO Disk Benchmark и SiSoftware Sandra. Данные утилиты произведут последовательные чтение и запись информации на наш гибридный диск небольшими блоками, затем покажут нам результат.

CrystalDiskMark 2.0

Самая простая и часто используемая в этом отношении программа, скачать можно на моём Яндекс.Диске

Утилита очень простая, выберите только нужную букву диска (в нашем случае E:)

И нажмите AII , начнётся тест SSHD диска на производительность.

1. Тест последовательного чтения и записи большими блоками данных;

2. Тест случайного чтения и записи блоками 512 Кб;

3. Тест случайного чтения и записи блоками 4 Кб;

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

ATTO Disk Benchmark

Протестируем гибридный диск ещё одной программой - ATTO Disk Benchmark .

Выбираем букву диска гибридного накопителя SSHD и жмём Start.

Результат.

SiSoftware Sandra

Глобальная программа способная произвести диагностику всех комплектующих компьютера и имеющая свой официальный рейтинг.

В итоге, наш диск опережает 94% результатов. Отличная производительность.

Недостатки SSHD

По моему мнению, единственный минус SSHD, это небольшой объём встроенной флеш -памяти 8 Гб, было бы здорово, если бы её размер вырос до 32 Гб, тогда в кэш твердотельника помещалось больше работающих программ и быстродействие Windows было бы точно таким, как если бы она была установлена на SSD.

Введение

По мере развития бизнеса возможности приложений с интенсивными рабочими потоками часто ограничиваются характеристиками жестких дисков (HDD). Несмотря на то, что емкости HDD резко возросли, скорость выполнения операций произвольного ввода/вывода (I/O) не увеличивалась в том же темпе. Однако, теперь возможно ускорить обработку потоков с интенсивным чтением данных, таких, как при онлайн транзакциях (On-Line Transaction Processing - OLTP), в сетевых и файловых серверах, базах данных, применяя новую технологию кэширования, Infortrend SSD Cache, которая использует высокую скорость и малую задержку твердотельных дисков для повышения скорости считывания часто требующихся жизненно важных данных. Скорость чтения для SSD значительно выше по сравнению с HDD и, следовательно, SSD Cache может существенно улучшить характеристики произвольного чтения и снизить время отклика.

Применимость настоящего документа

Семейство EonStor DS

Что такое SSD Cache?

Кэш-память - это компонент, который прозрачно накапливает данные, так что следующие обращения к ним могут обслуживаться более эффективно. Он имеет решающее значение для хранилища, особенно в применениях с интенсивным чтением данных. Без включения SSD Cache емкость кэш-памяти контроллера ограничена. SSD Cache позволяет использовать быстрые SSD для наращивания пула кэш-памяти системы хранения и накапливания часто запрашиваемых данных. С увеличением емкости SSD Cache частота попадания в кэш также увеличивается. Другими словами, все больше и больше “горячих” данных будет храниться в SSD Cache, будущие обращения к этим данным будут обслуживаться более эффективно и, следовательно, характеристики чтения будут улучшаться.

Почему Infortrend SSD Cache?

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

1.Улучшение характеристик чтения

SSD Cache использует интеллектуальный алгоритм, чтобы ускорить обработку интенсивных потоков с произвольным чтением данных, таких, как OLTP и обращения к базам данных. В таких ситуациях SSD Cache может существенно увеличить общую скорость чтения. Например, SSD Cache может в 2,5 раза увеличить значение IOPS при OLTP по сравнению с той же системой без SSD Cache. В то же время задержки также уменьшаются и, следовательно, степень улучшения характеристик зависит от действительных рабочих потоков приложения и поведения пользователя.

2.Интеллектуальное ПО и алгоритм управления

Интеллектуальное ПО автоматически анализирует модель доступа к данным и распознает последовательные и произвольные операции чтения/записи. Данные последовательного чтения или записи не заносятся в пул SSD Cache, в нем накапливаются только данные произвольного чтения, чтобы SSD использовались наиболее эффективно. Если более точно, то встроенное ПО автоматически перемещает копии наиболее часто требующихся данных из кэш-памяти контроллера в пул SSD Cache в соответствующее время. Эти “горячие” данные впоследствии будут считаны из SSD Cache, если система получит запрос на их чтение. Разработанны Infortrend алгоритм оптимизирует цикличность копирования данных в SSD, так что для этой цели можно применять и сравнительно дешевые SSD. Это решение не только улучшает характеристики чтения, но и продлевает срок службы жестких дисков за счет уменьшения количества циклов чтения и записи.

3.Простой интуитивный интерфейс пользователя

Функции SSD Cache полностью интегрированы в Infortrend SANWatch и RAIDWatch GUI. Они очень просто настраиваются, управляются и обслуживаются. Например, пользователь может наблюдать за состоянием пула SSD Cache и легко проверять оставшийся срок службы для каждого SSD.

Infortrend SSD Cache

Как работает Infortrend SSD Cache

Если SSD Cache включено и работает в течение некоторого времени, интеллектуальное встроенное ПО собирает статистику и немедленно обновляет записи о “температуре” данных в кэш-памяти контроллера. Основываясь на этих записях, встроенная программа автоматически копирует в соответствующее время небольшие фрагменты случайных часто требующихся данных из кэш-памяти контроллера в пул SSD Cache, используя метод последовательной записи, чтобы избежать интенсивных операций с SSD и, следовательно, увеличить срок их службы. Пока пул SSD Cache Pool не заполнится “горячими” данными, генерируемыми приложениями на хосте, метод предварительного копирования блоков на SSD с помощью зонного предсказания ускоряет операции чтения. Если размер блока данных меньше или равен 16 KB, данные копируются прямо в пул SSD, даже если они считываются только однократно. Если размер блока больше 16 KB, и программа распознает его как “горячие” данные (считываются несколько раз), то они классифицируются как часто требующиеся и сохраняются в пуле SSD. Для этих “горячих” данных будет хранится две копии - одна в SSD Cache и одна на жестких дисках.

Как правило, по получении запроса на чтение данных система проверяет, имеются ли соответствующие данные в кэш-памяти контроллера. Если запрашиваемые данные есть в кэше контроллера, система тут же возвращает их хосту. Если же запрашиваемых данных нет в кэше контроллера, то система проверяет пул SSD Cache. Если запрашиваемые данные были сохранены в SSD Cache на основании оценки их “температуры”, то система считывает эти данные прямо из SSD Cache и возвращает из хосту. В противном случае данные будут возвращены с более медленного устройства. Следовательно, чем больше попаданий в кэш, тем больше запросов будет обслужено SSD Cache, поэтому общие характеристики и среднее время отклика будут улучшаться.

Что нужно для работы SSD Cache

1. Требования к программному обеспечению и SANWatch

ПО версия 512F12 или выше

SANWatch версия 3.0.h.14 или выше

2. Лицензия на SSD Cache

SSD Cache доступно по лицензии. Infortrend также предоставляет 30-дневную пробную лицензию.

3.Соотношение между емкостью кэш-памяти контроллера и максимальным размером пула SSD Cache:

Если в системе разрешена работа SSD Cache, то кэш-память контроллера будет использовать некоторую часть пространства для сохранения “горячих” данных, и размер “горячих” записей в кэше контроллера будет определять максимальный поддерживаемый размер пула SSD. Для начальной комбинации (2 GB на контроллер) максимальный поддерживаемый размер пула SSD Cache равен 150 GB для одиночного контроллера и 300 GB для моделей с двойным избыточным контроллером.

По сравнению с SSD кэш-память контроллера более экономична. Кроме того, в кэш-память контроллера могут попадать не только считываемые, но и записываемые данные. Следовательно, мы рекомендуем пользователям EonStor DS нарастить кэш-память до 16 GB на один контроллер и приобрести подходящие SSD для кэш-пула (соответствующие вашим потребностям и бюджету), чтобы получить максимальный выигрыш в характеристиках.

4.Сброс контроллера(ов) для запуска SSD Cashe

Последний шаг запуска SSD Cache включает сброс контроллера(ов). По умолчанию, в кэш-памяти контроллера не назначается пространство для хранения “горячих” данных. Следовательно, требуется сбросить контроллер и инициализировать его так, чтобы выделить подходящее пространство для “горячих” записей. После сброса контроллера и активации функции SSD Cache управлять им очень просто. Нет необходимости сбрасывать или перегружать систему при добавлении SSD в пул или удалении из него. Эта процедура выполняется с помощью интуитивного интерфейса пользователя через SANWatch или RAIDWatch.

5.Требования к SSD

В настоящее время один контроллер поддерживаеи до 4 SSD. Если вы хотите использовать функцию SSD Cache, проверьте, пожалуйста, числится ли выбранная вами модель SSD в квалификационном списке Infortrend Qualified Vendor List (QVL). Только SSD из нашего QVL могут применяться для улучшения характеристик хранилища, как описано в этом документе.

Заключение

Infortrend SSD Cache представляет собой интеллектуальное решение, которое многократно улучшает характеристики хранилища, в особенности для приложений с интенсивным чтением данных, значительно снижает задержки и поддерживает большие пулы кэш-памяти. Его легко устанавливать, администрировать и обслуживать с помощью интуитивных интерфейсов пользователя от Infortrend. Мы настоятельно рекомендуем использовать его в системах с интенсивными рабочими потоками и часто повторяющимися операциями чтения.

Полный текст статьи с иллюстрациями вы можете скачать в виде pdf файла.

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

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

РЕАЛИЗАЦИЯ ГИБРИДНЫХ СХД

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

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

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

ЧТО ЛУЧШЕ?

Многоуровневое хранение не предполагает избыточности данных, поэтому реализация RAID в этом случае становится более сложной - требуется покупка дополнительных SSD. Сама сортировка данных и распределение их по уровням негативно сказываются на производительности. Такие системы должны управлять данными, которые из «горячих» со временем превращаются в «холодные». Ввиду отсутствия избыточности, часто используемые данные нужно перемещать в основной пул, как только они становятся менее полезными. Эти фоновые процессы потребляют IOPS и сказываются на скорости операций ввода-вывода во время таких перемещений. С наибольшей эффективностью многоуровневое хранение функционирует в тех случаях, когда соответствующие алгоритмы адаптированы к требованиям и задачам заказчика. Для достижения идеальной производительности нужны постоянный мониторинг и подстройка алгоритмов.

В отличие от сложного многоуровневого хранения, кэширование на SSD в существующих СХД реализовать проще. Гибридные системы хранения с кэшированием на SSD не требуют дополнительного администрирования, а приложение воспринимает такую систему точно так же, как и любую другую сетевую СХД, только работает она намного быстрее. Реализация RAID и защита данных у нее аналогичные, и покупать для этого дополнительные SSD не потребуется.

На SSD помещаются копии данных, поэтому осуществлять их фоновое перемещение в основной пул хранения не придется. Не будет и связанных с этим издержек, влияющих на производительность. Кэширование на SSD необходимо, впрочем, подстраивать под конкретные корпоративные приложения, но простота системы кэширования означает, что администрирование системы будет значительно менее сложным, чем у сопоставимой СХД с многоуровневым хранением.

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

ПРОБЛЕМА ЗАПИСИ

Будучи более производительными, накопители SSD имеют определенные ограничения на запись данных, и это нужно иметь в виду при выборе метода ускорения СХД. Хотя хранящиеся на флеш-накопителях данные можно считывать бесконечное число раз, их ячейки допускают ограниченное число циклов записи. Эта проблема осложняется необходимостью удалять весь блок даже при записи данных меньшего объема. Для ее решения в современных контроллерах флеш-памяти применяются методы распределенной записи, кэширования операций записи и фоновая «сборка мусора». Однако запись на SSD остается более сложной операцией, чем чтение. Слишком частое выполнение записи в одни и те же ячейки может привести к быстрой деградации флеш-памяти.

Если в клиентской системе операции записи на SSD можно распределить таким образом, что каждый отдельный блок носителя будет перезаписываться достаточно редко, то в гибридной СХД уровень SSD активно задействуется для хранения «горячих» данных всего дискового пула. При кэшировании и многоуровневом хранении операции с SSD станут очень интенсивными, и преимущества алгоритмов предотвращения износа носителя будут сведены на нет. Это означает, что в обоих случаях (кэширование и многоуровневое хранение) уровень SSD лучше всего задействовать для ускорения операций чтения, а не чтения и записи.

РЕАЛИЗАЦИЯ КЭШИРОВАНИЯ НА SSD

В системе с кэшированием на SSD операция ввода-вывода производится обычным образом: вначале выполняются чтение-запись на HDD. Если эта операция инициирует кэширование, данные также копируются с HDD на SSD. Тогда при любой последующей операции чтения того же логического блока он считывается непосредственно с SSD, что увеличивает общую производительность и уменьшает время отклика. Уровень SSD играет роль невидимого ускорителя ввода-вывода, и при любом отказе SSD данные все равно будут доступны в основном пуле хранения, защищаемом с помощью RAID.

НАПОЛНЕНИЕ КЭШ-ПАМЯТИ

Кэш, как и основная емкость хранения, разбивается на группы секторов равного размера. Каждая группа называется кэш-блоком, а каждый блок состоит из подблоков. Размер кэш-блока можно настраивать под конкретное приложение, например СУБД или Web-сервер.

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

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

Что происходит с содержимым кэша после его «разогрева»? Если на SSD есть свободное место, кэш продолжает заполняться «горячими» данными. Когда емкость SSD исчерпывается, применяется алгоритм перезаписи наименее используемых данных (Least Recently Used, LRU), то есть на место последних в кэш-памяти записываются новые «горячие» данные.

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

Специалисты Qsan рекомендуют использовать накопители Intel SSD DC S3500. Так, у SSD емкостью 480 Гбайт наработка на отказ (MTBF) составляет 2 млн ч. Что касается производительности, то типичная задержка у этих накопителей равна 50 мс, максимальная задержка при чтении - 500 мс (99,9% времени), а производительность при произвольном чтении блоками по 4 Кбайт достигает 75 тыс. IOPS, при записи - 11 тыс. IOPS. Это хороший вариант для SSD-кэширования.

КЭШИРОВАНИЕ ПРИ ЧТЕНИИ-ЗАПИСИ

Операция чтения при отсутствии данных в кэш-памяти происходит следующим образом:

  1. Данные считываются с HDD.
  2. Выполняется операция наполнения SSD.

Операция чтения при наличии данных в кэш-памяти:

  1. Приложение подает запрос на чтение данных.
  2. Данные считываются с SSD.
  3. Запрошенные данные возвращаются приложению.
  4. При сбое SSD данные считываются с HDD.

Действия приложения при записи данных:

  1. Приложение подает запрос на запись данных.
  2. Данные записываются на HDD.
  3. Приложению возвращается статус операции.
  4. Выполняется операция наполнения кэш-памяти на SSD.

НАСТРОЙКА КЭШ-ПАМЯТИ SSD

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

Размер блока. Большой размер блока кэш-памяти подходит для приложений, часто обращающихся к соседним (по физическому расположению) данным. Это называется высокой локальностью обращений. Увеличение размера блока также ускоряет наполнение кэш-памяти на SSD - ускоряется «разогрев» кэша, после которого приложения с высокой локальностью обращений будут демонстрировать весьма высокую производительность. Однако увеличение размера блока влечет за собой генерирование избыточного трафика ввода-вывода и увеличение времени отклика, особенно для отсутствующих в кэше данных.

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

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

Как можно видеть, увеличение или уменьшение каждого параметра имеет свои положительные и отрицательные последствия. Очень важно понимать «локальность» приложения. Кроме того, полезно протестировать систему на реальных нагрузках и посмотреть, при каких параметрах она показывает лучшие результаты.

ПРИМЕР КОНФИГУРАЦИИ КЭША НА БАЗЕ SSD

В тесте моделировалась типовая ситуация ввода-вывода (произвольное чтение 90% + запись 10%) для определения выигрыша, который дает использование SSD-кэша. При тестировании применялась система AegisSAN Q500 в следующей конфигурации:

  • HDD: Seagate Constellation ES, ST1000NM0011, 1 Тбайт, SATA 6 Гбит/с (x8);
  • SSD: Intel SSD DC 3500, SSDSC2BB480G4, 480 Гбайт, SATA 6 Гбит/с (x5);
  • RAID-группа: RAID 5;
  • тип ввода-вывода: Database Service (8 Кбайт);
  • режим ввода-вывода: блоки по 8 Кбайт.

Время «разогрева» вычисляется по следующей формуле:

T = (C × P) / (I × S × D),

где T - время «разогрева», I - средняя производительность в IOPS одного HDD при произвольном чтении, S - размер блока ввода-вывода, D - число HDD, C - совокупная емкость всех SSD, P - пороговое значение наполнения кэш-памяти при чтении или записи. На практике «разогрев» кэша может занять больше времени.

Для данной конфигурации оно составит:

Т = (2 Тбайт × 2) / (244 × 8 Кбайт × 8) = 275 036,33 сек = 76,40 ч.

Без кэширования на SSD средняя производительность составила 962 IOPS. При включении кэширования она выросла до 1942 IOPS, то есть улучшение после «разогрева» кэша оказалось двукратным - 102%. Согласно расчетной формуле время разогрева равно 76,4 ч, в тесте после 75 ч производительность в IOPS достигла максимальной величины и оставалась после этого стабильной.

ЗАКЛЮЧЕНИЕ

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

Бартек Митник - директор по продажам компании Qsan Technology в регионе EMEA.

  • Серверная оптимизация ,
  • Системное администрирование ,
  • Хранение данных ,
  • Хранилища данных
  • В статьях про СХД из "конспекта админа" практически не рассматривались технологии софтовой организации дискового массива. Кроме того, за кадром остался целый пласт относительно дешевых сценариев ускорения хранилищ с помощью твердотельных дисков.


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

    Почему просто не собрать массив из SSD – немного теории и рассуждений на тему

    Чаще всего твердотельные накопители рассматривают просто как альтернативу HDD, с большей пропускной способностью и IOPS. Однако, такая замена "в лоб" часто стоит слишком дорого (брендовые диски HP, например, стоят от $2 000), и в проект возвращаются привычные накопители SAS. Как вариант, быстрые диски просто используются точечно.


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


    В серверах используют SSD с интерфейсом SATA, либо более производительные SAS и PCI-E. Большинство представленных на рынке серверных SSD с интерфейсом SAS продаются под брендами HP, Dell и IBM. К слову, даже в брендовых серверах можно использовать диски OEM-производителей Toshiba, HGST (Hitachi) и других, которые позволяют сделать апгрейд максимально дешевым при схожих характеристиках.


    С широким распространением SSD был разработан отдельный протокол доступа к дискам, подключенным к шине PCI-E – NVM Express (NVMe). Протокол разработан с нуля и значительно превосходит своими возможностями привычные SCSI и AHCI. С NVMe обычно работают твердотельные диски с интерфейсами PCI-E, U.2 (SFF-8639) и некоторые M.2, которые быстрее обычных SSD более чем вдвое . Технология относительно новая, но со временем она обязательно займет свое место в самых быстрых дисковых системах.


    Немного про DWPD и влияние этой характеристики на выбор конкретной модели.

    При выборе твердотельных дисков с интерфейсом SATA следует обращать внимание на параметр DWPD, который определяет долговечность диска. DWPD (Drive Writes Per Day) – это допустимое количество циклов перезаписи всего диска в сутки на протяжении гарантийного периода. Иногда встречается альтернативная характеристика TBW/PBW (TeraBytes Written, PetaBytes Written) – это заявленный объем записи на диск на протяжении гарантийного периода. В SSD для домашнего использования показатель DWPD может быть меньше единицы, в так называемых "серверных" SSD - 10 и более.


    Такая разница возникает из-за разных типов памяти:

      SLC NAND . Самый простой тип – в каждой ячейке памяти хранится один бит информации. Поэтому такие диски надежны и обладают хорошей производительностью. Но приходится использовать больше ячеек памяти, что негативно влияет на стоимость;

      MLC NAND . В каждой ячейке хранится уже два бита информации – самый популярный тип памяти.

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

    • TLC NAND . В каждой ячейке хранится по три бита информации – диск максимально дешев в производстве, но обладает наименьшими производительностью и долговечностью. Чтобы компенсировать потери по скорости, для внутреннего кэша часто используется память SLC.

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


    Считается, что использование RAID совместно с SSD – не лучшая идея. Теория основывается на том, что SSD в RAID изнашиваются синхронно и в определенный момент могут выйти из строя все диски разом, особенно при ребилде массива. Однако, с HDD ситуация точно такая же. Разве что, испорченные блоки магнитной поверхности не дадут даже прочитать информацию, в отличие от SSD.

    По-прежнему высокая стоимость твердотельных накопителей заставляет задуматься об альтернативном их использовании, помимо точечной замены или использования СХД на базе одних лишь SSD.

    Расширяем кэш RAID-контроллера

    От размера и скорости кэша RAID-контроллера зависит скорость работы массива в целом. Расширить этот кэш можно с помощью SSD. Технология напоминает решение от Intel.


    При использовании подобного кэша данные, которые используются чаще, хранятся на кэширующих SSD, с которых производится чтение или дальнейшая запись на обычный HDD. Режимов работы обычно два, аналогично привычному RAID: write-back и write-through.


    В случае write-through ускоряется только чтение, а при write-back – чтение и запись.


    Подробнее об этих параметрах вы можете прочитать под спойлером.

      При настройке кэша write-through запись проводится как в кэш, так и на основной массив. Это не влияет на операции записи, но ускоряет чтение. К тому же, перебои питания или всей системы для целостности данных уже не так страшны;

    • Настройка write-back позволяет записывать данные сразу в кэш, что ускоряет операции чтения и записи. В RAID-контроллерах эту опцию можно включить только при использовании специальной страхующей энергонезависимую память батарейки, либо при использовании флэш-памяти. Если же применять в качестве кэша отдельный SSD, то проблема с питанием уже не стоит.

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

      LSI (Broadcom) MegaRAID CacheCade. Позволяет использовать до 32 SSD под кэш, суммарным размером не более 512 ГБ, поддерживается RAID из кэширующих дисков. Есть несколько видов аппаратных и программных ключей, стоимость составляет около 20 000 р;

      Microsemi Adaptec MaxCache. Позволяет использовать до 8 SSD в кэше в любой конфигурации RAID. Отдельно лицензию покупать не нужно, кэш поддерживается в адаптерах серии Q;

    • HPE SmartCache в серверах ProLiant восьмого и девятого поколения. Актуальная стоимость доступна по запросу.

    Схема работы SSD-кэша предельно проста – часто используемые данные перемещаются или копируются на SSD для оперативного доступа, а менее популярная информация остается на HDD. Как итог, скорость работы с повторяющимися данными значительно возрастает.


    В качестве иллюстрации работы RAID-кэша на базе SSD можно привести следующие графики:



    StorageReview – сравнение производительности разных массивов при работе с базой данных: использованы обычные диски и их альтернатива на базе LSI CacheCade.


    Но если есть аппаратная реализация, то наверняка существует и программный аналог за меньшие деньги.

    Быстрый кэш без контроллера

    Помимо программного RAID существует и программный SSD-кэш. В Windows Server 2012 появилась интересная технология Storage Spaces, которая позволяет собирать RAID-массивы из любых доступных дисков. Накопители объединяются в пулы, на которых уже размещаются тома данных – схема напоминает большинство аппаратных систем хранения. Из полезных возможностей Storage Spaces можно выделить многоярусное хранение (Storage Tiers) и кэш записи (write-back cache).



    Storage Tiers позволяет создавать один пул из HDD и SSD, где более востребованные данные хранятся на SSD. Рекомендованное соотношение количества SSD к HDD 1:4-1:6. При проектировании стоит учитывать и возможность зеркалирования или четности (аналоги RAID-1 и RAID-5), так как в каждой части зеркала должно быть одинаковое количество обычных дисков и SSD.


    Кэш записи в Storage Spaces ничем не отличается от обычного write-back в RAID-массивах. Только здесь необходимый объем "откусывается" от SSD и по умолчанию составляет один гигабайт.