raid penalty что это
IOPS — что это такое, и как его считать
IOPS (количество операций ввода/вывода – от англ. Input/Output Operations Per Second) – один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков (НЖМД), твердотельных диски (SSD) и сетевых хранилища данных (SAN).
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Характеристики производительности
Основными измеряемыми величинами являются операции линейного (последовательного) и произвольного (случайного) доступа.
Под линейными операциям чтения/записи, при которых части файлов считываются последовательно, одна за другой, подразумевается передача больших файлов (более 128 К). При произвольных операциях данные читаются случайно из разных областей носителя, обычно они ассоциируются с размером блока 4 Кбайт.
Ниже приведены основные характеристики:
Параметр | Описание |
Всего IOPS (Total IOPS) | Суммарное число операций ввода/вывода в секунду (при выполнении как чтения, так и записи) |
IOPS произвольного чтения (Random Read) | Среднее число операций произвольного чтения в секунду |
IOPS произвольной записи (Random Write) | Среднее число операций произвольной записи в секунду |
IOPS последовательного чтения (Sequential Read) | Среднее число операций линейного чтения в секунду |
IOPS последовательной записи (Sequential Write) | Среднее число операций линейной записи в секунду |
Приблизительные значения IOPS
Приблизительные значения IOPS для жестких дисков.
Устройство | Тип | IOPS | Интерфейс |
7,200 об/мин SATA-диски | HDD | 75-100 IOPS | SATA 3 Гбит/с |
10,000 об/мин SATA-диски | HDD | 125-150 IOPS | SATA 3 Гбит/с |
10,000 об/мин SAS-диски | HDD | 140 IOPS | SAS |
15,000 об/мин SAS-диски | HDD | 175-210 IOPS | SAS |
Приблизительные значения IOPS для SSD.
Устройство | Тип | IOPS | Интерфейс |
Intel X25-M G2 MLC | SSD | 8 600 IOPS | SATA 3 Гбит/с |
OCZ Vertex 3 | SSD | 60 000 IOPS (Произвольная запись 4K) | SATA 6 Гбит/с |
OCZ RevoDrive 3 X2 | SSD | 200 000 IOPS (Произвольная запись 4K) | PCIe |
OCZ Z-Drive R4 CloudServ | SSD | 1 400 000 IOPS | PCIe |
RAID пенальти
Любые операции чтения, которые выполняются на дисках, не подвергаются никакому пенальти, поскольку все диски могут использоваться для операций чтения. Но всё на оборот с операциями на запись. Количество пенальти на запись зависят от типа выбранного RAID-а, например.
В RAID 1 чтобы данные записались на диск, происходит две операции на запись (по одной записи на каждый диск), и следовательно RAID 1 имеет два пенальти.
В RAID 5 чтобы записать данные происходит 4 операции (Чтение существующих данных, четность RAID, Запись новых данных, Запись новой четности) тем самым пенальти в RAID 5 составляет 4.
В этой таблице приведено значение пенальти для более часто используемых RAID конфигурации.
RAID | I/O Пенальти |
RAID 0 | 1 (Edited by Reader) |
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-ов надо, и хотим вычислить нужное количество дисков?
Сценарий 1: Вычисление IOPS исходя из определенного кол-ва дисков
Представим что у нас есть 20 450GB 15к RPM дисков. Рассмотрим два сценария Рабочей нагрузки 80%Write-20%Read и другой сценарий с 20%Write-80%Read. Также мы вычислим количество IOPS как для RAID5 и RAID 10.
Формула для расчета IOPS:
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%Write 20%Read) Functional IOPS = (((3400*0.8))/(4))+(3400*0.2) = 1360 IOPS
Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(4))+(3400*0.8) = 2890 IOPS
Для RAID-1
Вариант 1 (80%Write 20%Read) Functional IOPS = (((3400*0.8))/(2))+(3400*0.2) = 2040 IOPS
Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(2))+(3400*0.8) = 3100 IOPS
Сценарий 2: Подсчет кол-ва дисков для достижения определенного кол-ва 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)
Теперь подставим цифры.
Заметка: 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.
IOPS — что это такое, и как его считать
IOPS (количество операций ввода/вывода – от англ. Input/Output Operations Per Second) – один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков (НЖМД), твердотельных диски (SSD) и сетевых хранилища данных (SAN).
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Характеристики производительности
Основными измеряемыми величинами являются операции линейного (последовательного) и произвольного (случайного) доступа.
Под линейными операциям чтения/записи, при которых части файлов считываются последовательно, одна за другой, подразумевается передача больших файлов (более 128 К). При произвольных операциях данные читаются случайно из разных областей носителя, обычно они ассоциируются с размером блока 4 Кбайт.
Ниже приведены основные характеристики:
Параметр | Описание |
Всего IOPS (Total IOPS) | Суммарное число операций ввода/вывода в секунду (при выполнении как чтения, так и записи) |
IOPS произвольного чтения (Random Read) | Среднее число операций произвольного чтения в секунду |
IOPS произвольной записи (Random Write) | Среднее число операций произвольной записи в секунду |
IOPS последовательного чтения (Sequential Read) | Среднее число операций линейного чтения в секунду |
IOPS последовательной записи (Sequential Write) | Среднее число операций линейной записи в секунду |
Приблизительные значения IOPS
Приблизительные значения IOPS для жестких дисков.
Устройство | Тип | IOPS | Интерфейс |
7,200 об/мин SATA-диски | HDD | 75-100 IOPS | SATA 3 Гбит/с |
10,000 об/мин SATA-диски | HDD | 125-150 IOPS | SATA 3 Гбит/с |
10,000 об/мин SAS-диски | HDD | 140 IOPS | SAS |
15,000 об/мин SAS-диски | HDD | 175-210 IOPS | SAS |
Приблизительные значения IOPS для SSD.
Устройство | Тип | IOPS | Интерфейс |
Intel X25-M G2 MLC | SSD | 8 600 IOPS | SATA 3 Гбит/с |
OCZ Vertex 3 | SSD | 60 000 IOPS (Произвольная запись 4K) | SATA 6 Гбит/с |
OCZ RevoDrive 3 X2 | SSD | 200 000 IOPS (Произвольная запись 4K) | PCIe |
OCZ Z-Drive R4 CloudServ | SSD | 1 400 000 IOPS | PCIe |
RAID пенальти
Любые операции чтения, которые выполняются на дисках, не подвергаются никакому пенальти, поскольку все диски могут использоваться для операций чтения. Но всё на оборот с операциями на запись. Количество пенальти на запись зависят от типа выбранного RAID-а, например.
В RAID 1 чтобы данные записались на диск, происходит две операции на запись (по одной записи на каждый диск), и следовательно RAID 1 имеет два пенальти.
В RAID 5 чтобы записать данные происходит 4 операции (Чтение существующих данных, четность RAID, Запись новых данных, Запись новой четности) тем самым пенальти в RAID 5 составляет 4.
В этой таблице приведено значение пенальти для более часто используемых RAID конфигурации.
RAID | I/O Пенальти |
RAID 0 | 1 (Edited by Reader) |
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-ов надо, и хотим вычислить нужное количество дисков?
Сценарий 1: Вычисление IOPS исходя из определенного кол-ва дисков
Представим что у нас есть 20 450GB 15к RPM дисков. Рассмотрим два сценария Рабочей нагрузки 80%Write-20%Read и другой сценарий с 20%Write-80%Read. Также мы вычислим количество IOPS как для RAID5 и RAID 10.
Формула для расчета IOPS:
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%Write 20%Read) Functional IOPS = (((3400*0.8))/(4))+(3400*0.2) = 1360 IOPS
Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(4))+(3400*0.8) = 2890 IOPS
Для RAID-1
Вариант 1 (80%Write 20%Read) Functional IOPS = (((3400*0.8))/(2))+(3400*0.2) = 2040 IOPS
Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(2))+(3400*0.8) = 3100 IOPS
Сценарий 2: Подсчет кол-ва дисков для достижения определенного кол-ва 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)
Теперь подставим цифры.
Заметка: 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.
Производительность RAID-массивов
Делая аудит производительности систем на базе 1С, мы очень часто сталкиваемся со значительными проблемами в дисковой системе, вызванными неправильной ее архитектурой. Поэтому мы решили создать специальный RAID-калькулятор, который позволяет просчитать потенциальную производительность дисковой подсистемы и облегчить процесс ее проектирования. Конечно же, кроме дисковой подсистемы важно правильно подобрать и другие компоненты серверной платформы, процесс подбора которых хорошо описан в статье Проектирование сервера 1С.
RAID-калькулятор
Объем Массива (ГБ):
Количество IOPS:
Реализация дисковых подсистем может быть довольно разнообразная: могут использоваться локальные диски, подключенные к встроенному контроллеру, или использоваться внешний контроллер, а также могут использоваться системы SAN (СХД, Storage). Но во всех способах реализации диски объединяются в логические пулы, которые называются RAID-массивами. Такое объединение решает в основном вопрос сохранности данных, т.е. в случае выхода из строя одного из дисков логического массива – он продолжает работать без остановки сервиса, а главное без потери данных. А также объединение дисков в пул может решать вопрос производительности пула, например, RAID 0 значительно увеличивает скорость чтения, но при этом увеличивает вероятность выхода из строя массива.
Итак, RAID – это технология виртуализации данных, которая объединяет несколько дисков в логический элемент для повышения отказоустойчивости и повышения производительности.
Важным показателем производительности дисковой подсистемы является количество элементарных операций в единицу времени (IOPS), которые может выполнить диск. Для дисковой подсистемы это операции чтения и записи данных. При планировании нагрузки для дисковой подсистемы важно представлять, какую нагрузку будет давать тот или иной сервис на дисковую подсистему. Обычно такие значения выводятся эмпирическим путем согласно уже полученного опыта на подобных проектах.
Поэтому рассчитывая количество дисков и тип RAID-массива, важно обращать внимание на нагрузку по IOPS. Важно заметить, что считается общее количество IOPS, которые потом нужно разделить на операции чтения и операции записи, так, например, на СУБД серверах разделение будет 80% на запись и 20% на чтение, а на файловых серверах наоборот 70% чтения и 30% записи, но все зависит от сервиса, который будет размещаться. Также стоит заметить, что значение IOPS для каждого диска, приведенные ниже в Таблице 1, приблизительные, поскольку разные операции дают разную нагрузку, например, последовательная запись блоками данных по 4к даст значительно больший показатель IOPS, чем случайное чтение блоками по 128К. Кроме того, производительность дисковой подсистемы измеряется не только количеством IOPS, но и очередью диска, откликом и другими счетчиками, о которых мы расскажем чуть ниже.
Диск | Количество IOPS |
SATA 7200 | 100 |
SAS 10000 | 140 |
SAS 15000 | 210 |
SSD | 8600 |
Таблица 1. Примерное значение IOPS в разрезе дисков
Также в расчете IOPS для RAID-массивов использовались пенальти для каждого типа массива. Например, в RAID 1 для записи данных происходит две операции на один диск и на второй диск, поэтому такой массив имеет пенальти 2. В RAID 5 для записи данных происходит 4 операции: чтение данных, чтение четности RAID, запись данных, запись четности, поэтому пенальти составляет 4. Для массивов 50, 60, 61 рассчитывался кумулятивный эффект для составляющих RAID массивов. Значение пенальти Raid приведены в Таблице 2.
Виды RAID-массивов
Существует несколько распространенных разновидностей RAID Массивов (см. Таблицу 2).
Диаграмма (кликабельно) | Кол-во дисков | Кол-во вышедших из строя дисков | Скорость записи | Скорость чтения | Описание | RAID пенальти | |
RAID 0 | от 2 | Нет | Информация разбивается на блоки данных фиксированной длины и записывается на оба/несколько дисков поочередно. | 1 | |||
RAID 1 | от 2 | 1 | Не меняется по сравнению с использованием одного диска. | Данные пишутся и на один диск, и на второй (зеркалируются). | 2 | ||
RAID 5 | от 3 | 1 | Блоки данных и контрольные суммы циклически записываются на все диски массива. | 4 | |||
RAID 6 | от 4 | 2 | Блоки данных и контрольные суммы циклически записываются на все диски массива, но контрольных суммы две. | 6 | |||
RAID 10 | от 4 | от 1 до N/2 дисков в пределах разных зеркал. | Зеркалированный массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Эта архитектура представляет собой массив типа RAID 0, сегментами которого вместо отдельных дисков являются массивы RAID 1. | 2 | |||
RAID 50 | от 6 | от 1 до 2 дисков, если выйдет одинаковое количество дисков в разных страйпах. | Массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Однако сегментами его вместо отдельных дисков являются массивы RAID 5. | 4 |
Таблица 2. Наиболее распространенные типы RAID-массивов
RAID 60 и 61 являются комбинированием RAID-массивов 0 и 1 соответственно, сегментами которого вместо отдельных дисков являются массивы RAID 6. Такие массивы наследуют все преимущества и недостатки составляющих их RAID-массивов. На практике наиболее распространенными RAID-массивами являются RAID 1, RAID 5 и RAID 10.
Показатели производительности дисковой подсистемы
Проверка производительности дисковой подсистемы должна проводиться на основе следующих показателей:
Показывает время простоя диска, т.е. время, в течении которого диск оставался в состоянии покоя, не обрабатывая операции чтения \записи. В отличии от предыдущего показателя лежит строго в диапазоне от 100% (полный покой) до 0% (полная загрузка).
Этот показатель как раз и показывает количество IOPS. Предельные значения как раз и указаны в расчетах. Показатель можно детализировать на обращения к диску при записи и при чтении.
Среднее время обращения к диску
Среднее время в секундах, требуемое для выполнения диском одной операции чтения или записи. Складывается из значений времени на обращение при чтении и времени на обращение при записи.
Средняя длина очереди диска
Средняя длина очереди диска отображает количество операций диска, поставленное в очередь за определенный интервал времени. Это значение рассчитывается на основе закона Литтла, согласно которому количество запросов, ожидающих обработки, в среднем равняется частоте поступления запросов, умноженной на время обработки запроса.
Текущая длина очереди диска
Показывает количество операций с диском, которые ожидают обработки на текущий момент времени.
Скорость обмена с диском
Значение, которое показывает среднее количество байт на чтение/запись, отправленных на диск за одну секунду.
Средний размер одного обмена с диском
Количество байт, передаваемое за одну IOPS. Определяется как среднеарифметическое за период времени.
Расщеплений ввода/вывода на диск
Частота разбиения операций записи/чтения на несколько операций. В случае большой фрагментации диска будут запрашиваться большие блоки и вызывать увеличение показателя.
Таким образом, для правильной архитектуры дисковой подсистемы важно сформировать требования к отказоустойчивости массива, которые зависят от важности размещенной на дисках информации, а также спрогнозировать приблизительную нагрузку в IOPS для формирования надежной и производительной масштабируемой системы.
Сервисы на базе платформы 1С при работе с диском генерируют значительно большее количество операций записи, чем чтения, поэтому для максимального быстродействия дисковая подсистема должна иметь наибольшее количество IOPS и наименьшее значение пенальти для RAID-массива.
Мы в своей работе рекомендуем использовать следующие RAID массивы: