В этой статье мы подробнее расскажем о поддержке энергонезависимой памяти (NVDIMM) в ПО RAIDIX 4.6. Новую версию ПО взяли на вооружение наши ключевые партнеры. Так, управляющее ПО RAIDIX 4.6 уже используется в новой СХД Trinity FlexApp от «Тринити».
Персистентная память и стандарт NVDIMM
Новый RAIDIX работает с персистентной памятью (PMEM), которая объединяет в себе преимущества традиционных устройств хранения данных и большую пропускную способность памяти DRAM. Данный тип памяти допускает побайтовую адресацию (load/store), и – в отличии от традиционных «блочников» – функционирует со скоростью DRAM и соответствующими низкими задержками. В случае потери питания на сервере все содержимое памяти остается нетронутым и может быть восстановлено после загрузки. В настоящее время этот тип памяти доступен в форме модулей NVDIMM (Non-Volatile Dual Inline Memory Module).
Модули NVDIMM явили собой пример комплексного использования двух технологий: оперативной и энергонезависимой памяти. Сам по себе стандарт не является новинкой: он был утвержден пару лет назад, и многие компании уже представили свои модули памяти с «батарейкой». Однако, в связи с активным развитием микросхем Flash, современный NVDIMM стал включат в себя достаточный объем NAND-памяти. Теперь NVDIMM позволяет не только сохранить целостность данных на момент аварийного отключения питания, но и кэшировать все проходящие через ОЗУ данные на лету.
Энергонезависимая память NVDIMM бывает разных видов: NVDIMM-N, NVDIMM-F, NVDIMM-P. Модуль типа NVDIMM-N включает в себя как микросхему SDRAM (ОЗУ), так и микросхему флеш-памяти (SSD) для резервного хранения данных ОЗУ на случай аварии.
Если NVDIMM-N — это «оперативка» с расширенным функционалом, то NVDIMM-F – это своего рода хранилище. В «F» модулях нет ячеек ОЗУ, они содержат только микросхемы Flash-памяти. NVDIMM-P комбинирует функции NVDIMM-F и NVDIMM-N в рамках одного модуля. Доступ идёт одновременно как к DRAM, так и к NAND на одной планке. Все три конфигурации позволяют существенно увеличить производительность при работе с большими данными, HPC и т.д.
В 2017 году произошел своего рода прорыв в отношении памяти NVDIMM в серверном сегменте. Компания Micron представила новые модули емкостью 32 Гбайт. Эти модули работают на частоте DDR4-2933 с задержками CL21 — что гораздо быстрее других DDR4 для серверного применения. Несколько раньше были выпущены модули памяти на 8 и 16 Гбайт.
Рис.1 Модуль 32GB DDR4 NVDIMM-N от Micron
NVDIMM-N от Micron представляет собой память ECC DRAM с полностью доступными 32 Гбайт, при этом NAND Flash используется только для резервирования данных.
Доступ к NVDIMM
Cуществуют два основных способа установления доступа к памяти на NVDIMM:
1. Прямой доступ с помощью PMEM
Прямой доступ к модулям с помощью PMEM без объединения в единое пространство используется в RAIDIX 4.6. В этом случае физическое адресное пространство NVDIMM (DPA) приводится в соответствие с физическим адресным пространством системы SPA. Если в системе есть несколько планок NVDIMM, контроллер памяти может отобразить их на свое усмотрение. Например, так:
Рис. 2 Схема прямого доступа с помощью PMEM
Соответственно, доступ к модулям будет осуществляться как к единой сущности. Это не всегда предпочтительный вариант. В некоторых случаях необходимо получить доступ к каждой планке отдельно, например, чтобы собрать из них RAID. Для таких задач существует второй режим.
2. Доступ с помощью BLK apertures
Доступ осуществляется к каждой планке отдельно с помощью так называемых «окон» доступа:
Рис. 3 Схема доступа с помощью BLK apertures
Современные планки NVDIMM часто поддерживают оба этих режима одновременно. Для этого используются пространства имен аналогично тому, как это делается на NVMe устройствах. Также, если NVDIMM соответствует NFIT (NVDIMM Firmware Interface Table), то в начале каждого модуля хранятся специальные заголовки (labels), согласно которым адресное пространство делится на области с разным режимом доступа (BLK или PMEM).
Крайне важно, чтобы эти области не пересекались, так как параллельный доступ к одной области с использованием разных методов скорее всего приведет к порче данных. (Подробнее прочитать о NFIT можно в описании стандарта ACPI 6.1.)
Защита кэша на запись с NVDIMM в RAIDIX 4.6
Организация пространства
До версии 4.6 операция обновления блока лидирующим контроллером в RAIDIX сопровождалась синхронной копией блока в оперативную память ведомого контроллера. В случае отключения питания требовался существенный запас энергии в UPS, достаточный для того, чтобы кластер успел сохранить все копии блоков на диски перед полным выключением. При возврате питания требовалось существенное время для заряда батарей перед тем, как кластер мог быть приведен в рабочее состояние. Совокупное время простоя зависело как от потребляемой мощности кластера, так и от емкости батарей, которая в свою очередь зависела от качества обслуживания и условий эксплуатации СХД.
В одноконтроллерном режиме существовали риски потери данных при аварийных перезагрузках и нехватки емкости батарей в источниках резервного питания при вертикальном масштабировании решения.
Заложенная в версии 4.6 новая функциональность позволяет упростить обслуживание системы и избежать внедрения избыточных аппаратных компонентов. Как это реализуется технически?
NVDIMM используется в качестве более надежного места хранения нашего кэша, чем в RAM. Для этого необходимо получить адрес в виртуальном адресном пространстве и охватить весь размер области, необходимой для получения доступа.
Ниже приводим примерную схему организации хранения информации:
Рис. 4 Схема расположения данных и метаданных
Сначала разделим все доступное пространство на несколько пространств имен. На них будут храниться данные и метаданных, описывающие их расположение на RAID'ах. Также метаданные несут в себе идентификаторы для однозначного опознавания данных и возможности их восстановления после аварийного сбоя.
Какую память использовать?
В данной статье мы остановимся на взаимодействии RAIDIX 4.6 с персистентной памятью NVDIMM-N от Micron. Итак, NVDIMM позволяет сохранить целостность данных даже при аварийном отключении питания. При этом продукт Micron сочетает в себе быстродействие DRAM со стабильностью и надежностью NAND-памяти, позволяя обеспечить целостность данных и непрерывность рабочих процессов.
В случае аварии внутренний контроллер NVDIMM перемещает данные, хранящиеся в DRAM, в область энергонезависимой памяти. После восстановления системы контроллер без потерь переносит данные из NAND-памяти обратно в ОЗУ, позволяя приложениям продолжить работу. В качестве резервного источника питания для Micron NVDIMM может выступать ультраконденсатор AgigA Tech PowerGEM.
Рис.5 Модуль NVDIMM с ультраконденсатором AgigA PowerGEM
Технология NVDIMM в реализации Micron представляет собой комбинацию энергозависимой и энергонезависимой памяти (NAND Flash, DRAM и автономный источник энергии в подсистеме памяти). DDR4 NVDIMM-N от Micron обеспечивает высокую скорость чтения и записи DRAM и резервное копирование данных DRAM в случае потери источника питания.
Ниже — чуть подробнее о процессе переноса данных без потерь.
Процесс переноса данных
В новой версии система производит запись данных с учетом состояния суперконденсаторов (гарантийный срок службы — до 5 лет), питающих только NVDIMM-N. Гарантия целостности данных связана с точностью оценки запаса энергии, которая требуется для переноса данных в энергонезависимую память.
Персистентная память объединяет в себе преимущества традиционных устройств хранения данных и большую пропускную способность DRAM-памяти. Особенностью персистентной памяти является побайтовая адресация с высокой скоростью и очень маленьким временем задержки.
Модули NVDIMM-N в течении одной минуты после аварийного отключения питания самостоятельно вытесняют данные из DRAM в NAND. Процесс переноса сопровождается соответствующей индикацией. По завершении переноса модули могут быть извлечены из неисправного контроллера и помещены в исправный, как обычные DIMM модули. Эта функция актуальна для всех одноконтроллерных конфигураций, начиная с бюджетных дисковых решений и заканчивая специализированными твердотельными.
В чем преимущество?
В конфигурации с двумя контроллерами любой из NVDIMM-N модулей заменяется вместе с контроллером в любой удобный момент, без прерывания доступа к данным. Когерентность NVDIMM может быть обеспечена не только программными, но и аппаратными средствами. Таким образом, исчезает необходимость обслуживать аккумуляторы (BBU в старых RAID-контроллерах или UPS). При вертикальном и горизонтальном масштабировании решения больше не требуется переоценка рисков потери данных!
Функции СХД Trinity FlexApp на базе RAIDIX 4.6
В рамках СХД Trinity FlexApp каждый контроллер представляет из себя обычный сервер c NVDIMM-N модулями, установленными в слоты памяти:
Рис.6 Компоненты СХД Trinity FlexApp
Поддержка 100 Гбит
Система предоставляет администраторам возможность подключения к клиентским машинам с Linux посредством высокопроизводительных интерфейсов InfiniBand Mellanox ConnectX-4 100 Гбит. В результате система обеспечивает минимальные задержки и повышенную производительность в сфере больших данных, HPC и корпоративной среде. Кроме того, в ПО внесен целый ряд улучшений в плане удобства использования и управления ресурсами.
Cluster-in-a-box
СХД Trinity FlexApp на базе RAIDIX поддерживает гетерогенные кластеры в режиме Active-Active, что позволяет вертикально масштабировать систему без прерывания доступа к данным и с быстрой заменой контроллеров на более современные и производительные. Таким образом, сводятся к минимуму возможные текущие и будущие риски по качественному развитию системы в целом.
Высокая производительность и защита данных
Ключевые задачи системы — безопасность, согласованность и оперативность одновременного доступа к данным для определенных групп пользователей и конкурентных подключений на основе корпоративных политик и каталогов. Кроме того, RAIDIX включает в себя механизм Silent Data Corruption Protection и обеспечивает устойчивость к ошибкам, связанным с искажением данных на уровне дисков (помехи при чтении, резонанс при вибрациях и ударах).
Решения под управлением RAIDIX на базе NVDIMM-N уже используются не только в России, но и за рубежом. Например, в HPC-проектах для крупнейшего научного кластера в Японии. Программно-определяемая технология RAIDIX отвечает потребностям высокопроизводительных вычислений, обеспечивая неснижаемую скорость вычислений (до 25 ГБ/с на ядро процессора), высокую отказоустойчивость (патентованные уровни RAID — 6, 7.3, N+M), масштабируемость и совместимость с Intel Lustre*.
Автор: raidixteam