Контроллер Microsemi NVMe RAID

https://www.microsemi.com/product-directory/storage/5454-nvme-raid

NVMe RAID контроллера у Microchip (Microsemi) еще нет. Утверждается, что он будет выпущен в 2020 году.
Судя по странице, на которой выложено описание внутренней структуры — это будет серия 54xx.

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

Итак, что мы имеем «на старте».

Кардинальное снижение задержек передачи NVM накопителями выявило, что следующим пунктом приложения усилий должно стать адекватное устранение задержек в канале передачи.
В результате был создан интерфейс NVMe, который «снес» все лишнее на своем пути. И действительно вылился в канал связи, соответствующий временным характеристикам NVM устройствам хранения.

В частности, в роли «лишних» оказались и SAS/SATA контроллеры вместе со своим программным стеком, поскольку они: а) привносили собственную задержку, б) используют громоздкий программный стек SAS, обработка которого крадет время.
Эти дополнительные задержки вроде бы и небольшие, но они стали заметны. Связано это с исключением задержки на выдачу данных накопителями NVM. Она практически нулевая по сравнению с дисковыми устройствами.

Все бы хорошо, но есть одно «но». Корпоративное использование накопителей, как правило, подразумевает их объединение в массив.

Программный RAID

С несложными массивами RAID 0, RAID1, RAID 10 без особенных затруднений справляется хост-контроллер или операционная система. RAID 0, при этом, не защищен избыточностью и может применяться только для кэш раздела или под временные файлы (см. сценарии применения). 1 и 10 уровни RAID имеют избыточность 100% — что может существенно прибавить к стоимости системы (все-таки производительные износостойкие NVMe SSD еще относительно дороги).
Программная реализация RAID 5 и RAID 6 силами операционной системы или файловой системы в десятки раз «проваливает» производительность NVMe SSD массива (см. тесты производительности).

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

Аппаратный RAID контроллер

В контроллеры MegaRAID 94xx компании Broadcom введена поддержка до 24шт. SSD интерфейсом NVMe (4- при прямом подключении, до 24- через коммутатор). Предусматривается, что их, так же — как обычные HDD можно объединять вплоть до RAID 5, 6, 50, 60.

Внутренняя кухня контроллера не раскрывается (подробностей мы не нашли). Есть предположение, что работа с NVMe устройствами производится традиционным путем. Возможно, без конвертации в SCSI и обратно.
Найти тесты производительности MegaRAID 94xx с NVMe накопителями пока не удалось.

Двухпутевой RAID контроллер

«Чистого», нативного RAID контроллера для NVM SSD, который реализует высокоуровневые RAID нет. И похоже — не скоро появится. Да, NVMe стремительно завоевывает рынок, но львиная его доля за SAS/SATA накопителями.
Даже если предположить, что все потребители поголовно начали использовать в системах NVMe SSD, дисковые накопители (HDD) в качестве емкого долговременного хранилища никто не отменял. Соответственно, даже в виртуальном мире победившего NVMe в большинстве систем будут использоваться гибридные хранилища NVMe SSD + HDD.

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

Он содержит в себе PCIe коммутатор и традиционный аппаратный блок кодирования и расчета контрольных сумм.

Команды управления и трафик, не требующий расчетов (RAID 0, 1, 10) направляются через PCIe коммутатор транзитом с минимальными задержками. На рисунке он показан синей стрелкой.

Если требуется обработка (RAID 5, 6, 50, 60,..) — трафик поступает проходит через блок обработки (зеленая стрелка).

Каким путем пойдет текущий запрос/ответ определяет драйвер контроллера. Отсюда появилось новое понятие — многопутевой драйвер (Multi-Path Driver).

На выходе

На бумаге мы имеем практически идеальный NVMe RAID контроллер, который:
— уже содержит в себе коммутатор для подключения большого количества NVMe накопителей;
— привносит возможный минимум задержек для NVMe канала;
— имеет встроенный аппаратный расчетчик контрольных сумм;
— позволяет делать гибридные системы хранения NVMe SSD + HDD под общим управлением одного контроллера.

Что ж, немного ждем!

Вернитесь в раздел «Оборудование NVMe«