При обчисленні IOPS для традиційних масивів RAID можна використовувати таку формулу (запозичена з отримання програми Hang Of IOPS v1.3 на Symantec Connect):
Ieffective = (n * Isingle) / (READ% + (F * WRITE%))
Де:
- Неефективним є ефективна кількість IOPS
- Isingle - це середній показник IOPS на одному приводі .
- n - кількість дисків у масиві
- ЧИТАЙТЕ% - частка прочитаних даних, взятих під час профілювання диска
- WRITE% - частка записів, взятих з профілювання диска
-
RAID Level Write Penalty RAID-0 1 RAID-1 2 RAID-5 4 RAID-6 6 RAID-10 2 RAID-DP 2
Формула по суті є функцією:
- IOPS для кожного окремого накопичувача в масиві
- Кількість дисків. Більше дисків означає більше IOPS
- Штраф RAID за кожну операцію запису.
- RAID5 та RAID6 вимагають 4+ операцій на диску для кожного запису. Контролер повинен зчитувати блок, а потім зчитувати дані парності (дві операції), обчислюючи нові дані парності, а потім оновлювати блок парності та оновлювати блок даних (Ще дві операції). RAID6 має два блоки парності і тому вимагає трьох зчитування та трьох записів. Отже, масиви RAID5 та RAID6 здатні мати меншу кількість IOPS, ніж RAID1.
- RAID1 та RAID10 вимагають лише 2 записів, по одному на кожен диск у дзеркалі.
І щоб було зрозуміло, це все дає оцінку теоретичних результатів. Різні контролери та методи RAID мають хитрощі, щоб прискорити деякі з них.
Еквівалент ZFS RAID5 та RAID6 - це RAIDZ та RAIDZ2. Підраховуючи IOPS для масивів RAIDZ, чи можу я використовувати ту саму формулу, яку я використовую для RAID5 та RAID6, чи ZFS має спеціальні хитрощі, щоб зменшити кількість операцій, необхідних для операцій запису.
Чи є інша формула, яку слід використовувати для обчислення IOPS для масивів RAIDZ?