Ssd cache что это

SSD Cache – что это такое и насколько технология эффективна работает

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

Что такое SSD cache

Эта технология представляет собой механизм управления данными, который разработала компания Интел в 2010 году.

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

Объема памяти 16GB memory для таких целей вполне достаточно.

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

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

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

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

Совместимость устройств

Такое решение имеет некоторые ограничения. Запатентованная компанией Intel технология Smart Response Technology (SRT) предполагает, что описанный выше механизм будет работать только на компьютерах, собранных на базе системной платы с поддержкой SRT и Интеловскими же чипсетами.

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

Системы, использующие чипсеты от AMD, требуют наличия стороннего софта, эмулирующего работу ССД. Да, АМД до сих пор не реализовали аналогичную конкурентоспособную технологию, что несколько странно.

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

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

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

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

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

Как запустить кэширование

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

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

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

В завершение следует добавить, что быстродействие такой сборки не сильно зависит от того, куда ставиться жесткий диск – подключается через интерфейс M.2 или порт SATA.

Советую ознакомиться также с публикациями «Рейтинг SSD накопителей объемом 120 и 240 Гб с 2017 по 2019»(тем более что, он до сих пор актуален) и «Нужен ли SSD для игр». Буду признателен всем, кто поделится этим постом в социальных сетях. До завтра!

Источник

Реализация SSD кэширования в СХД QSAN XCubeSAN

Технологии повышения производительности, основанные на использовании SSD и широко применяемые в СХД, уже давно изобретены. Прежде всего – это применение SSD в качестве пространства хранения, что на 100% эффективно, но дорого. Поэтому в ход идут технологии тиринга и кэширования, где SSD используются только для наиболее востребованных («горячих») данных. Тиринг хорош для сценариев долговременного (дни-недели) использования «горячих» данных. А кэширование, наоборот, для краткосрочного (минуты-часы) использования. Оба этих варианта реализованы в СХД QSAN XCubeSAN. В данной статье мы рассмотрим реализацию второго алгоритма – SSD кэширования.

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

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

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

Большинство вендоров СХД используют в своих продуктах SSD кэш только для операций чтения. Принципиальным отличием QSAN от них является возможность использования кэша также и для записи. Для активации функционала SSD кэширования в СХД QSAN требуется приобретение отдельной лицензии (поставляется в электронном виде).

SSD кэш в XCubeSAN физически реализован в виде отдельных SSD кэш пулов. В системе их может быть до четырех. Каждый пул, разумеется, использует свой собственный набор SSD. И уже в свойствах виртуального диска мы определяем, будет ли он использовать кэш пул и какой именно. Включение и отключение использования кэша для томов можно производить в режиме online без останова ввода/вывода. Также на «горячую» можно добавлять SSD в пул и убирать их оттуда. При создании SSD кэша пула необходимо выбрать, в каком режиме он будет работать: только чтение или чтение+запись. От этого зависит его физическая организация. Раз кэш пулов может быть несколько, то функционал у них может быть разный (то есть в системе могут быть одновременно кэш пулы для чтения и для чтения+записи).

Читайте также:  программа обучения и экзаменационные билеты по охране труда для кондитера

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

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

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

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

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

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

Чтение данных, когда они отсутствуют в кэше

Чтение данных, когда они присутствуют в кэше

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

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

Проверка в деле

2 сервера (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) подключены двумя портами через Fibre Channel 16G напрямую к СХД XCubeSAN XS5224D (16GB RAM/контроллер).

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

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

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

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

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

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

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

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

Тест 3. Эмуляция работы базы данных

Вердикт

В качестве очевидного вывода, конечно, напрашивается неплохая эффективность использования SSD кэша для повышения производительности любой СХД. Применительно к QSAN XCubeSAN данное утверждение относится в полной мере: функция SSD кэширования реализована превосходно. Это касается поддержки режимов чтения и чтения + записи, гибкой настройки работы для любых сценариев использования, а также итоговой производительности системы в целом. Поэтому за весьма разумную стоимость (цена лицензии соизмерима со стоимостью 1-2 SSD) можно заметно повысить общую производительность.

Источник

Использование SSD-кэширования в серверах.
Контроллеры Adaptec (Microsemi) и LSI (BROADCOM). Тестирование и настройка

Рассмотрим несколько различных вариантов построения дисковой подсистемы сервера с целью сравнения их по цене и быстродействию. В качестве величины полезной емкости дискового хранилища выберем значение 10TB. Во всех вариантах предполагается использование аппаратного RAID-контроллера с кэш-памятью 2GB.

Бюджетный вариант – два жестких диска 3,5″ объемом 10TB с интерфейсом SATA и скоростью вращения шпинделя 7200 об./мин., объединенных в массив RAID1. Быстродействие такого массива не превысит 500 операций в секунду (IOPS) при чтении и 250 IOPS при записи. Дополнительный плюс этого решения – возможность кратного увеличения емкости хранилища за счет добавления новых дисков в свободные отсеки дисковой корзины сервера.

Читайте также:  практика трансформации отчетности в формат мсфо

Максимальное быстродействие обеспечит массив RAID10 из SSD-накопителей, например, 12 штук Intel DC S4600 1,9TB. Производительность такого массива составит 800’000 IOPS на операциях чтения и 400’000 IOPS на операциях записи, то есть быстрее второго варианта в 160 раз, но дороже по сравнению с ним в 4 раза, а с первым вариантом – в 24 раза. Выбор SSD-накопителей большего размера даст примерно такие же цифры по стоимости и немного ниже – по производительности.

Вариант
массива
Чтение
(IOPS)
Запись
(IOPS)
Во сколько
раз быстрее
Во сколько
раз дороже
HDD 10TB x 2 500 250
HDD 1,8TB x 12 5’000 2’500 X 10 X 6
SSD 1,9TB x 12 800’000 400’000 X 1600 X 24

В общем, чем дороже, тем быстрее. И даже скорость обгоняет цену.

Прирост производительности на 3 порядка, который обеспечивают твердотельные накопители, является чрезвычайно привлекательным, однако на хранилищах такого объема обходится слишком дорого.

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

Идея SSD-кэширования основана на концепции «горячих» данных.

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

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

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

Технология SSD-кэширования применяется как для операций чтения, так для операций записи.

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

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

Если да, контроллер читает блок из SSD-кэш.

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

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

Если да, контроллер записывает данный блок в SSD-кэш.

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

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

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

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

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

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

Тестирование

Основной дисковый массив: RAID10 из шести HDD SATA 3,5″ 1TB. Полезный объем массива 2,7TB.

SSD-кэш: RAID1 из двух SSD Intel DC S4600 240GB. Полезный объем массива 223GB.

В качестве «горячих» данных мы использовали первые 20 миллионов секторов, то есть 9,5GB, основного массива RAID10. Выбранный небольшой объем «горячих» данных принципиально ничего не меняет, но позволяет значительно сократить время тестирования.

Тестируемые контроллеры: Adaptec SmartRAID 3152-8i и BROADCOM MegaRAID 9361-8i (LSI).

Нагрузка на дисковую подсистему создавалась при помощи утилиты iometer. Параметры нагрузки: размер блока 4K, случайный доступ, глубина очереди 256. Мы выбрали большую глубину очереди, чтобы сравнивать максимальные показатели производительности, не обращая внимания на время задержки.

Производительность дисковой подсистемы фиксировались при помощи системного монитора Windows.

Adaptec (Microsemi) SmartRAID 3152-8i с технологией maxCache 4.0

Этот контроллер по умолчанию поддерживает технологию SSD-кэширования maxCache 4.0 и имеет 2GB собственной кэш-памяти c защитой от потери питания в комплекте.

При создании основного массива RAID10 мы использовали установки контроллера по умолчанию.

Массив RAID1 кэш-памяти на SSD был установлен в режим Write-Back, чтобы включить SSD-кэширование на чтение и запись. При установке режима Write-Through все данные будут записываться на жесткий диск, поэтому мы получим ускорение только на операциях чтения.

Читайте также:  Type c для чего подходит

Красная линия – производительность дисковой подсистемы на операциях записи.

В первый момент наблюдается резкий всплеск производительности до значения 100’000 IOPS – данные записываются в кэш контроллера, который работает со скоростью оперативной памяти.

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

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

Отметим, кстати, что заявленная производителем скорость записи для используемых нами здесь SSD-накопителей Intel DC S4600 240GB составляет как раз 38’000 IOPS. Поскольку мы записываем один и тот же набор данных на каждый накопитель из зеркальной пары массива RAID1, можно сказать, что SSD-накопители работают на максимально возможной для себя скорости.

Синяя линия – производительность дисковой подсистемы на операциях чтения. Левый участок – чтение данных из массива жестких дисков со скоростью примерно 2’000 IOPS, в кэш-памяти на SSD пока нет «горячих» данных. Одновременно с чтением блоков жестких дисков выполняется их копирование в кэш-память на SSD. Постепенно скорость чтения немного растет, поскольку начинают «попадаться» блоки, ранее считанные в SSD-кэш.

После записи в SSD-кэш всех «горячих» данных их чтение выполняется оттуда со скоростью более 90’000 IOPS (второй синий участок).

Фиолетовая линия – комбинированная нагрузка (50% чтение, 50% запись). Все операции выполняются только c «горячими» данными на SSD. Производительность в районе 60’000 IOPS.

Контроллер Adaptec SmartRAID 3152-8i отлично справится с организацией SSD-кэширования. Поскольку контроллер уже включает поддержку maxCache 4.0 и защиту кэш-памяти, необходимо приобрести только SSD-накопители. Контроллер удобен и прост в настройке, установки по умолчанию обеспечивают максимальный уровень защиты данных.

Видео с записью тестирования Adaptec maxCache 4.0:

LSI (BROADCOM) MegaRAID 9361-8i

Этот контроллер поддерживает технологию SSD-кэширования CacheCade 2.0. Для ее использования необходимо приобрести лицензию стоимостью около 20’000 рублей.

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

Установки контроллера для основного массива: кэш контроллера в режиме Write-Through; режимы чтения Direct IO, No Read Ahead.

Кэш-память на SSD-накопителях (массив RAID1) в режиме Write-Back для кэширования операций чтения и записи.

Картина тестирования (здесь диапазон вертикальной шкалы в два раза больше, чем у Adaptec):

Последовательность тестирования такая же, картина похожая, но производительность CacheCade 2.0 несколько выше, чем maxCache.

На операциях записи «горячих» данных мы получили производительность почти 60’000 IOPS против 40’000 у Adaptec, на операциях чтения – почти 120’000 IOPS против 90’000 IOPS, на комбинированной нагрузке – 70’000 IOPS против 60’000 IOPS.

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

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

Видео с записью тестирования LSI CacheCade 2.0:

Заключение

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

Вариант
массива
Чтение
(IOPS)
Запись
(IOPS)
Во сколько
раз быстрее
Во сколько
раз дороже
HDD 10TB x 2 500 250
HDD 1,8TB x 12 5’000 2’500 X 10 X 6
SSD 1,9TB x 12 800’000 400’000 X 1600 X 24
HDD 10TB x 2 + SSD 960GB x 2, maxCache 90’000 40’000 X 160 X 2,5
HDD 10TB x 2 + SSD 960GB x 2, CacheCade 120’000 60’000 X 240 X 3

При кэшировании записи всегда используйте в качестве SSD-кэш массивы с избыточностью (RAID1 или RAID10).

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

Ресурс SSD-накопителей для кэш-памяти должен соответствовать нагрузке на подсистему хранения сервера по объему записываемых данных. Ресурс накопителя обычно определяется параметром DWPD (Drive Writes Per Day) – сколько раз в день можно полностью перезаписать накопитель на протяжении 5 лет. Накопители с ресурсом 3 DWPD и более обычно будут подходящим выбором. Измерить реальную нагрузку на дисковую подсистему можно при помощи системного монитора.

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

Источник

Образовательный портал