В последнее время на рынке появилось множество новых технологических разработок (SCM, NVMe, NVMDimm, MRAM, QLC/TLC), позволяющих взглянуть по-новому на кэширование и многоуровневое хранение в корпоративных СХД.
Многоуровневое хранение и кэширование данных широко применялось еще на заре компьютерного века. Благодаря им растет производительность и снижаются затрата при возведении СХД. Эти функции ускоряют доступ, способствуют росту надежности работы с данными, позволяя получить действительно эффективную систему хранения с поддержкой данных на их полном жизненном цикле.
Однако раньше применять эти функции было проще: выбор технологических решений был узок. Сегодня многое изменилось.
Идеал, конечно, остался прежним: размещать все данные на одном скоростном носителе — производительность в этом случае будет максимально возможной. Но такая система будет сверхдорогой. Поэтому крен в сторону многоуровневого размещения и кэширования позволяет подобрать компромиссное решение с наилучшим соотношением цены и производительности.
Хотя цель использования этих технологий одинаковая, критерии выбора подходящих систем будут разными. Первичными становятся данные. При разложении по нескольким уровням используется один набор данных: его части просто разнесены по разным местам, а скорость доступа к ним разная. При кэшировании все происходит наоборот: приходится работать сразу с несколькими копиями данных. Выбор места их размещения диктуется назначением текущего фрагмента данных, необходимостью его резервирования и «соревновательности», когда приходится уступать место под размещение более актуального фрагмента данных.
Решение, как всегда, получается наиболее эффективным, когда обе технологии сочетаются в правильной пропорции и взаимно дополняют друг друга.
При подготовке материала мы использовали рекомендации британского ИТ-консультанта Криса Эванса, изложенные им на портале TechTarget.
Рабочие данные
Подбор нужной модели для кэширования следует начинать с выявления границ совокупности данных. При вычислениях обработка ведется только над частью массива, сохраненного в СХД, при этом нужный фрагмент может находиться в разных местах: в памяти сервера, на флэш-накопителях, жестких дисках, совместном корпоративном хранилище данных, в облаке.
Очевидно, что данные, используемые в расчетах, должны переводиться в режим активности и размещаться там, где обеспечена максимально быстрая доступность. Передающий механизм должен подгружать их в активную область своевременно, вовремя выгружать обратно, соблюдая целостность для всего массива.
Правила назначения активной части данных достаточно условны. Многое зависит от приложения. Согласно эвристическим правилам, в активной зоне обычно находится не более
Однако всегда есть особенности. Необходимо своевременно выявлять проблемы и заранее отыскивать способы для их обхода или нейтрализации нежелательного эффекта.
Первая особенность касается умения системы эффективно предугадывать активные фрагменты данных и последовательность их назначения. Если при прогнозе встречаются ошибки, возникают «непопадания в кэш». В результате системные ресурсы расходуются неэффективно на выполнение бесполезных операций ввода-вывода, и вместо ожидаемого роста наблюдается деградация производительности.
Другая проблема может быть связана с правильным выбором размера кэша. Если он мал, то возникают частые обращения к СХД при выполнении операций ввода-вывода, ведущие к падению производительности. При слишком большом кэше вычислительная подсистема испытывает повышенную нагрузку из-за накладных расчетов по отслеживанию потребности удержания данных в активной зоне.
Многоуровневое хранение
Если накладные расходы, связанные с обслуживанием кэширования, становятся непомерно большими, имеет смысл задуматься о реорганизации схемы размещения данных. Следует переходить на многоуровневое хранение с распределением данных по частям (слоям) с индивидуальным характеристиками доступа.
Характерным признаком, когда возникает необходимость для пересмотра схемы размещения данных, могут служить слишком частые, хаотичные операции ввода-вывода данных из хранилища, особенно когда наблюдается сильное смещение в сторону чтения. Попытки перенастройки кэширования не имеют значимого эффекта: выявить заранее место будущей выборки не удается точно, более глубокий анализ замедляет выборку и проявляется в общем снижении скорости работы приложения.
В такой ситуации выглядит разумным переместить весь сегмент востребованных данных на более производительный носитель, сделав работу механизма ввода-вывода более эффективной. В этом как раз и состояла когда-то цель вывода на рынок флэш-памяти — она позволяла повысить быстродействие прикладной системы, когда ресурсы роста быстродействия за счет оптимизации кэширования были уже исчерпаны.
Главное при многоуровневой разметке — это правильно подобрать пропорции при размещении данных по своим уровням. На этом пути могут возникнуть два препятствия. Во-первых, может не оказаться в достаточном объеме доступных мест с необходимыми характеристиками и потребуется изыскивать дополнительные мощности, либо производить общую реорганизацию всей системы хранения. Вторая часть затруднений связана с использованием общедоступного хранилища, где размещают свои данные разные приложения. В этом случае может потребоваться регулярно проводить проверки и перенастраивать квоты, выделяемые под хранение данных. Вряд ли такой сценарий можно назвать удобным.
Еще одна потенциальная трудность связана с постоянным ростом объема используемых данных. Это заставляет периодически пересматривать выбранные конфигурации многоуровневого хранения и заниматься переносом части накопленных данных с одного уровня на другой, добиваясь роста производительности.
Если для первых поколений СХД данные перемещались вручную целыми томами, то позднее появились механизмы, помогающие правильно сегментировать данные при многоуровневом хранении. В результате в настоящее время данные обычно перемещаются по уровням автоматически, потому что заниматься вручную перебалансировкой данных уже стало невозможно. Человек не успевает отслеживать происходящие изменения в хранилище, поэтому оптимальный режим достигается за счет алгоритмизированной обработки.
Новые технологии хранения данных
Задача кэширования раньше решалась просто: данные размещали в оперативной памяти. Сегодня на рынке появились разнообразные высокоскоростные устройства, пригодные для выполнения как задач кэширования, так и многоуровневого хранения.
В первую очередь это касается высокоскоростных устройств хранения класса 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 г.. Однако промышленная разработка технологии стартовала только с
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 найдет применение для работы с приложениями, требующими доступа к большим массивам данных.