Для HDD в IOPS обычно преобладает время доступа к диску, которое является суммой задержки поиска + задержки вращения + задержки передачи. Поскольку эти переменные сильно зависят от шаблонов доступа и имеют неочевидные взаимодействия с конкретной схемой RAID (т. Е. Размером полосы) и контроллером (т. Е. С настройкой чтения с опережением), любой простой ответ будет неверным.
Тем не менее, давайте попробуем иметь приблизительную фигуру. В первом приближении IOPS, гарантированный массивом из n-дисков, должен быть в n раз больше, чем IOPS одного диска. Однако как уровень RAID, так и схема доступа к данным , смещая вес между задержкой поиска / вращения / передачи, кардинально изменяют это приближение первого порядка.
Давайте рассмотрим несколько примеров, предполагая, что 100 IOPS на отдельные диски (обычно для дисков со скоростью 7200 об / мин) и массивы из 4 дисков (за исключением RAID1, часто ограничиваются только двухсторонними):
- один диск равен 100 IOPS, как для чтения, так и для записи (примечание: из-за слияния записи IOPS при записи обычно выше, чем при чтении IOPS, но для простоты игнорируем это)
- RAID0 (4-полосное чередование) имеет до 4x случайных IOPS и до 4x последовательных IOPS. Ключевое слово здесь «до»: из-за характера чередования и выравнивания данных, если секторы с произвольным доступом преобладают на одном диске, вы получите гораздо более низкие IOPS.
- RAID1 (двухстороннее зеркалирование) более сложен для профилирования. Поскольку разные диски могут искать по разным данным, он имеет до 2х случайных операций чтения IOPS, но тот же 1x (или немного ниже, из-за издержек) случайной записи IOPS. Если все вещи хорошо выровнены (например, большое, но не 100% последовательное чтение, RAID-контроллер, использующий концепцию / обработку чанков / полос даже в режиме зеркального отображения, корректное чтение с опережением и т. Д.), Последовательное чтение может иногда достигать 2-кратного одиночного значение диска, в то время как последовательные записи остаются ограниченными в 1 раз по сравнению с одним диском (т.е. без ускорения)
- RAID10 (четырехстороннее зеркалирование) по производительности находится на полпути между 4-полосным чередованием RAID0 и двухсторонним зеркалированием. Он имеет до 4x IOPS случайного чтения и до 2x IOPS случайного чтения. Для последовательных передач применяется предостережение RAID1: иногда оно имеет до 4x последовательных операций чтения IOPS, но только в 2 раза последовательных операций записи IOPS. Обратите внимание, что некоторые реализации RAID10 (а именно Linux MDRAID) предоставляют разные макеты для массивов RAID10 с разным профилем производительности .
- RAID5 (чётность с чередованием) имеет до 4x случайных операций ввода-вывода при чтении, в то время как при произвольной записи IOPS, в зависимости от ряда факторов, таких как степень записи по отношению к размеру полосы, доступность большого кеша полосы, алгоритм реконструкции полосы само (чтение-реконструкция-запись против чтения-изменения-записи) и т. д. может быть где-то между 0,5x (или ниже) и 2x IOPS одного диска. Последовательные рабочие нагрузки более предсказуемы, с 3-кратным IOPS одного диска (как для чтения, так и для записи)
- RAID6 (чередующийся двойной контроль четности) во многом похож на своего брата RAID5, но с меньшей производительностью записи. Он имеет до 4x случайных операций ввода-вывода при чтении одного диска, но его производительность произвольной записи даже ниже, чем у RAID5, с такими же абсолютными значениями (0,5x - 2x), но с более низким реальным средним словом. Последовательные чтения и записи ограничены в 2 раза IOPS одного диска.
Позвольте мне повторить: вышеизложенное является простым и почти сломанным приближением. В любом случае, если вы хотите поиграть с (крайне неполным) RAID IOPS калькулятором, посмотрите здесь .
Теперь вернитесь в реальный мир. В реальных рабочих нагрузках RAID10 часто является более быстрым и предпочтительным выбором , поддерживая высокую производительность даже в условиях ухудшенного массива . RAID5 и RAID6 не следует использовать в рабочих нагрузках, чувствительных к производительности, если только они не ориентированы на чтение или последовательный характер. Стоит отметить, что серьезные RAID-контроллеры имеют большой защищенный от потери мощности кэш-память обратной записи, в основном для преодоления (путем интенсивного кэширования) низкой производительности произвольной записи RAID5 / 6. Никогда не используйте RAID5 / 6 с RAID-контроллерами без кеша , если только вам не важна скорость работы массива.
SSD это разные звери, подумал. Поскольку у них, как правило, гораздо более низкое среднее время доступа, RAID-массивы на основе четности влекут за собой гораздо меньшую нагрузку на производительность и являются гораздо более жизнеспособным вариантом, чем на жестких дисках. Однако при небольшой рабочей нагрузке, ориентированной на случайную запись, я бы в любом случае использовал установку RAID10.