19 мар. 2014 г.

Supermicro и NVDIMM

NVDIMM — способ обеспечить энергонезависимость для динамической памяти. Модули памяти NVDIMM выполнены в виде стандартных DIMM DDR3 и DDR4, но имеют на борту флеш-память, в которую копируется содержимое DRAM в случае отключения питания и дополнительный контроллер, управляющий процессом сохранения и восстановления данных. Питание на время копирования из DRAM на флеш обеспечивается блоком суперконденсаторов (ионисторов), то есть используется технология, давно применяемая для защиты кэша в современных RAID контроллерах. Конечно, внешние RAM-диски с резервным питанием существовали и раньше, но NVDIMM за счет унификации способен дать несколько новых возможностей. Ожидать развития альтернативных видов энергонезависимой памяти (MRAM, PCM, ReRAM) можно еще долго.
Остается лишь понять, чем NVDIMM могут быть полезны, и когда можно ожидать выхода готовых продуктов/решений.

Зачем

Для начала стоит вспомнить главный принцип обработки данных: данные нельзя потерять. Именно по этой причине все операции записи должны осуществляться либо строго синхронно на энергонезависимый носитель, либо на носитель, защищенный от потери данных при сбое или отключении питания.
Пример: в режиме асинхронной записи (write-back) кэш RAID контроллера может содержать десятки и сотни мегабайт данный, которые в случае сбоя не успели "дойти" до дисков. Для защиты от подобной неприятности используют либо батарейную защиту (аккумулятор обеспечивает питание контроллера DRAM в течение нескольких часов) или более современную защиту на основе флеш-памяти и ионисторов, принцип действия которой описан выше. Для сложных многоузловых систем хранения данных применяется синхронное зеркалирование кэша между узлами/контроллерами, как, например, в наших СХД на базе StarWind или DataCore.
Подобные технологии хорошо отработаны, но конечная цель любой системы хранения данных — не просто их хранить, а разместить в оперативной памяти.
Отсюда следует первое возможное применение NVDIMM: высокоскоростной носитель для кэширования дисковых операций (или использования в ярусном хранении) или для прямого размещения данных (например, IMDB - In-memory database).
Все дело в производительности: современные SAS/SATA SSD способны дать нам порядка 50000 IOPS на диск при задержках в десятые доли миллисекунд, но DRAM может дать еще больше. Контроллер DRAM интегрирован в современные серверные процессоры, память NVDIMM DDR3 даже в режиме эмуляции блочного устройства обеспечивает порядка 2 миллионов IOPS при задержках всего в 0,5 микросекунд. Ресурс DRAM можно считать практически неограниченным.
Эмулировать блочное устройство (создавать RAM-диск) вовсе не обязательно. Возможно создание приложений или файловых систем, использующих адресное пространство NVDIMM с учетом специфики работы оперативной память.
Еще одно применение — радикальное сокращение времени перезагрузки ОС. Размещение ядра и прочих необходимых для запуска ОС компонентов на NVDIMM может существенно уменьшить время простоя каких-нибудь критичных сервисов, но требует серьезной модификации загрузчика и остальной ОС.

Как работает

NVDIMM использует тот же форм-фактор, что и обычные DIMM модули. При поступлении специального сигнала HW SAVE# начинается копирование содержимого DRAM в NAND память со скоростью примерно 100МБ в секунду. Поддержка NVDIMM нужна со стороны BIOS, так как требуется подача команд для переноса данных и информирование ОС о том, что какие-то из модулей являются NVDIMM.

Реализация

Основные разработки в области NVDIMM DDR3/DDR4 и их программной поддержки сейчас ведут Micron в сотрудничестве с Agigatech (суперконденсаторный модуль и контроллер использовались в первых RAID LSI с поддержкой CacheVault - 9260CV и других) и Viking Technology.

Разработкой NVDIMM-совместимых системных плат занимается Supermicro.
Результат - первый готовый продукт, плата Supermicro X9DRH-iF-NV. Остается ждать расширения поддержки со стороны различных ОС.

Материалы