RAID Offload для NVMe без нагрузки на CPU: Kioxia показала вычисление паритета прямо на SSD
Kioxia продемонстрировала подход, при котором каждый NVMe-накопитель берёт на себя вычисление паритета (XOR/кодирование с избыточностью) и передаёт данные страйпов напрямую SSD↔SSD по PCIe, минуя CPU и оперативную память сервера. В прототипе нагрузка на память снизилась более чем на 90%, а загрузка CPU – примерно на 12%. Совместно с Dell эта технология готовится к вынесению на стандартизацию в рамках NVMe.

Почему классический RAID для NVMe перегружает CPU и память
С ростом производительности NVMe SSD узким местом стали CPU и шина памяти, особенно при RAID5/6, где паритет требует интенсивных вычислений и больших объёмов копирования данных. Классические варианты — софтверный RAID или аппаратные контроллеры/HBA — либо перегружают ресурсы сервера, либо становятся бутылочным горлышком.
Как работает RAID Offload для NVMe SSD от Kioxia
- Вычисления и буферизация на SSD: каждый накопитель использует собственный буфер (CMB) и встроенный XOR-движок для расчёта паритета.
- DMA между SSD: накопители могут напрямую писать данные либо в память хоста, либо в буфер «соседа», что позволяет обмениваться блоками по PCIe без посредничества CPU.
- Результаты прототипа: в 5-дисковом RAID5 нагрузка на память уменьшилась в 10 раз, а загрузка CPU — на двузначные проценты.
- Дополнительный сценарий: при фоновом скраббинге накопители выполняют промежуточные XOR-суммы сами, и к хосту передаётся только результат. Это сокращает перемещаемые объёмы данных почти на два порядка.
- Стандартизация: Kioxia и Dell работают над выносом этой схемы в NVMe как опцию, доступную любому совместимому накопителю.
Принцип работы RAID Offload: вычисление паритета на SSD
- Хост инициирует операцию RAID.
- Накопители читают свои сегменты страйпа в локальные буферы.
- XOR или кодирование выполняется на самом диске.
- По PCIe передаётся только необходимый результат (например, блок паритета).
- Данные и паритет записываются на диски.
Таким образом, хост управляет процессом, но не участвует в тяжёлых вычислениях и копировании.
Преимущества RAID Offload для NVMe SSD
- Снижение нагрузки на CPU и DRAM, что особенно важно для серверов с высокими требованиями к вычислительным ресурсам.
- Масштабируемость: каждый новый диск добавляет не только ёмкость, но и вычислительные ресурсы.
- Прозрачность внедрения: используется стандартный интерфейс NVMe вместо проприетарных решений.
Ограничения и перспективы внедрения RAID Offload
- Требования к топологии: для прямого обмена SSD↔SSD нужны PCIe-коммутаторы и поддержка P2P DMA.
- Работа в аварийных режимах: нужно определить, как обрабатывать ошибки и деградацию массива при распределённых вычислениях.
- Безопасность: прямой доступ к буферам и DMA требует строгого контроля через IOMMU.
- Поддержка со стороны индустрии: технология станет массовой только если NVMe-группа согласует общий стандарт, а несколько вендоров внедрят его в свои SSD.
Мнение BAUM: почему RAID Offload может изменить рынок NVMe
Проблема эффективного RAID для NVMe, похоже, близка к своему решению. Долгое время основными подходами были либо софтверные рейды, создающие избыточную сервисную нагрузку на ресурсы сервера, либо аппаратные tri-mode карточки, которые ограничивали масштабирование и влезали между процессором и накопителем. Сейчас в параллели разрабатываются несколько более удачных подходов, и идея Kioxia выглядит разумно и красиво. В свое время WD анонсировали отказ от проприетарных чипов в накопителях и постепенный переход на открытую архитектуру RISC-V, и в качестве одного из потенциальных применений дополнительной вычислительной мощности как раз предлагались идеи типа расчета контрольных сумм прямо на диске.
Автор: Олег Ларин
Добавить комментарий
Комментариев пока нет