Nvme raid mode что это
NVMe RAID контроллера у Microchip (Microsemi) еще нет. Утверждается, что он будет выпущен в 2020 году.
Судя по странице, на которой выложено описание внутренней структуры — это будет серия 54xx.
Несмотря на отсутствие готового изделия, его концепцию интересно рассмотреть как прототип контроллера недалекого будущего.
Попутно раскрываются некоторые детали противоречивой ситуации с массивами NVMe SSD. На деле, если отбросить маркетинговый шум, не все просто.
Тестирование
В первую очередь проверим задержки при работе с диском. Тест выполняется в один поток, размер блока 4 КБ. Каждый тест длится 5 минут. Перед началом для соответствующего блочного устройства выставляется none в качестве планировщика I/O. Команда fio выглядит следующим образом:
Из результатов fio мы берем clat 99.00%. Результаты приведены в таблице ниже.
Случайное чтение, мкс | Случайная запись, мкс | |
---|---|---|
Диск | 112 | 78 |
Linux SW RAID, RAID0 | 113 | 45 |
VROC, RAID0 | 112 | 46 |
LSI, RAID0 | 122 | 63 |
Linux SW RAID, RAID1 | 113 | 48 |
VROC, RAID1 | 113 | 45 |
LSI, RAID1 | 128 | 89 |
Помимо задержек при обращении к данным, хочется увидеть производительность виртуальных накопителей и сравнить с производительностью физического диска. Команда для запуска fio:
Производительность измеряется в количестве операций ввода-вывода. Результаты представлены в таблице ниже.
Случайное чтение 1 поток, IOPS | Случайная запись 1 поток, IOPS | Случайное чтение 128 потоков, IOPS | Случайная запись 128 потоков, IOPS | |
---|---|---|---|---|
Диск | 11300 | 40700 | 453000 | 105000 |
Linux SW RAID, RAID0 | 11200 | 52000 | 429000 | 232000 |
VROC, RAID0 | 11200 | 52300 | 441000 | 162000 |
LSI, RAID0 | 10900 | 44200 | 311000 | 160000 |
Linux SW RAID, RAID1 | 10000 | 48600 | 395000 | 147000 |
VROC, RAID1 | 10000 | 54400 | 378000 | 244000 |
LSI, RAID1 | 11000 | 34300 | 229000 | 248000 |
Легко заметить, что использование аппаратного контроллера дает увеличение задержек и просадку по производительности в сравнении с программными решениями.
Итак, что мы имеем «на старте».
Кардинальное снижение задержек передачи NVM накопителями выявило, что следующим пунктом приложения усилий должно стать адекватное устранение задержек в канале передачи.
В результате был создан интерфейс NVMe, который «снес» все лишнее на своем пути. И действительно вылился в канал связи, соответствующий временным характеристикам NVM устройствам хранения.
В частности, в роли «лишних» оказались и SAS/SATA контроллеры вместе со своим программным стеком, поскольку они: а) привносили собственную задержку, б) используют громоздкий программный стек SAS, обработка которого крадет время.
Эти дополнительные задержки вроде бы и небольшие, но они стали заметны. Связано это с исключением задержки на выдачу данных накопителями NVM. Она практически нулевая по сравнению с дисковыми устройствами.
Все бы хорошо, но есть одно «но». Корпоративное использование накопителей, как правило, подразумевает их объединение в массив.
Виды RAID-контроллеров
Существует два способа создать и использовать RAID-массивы: аппаратный и программный. Мы рассмотрим следующие решения:
- Linux Software RAID.
- Intel® Virtual RAID On CPU.
- LSI MegaRAID 9460-8i.
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.
Программные RAID средствами ОС и файловой системы
Стоимость решения: низкая (бесплатно).
ОС: Linux.
Производительность: приемлемая (RAID0, преимущественное чтение), невысокая-низкая (RAID5, 6, высокая доля записи).
Применение: хранилище временной информации, кэш системы, основное хранилище небольшой емкости с защитой зеркалом (RAID1, RAID10).
Производительность программных реализаций RAID массива рассмотрена в заметке «Сравнение производительности программных RAID«.
Решения, построенные на утилите mdadm операционной системы Linux и на встроенных средствах файловой системы ZFX самые дешевые. По производительности только RAID0 mdadm можно рекомендовать для использования в качестве кэш или временного накопителя и RAID6 mdadm для основного хранилища с 90-100% долей операций чтения.
RAID 6 и RAID 60: про них мы тоже не забыли
Раз уж мы поговорили о массивах пятого и пятидесятого уровней, грех не упомянуть и о таких типах организации массивов как RAID 6 и RAID 60.
Производительность RAID 6 аналогична RAID 5, но здесь уже минимум два накопителя отдаются под контроль четности, что позволяет массиву пережить выход из строя двух накопителей без потери данных (в RAID 5 такая ситуация крайне нежелательна). Благодаря этому обеспечивается более высокая надежность. В остальном все так же, как и в массиве пятого уровня: в случае сбоя одного или двух дисков контроллер RAID использует блоки четности для воссоздания всей недостающей информации. При сбое двух накопителей восстановление происходят не одновременно: сначала реанимируется первый накопитель, затем – второй. Таким образом, выполняются две операции по восстановлению данных.
Нетрудно догадаться, что, если RAID 50 представляет собой массив нулевого уровня из массивов пятого уровня, то RAID 60 – это массив нулевого уровня из массивов шестого уровня, о которых мы только что рассказали. То есть такая организация RAID-хранилища позволяет пережить потерю двух SSD в каждой группе накопителей RAID 6. Принцип работы схож с тем, про который мы рассказывали в разделе про RAID 50, но количество сбоев, которые может выдержать массив шестидесятого уровня, вырастает с 8 до 16 накопителей. Обычно такие массивы используются для онлайн-обслуживания клиентов, которое требует высокой отказоустойчивости.
RAID 5 на базе SSD Kingston и контроллеров Broadcom
Для организации RAID-массива пятого уровня нам потребуется как минимум три накопителя, данные на которых чередуются (циклически записываются на все накопители в массиве), но не дублируются. При их организации следует учитывать их более сложное устройство, так как здесь появляется такое понятие, как “контрольная сумма” (или же “четность”). Под этим понятием подразумевается логическая алгебраическая функция XOR (она же исключающее „ИЛИ“), которая и диктует использование минимум трех накопителей в массиве (максимум – 32). При этом информация о четности записывается на все «диски» в массиве.
Для массива из четырех SATA SSD-накопителей Kingston DC500R с емкостью по 3,84 Тбайт каждый, мы получим 11,52 Тбайт пространства и 3,84 для контрольных сумм. А если объединить в RAID пятого уровня 16 NVMe-накопителей Kingston DC1000M U.2 с емкостью 7,68 Тбайт — поучим 115,2 Тбайт с потерей 7,68 Тбайт. Как видите, чем больше накопителей, тем в итоге лучше. Лучше еще и потому, что чем больше накопителей в RAID 5, тем выше суммарная производительность при операциях записи. А линейное чтение будет достигать уровня RAID 0.
Группа дисков RAID 5 обеспечивает высокую пропускную способность (особенно для больших файлов) и избыточность с минимальной потерей мощности. Лучше всего такой тип организации массива подходит для сетей, которые выполняют много небольших операций ввода-вывода (I / O) одновременно. А вот использовать его для задач, требующих большого количества операций записи небольших или небольших блоков, не стоит.
Есть и еще один нюанс: при отказе хотя бы одного из NVMe-накопителей, RAID 5 переходит в режим деградации и выход из строя еще одного устройства хранения может стать критичным для всех данных. В случае сбоя одного накопителя в массиве RAID-контроллер использует информацию о четности для воссоздания всех недостающих данных.
Двухпутевой 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).
RAID 10 на базе SSD Kingston и контроллеров Broadcom
Итак, RAID 0 предоставляет нам двукратный прирост скорости и времени доступа, а RAID 1 обеспечивает надежность. В идеале бы их совместить, и тут на помощь приходит RAID 10 (или же 1+0). “Десятка” собирается из четырех SATA SSD- или NVMe-накопителей (максимум – 32) и подразумевает массив из “зеркал”, количество накопителей в котором всегда должно быть кратно четырем. Данные в этом массиве записываются посредством разбиения на фиксированные блоки (как в случае с RAID 0) и чередования между накопителями, распределяя копии между «дисками» в массиве RAID 1. А благодаря возможности одновременного доступа к нескольким группам дисков, RAID 10 показывает высокую производительность.
Так как RAID 10 способен распределять данные по нескольким зеркальным парам, это означает, что он может допускать сбой одного накопителя в паре. Однако в случае сбоя обеих зеркальных пар (то есть всех четырех накопителей) произойдет неизбежная потеря данных. В итоге мы также получаем хорошую отказоустойчивость и надежность. Но стоит иметь в виду, что, как и RAID 1, массив десятого уровня использует только половину суммарной емкости, а потому является дорогостоящим решением. Да еще и сложным в настройке.
RAID 10 подходит для использования с хранилищами данных, которым требуется 100-процентная избыточность групп зеркальных дисков, а также повышенная производительность ввода-вывода RAID 0. Это лучшее решение для баз данных среднего размера или любой среды, которая требует более высокой отказоустойчивости, чем в RAID 5.
Как SSD Kingston живут в режиме RAID с контроллерами Broadcom
На заре появления SSD-накопителей RAID-конструкции таили в себе много нюансов. В том числе из-за использования менее отказоустойчивых HDD-дисков. Твердотельные накопители гораздо надежнее своих собратьев на основе магнитных дисков. Как мы знаем, в SSD-решениях нет движущихся элементов, поэтому механические повреждения сведены к нулю. Выход твердотельных накопителей из строя вследствие скачков напряжения тоже маловероятен, учитывая, что на уровне домашнего ПК и любого сервера вас предохраняют ИБП, сетевые фильтры и даже блок питания.
При этом у твердотельных накопителей есть еще один существенный плюс: даже если ячейки памяти износятся на запись – чтение данных с них все равно можно будет произвести, а вот при повреждении магнитного диска – увы.
На сегодняшний день использовать SSD-решения в RAID-массивах разных уровней вполне нормальная практика. Главное – выбирать правильные твердотельные накопители, латентность которых минимальна. А еще в идеале использовать SSD одного и того же производителя и одной и той же модели, чтобы не получилась мешанина из накопителей, поддерживающих разные типы нагрузок и построенных на базе разных типов памяти, контроллеров и прочих технологий. То есть, если уж мы решили закупить для создания RAID-массива четыре или 16 NVMe SSD компании Kingston – пусть лучше все они будут из одной серии и модельного ряда.
К слову, в прошлой статье мы неспроста приводили в пример контроллеры Broadcom, когда говорили о NVMe SSD от Kingston. Дело в том, что в мануалах к этим устройствам сразу прописываются совместимые накопители (включая решения от вышеупомянутого американского производителя SSD), с которыми контроллер будет работать без нареканий. На эту информацию и нужно опираться при выборе связки «контроллер-SSD» для RAID.
На выходе
На бумаге мы имеем практически идеальный NVMe RAID контроллер, который:
— уже содержит в себе коммутатор для подключения большого количества NVMe накопителей;
— привносит возможный минимум задержек для NVMe канала;
— имеет встроенный аппаратный расчетчик контрольных сумм;
— позволяет делать гибридные системы хранения NVMe SSD + HDD под общим управлением одного контроллера.
В данной статье мы расскажем про разные способы организации RAID-массивов, а также покажем один из первых аппаратных RAID-контроллеров с поддержкой NVMe.
Все разнообразие применений технологии RAID встречается в серверном сегменте. В клиентском сегменте чаще всего используется исключительно программный RAID0 или RAID1 на два диска.
В этой статье будет краткий обзор технологии RAID, небольшая инструкция по созданию RAID-массивов с помощью трех разных инструментов и сравнение производительности виртуальных дисков при использовании каждого из способов.
Отдельный NVMe SSD
Нам нужна отправная точка. Какая-то печка, от которой можно плясать.
В таблице измерение IOPS 800GB Intel DC D3700 Series накопителя.
Значения IOPS убывают почти пропорционально размеру блока передаваемых данных (391 000 — 1 700). Генерируемый при этом поток данных, который является произведением этих величин, остается, практически, постоянным.
Динамика кривой убывания IOPS при увеличении доли запросов на запись (391 000 — 84 000) менее крутая, но приводит к снижению показателя в 4,6 раза. Это объясняется внутренней логикой и процессами чтения/записи собственно накопителя SSD и к интерфейсу не имеет отношения.
Block size / R/W | 0/100 | 5/95 | 35/65 | 50/50 | 65/35 | 95/5 | 100/0 |
4k | 84 018 | 91 394 | 117 272 | 133 059 | 175 087 | 281 131 | 390 969 |
8k | 42 603 | 45 736 | 58 980 | 67 321 | 101 357 | 171 317 | 216 551 |
16k | 21 619 | 22 835 | 29 704 | 33 821 | 52 553 | 89 731 | 108 347 |
32k | 10 929 | 11 322 | 14 787 | 16 811 | 26 578 | 47 185 | 50 671 |
64k | 5 494 | 5 672 | 7 343 | 8 286 | 13 130 | 23 884 | 27 249 |
128k | 2 748 | 2 805 | 3 618 | 4 295 | 6 507 | 11 998 | 13 631 |
1m | 352 | 355 | 451 | 685 | 830 | 1 574 | 1 703 |
Для более наглядного представления, данные выведены в диаграмме:
IOPS одиночного NVMe накопителя
Задержка также зависит от размера блока и соотношения Чтение/Запись, но масштаб изменений значительно меньше.
Средняя задержка накопителя 800GB Intel DC D3700 Series в зависимости от размера блока и доли запросов на чтение в миллисекундах:
Block size/ R/W | 100/0 | 65/35 | 0/100 |
4k | 0,027 | 0,072 | 0,099 |
8k | 0,030 | 0,093 | 0,122 |
16k | 0,047 | 0,137 | 0,164 |
![](https://nvme.smb-solution.ru/wp-content/uploads/2020/01/Performance-1-Drive-Latency-1.jpg)
Средняя задержка одиночного NVMe накопителя
Максимальная задержка в миллисекундах:
Block size/ R/W | 100/0 | 65/35 | 0/100 |
4k | 1,510 | 4,715 | 6,985 |
8k | 1,409 | 4,312 | 7,000 |
16k | 1,106 | 4,644 | 7,007 |
Пропускная способность подсистемы с одним NVMe SSD:
1MB последовательная запись — 634 MBps.
1MB последовательное чтение — 1707 MBps.
128kB последовательная запись — 620 MBps.
128kB последовательное чтение — 1704 MBps.
Теперь мы представляем как размер блока и соотношение Чтение/Запись влияют на скоростные показатели накопителя NVMe. В дальнейшем можно рассматривать сокращенные результаты испытаний (чтобы не загромождать обилием цифр), а в некоторых случаях оценочно экстраполировать результаты неполных испытаний на сочетание параметров, с которым тесты не проводились.
Intel® Virtual RAID On CPU
Intel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) — это программно-аппаратная технология для создания RAID-массивов на базе чипсетов Intel®. Данная технология доступна в основном для материнских плат с поддержкой процессоров Intel® Xeon® Scalable. По умолчанию VROC недоступен. Для его активации необходимо установить аппаратный лицензионный ключ VROC.
Стандартная лицензия VROC позволяет создавать дисковые массивы с 0, 1 и 10 уровнями RAID. Премиальная версия расширяет этот список поддержкой RAID5.
Технология Intel® VROC в современных материнских платах работает совместно с Intel® Volume Management Device (VMD), которая обеспечивает возможность горячей замены для накопителей с интерфейсом NVMe.
Intel® VROC со стандартной лицензией Настройка массивов производится через Setup Utility при загрузке сервера. На вкладке Advanced появляется пункт Intel® Virtual RAID on CPU, в котором можно настроить дисковые массивы.
Создание массива RAID1 на двух накопителях
Технология Intel® VROC имеет свои «козыри в рукаве». Дисковые массивы, собранные с помощью VROC, совместимы с Linux Software RAID. Это означает, что состояние массивов можно отслеживать в /proc/mdstat, а администрировать — через mdadm. Эта «особенность» официально поддерживается Intel. После сборки RAID1 в Setup Utility можно наблюдать синхронизацию накопителей в ОС:
Отметим, что через mdadm нельзя собирать массивы на VROC (собранные массивы будут Linux SW RAID), но можно менять в них диски и разбирать массивы.
Стоит ли создавать RAID-массив на SSD?
Итак, мы уже поняли, что RAID-массивы – это залог высокого быстродействия. Но стоит ли собирать RAID из твердотельных накопителей для домашнего и корпоративного использования? Многие скептики говорят о том, что прирост в скорости получается не столь существенным, чтобы разоряться на NVMe-накопители. Но так ли это на самом деле? Вряд ли. Самым большим ограничением для использования SSD в RAID (как в домашних условиях, так и на корпоративном уровне) может стать только цена. Как ни крути, а стоимость гигабайта пространства у HDD значительно дешевле.
Подключение нескольких твердотельных “дисков” к контроллеру RAID для создания массива из SSD в определенных конфигурациях может оказать огромное влияние на производительность. Не стоит, однако, забывать, что максимальная производительность ограничена пропускной способностью самого контроллера RAID. Уровнем RAID, который предлагает лучшую скорость работы, является RAID 0.
Организация обычного RAID 0 с двумя SSD-накопителями, в которой используется метод разбиения данных на фиксированные блоки и их чередования между твердотельными хранилищами, приведет к удвоению производительности (если сравнивать со скоростями, которые выдает один SSD). При этом массив RAID 0 с четырьмя твердотельными накопителями будет уже в четыре раза быстрее, чем самый медленный SSD в массиве (в зависимости от ограничения пропускной способности на уровне контроллера RAID SSD).
Если исходить из простой арифметики, SATA SSD примерно в 3 раза быстрее традиционного SATA HDD. NVMe-решения еще эффективнее — в 10 раз и более. При условии, что два жестких диска в RAID’е нулевого уровня покажут удвоенную производительность, увеличив ее на 50%, два SATA SSD окажутся в 6 раз быстрее, а два NVMe SSD — в 20 раз быстрее. В частности, один накопитель Kingston KC2000 NVMe PCIe может достигать скорости последовательного чтения и записи до 3200 Мбайт/с, что в формате RAID 0 достигнет внушительных 6 Гбайт/с. А скорость чтения/записи случайных блоков размером 4 Кбайт превратится из 350 000 IOPS в 700 000 IOPS. Но… в то же время “нулевой” RAID не обеспечивает нам избыточности.
Можно сказать, что в домашних условиях избыточность хранилища обычно и не требуется, поэтому самой подходящей конфигурацией RAID для SSD действительно становится RAID 0. Это надежный способ получить значительное повышение производительности в качестве альтернативы использованию таких технологий, как твердотельные накопители на базе Intel Optane. А вот как поведут себя SSD-решения в самых популярных типах RAID (“1”, “5”, “10”, “50”) — мы поговорим в нашем следующем материале.
Данная статья подготовлена при поддержке наших коллег из Broadcom, которые предоставляют свои контроллеры инженерам Kingston для тестирования с накопителями SATA/SAS/NVMe корпоративного класса. Благодаря этому дружескому симбиозу, клиентам не приходится сомневаться в надежности и стабильности работы накопителей Kingston c HBA- и RAID-контроллерами производства Broadcom.
Дополнительную информацию о продуктах Kingston можно найти на официальном сайте компании.
В прошлом материале мы уже рассмотрели вопрос о том “Применим ли RAID на SSD” на примере накопителей Kingston, но сделали это только в рамках нулевого уровня. В текущей статье мы разберем варианты использования профессиональных и домашних NVMe-решений в самых популярных типах RAID-массивов и расскажем о совместимости контроллеров Broadcom с накопителями Kingston.
Программный RAID
С несложными массивами RAID 0, RAID1, RAID 10 без особенных затруднений справляется хост-контроллер или операционная система. RAID 0, при этом, не защищен избыточностью и может применяться только для кэш раздела или под временные файлы (см. сценарии применения). 1 и 10 уровни RAID имеют избыточность 100% — что может существенно прибавить к стоимости системы (все-таки производительные износостойкие NVMe SSD еще относительно дороги).
Программная реализация RAID 5 и RAID 6 силами операционной системы или файловой системы в десятки раз «проваливает» производительность NVMe SSD массива (см. тесты производительности).
Получается — что приходится возвращаться к RAID контроллерам. С сопутствующей потерей всех или почти всех преимуществ NVMe.
От чего бежали, к тому и пришли.
Заключение
Использование аппаратных решений для создания дисковых массивов из двух дисков выглядит нерационально. Тем не менее, существуют задачи, где использование RAID-контроллеров оправдано. С появлением контроллеров с поддержкой интерфейса NVMe у пользователей появляется возможность использовать более быстрые SSD в своих проектах.
Привет Хабр! В этом материале мы расскажем, стоит ли организовывать RAID-массивы на базе твердотельных решений SATA SSD и NVMe SSD, и будет ли от этого серьезный профит? Мы решили разобраться в этом вопросе, рассмотрев виды и типы контроллеров, которые позволяют это сделать, а также сферы применения таких конфигураций.
Так или иначе, каждый из нас хоть раз в жизни слышал такие определения, как “RAID”, “RAID-массив”, “RAID-контроллер”, но вряд ли придавал этому серьезное значение, потому что рядовому ПК-боярину все это вряд ли интересно. А вот высоких скоростей от внутренних накопителей и безотказности их работы хочется всем и каждому. Ведь, какой бы мощной ни была начинка компьютера, скорость работы накопителя становится узким местом, если говорить о совокупном быстродействии ПК и сервера.
Так было ровно до того момента, пока на смену традиционным HDD не пришли современные NVMe SSD со сравнимой емкостью в 1 Тбайт и более. И если раньше в ПК чаще встречались связки SATA SSD + парочка емких HDD, то сегодня их начинает сменять другое решение — NVMe SSD + парочка емких SATA SSD. Если говорить о корпоративных серверах и “облаках”, многие уже успешно переехали на SATA SSD, просто потому что они быстрее обычных “жестянок” и способны обрабатывать большее количество операций ввода/вывода одновременно.
Однако отказоустойчивость системы все равно находится на достаточно низком уровне: мы не можем как в “Битве экстрасенсов” предугадать с точностью даже до недели, когда тот или иной твердотельный накопитель прикажет долго жить. И если HDD “умирают” постепенно, позволяя уловить симптомы и принять меры, то SSD “мрут” сразу и без предупреждений. И вот теперь самое время разобраться, зачем все это вообще нужно? Стоит ли организовывать RAID-массивы на базе твердотельных решений SATA SSD и NVMe SSD, и будет ли от этого серьезный профит?
Зачем нужен RAID на SSD?
Преимущества массивов хранения на основе SSD по сравнению с массивами хранения на жестких дисках включают сокращение времени доступа к данным на накопителе и превосходную производительность в операциях чтения/записи. Однако для идеальной производительности RAID’а на базе SSD требуется оптимальное сочетание процессора, кэша, программного и аппаратного обеспечения. Когда все эти факторы идеально работают вместе, RAID-массив из SSD может значительно превзойти сопоставимую конфигурацию с применением традиционных HDD.
Типичный SSD потребляет меньше энергии, чем жесткие диски, поэтому при объединении большого количества твердотельных накопителей в RAID-массив экономия энергии по сравнению с RAID-массивом из HDD может привести еще и к снижению расходов при оплате корпоративных счетов за электроэнергию.
Однако SSD RAID имеет ограничения и недостатки: в частности, более высокая цена за гигабайт пространства по сравнению с жесткими дисками сопоставимой емкости. А время наработки флеш-памяти на отказ ограничено определенным количеством циклов перезаписи. То есть у SSD-накопителей есть определенный срок службы, который зависит от эксплуатации: чем активнее перезаписывается информация на нем, тем быстрее накопитель выйдет из строя. С другой стороны, корпоративные твердотельные накопители имеют приличный срок службы, сопоставимый с механическими жесткими дисками.
Что такое RAID?
RAID (англ. Redundant Array of Independent Disks — избыточный массив независимых (самостоятельных) дисков) — технология виртуализации данных для объединения нескольких физических дисковых устройств в логический модуль для повышения отказоустойчивости и производительности.
Конфигурация дисковых массивов и используемые при этом технологии зависят от выбранного уровня RAID (RAID level). Уровни RAID стандартизированы в спецификации Common RAID Disk Data Format. Она описывает множество уровней RAID, однако самыми распространенными принято считать RAID0, RAID1, RAID5 и RAID6.
RAID0, или Stripes, — это уровень RAID, который объединяет два или более физических диска в один логический. Объем логического диска при этом равен сумме объемов физических дисков, входящих в массив. На этом уровне RAID отсутствует избыточность, а выход из строя одного диска может привести к потере всех данных в виртуальном диске.
Уровень RAID1, или Mirror, создает идентичные копии данных на двух и более дисках. Объем виртуального диска при этом не превышает объема минимального из физических дисков. Данные на виртуальном диске RAID1 будут доступны, пока хотя бы один физический диск из массива работает. Использование RAID1 добавляет избыточности, но является достаточно дорогим решением, так как в массивах из двух и более дисков доступен объем только одного.
Уровень RAID5 решает проблему дороговизны. Для создания массива с уровнем RAID5 необходимо как минимум 3 диска, при этом массив устойчив к выходу из строя одного диска. Данные в RAID5 хранятся блоками с контрольными суммами. Нет строгого деления на диски с данными и диски с контрольными суммами. Контрольные суммы в RAID5 — это результат операции XOR, примененной к N-1 блокам, каждый из которых взят со своего диска.
Хотя RAID-массивы повышают избыточность и предоставляют резервирование, они не подходят для хранения резервных копий.
После краткого экскурса по видам RAID-массивов можно переходить к устройствам и программам, которые позволяют собирать и использовать дисковые массивы.
Группа из 12 NVMe SSD (JBOD)
Еще одна отправная точка — несколько накопителей не объединенных ни в какой массив. Она нужна для сравнения производительности. JBOD — группа накопителей без чередования (в отличие от RAID0), в котором единое логическое пространство распределено по жёстким дискам последовательно.
Сравнительные результаты по показателю IOPS для одного NVMe SSD и группы из 12 приведены в таблице и показаны на диаграмме ниже:
Чтение/запись 4k | 0/100 | 5/95 | 35/65 | 50/50 | 65/35 | 95/5 | 100/0 |
12xNVMe | 1 363 079 | 1 562 345 | 1 944 105 | 2 047 612 | 2 176 476 | 3 441 311 | 4 202 364 |
1xNVMe | 84 018 | 91 394 | 117 272 | 133 059 | 175 087 | 281 131 | 390 969 |
![](https://nvme.smb-solution.ru/wp-content/uploads/2020/02/Performance-1-vs-12-Drive-IOPS.jpg)
Производительность одного и двенадцати NVMe SSD, IOPS для операций блоками 4k
Пропускная способность NVMe подсистемы из 12 накопителей практически линейно увеличивается пропорционально их числу:
1MБ последовательная запись — 8612 MBps.
1MБ последовательное чтение — 20481 MBps.
128Kб последовательная запись — 7500 MBps.
128Kб последовательное чтение — 20400 MBps.
Подводим итоги:
Несмотря на то, что зеркалирование обеспечивает большую отказоустойчивость, чем RAID 50/60, оно также требует гораздо больше места. Поскольку количество данных удваивается, вы фактически получаете только 50% от общей емкости установленных в сервере накопителей для записи и хранения информации. Выбор между RAID 50/60 и RAID 10, скорее всего, будет зависеть от имеющихся бюджетов, емкости сервера и ваших потребностей в защите данных. Причем стоимость выходит на первый план, когда мы говорим об SSD-решениях (как корпоративного, так и потребительского класса).
Не менее важно, что теперь мы точно знаем – RAID на базе SSD вполне безопасное решение и нормальная практика для современного бизнеса. В рамках домашнего применения тоже есть резон переходить на NVMe, если позволяют бюджеты. А если у вас еще остался вопрос, зачем же все это нужно, вернитесь к началу статьи – мы уже подробно ответили на него.
Данная статья подготовлена при поддержке наших коллег из Broadcom, которые предоставляют свои контроллеры инженерам Kingston для тестирования с накопителями SATA/SAS/NVMe корпоративного класса. Благодаря этому дружескому симбиозу, клиентам не приходится сомневаться в надежности и стабильности работы накопителей Kingston c HBA- и RAID-контроллерами производства Broadcom.
Дополнительную информацию о продуктах Kingston можно найти на официальном сайте компании.
Этот раздел адресуется тем, кто планирует систему со скоростным хранилищем большой емкости. Когда требуемый объем содержит группу 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.
Аппаратный RAID контроллер
В контроллеры MegaRAID 94xx компании Broadcom введена поддержка до 24шт. SSD интерфейсом NVMe (4- при прямом подключении, до 24- через коммутатор). Предусматривается, что их, так же — как обычные HDD можно объединять вплоть до RAID 5, 6, 50, 60.
Внутренняя кухня контроллера не раскрывается (подробностей мы не нашли). Есть предположение, что работа с NVMe устройствами производится традиционным путем. Возможно, без конвертации в SCSI и обратно.
Найти тесты производительности MegaRAID 94xx с NVMe накопителями пока не удалось.
Домашний и корпоративный RAID: в чем разница?
Основа любого современного бизнеса — большие объемы данных, которые должны надежно храниться на серверах компаний. А еще, как мы уже отмечали выше, к ним должен обеспечиваться постоянный доступ 24/7. Понятное дело, что наравне с “железом” важна и софтверная часть, но в данном случае мы говорим все-таки об оборудовании, которое обеспечивает надежное хранение и обработку информации. Никакой софт не спасет компанию от разорения, если “железное” оснащение не соответствует возложенным на него задачам.
Для этих задач любой производитель “железа” предлагает так называемые корпоративные устройства. У Kingston — это мощные твердотельные решения в лице SATA-моделей Kingston 450R (DC450R) и серии DC500, а также NVMe-моделей DC1000M U.2 NVMe, DCU1000 U.2 NVMe и DCP-1000 PCI-e, предназначенных для использования в ЦОД (центрах обработки данных) и суперкомпьютерах. Массивы из таких накопителей, как правило, используются в связке с аппаратными контроллерами.
Для потребительского же рынка (то есть для домашних ПК и NAS-серверов) доступны такие накопители как Kingston KC2000 NVMe PCIe, но в этом случае необязательно покупать аппаратный контроллер. Можно ограничиться встроенным в материнскую плату ПК или NAS-сервера, если вы конечно не планируете самостоятельно собрать домашний сервер для нетипичных задач (завести маленький домашний хостинг для друзей, к примеру). К тому же, домашние RAID-массивы, как правило, не предполагают наличие сотен и тысяч накопителей, ограничиваясь двумя, четырьмя и восемью устройствами (чаще SATA).
Решение на Intel VROC
Стоимость решения: низкая.
ОС: Linux, Windows.
Производительность: средняя (RAID0, 1, 10), невысокая (RAID5).
Применение: хранилище временной информации, кэш системы, основное хранилище.
Это не очень дорогое (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» (чтение-запись)
Итак, что мы имеем «на старте».
Кардинальное снижение задержек передачи NVM накопителями выявило, что следующим пунктом приложения усилий должно стать адекватное устранение задержек в канале передачи.
В результате был создан интерфейс NVMe, который «снес» все лишнее на своем пути. И действительно вылился в канал связи, соответствующий временным характеристикам NVM устройствам хранения.
В частности, в роли «лишних» оказались и SAS/SATA контроллеры вместе со своим программным стеком, поскольку они: а) привносили собственную задержку, б) используют громоздкий программный стек SAS, обработка которого крадет время.
Эти дополнительные задержки вроде бы и небольшие, но они стали заметны. Связано это с исключением задержки на выдачу данных накопителями NVM. Она практически нулевая по сравнению с дисковыми устройствами.
Все бы хорошо, но есть одно «но». Корпоративное использование накопителей, как правило, подразумевает их объединение в массив.
Linux Software RAID
Программные RAID-массивы в семействе ОС Linux — достаточно распространенное решение как в клиентском сегменте, так и в серверном. Все, что нужно для создания массива, — утилита mdadm и несколько блочных устройств. Единственное требование, которое предъявляет Linux Software RAID к используемым накопителям, — быть блочным устройством, доступным системе.
Отсутствие затрат на оборудование и программное обеспечение — очевидное преимущество данного способа. Linux Software RAID организует дисковые массивы ценой процессорного времени. Список поддерживаемых уровней RAID и состояние текущих дисковых массивов можно посмотреть в файле mdstat, который находится в корне procfs:
Поддержка уровней RAID добавляется подключением соответствующего модуля ядра, например:
Все операции с дисковыми массивами производятся через утилиту командной строки mdadm. Сборка дискового массива производится в одну команду:
После выполнения этой команды в системе появится блочное устройство /dev/md0, которое представляет из тебя виртуальный диск.
Виды и типы RAID-контроллеров
Существует три вида RAID-контроллеров, основанные на принципах реализации RAID-массивов:
1. Программные, в которых управление массивом ложится на CPU и DRAM (то есть исполнение программного кода происходит на процессоре).
2. Интегрированные, то бишь встроенные в материнские платы ПК или NAS-сервера.
3. Аппаратные (модульные), представляющие собой дискретные платы расширения для разъемов PCI/PCIe системных плат.
В чем их принципиальное отличие друг от друга? Программные RAID-контроллеры уступают интегрированным и аппаратным по производительности и отказоустойчивости, но при этом не требуют специального оборудования для работы. Однако важно убедиться, что процессор хост-системы является достаточно мощным для запуска программного обеспечения RAID, не оказывая негативного влияния на производительность приложений, которые также работают на хосте. Интегрированные контроллеры, как правило, оснащаются собственной кэш-памятью и задействуют некоторое кол-во ресурсов CPU.
А вот аппаратные обладают и собственной кэш-памятью, и встроенным процессором для выполнения программных алгоритмов. Обычно они позволяют реализовать все виды уровней RAID-массивов и поддерживают сразу несколько видов накопителей. Например, к современным аппаратным контроллерам компании Broadcom можно одновременно подключать SATA-, SAS- и NVMe-устройства, что позволяет не менять контроллер при апгрейде серверов: в частности, при переезде с SATA SSD на NVMe SSD контроллеры менять не придется.
Собственно, на этой ноте мы подошли к типологизации самих контроллеров. Если есть трехрежимные, должны быть и какие-то еще? В данном случае ответ на этот вопрос будет утвердительным. В зависимости от функций и возможностей RAID-контроллеры можно поделить на несколько типов:
1. Обыкновенные контроллеры с функцией RAID
Во всей иерархии это самый просто контроллер, который позволяет объединять HDD и SSD в RAID-массивы уровней “0”, “1” или “0+1”. Программно это реализовано на уровне прошивки. Однако, такие устройства вряд ли можно рекомендовать для использования в корпоративном сегменте, ведь у них отсутствует кэш и не поддерживаются массивы уровней “5”, “3” и т.п. А вот для домашнего сервера начального уровня они вполне подойдут.
2. Контроллеры, работающие в паре с другими RAID-контроллерами
Этот тип контроллеров может работать в паре с интегрированными контроллерами материнских плат. Реализовано это по следующему принципу: дискретный RAID-контроллер берет на себя решение “логических” задач, а встроенный — функции обмена данными между накопителями. Но есть нюанс: параллельная работа таких контроллеров возможна только на совместимых системных платах, а значит область их применения серьезно сужается.
3. Самостоятельные RAID-контроллеры
Эти дискретные решения содержат на борту все необходимые чипы для работы с серверами корпоративного класса, обладая собственным BIOS’ом, кэш-памятью и процессором для быстрой коррекции ошибок и вычисления контрольных сумм. К тому же они отвечают высоким стандартам надежности в плане изготовления и обладают высококачественными модулями памяти.
4. Внешние RAID-контроллеры
Нетрудно догадаться, что все перечисленные выше контроллеры являются внутренними и получают питание через разъем PCIe материнской платы. О чем это говорит? А о том, что выход из строя системной платы может привести к ошибкам в работе RAID-массива и потере данных. Внешние же контроллеры избавлены от этого недоразумения, так как размещаются в отдельном корпусе с независимым блоком питания. В плане надежности такие контроллеры обеспечивают самый высокий уровень хранения данных.
Broadcom, Microsemi Adaptec, Intel, IBM, Dell и Cisco — это лишь некоторые из компаний, которые предлагают аппаратные RAID-контроллеры в настоящее время.
RAID 50 на базе SSD Kingston и контроллеров Broadcom
Комбинированный массив, аналогичный RAID’у десятого уровня, который представляет собой массив нулевого уровня, созданный из массивов пятого уровня. Как и в предыдущем случае, основная цель данного массива состоит в получении удвоенной производительности при сохранении надежности данных в массивах RAID 5. При этом RAID 50 обеспечивает повышенную производительность записи и лучшую защиту данных, нежели стандартный RAID 5 в случае сбоя диска, а также способен к более быстрому восстановлению в случае отказа одного из накопителей.
Группа дисков RAID 50 разбивает данные на более мелкие блоки, а затем распределяет их на каждый массив RAID 5. Группа дисков RAID 5, в свою очередь, также разбивает данные на более мелкие блоки, вычисляет четность, производит логическую операцию OR для блоков, а затем выполняет операции записи в блоки данных и контроля четности для каждого диска в группе дисков.
И хотя производительность неизбежно снижается в случае сбоя одного из накопителей, это не столь существенно, как в массиве RAID 5, поскольку один сбой влияет только на один из массивов, оставляя другой полностью работоспособным. На самом деле RAID 50 может выдержать до восьми отказов HDD/SSD/NVMe-накопителя, если каждый отказавший “диск” находится в отдельном массиве RAID 5.
RAID 50 лучше всего использовать для приложений, которым требуется высокая надежность и которые должны обрабатывать большое количество запросов при сохранении высокой скорости передачи данных и более низкой стоимости накопителей, чем в массиве RAID 10. Однако, поскольку для настройки массива RAID 50 требуется минимум шесть накопителей, стоимость не полностью исключается как фактор. Одним из недостатков RAID 50 является то, что, как и RAID 5, ему нужен сложный контроллер: такой как упомянутый нами в прошлой статье MegaRAID 9460-16i от Broadcom.
Стоит также отметить, что RAID 50 имеет меньше используемого дискового пространства, чем RAID 5, из-за выделения емкости для содержания записей контроля четности. Тем не менее, он все еще имеет больше полезного пространства, чем другие уровни RAID, особенно те, которые используют зеркалирование. При минимальном требовании в шесть дисков RAID 50 может быть дорогостоящим вариантом, но дополнительное дисковое пространство оправдывает затраты, защищая корпоративные данные. Этот тип массива рекомендуется для работы с данными, требующими высокой надежности хранения, высокой частоты запросов, высокой скорости передачи и большой емкости для размещения.
Показатели производительности подсистемы 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. Этот параметр больше относится к тестированию накопителей и показывает максимальную скорость выдачи последовательных данных без ограничений со стороны интерфейса. В тестах пропускная способность рассматривается с точки зрения влияния на нее программного обеспечения.
Эти показатели относятся к «синтетическим» тестовым системам. Группа тестовых программ пытается привязать показатели производительности к реальному применению. Они эмулируют «средние по больнице» сценарии, например, для баз данных или нагрузку, создаваемую пулом виртуальных машин.
Разбираем работу SSD Kingston в самых популярных типах RAID — “1”, “5”, “10”, “50”
Итак, “нулевой” уровень RAID не обеспечивает избыточности данных, а только увеличивает производительность. Никакой защиты данных RAID 0 не предоставляет вообще, поэтому в рамках корпоративного сегмента мы его рассматривать не будем. RAID 1, с другой стороны, обеспечивает полную избыточность, но лишь скромный прирост производительности, и поэтому его следует рассматривать в том случае, если повышение производительности не является основополагающим фактором при создании RAID-массива из SSD.
Тестовый стенд
Каждый из способов организации дисковых массивов имеет свои физические плюсы и минусы. Но есть ли разница в производительности при работе с дисковыми массивами?
Для достижения максимальной справедливости все тесты будут проведены на одном и том же сервере. Его конфигурация:
- 2x Intel® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- Intel® VROC Standard Hardware Key;
- 4x Intel® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500GB.
Режимы работы RAID контроллеров SAS/SATA/NVMe
Основной задачей трехрежимных HBA- и RAID-контроллеров (или контроллеров с функцией Tri-Mode) является создание аппаратного RAID на базе NVMe. У компании Broadcom это умеют делать контроллеры 9400 серии: например, MegaRAID 9460-16i. Он относится к самостоятельному типу RAID-контроллеров, оснащен четырьмя разъемами SFF-8643 и, благодаря поддержке Tri-Mode, позволяет коннектить к себе SATA/SAS- и NVMe-накопители одновременно. К тому же это еще и один из самых энергоэффективных контроллеров на рынке (потребляет всего 17 Ватт энергии, при этом менее 1,1 Ватт на каждый из 16 портов).
Интерфейсом подключения служит PCI Express x8 версии 3.1, что позволяет реализовать пропускную способность на уровне 64 Гбит/с (в 2020 году ожидается появление контроллеров для PCI Express 4.0). В основе 16-портового контроллера лежит 2-ядерный чип SAS3516 и 72-битная DDR4-2133 SDRAM (4 Гбайт), а также реализована возможность подключения до 240 накопителей SATA/SAS-, либо до 24 NVMe-устройств. По части организации RAID-массивов поддерживаются уровни “0”, “1”, “5” и “6”, а также “10”, “50” и “60”. К слову, кэш-память MegaRAID 9460-16i и других контроллеров в серии 9400 защищена от сбоев напряжения дополнительным модулем CacheVault CVPM05.
В основе трехрежимной технологии лежит функция преобразования данных SerDes: преобразование последовательного представления данных в интерфейсах SAS/SATA в параллельную форму в PCIe NVMe и наоборот. То есть контроллер согласовывает скорости и протоколы, чтобы беспрепятственно работать с любым из трех типов устройств хранения. Это обеспечивает бесперебойный способ масштабирования инфраструктур центров обработки данных: пользователи могут использовать NVMe без существенных изменений в других конфигурациях системы.
Однако при планировании конфигураций с NVMe-накопителями, стоит учитывать, что NVMe-решения используют для подключения 4 линии PCIe, а значит каждый накопитель задействует все линии портов SFF-8643. Выходит, что напрямую к контроллеру MegaRAID 9460-16i можно подключить только четыре накопителя NVMe. Либо ограничиться двумя NVMe-решениями при одновременном подключении восьми SAS-накопителей (см. схему подключения ниже).
На рисунке показано использование разъема «0» (С0 / Connector 0) и разъема «1» для подключений NVMe, а также разъемов «2» и «3» для подключений SAS. Это расположение может быть изменено на обратное, но каждый накопитель x4 NVMe должен быть подключен с использованием соседних линий. Режимы работы контроллера устанавливается через конфигурационные утилиты StorCLI или Human Interface Infrastructure (HII), которая работает в среде UEFI.
Режим по умолчанию — профиль «PD64» (поддержка только SAS / SATA). Как мы уже говорили выше, всего профилей три: режим «SAS/SATA only mode» (PD240 / PD64 / PD 16), режим «NVMe only mode» (PCIe4) и смешанный режим, в котором могут работать все типы накопителей: «PD64-PCIe4» (поддержка 64 физических и виртуальных дисков с 4 NVMe-накопителями). В смешанном режиме значение задаваемого профиля должно быть таким – «ProfileID=13». К слову, выбранный профиль сохраняется в качестве ведущего и не сбрасывается даже при откате к заводским настройкам через команду Set Factory Defaults. Сменить его можно будет только вручную.
Зачем нужен RAID-массив?
Само слово “массив” уже подразумевает то, что для его создания используется несколько накопителей (HDD и SSD), которые объединяются с помощью RAID-контроллера и распознаются ОС, как единое хранилище данных. Глобальная задача, которую позволяют решить RAID-массивы — минимизация времени доступа к данным, повышение скорости чтения/записи и надежности, которая достигается благодаря возможности быстрого восстановления в случае сбоя. К слову, для домашних бэкапов использовать RAID совсем не обязательно. А вот если у вас есть свой домашний сервер, к которому необходим постоянный доступ 24/7 — тут уже другое дело.
Существует свыше десятка уровней RAID-массивов, каждый из которых отличается количеством используемых в нем накопителей и имеет свои плюсы и минусы: например, RAID 0 позволяет получить высокую производительность без отказоустойчивости, RAID 1 — наладить автоматическое зеркалирование данных без прироста скорости, а RAID 10 объединяет в себе возможности вышеперечисленных. RAID 0 и 1 — самые простые (поскольку не требуют произведения программных вычислений) и, как следствие, — самые популярные. В конечном счете выбор в пользу того или иного уровня RAID зависит от возлагаемых на дисковый массив задач и возможностей RAID-контроллера.
LSI MegaRAID 9460-8i
Внешний вид контроллера LSI MegaRAID 9460-8i
RAID-контроллер является самостоятельным аппаратным решением. Контроллер работает только с накопителями, подключенными непосредственно к нему. Данный RAID-контроллер поддерживает до 24 накопителей с интерфейсом NVMe. Именно поддержка NVMe выделяет этот контроллер из множества других.
Главное меню аппаратного контроллера
При использовании режима UEFI настройки контроллера интегрируются в Setup Utility. В сравнении с VROC меню аппаратного контроллера выглядит значительно сложнее.
Создание RAID1 на двух дисках
Объяснение настройки дисковых массивов на аппаратном контроллере является достаточно тонкой темой и может стать поводом для полноценной статьи. Здесь же мы просто ограничимся созданием RAID0 и RAID1 с настройками по умолчанию.
Диски, подключенные в аппаратный контроллер, не видны операционной системе. Вместо этого контроллер «маскирует» все RAID-массивы под SAS-накопители. Накопители, подключенные в контроллер, но не входящие в состав дискового массива, не будут доступны ОС.
Несмотря на маскировку под SAS-накопители, массивы с NVMe будут работать на скорости PCIe. Однако такая особенность позволяет загружаться с NVMe в Legacy.
RAID 1 на базе SSD Kingston и контроллеров Broadcom
Итак, RAID-массив первого уровня на базе контроллера Broadcom MegaRAID 9460-16i объединяет от двух до 32 накопителей Kingston, которые являются копиями друг друга, и обеспечивает полную избыточность. Если при использовании традиционных HDD скорость записи и чтения данных оставалась на уровне этого самого HDD, то с использование NVMe SSD-решений мы получаем десятикратный прирост производительности. Особенно по части времени доступа к данным. Например, с двумя SSD Kingston DC1000M U.2 NVMe в серверном RAID 1 мы получим 350 000 IOPS при чтении случайных данных и 75 000 IOPS при записи.
В отношении последовательной скорости чтения результаты будут соответствовать характеристикам накопителя — 3200 Мбайт/с. Но, поскольку оба NVMe SSD находятся в рабочем состоянии, данные могут считываться с них одновременно, что делает операции чтения довольно быстрыми. А вот скорость записи (заявленная составляет 2000 Мбайт/с) будет медленнее, потому что каждая операция записи выполняется дважды.
Массив RAID 1 идеально подходит для небольших баз данных или любой другой среды, которая требует отказоустойчивости, но небольшой емкости. Зеркальное копирование накопителей особенно выручает в сценариях аварийного восстановления (производительность при этом немного ухудшается), поскольку обеспечивает мгновенную “реанимацию” важных данных, если один из накопителей в массиве выходит из строя. Но, поскольку этот уровень защиты требует удвоения емкости для хранения зеркальной копии данных (для хранения 100 Тбайт потребуется 200 Тбайт места), во многих корпоративных системах используются более экономичные варианты хранения: RAID 5 и RAID 6.
Программно-определяемое хранилище (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 хранилище. Тесты производительности.
Читайте также: