Отличается ли вычисление IOPS для ZFS RAIDZ от расчета IOPS для RAID5 и RAID6?

13

При расчете IOPS для традиционных RAID-массивов можно использовать следующую формулу (заимствовано из «Ознакомления с IOPS v1.3 в Symantec Connect»):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

Где:

Формула по существу является функцией:

  • IOPS для каждого отдельного диска в массиве
  • Количество дисков. Больше дисков означает больше IOPS
  • Наказание RAID за каждую операцию записи.
    • RAID5 и RAID6 требуют 4+ дисковых операций для каждой записи. Контроллер должен прочитать блок и затем прочитать данные контроля четности (две операции), вычислить новые данные контроля четности, а затем обновить блок контроля четности и обновить блок данных (еще две операции). RAID6 имеет два блока четности и поэтому требует три чтения и три записи. Таким образом, массивы RAID5 и RAID6 позволяют меньше операций ввода-вывода в секунду, чем RAID1.
    • Для RAID1 и RAID10 требуется только 2 записи, по одной на каждый диск в зеркале.

И чтобы быть ясным, все это дает оценку теоретической эффективности. Различные контроллеры и методы RAID имеют хитрости, чтобы ускорить это.

ZFS эквивалентно RAID5 и RAID6 - это RAIDZ и RAIDZ2. При вычислении IOPS для массивов RAIDZ могу ли я использовать ту же формулу, что и для RAID5 и RAID6, или же в ZFS предусмотрены специальные приемы для уменьшения количества операций, необходимых для операций записи.

Есть ли другая формула для использования при расчете IOPS для массивов RAIDZ?

Стефан Ласевский
источник
1
Отличный вопрос Я с нетерпением жду, чтобы прочитать ответы ...
EEAA
1
iops мифичны, но этот документ может дать некоторое представление. info.nexenta.com/rs/nexenta/images/…
Тони Рот
IOPS может быть теоретическим, но он может дать объяснение того, почему массив RAID10 обычно превосходит массив RAID5, учитывая те же диски.
Стефан Ласевский
Одна заметная цитата из документа Nexenta: «В конфигурации RAIDZ-2 один ввод-вывод, входящий в VDEV, необходимо разбить и записать на все диски данных. Затем перед вычислением необходимо проверить четность и записать ее на диск. IO может завершиться. Если все диски имеют одинаковую задержку, все операции с дисками будут завершены в одно и то же время, тем самым завершив IO для VDEV со скоростью одного диска . Если имеется медленный диск с высокой задержкой в RAIDZ-2 VDEV, IO для VDEV не завершается, пока IO на самом медленном диске не завершится. "
Стефан Ласевский

Ответы:

13

Это легче ответить ...

Это все дистиллированная здесь: ZFS рекомендации RAID: пространство, производительности и MTTDL и пристальный взгляд на ZFS, Vdevs и производительность

  • RAIDZ с одним диском четности даст вам производительность IOPS для одного диска, но в n-1 раз совокупную пропускную способность одного диска.

Так что если вам нужно масштабировать, вы масштабируете с количеством RAIDZ vdevs ... Например, с 16 дисками, 4 группы RAIDZ с 4 дисками будут иметь больший потенциал IOPS, чем 2 группы RAIDZ с 8 дисками.

Удивительно, правда?

Обычно я использую чередующиеся зеркала (RAID 1 + 0) в своих установках ZFS. Та же концепция применима. Больше зеркальных пар == лучшая производительность.

В ZFS вы можете расширяться только в единицах полного vdev. Таким образом, если расширение набора RAID 1 + 0 означает добавление большего количества пар, то же самое для наборов RAIDZ означает добавление большего количества групп RAIDZ с одинаковым составом.

ewwhite
источник
Хорошая статья, но она настолько старая, что сравнение ссылок ZFS RAID1 с RAID5 («Результаты модели с одной четностью» и «Результаты модели с двойной четностью» отсутствуют). Крысы!
Стефан Ласевский
RAIDZ с одним диском четности даст вам производительность IOPS на одном диске. Интересно, является ли это постоянным значением независимо от процента чтения или записи? Например, производительность RAID5 сильно варьируется в зависимости от процента прочитанных стихов. Массив 3 Disk 15K может варьироваться между 130IOPS и 500IOPS в зависимости от соотношения чтения / записи. 50% операций чтения и 50% операций записи приведут к повышению производительности операций ввода-вывода в секунду на одном диске. Использование шпинделей 3+ повышает производительность по сравнению с 1 шпинделем, верно?
Стефан Ласевский
Я просто думаю о масштабировании vdev и о том, что производительность записи равна 1 диску, независимо от состава этого vdev; зеркало, RAIDZ, RAIDZ2 и т. д. Диски внутри vdevs предназначены для увеличения вашей емкости. Количество vdevs используется для повышения производительности чередования. Чтения из vdevs будут масштабироваться с количеством дисков.
ewwhite
1
У меня есть значительный опыт работы с этим, и я могу подтвердить для вас, что в большинстве ситуаций RAIDZ НЕ собирается превзойти такое же количество дисков, добавленных в традиционный эквивалентный массив RAID5 / 6. Большинство традиционных массивов RAID5 / 6 повышают производительность операций ввода-вывода в секунду (то, о чем почти все заботятся, даже если они об этом не думают), когда вы добавляете шпиндели в набор RAID, тогда как ZFS - нет. В свою очередь, ZFS не потеряет ваши данные и не пострадает от проблемы «дыры в записи RAID». Плюс это целые снимки, клоны, сжатие и так далее. И АРК. И .. вы поняли идею.
Nex7
2
Я просто хочу прояснить: ZFS по своей конструкции не собирается выигрывать какие-либо войны за производительность. Вы можете найти альтернативные файловые системы и менеджеры томов (или комбинации), которые могут превзойти ZFS на том же оборудовании (например, ext4 и RAID-карта Adaptec). Единственное исключение из этого, о котором я знаю, исходит от операций чтения, которые легко кэшируются, когда ARC часто дает ZFS возможность оценить большинство альтернатив. Но когда дело доходит до записи? Нет. Усилия, которые ZFS тратит на целостность данных и то, как они обрабатывают записи, почти никогда не выиграют соревнования по скорости. Компромиссами являются целостность и набор функций.
Nex7