Варианты создания RAID на NVMe SSD. Сравнение производительности

Этот раздел адресуется тем, кто планирует систему со скоростным хранилищем большой емкости. Когда требуемый объем содержит группу NVMe SSD, объединенных в RAID массив.
Рассмотрим варианты объединения NVMe SSD в RAID и производительность каждого решения.
Доступны четыре варианта построения системы:
— программный средствами ОС;
— программно-аппаратный Intel VROC;
— аппаратный контроллер Broadcom MegaRAID;
— программно-определяемое хранилище (SDS).

Сценарии использования накопителя или массива NVMe SSD накопителей приведены в отдельной заметке.

В общей «картине» системы хранения не стоит забывать, что скоростные возможности интерфейса — это важный, но только один из множества параметров, влияющих на общую производительность.
Корпоративное основное хранилище ОБЯЗАНО быть защищенным избыточностью — это не обсуждается. Другое дело — что цена (в широком смысле, не только «стоимость») защищенности должна рассматриваться в комплексе. Принцип всех времен и народов: «Быстро, дешево, надежно — выбери два из трех!» никто не отменял.

Варианты строительства RAID массива из накопителей NVMe существенно различаются по стоимости реализации и производительности.

В нашем случае, когда подсистема NVMe является скоростной частью системы хранения сервера или группы серверов, производительность ставится во главу угла. Иначе — зачем вообще городить огород?

Максимальную скорость NVMe накопители показывают при непосредственном подключении к хост-контроллеру.

Без особенных потерь происходит объединение накопителей в RAID0, базирующееся на драйверах хост-контроллера или функциях операционной системы.
Производительность в RAID0 растет практически пропорционально количеству накопителей.
Не удивительно, что накопители в RAID0 представляются в тестах производительности систем в маркетинговых материалах, поскольку позволяют показать «красивые» цифры.

Однако, в реальной жизни организациям чаще требуется основное хранилище с защитой от потери данных. А это значит — RAID1, 5, 6, 50, 60.

Итак, смотрим плюсы-минусы вариантов, приняв во внимание предыдущие рассуждения об требуемом уровне RAID.

Показатели производительности подсистемы NVMe

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

В качестве показателей производительности для NVMe SSD и подсистемы NVMe в целом принят ряд метрик, показывающих скоростные характеристики для различных сценариев нагрузки (параметры и методики их измерения описаны в спецификации SNIA):
IOPS (Input/Output Operations Per Second) — количество операций ввода/вывода в секунду. Это показатель скорости системы на случайных коротких запросах. Он зависит от размера блока, внутреннего устройства накопителя и настроек хост-контроллера;
средняя и максимальная задержка передачи. Время, затраченное подсистемой хранения на получение запроса и подготовку ответа. Во многом определяется внутренним устройством контроллера накопителя. Средняя задержка замеряется на блоках трех размеров (8KiB, 4KiB, 0.5KiB) и в трех соотношениях чтение/запись (100/0, 65/35, 0/100) при глубине очереди =1;
пропускная способность системы. Показатель скорости последовательного чтения/записи. Измеряется на операциях с блоками большого размера — 128k и 1m. Этот параметр больше относится к тестированию накопителей и показывает максимальную скорость выдачи последовательных данных без ограничений со стороны интерфейса. В тестах пропускная способность рассматривается с точки зрения влияния на нее программного обеспечения.

Эти показатели относятся к «синтетическим» тестовым системам. Группа тестовых программ пытается привязать показатели производительности к реальному применению. Они эмулируют «средние по больнице» сценарии, например, для баз данных или нагрузку, создаваемую пулом виртуальных машин.

Отдельный NVMe SSD

Нам нужна отправная точка. Какая-то печка, от которой можно плясать.

Показатели тестов скорости Intel SSD DC D3700 Series взяты у коллег из Рэйдикс (https://habr.com/ru/company/raidix/blog/420837/).
Тестировался 800GB SSD в 2.5″ исполнении с интерфейсом PCIe 3.0 2×2. В основе — MLC технология флеш.

В таблице измерение IOPS 800GB Intel DC D3700 Series накопителя.
Значения IOPS убывают почти пропорционально размеру блока передаваемых данных (391 000 — 1 700). Генерируемый при этом поток данных, который является произведением этих величин, остается, практически, постоянным.
Динамика кривой убывания IOPS при увеличении доли запросов на запись (391 000 — 84 000) менее крутая, но приводит к снижению показателя в 4,6 раза. Это объясняется внутренней логикой и процессами чтения/записи собственно накопителя SSD и к интерфейсу не имеет отношения.

Block size /
R/W
0/1005/9535/6550/5065/3595/5100/0
4k84 01891 394117 272133 059175 087281 131390 969
8k42 60345 73658 98067 321101 357171 317216 551
16k21 61922 83529 70433 82152 55389 731108 347
32k10 92911 32214 78716 81126 57847 18550 671
64k5 4945 6727 3438 28613 13023 88427 249
128k2 7482 8053 6184 2956 50711 99813 631
1m3523554516858301 5741 703

Для более наглядного представления, данные выведены в диаграмме:

IOPS одиночного NVMe накопителя

Задержка также зависит от размера блока и соотношения Чтение/Запись, но масштаб изменений значительно меньше.

Средняя задержка накопителя 800GB Intel DC D3700 Series в зависимости от размера блока и доли запросов на чтение в миллисекундах:

Block size/
R/W
100/065/350/100
4k0,0270,0720,099
8k0,0300,0930,122
16k0,0470,1370,164
Средняя задержка одиночного NVMe накопителя

Максимальная задержка в миллисекундах:

Block size/
R/W
100/065/350/100
4k1,5104,7156,985
8k1,4094,3127,000
16k1,1064,6447,007

Пропускная способность подсистемы с одним NVMe SSD:
1MB последовательная запись — 634 MBps.
1MB последовательное чтение — 1707 MBps.
128kB последовательная запись — 620 MBps.
128kB последовательное чтение — 1704 MBps.

Теперь мы представляем как размер блока и соотношение Чтение/Запись влияют на скоростные показатели накопителя NVMe. В дальнейшем можно рассматривать сокращенные результаты испытаний (чтобы не загромождать обилием цифр), а в некоторых случаях оценочно экстраполировать результаты неполных испытаний на сочетание параметров, с которым тесты не проводились.

Группа из 12 NVMe SSD (JBOD)

Еще одна отправная точка — несколько накопителей не объединенных ни в какой массив. Она нужна для сравнения производительности. JBOD — группа накопителей без чередования (в отличие от RAID0), в котором единое логическое пространство распределено по жёстким дискам последовательно.

Сравнительные результаты по показателю IOPS для одного NVMe SSD и группы из 12 приведены в таблице и показаны на диаграмме ниже:

Чтение/запись
4k
0/1005/9535/6550/5065/3595/5100/0
12xNVMe1 363 0791 562 3451 944 1052 047 6122 176 4763 441 3114 202 364
1xNVMe84 01891 394117 272133 059175 087281 131390 969
Производительность одного и двенадцати NVMe SSD, IOPS для операций блоками 4k

Пропускная способность NVMe подсистемы из 12 накопителей практически линейно увеличивается пропорционально их числу:
1MБ последовательная запись — 8612 MBps.
1MБ последовательное чтение — 20481 MBps.
128Kб последовательная запись — 7500 MBps.
128Kб последовательное чтение — 20400 MBps.

Программные RAID средствами ОС и файловой системы

Стоимость решения: низкая (бесплатно).
ОС: Linux.
Производительность: приемлемая (RAID0, преимущественное чтение), невысокая-низкая (RAID5, 6, высокая доля записи).
Применение: хранилище временной информации, кэш системы, основное хранилище небольшой емкости с защитой зеркалом (RAID1, RAID10).

Производительность программных реализаций RAID массива рассмотрена в заметке «Сравнение производительности программных RAID«.

Решения, построенные на утилите mdadm операционной системы Linux и на встроенных средствах файловой системы ZFX самые дешевые. По производительности только RAID0 mdadm можно рекомендовать для использования в качестве кэш или временного накопителя и RAID6 mdadm для основного хранилища с 90-100% долей операций чтения.

Решение на Intel VROC

Стоимость решения: низкая.
ОС: Linux, Windows.
Производительность: средняя (RAID0, 1, 10), невысокая (RAID5).
Применение: хранилище временной информации, кэш системы, основное хранилище.

VROC описан на отдельной странице.

Это не очень дорогое (15 — 30 тысяч рублей) программное решение на уровне драйвера. Позволяет формировать RAID0, 1, 10 (стандартная конфигурация) или в том числе RAID5 (премиум).

На диаграмме ниже представлены результаты тестов системы из 24 NVMe SSD Ultrastar DC SN620, объединенных в RAID5 при помощи Intel VROC.

IOPS для 24 NVMe SSD Ultrastar DC SN620, объединенных в RAID5 при помощи Intel VROC, 4k

Показатель IOPS очень резко (в восемь раз) падает при соотношении Чтение/Запись 90/10. Еще в три раза — при увеличении доли записи до 30%.

Еще одно исследование производительности NVMe системы представлено на StorageReview
Испытывалась система с восемью Intel DC P4510 NVMe SSD под управлением Intel VROC.

В презентации другие системы координат и другое представление результатов.
Вывод, выведенный изданием: «Intel VROC реализован хорошо и обеспечивает ожидаемые результаты на хорошо спроектированной платформе».
При этом, правда, в резюме умалчиваются достижения в RAID5, поскольку они невысоки.

Ниже — один из слайдов с итогами теста «SQL 90-10» (чтение-запись)

Результаты тестов производительности VROC с ресурса https://www.storagereview.com/intel_virtual_raid_on_cpu_vroc_review/

RAID массив на SAS/SATA/NVMe контроллере

Стоимость решения: невысокая.
ОС: Linux, Windows.
Производительность: сравнима с решением на VROC.
Применение: основное хранилище с защитой (RAID5, RAID6).

Контроллеры Broadcom описаны в разделе Оборудование. MegaRAID допускает прямое подключение до 4 накопителей или большее количество через коммутатор. Его имеет смысл ставить в систему в двух случаях: 1) сервер не поддерживает NVMe интерфейс; 2) не хочется забирать мощности центральных процессоров для непрофильной загрузки.

Для реализации решения помимо собственно контроллера (30 — 70 тыс. руб.) требуется корпус или корзина в корпус для установки SSD выбранного форм-фактора (как правило, U.2, но есть решения даже для M.2 накопителей — корзины ICY DOCK, например) и набор соответствующих кабелей.

Тестов производительности контроллера Broadcom в паре с NVMe накопителями практически не опубликовано. Мы представляем сравнительные тесты с VROC: Сравнение производительности Tri-Mode Broadcom MegaRAID 9460-16i и Intel VROC.

Про уровень производительности новых контроллеров от самого производителя известно лишь очень общее: «задержка снижена на 50%, производительность увеличена на 60% по сравнению с предыдущим поколением контроллеров». (https://www.broadcom.com/solutions/enterprise-storage/nvme)

Программно-определяемое хранилище (SDS).

Стоимость решения: высокая.
ОС: Linux, Windows.
Производительность: высокая.
Применение: Масштабируемое основное хранилище большой емкости с защитой данных от потери. Высокоскоростное хранилище для группы серверов.

Программно-определяемое хранилище — отдельная обширная тема. Она рассматривается в разделе Программно-определяемое хранилище.

SDS использует мощности современных процессоров и распределение нагрузки между узлами. За счет этого SDS может показывать производительность, значительно превышающую возможности аппаратных дисковых контроллеров.
С учетом того, что аппаратных NVMe RAID контроллеров, мягко говоря, немного, приходится меряться с тем — что есть.

Есть сравнительные тесты RAIDIX ERA компании Рэйдикс с программными RAID на сервере с 12х Intel DC D3700 SSD (материалы Flash Memory Summit 2018)

IOPS для системы из 12шт Intel DC D3700
RAIDZ (аналог RAID6 в файловой системе ZFS)
RAID6 средствами mdadm Linux
RAID5 средствами mdadm Linux
RAID6 средствами RAIDIX ERA
Суммарная предельная скорость 12 накопителей — аппаратный предел

Подробно тесты и результаты описаны в упоминавшемся уже отчете на habr, на основе которых мы сравнивали программные RAID.

На следующей диаграмме — сравнение того же RAIDIX ERA с Intel VROC на сервере с 24х Ultrastar DC SN620 3.2TB объединенных в RAID5.

IOPS для 24х Ultrastar DC SN620 в RAID5
RAIDIX ERA RAID5, 4k
Intel VROC RAID5, 4k

Некоторые тесты производительности различных решений на NVMe SSD приводятся в NVMe хранилище. Тесты производительности.

Exit mobile version