Программный RAID или встроенный аппаратный RAID: какой лучше?

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

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


Для быстрой загрузки, например, Unreal Engine 5 можно создать RAID 0. Сразу встаёт вопрос, какой делать программный или аппаратный, сильное ли отличие между ними. Программный сделать можно в пару кликов, в менеджере дисков Windows. Аппаратный - это долго и не каждый юзер справится.  Если разница 5-10%, тогда действительно без разницы и RAID можно спокойно делать инструментами операционной системы, а если разница в скорости более 10%, тогда лучше поразбираться, потратить время и сделать аппаратный.

Источник: servergid.ru

Испытания проводились с двумя новыми, одинаковыми, ултрабюджетными SSD "Goldenfir" на 360gb, купленные на Авито по 1800 рублей каждый.

Тест одиночного диска. Проведён несколько раз, взят средний вариант. Изменения параметров OnChip SATA Type в БИОСе ПК на результат тестов скорости не повлияла.

Результат для ССД слабоват, хотя чего можно ожидать от накопителя за 1800 рублей.

Тест программного PAID 0 из двух одинаковых SSD. Сделан средствами Widows 10.

Результат совсем не впечатляет.

Линейное чтение увеличилось примерно в 1,2 раз, ожидалось большее. Рандомное чтение RAID 0 во втором варианте даже уменьшилось! Запись на программном RAID уменьшилась в 1,23 раза - неожиданно! Загрузка процессора во время теста 10-20%. Значит ресурса ЦПУ достаточно, однако, скорость на запись и на случайное чтение УМЕНЬШИЛОСЬ - очень неважный результат. Кроме того, в 3D играх появились короткие фризы при подгрузке, видимо процессор загружается и немного не хватает мощности для плавной картинки в требовательной MMORPG - Blade and Soul на ультра. 


В данном случае, сравнение программного RAID 0 производилось c аппаратным RAID, встроенным в материнскую плату. Скорее всего, результаты были бы на много лучше, если бы использовался аппаратный RAID-контроллер на PCI-E. Так же, в сети часто, справедливо, отмечают, что не безопасно, использовать RAID-контролер встроенный в материнскую плату - может сломаться и тогда потеряются все данные, для восстановления понадобится точно такая же материнская плата, что долго и дорого. Но для игр это не критично, их всегда можно загрузить с различных сервисов. 

Преодолев немало препятствий - RAID 0 готов. Не обошлось и без полной переустановки Windows. При смене параметра "OnChip SATA Type" в БИОСе ОС перестаёт загружаться, так как изначально были установлены драйвера в соответствие с данным параметром, помогает только переустановка.

Результаты аппаратного RAID 0 на материнской плате.

По сравнению с программным RAID - разница существенная.

Линейное чтение, по сравнению с одиночным ССД, стало быстрее в 1,45.

Линейная запись быстрее в 1,5 раза!

Рандомное чтение RAID 0 стала быстрее одиночного в среднем в 2 раза!


Рандомная запись быстрее в среднем в 1,6 раза.

Как видим, аппаратный RAID оказался на голову выше программного!

При условии, что эти показатели было бы легко найти в сети - программный RAID отбраковался бы сразу.

Для удобства сравнения - все три картинки вместе.

Результат однозначный.

Почему аппаратный RAID быстрее программного

1. Отдельный процессор RAID-контроллера. Аппаратный RAID использует специализированный RAID-контроллер с собственным процессором, который обрабатывает все операции RAID. Это позволяет аппаратному RAID поддерживать высокую производительность, не нагружая основной процессор системы. В программном RAID операции обрабатываются основным процессором системы, что может привести к конкуренции за ресурсы с другими задачами и снижению общей производительности.

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

3. Оптимизации на уровне оборудования. Аппаратный RAID-контроллер специально разработан для работы с RAID-массивами и может включать оптимизации на уровне оборудования, которые улучшают производительность. Программный RAID может не иметь таких оптимизаций, так как он полагается на операционную систему и драйверы.

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