+7 495 230 03 03 8 800 222 50 03

Производительность RAID-массивов

Дата публикации: 15 февраля 2017
Производительность RAID-массивов

Делая аудит производительности систем на базе 1С, мы очень часто сталкиваемся со значительными проблемами в дисковой системе, вызванными неправильной ее архитектурой. Поэтому мы решили создать специальный RAID-калькулятор, который позволяет просчитать потенциальную производительность дисковой подсистемы и облегчить процесс ее проектирования. Конечно же, кроме дисковой подсистемы важно правильно подобрать и другие компоненты серверной платформы, процесс подбора которых хорошо описан в статье Проектирование сервера 1С.

RAID-калькулятор

Уровень RAID
Тип диска
Количество дисков

Объем дисков (ГБ)
Чтение / Запись:
: :
Результат расчета:

Объем Массива (ГБ):

Количество IOPS:



Реализация дисковых подсистем может быть довольно разнообразная: могут использоваться локальные диски, подключенные к встроенному контроллеру, или использоваться внешний контроллер, а также могут использоваться системы SAN (СХД, Storage). Но во всех способах реализации диски объединяются в логические пулы, которые называются RAID-массивами. Такое объединение решает в основном вопрос сохранности данных, т.е. в случае выхода из строя одного из дисков логического массива – он продолжает работать без остановки сервиса, а главное без потери данных. А также объединение дисков в пул может решать вопрос производительности пула, например, RAID 0 значительно увеличивает скорость чтения, но при этом увеличивает вероятность выхода из строя массива.

Итак, RAID – это технология виртуализации данных, которая объединяет несколько дисков в логический элемент для повышения отказоустойчивости и повышения производительности.


IOPS

Важным показателем производительности дисковой подсистемы является количество элементарных операций в единицу времени (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 RAID 0 от 2 Нет Производительность RAID-массивов - EFSOL Производительность RAID-массивов - EFSOL Информация разбивается на блоки данных фиксированной длины и записывается на оба/несколько дисков поочередно. 1
RAID 1 RAID 1 от 2 1 Не меняется по сравнению с использованием одного диска. Производительность RAID-массивов - EFSOL Данные пишутся и на один диск, и на второй (зеркалируются). 2
RAID 5 RAID 5 от 3 1 Производительность RAID-массивов - EFSOL Производительность RAID-массивов - EFSOL Блоки данных и контрольные суммы циклически записываются на все диски массива. 4
RAID 6 RAID 6 от 4 2 Производительность RAID-массивов - EFSOL Производительность RAID-массивов - EFSOL Блоки данных и контрольные суммы циклически записываются на все диски массива, но контрольных суммы две. 6
RAID 10 RAID 10 от 4 от 1 до N/2 дисков в пределах разных зеркал. Производительность RAID-массивов - EFSOL Производительность RAID-массивов - EFSOL Зеркалированный массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Эта архитектура представляет собой массив типа RAID 0, сегментами которого вместо отдельных дисков являются массивы RAID 1. 2
RAID 50 RAID 50 от 6 от 1 до 2 дисков, если выйдет одинаковое количество дисков в разных страйпах. Производительность RAID-массивов - EFSOL Производительность RAID-массивов - EFSOL Массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Однако сегментами его вместо отдельных дисков являются массивы RAID 5. 4

Таблица 2. Наиболее распространенные типы RAID-массивов



RAID 60 и 61 являются комбинированием RAID-массивов 0 и 1 соответственно, сегментами которого вместо отдельных дисков являются массивы RAID 6. Такие массивы наследуют все преимущества и недостатки составляющих их RAID-массивов. На практике наиболее распространенными RAID-массивами являются RAID 1, RAID 5 и RAID 10.


Показатели производительности дисковой подсистемы

Проверка производительности дисковой подсистемы должна проводиться на основе следующих показателей:

% Активности диска

Показывает процент общей загруженности диска. Представляет из себя сумму значений счетчиков – процент активности диска при чтении и процент активности диска при записи. При использовании RAID-массивов часто можно увидеть значения этого счетчика больше 100%.

% Бездействия диска

Показывает время простоя диска, т.е. время, в течении которого диск оставался в состоянии покоя, не обрабатывая операции чтения записи. В отличии от предыдущего показателя лежит строго в диапазоне от 100% (полный покой) до 0% (полная загрузка).

Обращений к диску

Этот показатель как раз и показывает количество IOPS. Предельные значения как раз и указаны в расчетах. Показатель можно детализировать на обращения к диску при записи и при чтении.

Среднее время обращения к диску

Среднее время в секундах, требуемое для выполнения диском одной операции чтения или записи. Складывается из значений времени на обращение при чтении и времени на обращение при записи.

Средняя длина очереди диска

Средняя длина очереди диска отображает количество операций диска, поставленное в очередь за определенный интервал времени. Это значение рассчитывается на основе закона Литтла, согласно которому количество запросов, ожидающих обработки, в среднем равняется частоте поступления запросов, умноженной на время обработки запроса.

Текущая длина очереди диска

Показывает количество операций с диском, которые ожидают обработки на текущий момент времени.

Скорость обмена с диском

Значение, которое показывает среднее количество байт на чтение/запись, отправленных на диск за одну секунду.

Средний размер одного обмена с диском

Количество байт, передаваемое за одну IOPS. Определяется как среднеарифметическое за период времени.

Расщеплений ввода/вывода на диск

Частота разбиения операций записи/чтения на несколько операций. В случае большой фрагментации диска будут запрашиваться большие блоки и вызывать увеличение показателя.



Таким образом, для правильной архитектуры дисковой подсистемы важно сформировать требования к отказоустойчивости массива, которые зависят от важности размещенной на дисках информации, а также спрогнозировать приблизительную нагрузку в IOPS для формирования надежной и производительной масштабируемой системы.

Сервисы на базе платформы 1С при работе с диском генерируют значительно большее количество операций записи, чем чтения, поэтому для максимального быстродействия дисковая подсистема должна иметь наибольшее количество IOPS и наименьшее значение пенальти для RAID-массива.

Мы в своей работе рекомендуем использовать следующие RAID массивы:

  • RAID 1 для формирования дисковой подсистемы для ОС.
  • RAID 10 для хранения 1С баз и данных, требования к скорости записи у которых высокие.
  • RAID 5 для хранения файловых данных.
Лого ES мини

EFSOL

  • Аноним

    Коллеги, спасибо за статью. Калькулятор конечно же еще можно калибровать. Обратите внимание на решения по виртуальным сетевым стореджам (Nutanix и MS Storage Spaces Direct).
    В перспективе такие решения выглядят интересней чем выделенные хранилища – вы не зависите от конкретной железки, масштабируете хранилище с каждой новой нодой кластера и не попадаете на завышенную стоимость фирменных дисков.
    Nutanix сильно понравился интерфейсом, функциями вроде миграции между дата центрами. Правда расширяемость закончилась на ограничении в 4-ре ноды версии «Community edition», а для переходя на старшую версию нужно закупать не только софт но и железку. Лицензия без железа не продается, это не очень удобно, поэтому сейчас внедряем MS SSD.

  • Аноним

    А тесты на реальном железе проводились? на сколько погрешность в расчётах на калькуляторе и “живой” системе (пЫсЫ хотелось бы так же понять есть ли разница между железными контролерами и софт реализациями в плане быстродействия)

    • https://efsol.ru/ EFSOL

      Тесты проводились на отдельном аппаратном сервере, сторедже Supermicro и системе хранения данных Hitachi. Данные в калькуляторе усреднены и максимально приближены к эмпирическим. Тесты аппаратной реализации и софтовой (Linux based RAID) давали незначительные отклонения. У софт-RAID на Linux показатели были незначительно выше.

  • Аноним

    Здравствуйте. Несколько вопросов:
    1) Почему Вы считаете, что скорость записи в RAID1 не меняется по сравнению с использованием одиночного диска. Разве информация не должна записываться на ведущий и ведомый диски одновременно, что ухудшает скорость выполнения?
    2) Не заметил в показателях производительности системы упоминание о кэше, почему? К примеру в системах хранения данных кеш играет большую роль в процессе обмена информацией с дисками.
    3) Сервисы на базе платформы 1С при работе с диском генерируют значительно большее количество операций записи – это официальная информация от компании 1С?
    Спасибо

    • https://efsol.ru/ EFSOL

      1) Формально скорость записи не уменьшается. Проверено на практике.

      2) Суть статьи в анализе “чистых” RAID массивов, без кэшей (контроллеров, CХД, файловых систем).

      3) Сервисов на базе 1с большое количество и все они генерируют разные значения по нагрузке дисковой подсистемы. Значения были взяты усредненные, основанные на довольно значительных эмпирических данных.

      Спасибо за Ваш отзыв, всегда рады конструктивной критике!

  • Аноним

    Очень понравился калькулятор – давно такой искал.
    Вот немного настораживает факт, что в RAID1 кол-во IOPs больше чем в единичном диске. Вот всегда почему-то думал что оно равно 🙁
    Если не тяжело, дайте ссылку на какой-то авторитетный источник, которым пользовались при изготовлении калькулятора. Интересует только разница по IOPs между зеркалом и отдельным диском.

    • https://efsol.ru/ EFSOL

      Здравствуйте, Александр! Дело в том, что для изготовления калькулятора использовались формулы, выведенные эмпирическим путем. Таким образом, основой калькулятора стали статистические данные, полученные при тестировании различных RAID-массивов, а также при изучении статистических данных реальных систем.

  • Аноним

    Калькулятор хорош. 2 вопроса меня интересуют:
    1. Скажите, есть ли какие-то расчеты зависимости производительности 1С от скорости записи /чтения/ кол-ва IOPs. Грубо говоря есть у меня RAID10 из 4 дисков SSD. Тест Гилева показывает 44 единицы. Если я добавляю в массив еще 4 диска – какое будет значение – интуитивно чувствую, что рост какой-то будет, но скорее всего небольшой.
    2. Читал когда-то на Хабре о том, что собирать 10-й рейд из более чем толи 8 толи 16 дисков нет смысла, так как производительность при дальнейшем наращивании кол-ва дисков не растет. Если в курсе такого явления – прокомментируйте пожалуйста в чем там суть. По калькулятору вижу что кол-во iops растет прямо пропорционально кол-ву дисков : при 100 дисках кол-во iops ровно в 10 раз больше чем при 10

    • https://efsol.ru/ EFSOL

      Олег, спасибо за Ваш вопрос. К сожалению, мы не проводили тестирование зависимости “попугаев” Гилева от количества дисков в RAID-массиве, поэтому сказать сложно. Тест Гилева, в принципе, довольно относительный и не всегда отражает реальную картину производительности сервера в целом и дисковой подсистемы в частности.
      Отвечая на Ваш второй вопрос, уверены, что прямо пропорциональной зависимости нет между увеличением количества дисков и количеством IOPS.

  • Аноним

    Если честно, не понял как он работает. Есть 6 дисков, рейд 5, при 100% чтении получаем 6*140, замечательно. Берем рейд 50 и те же 6 дисков, по 3 в группе. Получаем iops 140*3*2. А калькулятор показывает, будто у нас дисков вдвое больше стало… Если он думает, что “количество дисков” это на самом деле количество дисков в рейд-группе, то почему он не дает 50 рейд посчитать с цифрой 3 в количестве… А если все-таки это полное количество дисков – откуда такой бешеный прирост относительно 5 рейда на тех же дисках?

    • https://efsol.ru/ EFSOL

      Добрый день. Во-первых, спасибо за внимание к статье. Ваши отзывы нам очень важны. Во-вторых, значение все-таки примерные. В третьих, сложно усомнится, что 50-й рейд будет быстрее в чтении, чем 5-й рейд, но гораздо медленнее в записи. В формулах есть условности, поэтому проектирование дисковой подсистемы – сложный и не тривиальный процесс.

  • Аноним

    А скажите, если сгорит рейд контролер, а собран рейд 5, как потом данные восстановить?
    Достаточно ли найти такой же рейд контролер или же должен быть идентичный контролер и материнская плата? И вопрос еще: диски в новый контролер можно подключить в произвольном порядке или же нужно точно так же как и в сгоревшем?

    • https://efsol.ru/ EFSOL

      Добрый день, Артем. Вы мыслите в правильном русле. Да, достаточно найти такой же контроллер и вставить диски в том же порядке. Порядок установки дисков так же важен, как и контроллер. Ну и не стоит делать инициализацию =)

  • world station

    очень странный калькулятор. почему вы тип интерфейса и тип диска приравняли к категориям? по вашему, не бывает sas ssd?

    • https://efsol.ru/ EFSOL

      на тот момент, когда писалась статья, а это было 4 года назад, мы использовали для подготовки калькулятора те диски, которые были на нашем хостинге, в данном случае речь идет о SAS SSD.

  • Аноним

    А нельзя ли хоть как-то пересчитать в мегабиты и гигабиты? Вот рейд 6 на 10 дисках, каждый читать может со скоростью 100 мегабит, значит весь массив может породить трафик в 8гигабит , можно так?

    • https://efsol.ru/ EFSOL

      В Вашем примере получается RAID 6 из 10-ти дисков будет иметь скорость чтения 8Х.
      Если скорость чтения одного диска 100Мбит – то массива будет 800Мбит.
      Скорость записи при этом будет 1Х

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.