В последнее время на рынке появилось множество новых технологических разработок (SCM, NVMe, NVMDimm, MRAM, QLC/TLC), позволяющих взглянуть по-новому на кэширование и многоуровневое хранение в корпоративных СХД.

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

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

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

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

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

При подготовке материала мы использовали рекомендации британского ИТ-консультанта Криса Эванса, изложенные им на портале TechTarget.

Рабочие данные

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

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

Правила назначения активной части данных достаточно условны. Многое зависит от приложения. Согласно эвристическим правилам, в активной зоне обычно находится не более 5-10% от общего объема данных. Но если кэширование удается выстроить правильно, то можно эффективно добиться максимальной производительности при минимальных затратах.

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

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

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

Многоуровневое хранение

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

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

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

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

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

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

Новые технологии хранения данных

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

В первую очередь это касается высокоскоростных устройств хранения класса SCM (Storage Class Memory), в основе которых применяется энергонезависимая память класса NVDIMM. Появление SCM-устройств иногда называют революционным шагом вперед в развитии архитектуры вычислений. Хранилища данных на базе таких модулей обеспечивают производительность до 5 млн. IOPS, при этом латентность снижается до 200 мкс. По данным SNIA, по сравнению со стандартными флэш-устройствами применение NVDIMM позволяет поднять производительности (IOPS) в 34 раза, полосу пропускания в 16 раз, снизить задержки в 81 раз.

Многие ограничения, связанные с использованием хранилищ на жестких дисках, были устранены еще 10 лет назад с появлением флэш-SSD. Дальнейшее развитие шло по пути отказа от использования более медленных шин SAS и SATA и подключения флэш-памяти по шине PCIe. В результате удалось получить значительный прирост в скорости обмена данными. Следующим шагом вперед стал переход к использованию модулей NVDIMM. Они реализуют гибридную модель хранения, объединяющую преимущества оперативной DRAM и флэш-памяти NAND.

Модуль энергонезависимого хранения NVDIMM устанавливается в стандартный разъем DIMM, предназначенный для обычного ОЗУ. Благодаря этому, появляется прямой доступ многоядерного процессора к работе с данными, при это задержки получаются ультранизкими и угроза потери содержимого памяти при отключении питания исключена. С переходом на этот новый формат значительно снижаются также и накладные расходы на ввод-вывод данных по сравнению с традиционным каналом передачи данных через PCIe.

Сегодня энергонезависимая память NVDIMM существует в нескольких видах: NVDIMM-F, NVDIMM-N, NVDIMM-P. Использование любой конфигурации позволяет существенно увеличить производительность. Это активно используется для прикладных задач, например, связанных с обработкой больших данных, HPC и пр.

Модуль NVDIMM-F представляет собой флэш-память (SSD) в форм-факторе DIMM. Она используется как «хранилище» данных наряду с традиционными DRAM DIMM и предназначена для размещения ОЗУ.

Модуль NVDIMM-N отличается наличием микросхем двух типов — SDRAM (ОЗУ) и SSD (флэш-память). Этот тип устройств используется чаще всего как оперативная память с расширенным функционалом: если при работе возникает сбой с подачей питания, то модуль автоматически превращается в резервное хранилище для запоминания данных из ОЗУ. После восстановления питания сохраненные данные переносятся обратно в ОЗУ, позволяя полностью восстановить рабочую конфигурацию, существовавшую до аварии.

Модуль NVDIMM-P представляет собой интегральный модуль, который комбинирует функции NVDIMM-F и NVDIMM-N. Тем самым обеспечивается одновременный доступ к DRAM и NAND с использованием технологии ReRAM и интерфейса DDR5.

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

Устройства хранения, подключаемые через шину памяти

Еще несколько лет назад характеристики устройств хранения на базе SSD с подключением по шине PCIe считались выдающимися. Секрет их успеха лежал в использовании протокола NVM Express (NVMe) — он был разработан «с нуля» и оптимизирован под низкие задержки и эффективную параллельную работу всего твердотельного массива за счет наличия нового набора команд и нового механизма обработки очередей.

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

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

Но рынок продолжал развиваться. Теперь новые устройства на базе модулей NVDimm, подключенные по шине памяти, позволяют создавать хранилища с еще более высоким быстродействием, чем SCM. Рост был обеспечен за счет крайне низкой латентности модулей памяти, исчисляемой единицами наносекунд.

В тоже время для перехода на NVDIMM недостаточно просто заменить существующие DRAM DIMM. Необходимо применять модули нового типа, которые уже стали поступать на рынок с начала 2019 г.

Магниторезистивная память (MRAM)

Еще одна из доступных на сегодняшний день перспективных технологий энергонезависимого хранения данных с повышенными требованиями к надежности — магниторезистивная память (MRAM).

Принцип хранения данных в MRAM основан на использовании магнитных моментов (спиновых вентилей) взамен электрических зарядов, применяемых в традиционных модулях памяти. Физически вентили создаются из двух ферромагнитных слоев, которые разделяются между собой тонким слоем диэлектрика: один слой имеет постоянную полярность в определенном направлении, намагниченность другого слоя изменяется под действием внешнего поля. Считывание значения в «ячейке памяти» осуществляется измерением ее электрического сопротивления. Такой способ позволяет добиться очень высокой скорости записи-чтения, которая сравнима со скоростью работы ОЗУ.

Магниторезистивная запись данных была изобретена в 1955 г.. Однако промышленная разработка технологии стартовала только с 1990-х силами компаний IBM и Motorola (в дальнейшем Freescale). Несмотря на свою перспективность, MRAM до сих пор широко на рынке не представлена. Но стоит отметить, что ее выпуск уже налажен, в том числе и в России — с 2013 г. на заводе «Крокус Наноэлектроника» в Москве.

MRAM обладает двумя главными достоинствами. Во-первых, магнитная поляризация вентилей не исчезает со временем. Поскольку у MRAM не возникает утечки электрического заряда, данные при отключении питания могут сохраняться продолжительное время (более 20 лет при температуре до 125°C). Во-вторых, переключение магнитной поляризации из одного состояния в другое не вызывает резистивных процессов, поэтому износ памяти не возникает. Это обеспечивает ей высокие эксплуатационные свойства: неограниченное число циклов перезаписи и широкий допустимый температурный диапазон при эксплуатации.

Широкому распространению MRAM на рынке долгое время мешали «врожденные» ограничения, которые были обнаружены у модулей первого поколения, которые выпускала компания Everspin Technologies. Из-за технологических особенностей вендор не мог перейти на проектные нормы менее 100 нм. Это ограничивало максимальную емкость выпускавшихся чипов размером 16 Мбит.

Модули MRAM второго поколение — STT-MRAM, появились на рынке после создания новой технологии переключения магнитного момента. Это позволило снять прежние ограничения. В результате сейчас уже выпускаются модули nvNitro Storage Accelerator, обладающие емкостью до 1 Гб при задержках 6/7 мкс (чтение/запись).

Флэш-память NAND

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

В этой нише лучшими кандидатами на выбор до сих пор остаются системы хранения на базе флэш-памяти NAND. Их емкость доходит уже до 100 Тб, хотя чаще встречаются модели с емкостью до 30 Тб.

Среди новых разработок выделяются модели на базе многослойной памяти 3D NAND QLC (Quad-Level Cell), использующих до четырех бит данных на ячейку. Технология QLC обеспечивает более низкую себестоимость хранения данных, чем другие продукты класса NAND, хотя ее стойкость записи и производительность получаются ниже. Уже появились продукты этого типа, предназначенные для использования в ЦОДах, их емкость достигает 7,68 Тб. Ожидается, что память класса QLC и TLC найдет применение для работы с приложениями, требующими доступа к большим массивам данных.