Материалы

Storage IOPS Calculation

Автор: vik_kr Дата: . Категория: Виртуализация и VDI

Многие IT специалисты, при расчётах и планировании СДХ не уделяют достаточного внимания IOPS. Правильный подсчет IOPS-ов, и учёт пенальти RAID конфигурации гарантирует требуемый результат по производительности. Однозначно при планировании СДХ надо учитывать много факторов таких как напр. Кеш, I/O request size, Протокол доступа(FC/iSCSI/NFS), тип операции I/O (Sequential/Random) и т.д. Но в этом посте мы поговорим про подсчёт IOPS, с учетом RAID пенальти

IOPS- Input/Output Operations per second:

 

Любые операции чтения или записи которые осуществляются на дисках определяются как ввод/вывод (I/O). Количество операции записи и чтения осуществленных за одну секунду и называются IOPS.

Существует три типа I/O:

Read IOPS – Суммарное количество операций чтения которые осуществляются за секунду

Write IOPS – Суммарное количество операций записи которые осуществляются за секунду

Total IOPS – Суммарное количество операций записи/чтения которые осуществляются за секунду

(Total IOPS = Read IOPS+Write IOPS)

Каждый тип диска имеет определенное количество IOPS-ов, и ни смотря что каждый производитель дисков заявляет о завышенных значениях я приведу, средние данные по типам дисков:

RPM

IOPS

15000 RPM

170

10000 RPM

120

7200 RPM

70

 

RAID Пенальти:

Любые операции чтения, которые выполняются на дисках, не подвергаются никакому пенальти, поскольку все диски могут использоваться для операций чтения. Но всё на оборот с операциями на запись. Количество пенальти на запись зависят от типа выбранного RAID-а, например.

В RAID 1 чтобы данные записались на дик, происходит две операции на запись (по одной записи на каждый диск), и следовательно RAID 1 имеет два пенальти.

В RAID 5 чтобы записать данные происходит 4 операции (Чтение существующих данных, четность RAID, Запись новых данных, Запись новой четности) тем самым пенальти в RAID 5 составляет 4

В этой таблице приведено значение пенальти для более часто используемых RAID конфигурации

RAID

I/O Пенальти

RAID 0

0

RAID 1

2

RAID 5

4

RAID 6

6

RAID 10

2

Характеристика Рабочих нагрузок:

Характеристика Рабочей нагрузки в основном рассматривается как процент операции чтений и записей, которые вырабатывает или требует ваше приложение. Например, в среде VDI процентное соотношение IOPS рассматривается как 80-90% на запись и 10-20% на чтение. Понимание характеристики рабочей нагрузки является наиболее критическим фактором, поскольку от этого и зависит выбор оптимального RAID для среды. Приложения которые интенсивно используют операции на запись являются хорошими кандидатами для RAID 10, тогда как приложения которые интенсивно используют операции на чтение могут быть размещены на RAID 5.

Вычисление IOPS-ов:

Есть два сценария вычисления IOPS-ов. Один из сценариев это когда у вас есть определенное число дисков, и вы хотите знать, сколько IOPS эти диски выдадут? Второй сценарий , когда вы знаете сколько вам IOPS-ов надо, и хотите вычислить нужное количество дисков ?

Вычисление IOPS из ходя из определенного числа дисков:

Давайте представим что у нас есть 20 450GB 15к RPM дисков . Мы рассмотрим два сценария Рабочей нагрузки 80%Write-20%Read и другой сценарий с 20%Write-80%Read . Также мы вычислим количество IOPS как для RAID5 и RAID 10.

Прежде чем начнем считать приведу формулу:

Total Raw IOPS = Disk Speed IOPS * Number of disks

Functional IOPS =(((Total Raw IOPS×Write %))/(RAID Penalty))+(Total Raw IOPS×Read %)

Как вы видите, есть определение Raw IOPS и Functional IOPS, как раз токи Functional IOPS-ы и есть те IOPS-ы которые включают в себя RAID пенальти, и это и есть “настоявшие” IOPS-ы

А теперь подставим цифры и посмотрим что получится

Total Raw IOPS = 170*20 = 3400 IOPS (один 15K RPM диск может выдать в среднем 170 IOPS)

Для RAID-5

Вариант 1 (80%Write20%Read) Functional IOPS = (((3400*0.8))/(4))+(3400*0.2) = 1360 IOPS

Вариант 2 (20%Write80%Read) Functional IOPS = (((3400*0.2))/(4))+(3400*0.8) = 2890 IOPS

Для RAID-1,

Scenario 1(80%Write20%Read) Functional IOPS = (((3400*0.8))/(2))+(3400*0.2) = 2040 IOPS

Scenario 2(20%Write80%Read) Functional IOPS = (((3400*0.2))/(2))+(3400*0.8) = 3100 IOPS

Подсчёт количество дисков для достижения определенного количества IOPS-ов:

Рассмотрим ситуацию где нам надо определить тип RAID-а и количества дисков для достижения определенного количества IOPS-ов 5000 и с определенными рабочими нагрузками, например 80%Write20%Read и 20%Write80% Read

Опять же для начала формула по которой и будем считать

Total number of Disks required = ((Total Read IOPS + (Total Write IOPS*RAID Penalty))/Disk Speed IOPS)

Total IOPS = 5000

И теперь начнём подставлять цифры

Заметка : 80% от 5000 IOPS = 4000 IOPS и 20% от 5000 IOPS = 1000 IOPS с этими цифрами и будем оперировать

Для RAID-5,

Вариант 1 (80%Write20%Read) – Total Number of disks required = ((1000+(4000*4))/170) = 100 дисков

Вариант 2 (20%Write80%Read) – Total Number of disks required = ((4000+(1000*4))/170) = 47 дисков приблизительно

Для RAID-1

Вариант 1 (80%Write20%Read) – Total Number of disks required = ((1000+(4000*2))/170) = 53 диска приблизительно

Вариант 2 (20%Write80%Read) – Total Number of disks required = ((4000+(1000*2))/170) = 35 дисков приблизительно

Как видно из приведенных примеров, есть очень много параметров которые надо учитывать при планировании СДХ. Понимание и подсчет IOPS, RAID пенальти, и характеристик рабочих нагрузок очень критичны аспект при планировании. Когда нагрузка более интенсивна на запись луче выбирать RAID 10 и наоборот при нагрузках на чтение RAID 5.

Источник: http://vmlab.ge