Volatile write cache что это

Почему накопители SSD ускоряются после очистки и насколько важен размер кэша — бенчмарки популярных моделей PCIe 4.0

Почему накопители SSD ускоряются после очистки и насколько важен размер кэша — бенчмарки популярных моделей PCIe 4.0

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

В прошлом году SSD впервые в истории обогнали HDD по объёму продаж. В отличие от винчестеров, здесь сумасшедший технический прогресс. За несколько лет рынок меняется кардинально: интерфейс NVMe вместо SATA, память SLC→MLC→TLC→QLC…

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

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

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

В январе 2021 года издание AnandTech провело тестирование девяти современных моделей SSD на 1 ТБ. Описание этого эксперимента показывает — никакой единой метрики не существует.

Новая флэш-память

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это
Intel X25-M

Много воды утекло с тех пор. Сейчас мы видим десятки терабайтных моделей по гораздо меньшей цене. Но основные принципы работы твёрдотельных накопителей не изменились. И главные проблемы флэш-памяти NAND по-прежнему актуальны:

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это
Вернуть изначальную производительность старых SSD можно было только с помощью утилиты HDD ERASE, источник

Всё это по-прежнему актуально. Современные твёрдотельные накопители намного больше, быстрее и дешевле, но их контроллеры и прошивки не решили названные проблемы до конца. У современных SSD появились и некоторые дополнительные проблемы, которые ещё больше усложняют механизмы их работы и затрудняют объективное тестирование.

Примерно в 2014 году появились накопители с памятью TLC NAND и поддержкой прямого интерфейса NVMe. К настоящему времени обе эти технологии практически захватили рынок: память MLC практически исчезла, а NVMe — дефолтный интерфейс для новых моделей. Более высокая производительность PCIe/NVMe по сравнению с SATA даёт ошеломляющую разницу в бенчмарках, но с точки зрения дизайна бенчмарков на самом деле важнее был переход на TLC. Это связано с тем, что потребительские твёрдотельные накопители TLC в значительной степени зависят от кэширования SLC.

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

В накопителе чем больше битов мы записываем в ячейку, тем она сложнее (и медленнее). Современные диски записывают 3 бита на ячейку (TLC) или 4 бита (QLC). Оба варианта медленнее для записи, чем запись 1 бита на ячейку (SLC). Поэтому в SSD часть ячеек обрабатывается в «режиме SLC», это позволяет увеличить поток входных данных.

Недостатком является то, что данные из SLC NAND потом надо переписать в блоки, которые работают как MLC/TLC/QLC. Этот процесс часто называют фолдингом, он обычно автоматически выполняется во время простоя накопителя, где задержка не важна. Таким образом освобождается место в кэше SLC для дальнейшего использования.

Обязательное SLC-кэширование в современных SSD

Кэширование SLC создаёт два уровня производительности — один внутри кэша, и один снаружи. Большинство пользователей никогда не видят производительности «снаружи кэша». Реальные потребительские рабочие нагрузки почти никогда не пишут десятки или сотни ГБ непрерывно, особенно на высоких скоростях (быстрее, чем гигабитный Ethernet) — даже запись несжатого видео 4k60 немного меньше 1,5 Гбит/с, в то время как высококачественные NVMe теперь предлагают пиковую скорость записи выше 4 Гбита/с. Но на самом деле включение более реального варианта использования с адекватными перерывами для диска, чтобы освободить кэш SLC во время простоя, делает результаты тестирования более релевантными для многих пользователей.

Размеры кэша SLC также зачастую зависят от объёма свободного места на диске. Например, при заполнении SSD на 75% может остаться только 10% от обычного размера кэша SLC. Тесты, которые работают с почти пустым диском, могут преувеличить преимущества кэширования SLC по сравнению с тем, что испытывают пользователи, когда они фактически используют большую часть рекламируемой ёмкости своего накопителя.

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это
Изменение размера кэша SLC в зависимости от объёма свободного места в Intel SSD 665p

Накопители QLC ещё больше усложнили ситуацию, поскольку они пытаются держать кэш максимально заполненным для ускорения доступа к данным.

Накопители NVMe (и некоторые SATA) также чувствительным к температуре. Накопители M.2, потребляющие более 5 Вт на пике, могут сильно нагреваться, поэтому сейчас многие из них поставляются в комплекте с радиаторами.

Данные SSD: локальность и DRAM

Кроме интерфейса (SATA, PCIe 3.0, PCIe 4.0) и выбора флэш-памяти TLC или QLC NAND, есть ещё несколько важных технологических различий между SSD высокого класса и начального уровня. Например, метод хранения метаданных Flash Translation Layer (FTL) — информации, какое физическое местоположение соответствует каждому логическому адресу (Logical Block Address, LBA).

В течение нескольких лет большинство SSD использовали большую простую таблицу поиска. Несложно посчитать, что для диска 1 ТБ с секторами по 4 КБ требуется таблица отображения FTL почти на 1 ГБ. Это увеличивает стоимость устройства, а производители SSD пытаются снизить свои расходы. Поэтому интерфейс DRAM исчез практически со всех контроллеров начального уровня — и им приходится как-то управлять гигабитной таблицей FTL, не имея возможности загрузить её в память целиком.

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

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

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

Приводы

Аппаратная начинка и архитектура диска непосредственно влияет на его производительность. Для иллюстрации AnandTech приводит бенчмарки девяти современных SSD ёмкостью 1 ТБ из различных сегментов рынка, то есть разных классов.

Серия тестов AnandTech Storage Bench (ATSB) состоит из трёх циклов: Light, Heavy и Destroyer. В первом режиме замеряется скорость выполнения набора «лёгких» задач, соответствующих относительно лёгкому использованию настольного компьютеров: браузер, текстовый редактор и прочее. В режиме Heavy очередь задач возрастает на порядок, в режиме Destroyer — ещё на порядок. Циклы Light и Heavy прогоняются сначала на полностью пустом диске, а потом на частично заполненном.

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

Нужно заметить, что обычный юзер 99% времени использует SSD в лёгком режиме. Интенсивный режим включается только изредка, например, во время инсталляции игр или резервного копирования.

Серый график — показатель нового пустого SSD, чёрный — частично заполненного.

Как обсуждалось ранее, размер кэша MLC начинает серьёзно уменьшаться после заполнения диска на 50%. Это и отражается на результатах.

Средняя скорость передачи данных в режиме лёгкого использования (МБ/с)

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Средняя задержка в режиме лёгкого использования

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Следующие тесты на среднюю скорость случайного чтения и среднюю скорость последовательной записи также запускались дважды: 1) на абсолютно пустом диске с операциями только в диапазоне первых 32 ГБ пространства; 2) при 80% заполнении без ограничения на операции. Разница между серым и чёрными столбцами отражает влияние кэширования SLC, контроллеров без буфера DRAM или с уменьшенным объёмом буфера.

Средняя скорость случайного чтения (МБ/с)

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Средняя скорость последовательной записи (МБ/с)

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

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

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

Последовательное заполнение привода: средняя скорость (МБ/с)

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Управление питанием SSD жизненно важно для любой системы на аккумуляторах. Система управления питания поддерживает несколько режимов, в том числе простой режим неактивности (SATA ALPM, NVMe APST и PCIe ASPM), который больше подходит для настольных компьютеров и в таблицах обозначен как ‘Desktop Idle’, и режим глубокого сна, в котором задействуются все энергосберегающие функции, включая DevSleep (‘Laptop Idle’).

Потребление энергии в неактивном режиме (милливатт)

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Даже без активации этих функций накопители потребляют в неактивном режиме очень мало: от 194 до 1152 мВт.

Скорость пробуждения (микросекунд)

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Заключение

Накопители SSD очень сильно продвинулись за последние 10 лет. В частности, у них кардинально снизилось энергопотребление. В режиме ожидания оно гораздо меньше 1 ватта, а судя по логам, SSD обычно проводит в режиме ожидания 99% времени.

Технический прогресс в этой области действительно потрясающий, а некоторые производители считают, что накопители NVMe можно использовать вместо DRAM в неких специфических задачах. Так делает Intel с модулями Optane. В то же время средняя задержка чтения в PCI 4.0 сильно упала, поэтому обычный пользователь может и не заметить разницы PCI 4.0 по сравнению с Optane.

На правах рекламы

Наши эпичные серверы используют only NVMe сетевое хранилище с тройной репликацией данных. Вы можете использовать сервер для любых задач — разработки, размещения сайтов, использования под VPN и даже получить удалённую машину на Windows! Идей может быть много и любую из них поможем воплотить в реальность!

Источник

Дешевые способы поддать жару системе хранения с помощью SSD

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

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

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

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

В частности, удобным выглядит использование 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 более чем вдвое. Технология относительно новая, но со временем она обязательно займет свое место в самых быстрых дисковых системах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

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

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

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

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

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

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

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

Общая схема работы выглядит так:

При записи на чистый диск данные сохраняются на SSD;

Когда SSD заполнены, данные пишутся в write-back кэш, который записывается на HDD;

Если кэш переполнен, запись ведется напрямую на HDD;

Если рассматривать другие операционные системы, то технологий доступно еще больше. Например, в GNU\Linux есть bcache, EnhanceIO, dm-cache и lvmcache, L2ARC в ZFS, Cache Tiering и Cache Pool в Cephs.

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

Итого

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

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

Заодно расскажите, что думаете о RAM-дисках – только ли это just for fun технология, на ваш взгляд?

Источник

Как работает SSD-кэширование в системах хранения данных

Что такое SSD-кэширование

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

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

Про SSD-кэширование часто говорят, когда речь идет о системах хранения данных, где эта технология дополняет HDD-массивы, повышая производительность за счет оптимизации случайных запросов. Устройство HDD-накопителей позволяет им успешно справляться с последовательным паттерном нагрузки, но имеет естественное ограничение для работы со случайными запросами. Объем SDD-кэша при этом обычно составляет около 5–10% от емкости основной дисковой подсистемы.

Системы, которые используют SSD-кэш вместе с HDD-дисками, принято называть гибридными. Они популярны на рынке СХД, так как значительно доступнее по цене, чем all-flash конфигурации, но при этом способны эффективно работать с достаточно широким спектром задач и нагрузок.

Когда SSD-кэш будет полезен

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

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

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Рисунок 1. Неравномерный временной интервал с непредсказуемой частотой обращений

На практике появление случайных запросов среди равномерной последовательной нагрузки совсем не редкость. Это может происходить при одновременной работе на сервере нескольких различных приложений. Например, одно имеет установленный приоритет и работает с последовательными запросами, а другие время от времени обращаются к данным (в том числе, повторно) в случайном порядке. Другим примером возникновения случайных запросов может быть так называемый I/O Blender Effect, который перемешивает последовательные запросы.

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

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Рисунок 2. Равномерный временной интервал с предсказуемой частотой обращений

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

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

Как работает SSD-кэш в СХД

Функция кэша — ускорять выполнение операции за счет размещения часто запрашиваемых данных на быстрых носителях. Для кэширования самых «горячих» данных используется оперативная память (RAM), в СХД это кэш первого уровня (L1 Cache).

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

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Рисунок 3. Традиционный SSD-кэш второго уровня.

Традиционный SSD-кэш второго уровня работает следующим образом: все запросы после RAM попадают в буфер SSD (рисунок 3).

Работа кэша на чтение

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

Работа кэша на запись

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

Алгоритмы заполнения кэша

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

Для этого применяются алгоритмы заполнения кэша. Коротко рассмотрим наиболее распространенных в сегменте СХД.

FIFO (First In, First Out) — из кэша последовательно вытесняются наиболее старые блоки, замещаясь наиболее свежими.

LRU (Least Recently Used) — из кэша первыми вытесняются блоки данных с наиболее давней датой обращения.

LARC (Lazy Adaptive Replacement Cache) — блоки данных попадают в кэш, если они были запрошены как минимум дважды за определенный промежуток времени, а кандидаты на замещение отслеживаются в дополнительной LRU-очереди в оперативной памяти.

SNLRU (Segmented LRU) — данные из кэша вытесняются по принципу LRU, но при этом они проходят несколько категорий (сегментов), обычно это: «холодные», «теплые», «горячие». Степень «теплоты» здесь определяется частотой обращений.

LFU (Least Frequently Used) — из кэша первыми вытесняются те блоки данных, к которым было меньше всего обращений.

LRFU (Least Recently/Frequently Used) — алгоритм комбинирует работу LRU и LFU, вытесняя сначала те блоки, которые попадают под рассчитываемый параметр из даты и количества обращений.

В зависимости от типа алгоритма и качества его реализации будет определяться итоговая эффективность SSD-кэширования.

Особенности SSD-кэширования в RAIDIX

В RAIDIX реализован параллельный SSD-кэш, который имеет две уникальные особенности: разделение входящих запросов на категории RRC (Random Read Cache) и RWC (Random Write Cache) и использование Log-структурированной записи для собственных алгоритмов вытеснения.

1. Категории RRC и RWC

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

За попадание отвечает специальный детектор, который квалифицирует поступающие запросы.

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Рисунок 4. Схема работы SSD-кэша в RAIDIX

Попадание в RRC

В область RRC попадают только случайные запросы с частотой обращения больше 2-х (ghost-очередь).

Попадание в RWC

В область RWC попадают все случайные запросы на запись, у которых размер блока меньше устанавливаемого параметра (по умолчанию 32KB).

2. Особенности Log-структурированной записи

Log-структурированная запись — это способ последовательной записи блоков данных без учета их логической адресации (LBA, Logical Block Addressing).

Volatile write cache что это. Смотреть фото Volatile write cache что это. Смотреть картинку Volatile write cache что это. Картинка про Volatile write cache что это. Фото Volatile write cache что это

Рисунок 5. Визуализация принципа Log-структурированной записи

В RAIDIX Log-структурированная запись используется для заполнения выделенных областей (с установленным размером в 1 ГБ) внутри RRC и RWC. Эти области применяются для дополнительного ранжирования при перезаписи пространства кэша.

Вытеснение из буфера RRC

Выбирается самая холодная область RRC, и в нее перезаписываются новые данные из ghost-очереди (данные с частотой обращений больше 2-х).

Вытеснения из буфера RWC

Область выбирается по принципу FIFO, а затем из нее последовательно, в соответствии с LBA (Logical Block Address), вытесняются блоки данных.

Возможности SSD-кэширования в RAIDIX

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

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

Сокращение износа SSD-накопителей

Благодаря детектору нагрузки и алгоритмам перезаписи суммарное количество write hits на массив SSD накопителей в RAIDIX составляет 1.8. В аналогичных условиях работа кэша второго уровня с алгоритмом LRU имеет значение 10.8. Это означает, что количество требуемых перезаписей на флеш-накопители в реализованном подходе будет в 6 раз меньше, чем во многих традиционных СХД. Соответственно, SSD-кэш в RAIDIX будет использовать ресурс твердотельных накопителей значительно эффективнее, увеличивая срок их жизни примерно в 6 раз.

Эффективность SSD-кэширования на различных нагрузках

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

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

Конфигурация системы:
SSD кэш: RAID 10, 4 SAS SSD, объем 372 GB
Основное хранилище: RAID 6i, 13 HDD, объем 3072 GB

Тип паттернаТип запросаЗначение с SSD-кэшированиемЗначение без SSD-кэшированияУвеличение производительности
Случайное чтение (100% попадание в кэш)random read 100%85.5K IOps2.5K IOpsВ 34 раза
Случайная запись (100% попадание в кэш)random write 100%23K IOps500 IOpsВ 46 раз
Случайное чтение (80% попадание в кэш, 20% попадание на HDD)random read 100%16.5K IOps2.5K IOpsВ 6.5 раз
Случайное чтение из кэша, запись на HDDrandom read 50%40K IOps180 IOpsВ 222 раза
sequential write 50%870 Mbps411 MbpsВ 2 раза
Случайное чтение и запись (100% попадание в кэш)random read 50%30K IOps224 IOpsВ 133 раза
random write 50%19K IOps800 IOpsВ 23 раза
Последовательные запросы с большим блоком, случайная нагрузка 100% попадает в SSD-кэшrandom read 25%2438 IOps56 IOpsВ 43 раза
random write 25%1918 IOps82 IOpsВ 24 раза
sequential read 25%668 Mbps120 MbpsВ 5.5 раз
sequential write 25%382 Mbps76.7 MbpsВ 5 раз

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

Заключение

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

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

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

Источник

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

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