Pcie raid mode что это

Обновлено: 07.07.2024

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

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

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

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

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

Отдельный NVMe 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)

Сравнительные результаты по показателю 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).

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

Решение на Intel VROC

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

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


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

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

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

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

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

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

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

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

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

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


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

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

Выбор режима работы SATA (IDE, AHCI, RAID), NVMe

Идеальная сборка — это когда каждый компонент системы работает со 100% отдачей. Казалось бы, такая тривиальная задача, как подключение жесткого диска к материнской плате не должна вызвать особых затруднений. Подключаем HDD к соответствующему разъему, и, вуаля — в системе есть место для развертывания операционки и хранения файлов. Но не все так просто!

Чтобы познать дзен сборки и получить оптимальную по определенным параметрам (быстродействие, надежность и т. д.) систему, нужно обладать определенным пониманием логики работы современных протоколов и алгоритмов передачи данных, знанием режимов работы контроллера HDD на материнке и умениями в области их практического использования.

BIOS и UEFI — разница есть!

Прежде чем рассматривать режимы работы SATA, следует познакомиться и рассмотреть различия между BIOS (базовая система ввода/вывода) и UEFI (унифицированный интерфейс расширяемой прошивки), ведь именно с их помощью придется вносить изменения в конфигурацию системы.

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

Начиная с 2012–2013 годов, большинство материнских плат снабжается UEFI — усовершенствованной управляющей программой, наделенной графическим интерфейсом и поддерживающей работу с мышью. Но, что называется «по старинке», оба варианта, на бытовом уровне, называют BIOS.

Даже неискушенному пользователю понятно, что причиной столь радикальной смены курса при создании UEFI стало не желание производителей «приблизить» интерфейс к конечному пользователю ПК, сделать его более удобным и понятным, а более веские причины.

Таким весомым аргументом стало ограничение на возможность работы с накопителями большого объема в изначальной версии BIOS. Дело в том, что объем диска ограничен значением, приблизительно равным 2,1 ТБ. Взять эту планку без кардинальных изменений управляющего софта было невозможно. К тому же БИОС работает в 16-битном режиме, используя при этом всего 1 МБ памяти, что в комплексе приводит к существенному замедлению процесса опроса (POST-опрос) устройств и началу загрузки из MBR области с установленной «осью».

UEFI лишена вышеперечисленных недостатков. Во-первых, расчетный теоретический порог объема дисковой подсистемы составляет 9,4 ЗБ (1 зеттабайт = 10 21 байт), а во-вторых, для загрузки операционки используется стандарт размещения таблиц разделов (GPT), что существенно ускоряет загрузку операционной системы.

Разметка жестких дисков

Как говорилось ранее, у стандартов BIOS и UEFI — различный подход к разметке области жесткого диска. В BIOS используется так называемая главная загрузочная запись (MBR), которая четко указывает считывающей головке HDD сектор, с которого нужно начать загрузку ОС.

В UEFI это реализовано иначе. В этом стандарте используется информация о физическом расположении таблиц разделов на поверхности HDD.

Как это работает?

Каждому разделу жесткого диска присваивается свой собственный уникальный идентификатор (GUID), который содержит всю необходимую информацию о разделе, что существенно ускоряет работу с накопителем. К тому же при использовании GPT риск потерять данные о разделе минимальны, поскольку вся информация записывается как в начальной области диска, так и дублируется в конце, что повышает надежность системы в целом.


Для понимания — при использовании MBR, информация о загрузочной области находится только в начале диска, в строго определенном секторе и никак не дублируется, поэтому, при ее повреждении, загрузить операционную систему с такого диска будет невозможно. Систему придется устанавливать заново.

Еще одно существенное отличие — при использовании «старого» BIOS и MBR на диске можно максимально создать четыре логических раздела. В случае необходимости создания их большего количества придется доставать свой шаманский бубен и прибегнуть к определенным действиям на грани магии и «химии». По сути, предстоит проделать трюк с одним из основных разделов. Сначала преобразовать его в расширенный, а затем создать внутри него нужное количество дополнительных разделов. В случае использования стандарта GPT все это становится неактуальным, поскольку изначально в ОС Windows, при использовании новой философии разметки HDD, пользователю доступно создание 128 логических разделов.

Что касается физической разбивки диска на логические разделы, то здесь нужно четко понимать задачи, под которые они создаются. Нужно приучить себя четко разделять данные пользователя и системные файлы. Исходя из этого, логических дисков в системе должно быть как минимум два. Один под операционку, второй под пользовательские данные.

Оптимальный вариант — иметь в ПК два физических диска. SSD объемом 120–240 ГБ под систему и быстрые игрушки и HDD под документы и файлы мультимедиа необходимого объема.

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

Режимы работы SATA

Покончив с необходимым теоретическим минимумом, следует определиться с выбором режима работы контроллера HDD материнской платы и сферами их применения.


  • IDE — самый простой и безнадежно устаревший вариант, использование которого было актуально лет n-цать назад. Представляет собой эмуляцию работы жесткого диска PATA. Режим находит применение при работе с устаревшим оборудованием или программным обеспечением, требующим устаревших операционных систем. Современные SSD в таком режиме работать не будут!

Сложно представить необходимость такого режима работы в составе современного ПК. Разве что в одной точке пространства и времени сойдутся найденный на антресоли старенький HDD с рабочей ОС и «самоткаными» эксклюзивными обоями рабочего стола, и безудержное желание сохранить их для потомков.

  • AHCI — режим работы современного накопителя, предоставляющий расширенный функционал и дополнительные «плюшки». В первую очередь — возможность «горячей» замены жестких дисков. Для домашнего ПК или офисной машины — это не очень актуально, а вот в случае с серверным оборудованием, такая возможность поможет сэкономить много времени и нервов системного администратора. Во-вторых, наличие реализованного алгоритма аппаратной установки очередности команд (NCQ), существенно ускоряющей работу накопителя и производительность системы в целом. Это достигается за счет грамотного и оптимального алгоритма движения считывающей головки по блину классического HDD или более эффективного использования ячеек памяти в случае SSD накопителя.


  • RAID — возможность организации совместной работы нескольких накопителей в едином дисковом массиве. В зависимости от задач, можно объединить диски в систему повышенной надежности (RAID 1) информация в которой будет дублироваться на каждый из дисков массива, или высокопроизводительную систему (RAID 0 или RAID 5), когда части одного файла одновременно записываются на разные диски, существенно сокращая при этом время обращения к дисковому массиву.
  • NVMe — абсолютно новый стандарт, специально разработанный под SSD-накопители. Поскольку твердотельные диски уже «выросли» из протокола передачи данных SATA-III, и берут новые вершины в передаче данных по интерфейсу PCI-E, обеспечивая при этом наивысшую скорость выполнения операций чтения/записи. При этом по скорости превосходят своих SSD-собратьев, работающих в режиме AHCI, практически вдвое.

К выбору режима работы накопителя следует отнестись ответственно. Выбрать его нужно перед началом установки операционной системы! В противном случае, при его смене на уже установленной операционке, очень велика вероятность получения экрана смерти (BSOD) и отказа ПК работать.


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

RAID-массивы на NVMe

В данной статье мы расскажем про разные способы организации RAID-массивов, а также покажем один из первых аппаратных RAID-контроллеров с поддержкой NVMe.

Все разнообразие применений технологии RAID встречается в серверном сегменте. В клиентском сегменте чаще всего используется исключительно программный RAID0 или RAID1 на два диска.

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

Что такое RAID?

Википедия дает исчерпывающее определение технологии 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-массивов можно переходить к устройствам и программам, которые позволяют собирать и использовать дисковые массивы.

Виды RAID-контроллеров

Существует два способа создать и использовать RAID-массивы: аппаратный и программный. Мы рассмотрим следующие решения:

  • Linux Software RAID.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Отметим, что решение Intel® работает на чипсете, из-за чего возникает вопрос, аппаратное это решение или программное. Так, например, гипервизор VMWare ESXi считает VROC программным и не поддерживает официально.

Linux Software RAID

Программные RAID-массивы в семействе ОС Linux — достаточно распространенное решение как в клиентском сегменте, так и в серверном. Все, что нужно для создания массива, — утилита mdadm и несколько блочных устройств. Единственное требование, которое предъявляет Linux Software RAID к используемым накопителям, — быть блочным устройством, доступным системе.

Отсутствие затрат на оборудование и программное обеспечение — очевидное преимущество данного способа. Linux Software RAID организует дисковые массивы ценой процессорного времени. Список поддерживаемых уровней RAID и состояние текущих дисковых массивов можно посмотреть в файле mdstat, который находится в корне procfs:

Поддержка уровней RAID добавляется подключением соответствующего модуля ядра, например:

Все операции с дисковыми массивами производятся через утилиту командной строки mdadm. Сборка дискового массива производится в одну команду:

После выполнения этой команды в системе появится блочное устройство /dev/md0, которое представляет из тебя виртуальный диск.

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), но можно менять в них диски и разбирать массивы.

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.

Тестовый стенд

Каждый из способов организации дисковых массивов имеет свои физические плюсы и минусы. Но есть ли разница в производительности при работе с дисковыми массивами?

Для достижения максимальной справедливости все тесты будут проведены на одном и том же сервере. Его конфигурация:

  • 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.

Тестируемыми выступают P4510, из которых одна половина подключена к материнской плате, а вторая — к RAID-контроллеру. На M.2 установлена операционная система Ubuntu 20.04, а тесты будут выполняться при помощи fio версии 3.16.

Тестирование

В первую очередь проверим задержки при работе с диском. Тест выполняется в один поток, размер блока 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
Легко заметить, что использование аппаратного контроллера дает увеличение задержек и просадку по производительности в сравнении с программными решениями.

Заключение

Использование аппаратных решений для создания дисковых массивов из двух дисков выглядит нерационально. Тем не менее, существуют задачи, где использование RAID-контроллеров оправдано. С появлением контроллеров с поддержкой интерфейса NVMe у пользователей появляется возможность использовать более быстрые SSD в своих проектах.

Подход Intel к подключению всей периферии массовых платформ через чипсет (по умолчанию) имеет как свои недостатки, типа ограниченной пропускной способности связки чипсета с процессором/памятью, так и определенные достоинства. Например, буквально сразу после появления SSD с интерфейсом PCIe (независимо от поддерживаемого протокола) оказалось, что топовые чипсеты Intel способны создавать из них RAID-массивы — точно так же, как из SATA-устройств. А вот для того, чтобы «прикрутить» подобную функциональность к «процессорным» контроллерам HEDT-платформ, понадобилось время. Причем VROC (Virtual RAID on CPU) — вообще отдельная технология, и по умолчанию владельцам плат с LGA2066 (более ранние не поддерживаются) доступен только RAID0 — для активации других режимов придется покупать специальный (и, надо заметить, недешевый) ключ. Можно, конечно, просто создать «программный» RAID (благо и в случае VROC он все равно будет программным), но придется решать вопросы с загрузкой и т. п.

Технология же Rapid Storage никаких новых вопросов перед пользователем не ставит — просто с определенного момента любые накопители с интерфейсом PCIe, подключенные к чипсету, можно использовать точно так же, как SATA: поодиночке, попарно. и т. п. В общем, сам процесс создания и использования массива не зависит от интерфейса накопителей — только смешивать их нельзя. Другой вопрос, что практическая польза от создания таких массивов не слишком прослеживается.

Поэтому мы ранее обходили эту возможность стороной — тем более, что не было «на руках» пары одинаковых SSD для максимальной корректности экспериментов. Но потом было решено попробовать с разными. Ведь это производительность разных SATA-накопителей (даже твердотельных, не говоря уже о «механических») различается не слишком заметно — а в данном случае величины скорости могут иметь даже разный порядок. И если с «зеркалом» все понятно (распараллеливать чтение в этом режиме RST «не умеет», а запись определяется самым медленным из пары устройств — так надежнее), а «сложные» уровни — вообще экзотика для персональных компьютеров, то RAID0… Может ли с его помощью пара относительно медленных SSD одинаковой емкости «догнать» быстрый SSD пропорционально большей емкости? Это мы и решили проверить. В конце концов, просто интересно.

Методика и объекты тестирования

Методика подробно описана в отдельной статье, там же можно познакомиться с используемым аппаратным и программным обеспечением.




Для реализации озвученной выше цели сначала мы решили взять Intel SSD 600p и WD Black первого поколения по 512 ГБ, благо оба работают не слишком быстро, и сравнить их с одним современным Samsung 970 Evo Plus емкостью 1 ТБ. Сравнили. задумались.



Заменили Intel на Samsung 960 Pro. Потом первый Black — на второй. На этом решено было успокоиться, поскольку. Сами увидите.

Поскольку сегодняшнее тестирование достаточно специфично, мы не стали заносить результаты тестов в общую таблицу: они доступны в отдельном файле в формате Microsoft Excel. Так что желающие покопаться в цифрах (тем более, что не все они попадают на диаграммы) могут скачать его и удовлетворить любопытство.

Производительность в приложениях


С точки зрения баллов «высокого уровня», объединение пары NVMe-накопителей не просто бесполезно, а попросту вредно — производительность массива зависит от его компонентов, но всегда строго ниже, чем у самого медленного в паре устройства. На что, впрочем, можно не обращать особого внимания, поскольку тут-то все протестированные конфигурации (и одиночные, и «двойные») демонстрируют очень близкие результаты, но тенденция, как минимум, неприятная.


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


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

Последовательные операции


Казалось бы, настало время открывать шампанское — производительность увеличивается стремительным домкратом. Однако, как раз эта «стремительность», равно как и выход результатов за теоретические пределы интерфейса DMI, связывающего чипсет с процессором, наводит на мысли, что утилита просто «запуталась» в кэшировании — которое в RAID-режиме имеет свои нюансы. Поэтому делать какие-либо выводы по этим результатам мы не будем, а отложим вопрос до исследования файловых операций.


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

Случайный доступ





В принципе, все, что нужно знать про объединение двух разноскоростных устройств — ни один массив с участием Samsung 960 Pro не может «догнать» одиночный Samsung 960 Pro в любых сценариях. Что же касается пары из «медленных» Intel и WD, то иногда таковая оказывается быстрее любого из участников, а иногда — только самого медленного из них. В любом случае, если вдруг хочется получить максимум производительности — проще быстрый SSD и взять. Причем одного его будет вполне достаточно. Да и ситуация с емкостью давно уже «исправлена» сравнительно с положением дел десятилетней давности, когда из SSD могло понадобиться городить массив просто для получения 200-300 ГБ «одним куском».


Довольно любопытная картинка — с одной стороны, массив, хотя бы, ничего не портит, с другой — практически ничего и не дает. Понятно почему — в этом сценарии вообще очень сложно разделить накопители на «быстрые» и «медленные». А учитывая то, что в прикладном ПО подобных операций немало, нет ничего удивительно и в том, что разные (иногда даже существенно-разные) SSD в бенчмарках высокого уровня ведут себя одинаково.

Работа с большими файлами


В однопоточном режиме скорость массива Intel+WD оказывается равной сумме скоростей его компонентов, что, казалось бы, хорошо. Однако переход к 32 потокам чтения заставляет массив работать со скоростью самого медленного устройства в паре. А в «асимметричных» конфигурациях с участием Samsung 960 Pro более медленный SSD фактически его только замедляет, но не наоборот.


Запись — слабое место первой волны NVMe-накопителей на базе TLC-памяти, но объединив пару таковых в массив мы проблему не решим. А объединив быстрый накопитель с более медленным — «ускорим» только медленный.


И вновь видим, что какой-то смысл объединять пару медленных накопителей в RAID-массив есть — но очень небольшой. Возможно, что-то интересное можно получить от пары быстрых (и одинаковых) SSD — по крайней мере, в теории. А разные точно заставлять работать вместе не стоит.

Рейтинги


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


И общая оценка наглядно демонстрирует бессмысленность того, чем мы сегодня занимались :)

Итого

В общем и целом, оно работает, только непонятно, зачем это нужно. Впрочем, какого-либо иного результата ожидать было сложно: все-таки твердотельный накопитель (особенно топовый) и по внутреннему устройству тяготеет к распараллеливанию нагрузки, а PCIe 3.0 x4 до сих пор является избыточным для большинства сценариев интерфейсом работы. Для «более последовательных» винчестеров актуальным когда-то было внедрение хоть какого-то параллелизма, а тут это просто не нужно. Для SATA SSD могло работать уменьшение зависимости от «узкого» интерфейса путем его виртуального удвоения — тут это тоже не нужно. Да, в каких-то случаях массив оказывается быстрее своих составляющих, но куда большего эффекта можно добиться, взяв один быстрый SSD большей емкости. А в некоторых сценариях производительность массива только снижается, так что тут и думать нечего.

Читайте также: