Что измеряется штрафом за рейд
Обновлено: 21.11.2024
Обычно при обсуждении производительности различных типов защиты RAID делается вывод, что RAID-1 обеспечивает лучшую производительность чтения и записи, производительность RAID-5 хорошая, но производительность записи не такая хорошая, как у RAID-1, RAID -6 имеет более высокий уровень защиты, но производительность записи относительно хуже. RAID10 обеспечивает лучшую производительность и защиту данных, но самая высокая стоимость. На самом деле факторы, определяющие эти соображения производительности, очень просты, это RAID Write Penalty (штраф за запись). В этой статье в принципе объясняется штраф за запись для различных уровней защиты RAID и метод расчета доступных операций ввода-вывода в секунду с помощью штрафа за запись.
Пример штрафа за запись в RAID-5:
В процессе планирования решения для хранения данных необходимо учитывать два основных фактора: производительность и емкость. Расчеты производительности можно разделить на требования к IOPS и полосе пропускания. Рассчитывайте IOPS независимо от кэш-памяти и передних портов массива хранения. Вычисление IOPS внутреннего физического диска невозможно просто получить, добавив максимальное количество IOPS физического диска. Причина в том, что для разных уровней RAID, чтобы обеспечить возможность восстановления данных при повреждении физического диска, в процессе записи данных требуются специальные расчеты. Например, для RAID-5 контрольная цифра будет пересчитываться при изменении данных на любом диске на полосе. Как показано на рисунке ниже, в страйпе 7+1 RAID-5 данные хранятся на семи дисках, а на последнем диске хранятся биты четности.
Для записи данных мы предполагаем, что на пятый диск записаны данные 1111, как показано на рисунке ниже. Далее весь процесс записи RAID-5 делится на следующие этапы:
Просмотр образа
1. Прочитайте исходные данные 0110, а затем выполните операцию XOR с новыми данными 1111: 0110 XOR 1111 = 1001
2. Прочитайте исходную калибровку. Проверьте цифру 0010
3. Используйте значение, рассчитанное на первом шаге, и исходную контрольную цифру, чтобы выполнить другую операцию XOR: 0010 XOR 1001 = 1011
4. Затем запишите новые данные 1111 на диск данных, а новые, рассчитанные на третьем шаге. Контрольная цифра записывается на контрольный диск.
Из приведенных выше шагов видно, что для любой записи требуется два чтения + две записи на стороне хранилища, поэтому значение штрафа за запись для RAID-5 равно 4.
Наказание за запись для разных уровней RAID:
В следующей таблице перечислены значения штрафа за запись для различных уровней RAID:
RAID | штраф за запись |
---|---|
0 | 1 |
1 | 2 |
5 | 4 |
6 | |
10 | 2 |
RAID-0: прямое чередование, каждая запись данных соответствует одной записи на физическом диске
RAID-1 и 10: штраф за запись в RAID-1 и RAID-10 прост для понимания. Поскольку существует зеркальное отображение данных, за одну запись будет выполняться две операции записи.
RAID-5: RAID-5 требует четырех шагов: чтение данных, чтение контрольной цифры, запись данных и запись контрольной цифры из-за существования механизма для вычисления контрольных цифр, поэтому значение штрафа за запись для RAID-5 составляет 4.
RAID-6: RAID-6 имеет две контрольные цифры. По сравнению с RAID-5 ему необходимо прочитать две контрольные цифры и записать две контрольные цифры. Таким образом, значение штрафа за запись для RAID-6 равно 6.
Согласно приведенному выше описанию, в фактическом процессе проектирования решения для хранения расчет фактического доступного IOPS должен быть включен в расчет штрафа за запись RAID. Формула расчета выглядит следующим образом:
Общее количество операций ввода-вывода в секунду на физическом диске = количество операций ввода-вывода в секунду на физическом диске × количество дисков,
доступное количество операций ввода-вывода в секунду = (общее количество операций ввода-вывода в секунду на физическом диске × процент записи ÷ штраф за запись RAID) + (общее количество операций ввода-вывода в секунду на физическом диске × процент чтения)
Предполагая, что физические диски, составляющие RAID-5, могут обеспечить в общей сложности 500 операций ввода-вывода в секунду, а соотношение чтения и записи приложений, использующих хранилище, составляет 50 %/50 %, тогда для внешнего хоста фактическое доступный IOPS:
Что такое штраф за запись?
Что такое штраф за запись в RAID? Почему это важно?
Определение типа RAID для использования при построении решения для хранения данных в значительной степени зависит от двух факторов. емкость и производительность.
Тема, которую мы здесь рассмотрим, — это производительность, и на первом этапе нам нужно понять «штраф за запись».
Мы измеряем производительность диска как IOPS (вход-выход в секунду). Запрос на чтение или запрос на запись = 1 IO. Каждый диск в вашей системе хранения может обеспечить определенный объем операций ввода-вывода. На основе скорости вращения, средней задержки и среднего времени поиска. Ниже я вставил некоторые средние значения из Википедии для каждого типа дисков. Поскольку SSD меняют эту игру, необходимо оценивать их отдельно. Штраф за запись рейда, который является нашей основной темой, не меняется, даже если диски SSD.
Таблица средних значений IOPS для механических жестких дисков:
Размер блока, используемый во время тестирования, существенно влияет на количество операций ввода-вывода в секунду, выполняемых конкретным драйвером. Ниже приведены некоторые типичные показатели производительности:
Диск (тип/об/мин) | IOPS (блок 4 КБ, случайный) | IOPS (блок 64 КБ, случайный) | МБ/с (блок 64 КБ, случайный) | IOPS (блок 512 КБ, случайный) ) | МБ/с (блок 512 КБ, случайный) | МБ/с (большой блок, последовательный) |
---|---|---|---|---|---|---|
SAS/15K | 188–203 | 175–192 | 11,2–12,3 | 115–135 | 58,9–68,9 | 91,5–126,3 |
FC/15K | 163–178 | 151–169 | 9,7–10,8 | 97–123 | 49,7–63,1 | 73,5–127,5 | tr>
FC/10K | 142 – 151 | 130 – 143 | 8,3 – 9,2 | 80 – 104 | 40,9–53,1 | 58,1–107,2 |
SAS/10K | 142–151 td> | 130–143 | 8,3–9,2 | 80–104 | 40,9–53,1 | 58,1–107,2 td> |
SATA/7200 | 73–79 | 69–76 | 4,4–4,9 | < td>47 – 6324,3 – 32,1 | 43,4 – 97,8 | |
SATA/5400 | 57 | 55 | 3,5 | 44 | 22,6 |
Давайте предположим, что у нас есть три диска со скоростью 5400 об/мин для некоторых основных расчетов IOPS. Мы можем представить, что у нас максимум 165 IOPS. Мы находим это, умножая количество дисков на количество операций ввода-вывода в секунду, которые может выполнять каждый диск (IO на диск = 55 x 3 = 165). Мы можем получить это значение только при использовании Raid 0. Как вы знаете, Raid 0 — это модель Raid, которая не обеспечивает никакой защиты данных. Разделяя данные по всем дискам, он обеспечивает производительность всех дисков без дополнительных потерь операций ввода-вывода.
Теперь мы предполагаем, что эти диски по умолчанию находятся в защищенной структуре RAID. В этом случае мы не можем получить максимальное количество операций ввода-вывода в секунду, потому что необходимо выполнить какие-то вычисления для записи данных на диск, чтобы мы могли получить доступ к нашим данным в случае сбоя диска. Чтобы понять, как обеспечивается эта защита, давайте сначала приведем пример расчета четности.
Допустим, у нас есть система RAID 4 с четырьмя дисками. На трех из этих дисков будут данные, а на последнем диске будет информация о четности. Вычисление XOR используется для определения информации о контрольной сумме. Как показано ниже, у нас есть три диска с записанными на них данными, а затем нам нужно вычислить информацию о четности для четвертого диска. Если один из процессов выйдет из строя, мы не сможем завершить запись, пока и данные, и информация о контрольной сумме не будут полностью записаны на диск. Дополнительное время ожидания записи контрольной суммы является штрафом RAID.
Поскольку нет необходимости вычислять четность в показаниях, штрафы, связанные с этим типом ввода-вывода, отсутствуют. Штраф за RAID вступает в силу, когда вы только записываете на диск, потому что вычисление четности XOR для Raid выполняется только для записи. Как я только что упомянул, группа дисков RAID0 не имеет вычисляемого хеш-значения, поэтому для этого типа рейда нет штрафа за запись. Нет штрафа за RAID; Штраф за рейд = 1.
Штрафы на запись по типу RAID:
Здесь тоже фактически нет счета контрольной суммы, как в RAID 0, но для безопасности данных каждые отправляемые данные будут записываться дважды, так как копия одних и тех же данных записывается на второй диск. Рассчитать штраф за RAID 1 в этом случае достаточно просто. Штраф за письмо - 2.
Здесь одновременно используются RAID 0 и RAID 1. Поскольку для рейда 0 нет штрафа за печать, учитывается только штраф рейда 1. Рассчитать штраф за RAID 10 в этом случае достаточно просто. Штраф за запись равен 2, как и в рейде 1.
RAID 5 на самом деле использует точно такие же вычисления, как и RAID 4. В RAID 4, хотя резервный диск является фиксированным, то есть резервный диск всегда записывается на один и тот же диск при записи данных, в RAID 5 хэш-данные постоянно меняющийся. То есть данные контрольной суммы не записываются на жесткий диск, а распределяются по всем дискам.
В сценарии RAID 5 штраф за запись снова равен 4, как мы объяснили в модели RAID 4 выше, потому что в модели записи нет никакой разницы, за исключением того, что резервный диск не фиксируется. мы читаем данные для каждого изменения,
RAID 6 работает почти так же, как RAID 5, но данные контрольной суммы вычисляются дважды и записываются на два разных диска. Это приводит к увеличению штрафа на 2. Потому что теперь, как и в RIAD 4 и 5, он должен выполнить 3 чтения и 3 записи вместо чтения и записи от 1 до 3 дисков.
Обзор:
Я постараюсь привести формулу, используемую для расчета влияния письма на производительность, в другой статье.
В принципе, достаточно знать, что расчет штрафа производится для части до скорости записи сверх скорости чтения/записи. Другими словами, для системы со 100% чтением штраф за запись не будет иметь большого значения. Но модель RAID, которая будет использоваться в системе со скоростью записи 80–100 %, напрямую повлияет на производительность.
Как вы увидите, самые быстрые системы для безопасной записи данных: Raid1 и Raid10. По этой причине большинство администраторов БД предпочитают запускать системы на RAID 10, чтобы производительность не превышала никаких целей из-за штрафа за запись. При сохранении штрафа за запись в системах RAID 1 и RAID 10 можно получить емкость N / 2 (N = количество дисков). Другими словами, отдача от производительности отрицательно влияет на емкость.
Как вы можете догадаться, наиболее предпочтительной системой для общего использования является структура RAID 5. Здесь предоставляется самое большое доступное дисковое пространство (N-1) при сохранении баланса со средним штрафом за запись. По этой причине это наиболее предпочтительная модель Raid.
Raid6 — это модель RAID с большими потерями емкости и производительности. В качестве емкости может дать емкость N-2. Причина, по которой этот тип Raid используется, несмотря на это, заключается в преодолении проблем, которые могут возникнуть с типами дисков SATA, NL-SAS с большой емкостью, низкой скоростью вращения (5400 и 7200 об/мин). Причина этого в том, что эти типы дисков имеют низкую производительность и очень большую емкость. В случае выхода из строя этого высокопроизводительного и малопроизводительного диска процесс воссоздания и записи всех данных на новый диск может занять до нескольких недель при вводе нового диска в эксплуатацию. Поскольку в этот период может произойти сбой нового диска, предпочтение отдается модели RAID 6, обеспечивающей защиту 2 дисков, а не моделям защиты данных, обеспечивающим защиту одного диска, например RAID 5 или RAID1/10. Таким образом, даже если второй диск происходит сбой во время процесса перестроения, в системе не происходит потери данных.
Выбор уровня RAID — это попытка сбалансировать множество факторов, включая стоимость, надежность, емкость и, конечно же, производительность.
Понять производительность RAID может быть сложно, особенно если учесть, что разные уровни RAID используют разные методы и на практике ведут себя по-разному. В этой статье я хочу изучить общие уровни RAID 0, 5, 6 и 10, чтобы увидеть, как производительность отличается между ними.
Для целей этой статьи предполагается, что RAID 1 является подмножеством RAID 10. Часто это удобный способ думать о RAID 1 — просто как о массиве RAID 10 с единственным зеркальным член пары. Поскольку RAID 1 действительно представляет собой RAID 10 с одной парой и ведет себя соответствующим образом, это прекрасно работает для упрощения понимания производительности RAID. Он просто отражает кривую производительности RAID 10.
RAID Чтение, Запись 101
Есть два типа производительности всех хранилищ: чтение и запись. С точки зрения RAID чтение чрезвычайно просто, а запись довольно сложна. Производительность чтения эффективно стабильна для всех типов. Однако писать — нет.
Чтобы упростить обсуждение производительности, нам нужно определить несколько терминов, так как мы будем работать с некоторыми уравнениями. В наших обсуждениях мы будем использовать «N» для обозначения общего количества дисков, часто называемых шпинделями, в нашем массиве. Мы будем использовать «X» для обозначения производительности каждого диска в отдельности. Это позволяет говорить об относительной производительности как факторе производительности привода. Мы можем абстрагироваться от массива RAID и не думать о необработанных IOPS (операциях ввода/вывода в секунду). Это важно, так как IOPS часто очень трудно определить. Но мы можем осмысленно сравнить производительность, говоря о ней по отношению к отдельным дискам в массиве.
Также важно помнить, что речь идет только о производительности самого массива, а не всей подсистемы хранения. Артефакты, такие как кэши памяти и твердотельные кэши, будут творить удивительные вещи, изменяя общую производительность подсистемы хранения. Но кардинально производительность самого массива под капотом они не изменят. Не существует простой формулы для определения того, как различные параметры кэша повлияют на общую производительность.Достаточно сказать, что это может сильно зависеть не только от самого выбора кэша, но и от рабочей нагрузки. Даже самый большой, быстрый и надежный кэш не может изменить долговременную и устойчивую производительность массива.
RAID — это сложный процесс, и на конечную производительность влияет множество факторов. Одним из них является реализация самой системы. Плохая реализация может вызвать задержку. Или он может не использовать доступные шпиндели (например, когда массив RAID 1 считывается только с одного диска, а не с обоих одновременно!) Не существует простого способа учесть недостатки в конкретных реализациях. Мы должны предположить, что все работают в пределах спецификации. Для этого подойдет любая корпоративная система RAID. В первую очередь в этом аспекте терпят неудачу любительские и потребительские RAID-системы.
Роль ЦП в производительности RAID
Некоторые типы RAID также связаны с большими вычислительными затратами, а другие — нет. Прежде всего, уровни RAID с четностью требуют интенсивной обработки для обработки операций записи, при этом разные уровни требуют разного объема вычислений, необходимых для каждой операции. Это приводит к задержке, но не снижает пропускную способность. Однако эта задержка будет варьироваться в зависимости от реализации уровня RAID, а также от вычислительных возможностей системы.
Аппаратный RAID будет использовать что-то вроде ЦП общего назначения (часто процессор Power или ARM RISC) или специальный ASIC для обработки этого. Программный RAID передает это собственному процессору сервера. Часто процессор сервера здесь действительно быстрее, но потребляет системные ресурсы. ASIC могут быть очень быстрыми, но дороги в производстве. Эта задержка влияет на производительность системы хранения, но ее очень трудно предсказать, и она может варьироваться от номинальной до существенной. Поэтому я упомяну об относительном влиянии задержки для каждого уровня RAID, но не буду пытаться его измерить. В большинстве расчетов производительности RAID эта задержка игнорируется. Тем не менее, он все еще присутствует. В зависимости от конфигурации массива это может заметно повлиять на рабочую нагрузку.
Следует отметить, что операции чтения незначительно влияют на производительность из-за эффективного размещения данных на самом диске. Parity RAID требует, чтобы на дисках были данные, которые бесполезны во время исправной операции чтения, но не могут быть использованы для ее ускорения. Это на самом деле приводит к тому, что он немного медленнее. Но это влияние смехотворно мало и обычно не измеряется, поэтому им можно пренебречь.
Разумеется, такие факторы, как размер полосы, также влияют на производительность. Но так как это настраивается, а не является внутренним артефактом на любом уровне, я буду игнорировать его здесь. Это не фактор при выборе самого уровня RAID, а только при его настройке после выбора.
Соотношение чтения/записи для хранилища
Последний фактор, о котором я хочу упомянуть, — это соотношение операций чтения и записи в операциях хранения. Некоторые массивы RAID будут использоваться почти исключительно для операций чтения, некоторые — почти исключительно для операций записи. Большинство из них будет использовать смесь двух, вероятно, что-то около восьмидесяти процентов чтения и двадцати процентов записи. Это соотношение очень важно для понимания производительности, которую вы получите от вашего конкретного массива, и понимания того, как каждый уровень RAID повлияет на вас. Я называю это сочетанием чтения и записи.
Мы измеряем производительность системы хранения главным образом по количеству операций ввода-вывода в секунду. IOPS означает количество операций ввода/вывода в секунду (да, я знаю, что буквы не совпадают, но это именно то, что есть). Далее я использую термины RIOPS для чтения IOPS, WIOPS для записи IOPS и BIOPS для смешанного IOPS с соотношением 80/20 или любым другим. Многие говорят о производительности хранилища с одним числом IOPS. Когда это делается, они обычно имеют в виду смешанные операции ввода-вывода в секунду при соотношении 50/50. Однако редко какая-либо рабочая нагрузка работает с соотношением 50/50, поэтому это число может вводить в заблуждение. Нам нужны два числа, RIOPS и WIOPS, чтобы понять производительность. Мы можем использовать эти два вместе, чтобы найти любое сочетание IOPS, которое нам нужно. Например, смесь 50/50 так же проста, как (RIOPS * 0,5) + (WIOPS * 0,5). Более распространенным сочетанием 80/20 будет (RIOPS * 0,8) + (WIOPS * 0,2).
Теперь, когда мы установили некоторые критерии и справочную информацию, мы углубимся в наши уровни RAID и посмотрим, как производительность зависит от них.
Для всех уровней RAID мы рассчитываем показатель IOPS при чтении с помощью NX. Конечно, это не касается номинальных накладных расходов, о которых я упоминал выше. Это число «наилучшего случая». Но реальное мировое число настолько близко, что очень удобно просто использовать эту формулу.Просто возьмите количество шпинделей (N) и умножьте на производительность IOPS отдельного диска (X). Имейте в виду, что диски часто имеют разную производительность при чтении и записи. Поэтому обязательно используйте рейтинг IOPS при чтении или протестированную скорость дисков для расчета IOPS при чтении и показатель IOPS при записи или протестированную скорость для IOPS при записи. расчет.
Производительность RAID 0
RAID 0 – это самый простой для понимания уровень, поскольку фактически не нужно беспокоиться о накладных расходах, ресурсы не расходуются на его питание, а операции чтения и записи постоянно используют все преимущества каждого шпинделя. Итак, для RAID 0 наша формула производительности записи очень проста: NX. RAID 0 всегда является самым высоким уровнем производительности.
Примером может служить массив RAID 0 с восемью шпинделями. Если отдельный диск в массиве обеспечивает 125 операций ввода-вывода в секунду, наши расчеты будут основываться на N = 8 и X = 125, поэтому 8 * 125 дает 1000 операций ввода-вывода в секунду. И чтение, и запись IOPS здесь одинаковы. Так что это очень просто, поскольку мы получаем 1 000 RIOPS, 1 000 WIOPS и 1 000 с любым их смешиванием — очень просто. Если бы мы не знали абсолютное количество операций ввода-вывода в секунду для отдельного диска, мы могли бы сослаться на восьмидисковый массив RAID 0 как на обеспечение 8-кратного комбинированного ввода-вывода в секунду.
Производительность RAID 10
RAID 10 имеет второй по сложности уровень для расчета. Поскольку RAID 10 представляет собой чередование наборов зеркал RAID 0, нам не нужно беспокоиться о накладных расходах из-за чередования, но каждое зеркало должно дважды записывать одни и те же данные, чтобы создать зеркалирование. Это вдвое снижает производительность записи по сравнению с массивом RAID 0 из того же количества дисков. Давая нам простую формулу производительности записи: NX/2 или .5NX.
Следует отметить, что при той же емкости, а не при том же количестве дисков, RAID 10 имеет такую же производительность записи, что и RAID 0, но удваивает производительность чтения — просто потому, что требуется в два раза больше дисков, чтобы соответствовать такая же емкость.
Таким образом, массив RAID 10 с восемью шпинделями будет иметь N = 8 и X = 125, и наш результирующий расчет получается (8 * 125)/2, что составляет 500 WIOPS или 4X WIOPS. Сочетание 50/50 даст 750 смешанных операций ввода-вывода в секунду (1000 операций ввода-вывода в секунду при чтении и 500 операций ввода-вывода в секунду при записи).
Эта формула одинаково применима к RAID 1, RAID 10, RAID 100 и RAID 01.
Необычные параметры, такие как тройное зеркалирование в RAID 10, могут изменить этот штраф за запись. Например, RAID 10 с тройным зеркалированием будет NX/3.
Производительность RAID 5
RAID 5 устарел и никогда не должен использоваться в новых массивах. Я включаю его здесь, потому что это хорошо известный и часто используемый уровень RAID, и его производительность необходимо понимать. RAID 5 — самый простой из современных уровней RAID с контролем четности. RAID 2, 3 и 4 больше не используются в производственных системах, поэтому мы не будем здесь рассматривать их производительность. RAID 5, хотя и не рекомендуется для использования в настоящее время, является основой других современных уровней RAID с контролем четности, поэтому его важно понимать.
Регулятор четности добавляет несколько сложную необходимость проверки и повторной записи четности при каждой операции записи на диск. Это означает, что массив RAID 5 должен будет прочитать данные, прочитать контроль четности, записать данные и, наконец, записать контроль четности. Четыре операции на каждую эффективную. Это дает нам штраф за запись на RAID 5 из четырех. Таким образом, формула производительности записи RAID 5 — NX/4.
Таким образом, следуя примеру с восемью шпинделями, где количество операций ввода-вывода в секунду при записи для отдельного диска равно 125, мы получим следующий расчет: (8 * 125)/4 или 2X IOPS при записи, что дает 250 WIOPS. В сочетании 50/50 это даст 625 смешанных операций ввода-вывода в секунду.
Производительность RAID 6
RAID 6, после RAID 10, вероятно, является наиболее распространенным и полезным уровнем RAID, используемым сегодня. Однако RAID 6 основан на RAID 5 и имеет другой уровень четности. Это делает его значительно более безопасным, чем RAID 5, что очень важно, но также налагает серьезные штрафы за запись. Каждая операция записи требует, чтобы диски считывали данные, считывали первую четность, считывали вторую четность, записывали данные, записывали первую четность и, наконец, записывали вторую четность. Получается, что это шестикратный штраф за запись, что довольно драматично. Итак, наша формула NX/6.
Продолжая наш пример, мы получаем (8 * 125)/6, что дает примерно 167 операций ввода-вывода в секунду при записи или 1,33X. В нашем примере со смешанными операциями 50/50 это составляет 583,5 смешанных операций ввода-вывода в секунду. Как видите, операции записи с контролем четности вызывают очень быстрое снижение производительности записи и заметное снижение производительности смешанных операций.
Производительность RAID 7 (он же RAID 5.3 или RAID 7.3)
RAID 7 — это несколько нестандартный уровень с тройной четностью, основанный на существующей одинарной четности RAID 5 и существующей двойной четности RAID 6. Единственная текущая реализация RAID 7 — ZFS RAIDZ3. Поскольку RAID 7 включает в себя все служебные данные как RAID 5, так и RAID 6, а также дополнительные служебные данные третьего компонента контроля четности, мы имеем ошеломляющие восьмикратные штрафы за запись. Таким образом, наша формула определения производительности записи RAID 7 — NX/8.
В нашем примере это будет означать, что (8 * 125)/8 будет равно 125 операций ввода-вывода в секунду при записи или 1X. Таким образом, с восемью дисками в нашем массиве мы получим производительность записи только одного автономного диска. Это значительные накладные расходы. Наш смешанный 50/50 IOPS выдаст только 562,5.
Комплексная производительность RAID
Сложные уровни RAID или вложенные уровни RAID, такие как RAID 50, 60, 61, 16 и т. д., можно найти с помощью приведенной выше информации. Вы можете разбить RAID на его компоненты и применить приведенные выше формулы. Для этих уровней нет простой формулы, потому что они имеют разную конфигурацию. Необходимо разбить их на составляющие и применить формулы несколько раз.
RAID 60 с двенадцатью дисками, два набора по шесть дисков, где каждый диск имеет производительность 150 операций ввода-вывода в секунду, будет выполнен с двумя RAID 6. Это будет NX RAID 0, где N равно двум (для двух массивов RAID 6), а X — результирующая производительность каждого RAID 6. Каждый набор RAID 6 будет равен (6 * 150)/6. Таким образом, полный массив будет равен 2((6 * 150)/6). В результате получается 300 операций ввода-вывода в секунду при записи.
Тот же пример, что и выше, но сконфигурированный как RAID 61, зеркальная пара массивов RAID 6, будет иметь ту же производительность для каждого массива RAID 6, но применительно к формуле RAID 1, которая равна NX/2 (где X — результирующая производительность каждого массива RAID.) Таким образом, окончательная формула будет 2((6 * 150)/6)/2, что даст 150 операций ввода-вывода в секунду при записи с двенадцати дисков.
Производительность как фактор емкости
Когда мы составляем формулы производительности RAID, мы думаем о них с точки зрения количества шпинделей, что невероятно разумно. Это очень полезно при определении производительности предлагаемого или даже существующего массива, где измерение невозможно, и позволяет нам сравнить относительную производительность между различными предложенными вариантами. Именно в этих терминах мы обычно думаем о производительности RAID.
Однако это не всегда хороший подход, поскольку обычно мы рассматриваем RAID как фактор емкости, а не производительности или количества дисков. Было бы очень редко, но, безусловно, возможно, чтобы кто-то рассматривал массив RAID 6 с восемью дисками по сравнению с массивом RAID 10 с восемью дисками. Время от времени это происходит из-за ограничений шасси или по какой-то другой похожей причине. Но обычно мы рассматриваем массивы RAID с точки зрения общей емкости массива (например, емкости, которую мы можем использовать), а не количества дисков, производительности или любого другого фактора. Поэтому странно, что мы должны переключиться на рассмотрение производительности RAID как функции количества дисков.
Если мы изменим нашу точку зрения и обратимся к емкости как к общему фактору, при этом по-прежнему предполагая, что емкость и производительность отдельных дисков (X) остаются постоянными между компараторами, мы придем к совершенно другому ландшафту производительности. При этом мы видим, например, что RAID 0 больше не является самым производительным уровнем RAID и что производительность чтения резко меняется, а не остается постоянной.
Емкость — вещь непостоянная, но мы можем определить количество шпинделей, необходимое для достижения желаемой производительности. Это значительно упрощает дискуссию. Итак, наш первый шаг — определить количество шпинделей, необходимое для сырой емкости. Если нам нужна емкость 10 ТБ и мы используем диски емкостью 1 ТБ, нам потребуется, например, десять шпинделей. Или, если нам нужно 3,2 ТБ и мы используем диски емкостью 600 ГБ, нам потребуется шесть шпинделей. Мы будем, по-другому, чем раньше, называть количество шпинделей буквой «R». Как и прежде, производительность отдельного диска представлена как «X». (Здесь буква «R» означает, что это значение Raw Capacity Count, а не общее количество шпинделей.)
RAID 0 остается простым. Производительность по-прежнему RX, так как нет дополнительных дисков. И чтение, и запись IOPS — это просто NX.
RAID 10 имеет IOPS для записи RX, но IOPS для чтения 2RX. Это драматично. Неожиданно, рассматривая производительность как фактор стабильной емкости, мы обнаруживаем, что RAID 10 имеет двойную производительность чтения по сравнению с RAID 0!
RAID 5 немного сложнее. Запись IOPS будет выражена как ((R + 1) * X)/4. Число операций ввода-вывода в секунду при чтении выражается как ((R +1) * X).
RAID 6, как мы и ожидали, следует схеме, которую проектирует RAID 5. Запись IOPS для RAID 6 составляет ((R + 2) * X)/6. А количество операций ввода-вывода в секунду при чтении выражается как ((R + 2) * X).
RAID 7 как нельзя лучше подходит. RAID 7 Запись IOPS будет ((R + 3) * X)/8. И IOPS при чтении составляют ((R + 3) * X).
Эта выгодная точка зрения меняет наше представление о производительности, и если рассматривать только производительность чтения, RAID 0 становится самым медленным уровнем RAID, а не самым быстрым, а RAID 10 становится самым быстрым как для чтения, так и для записи независимо от значений. для R и X!
Давайте возьмем реальный пример из 10 дисков по 2 ТБ, чтобы получить 20 ТБ полезной емкости, при этом каждый диск имеет производительность 100 IOPS, и предположим, что соотношение 50/50. Результирующий показатель IOPS будет следующим: RAID 0 с 1000 смешанных операций ввода-вывода в секунду, RAID 10 с 1500 смешанных операций ввода-вывода в секунду (2000 RIOPS / 1000 WIOPS), RAID 5 с 687,5 смешанных операций ввода-вывода в секунду (1100 RIOPS / 275 WIOPS), RAID 6 с 700 смешанных операций ввода-вывода в секунду (1200 RIOPS). / 200 WIOPS) и, наконец, RAID 7 с 731,25 смешанных операций ввода-вывода в секунду (1300 RIOPS / 162,5 WIOPS).
Как я уже говорил ранее, RAID 0 и RAID 10 фактически не требуют учета системных издержек. Операция зеркального отображения практически не требует вычислительных усилий и во всех смыслах неизмеримо мала. RAID с четностью требует дополнительных вычислительных ресурсов, что приводит к задержке на уровне хранения и потреблению системных ресурсов. Конечно, если мы используем аппаратный RAID, эти ресурсы выделены для массива RAID. У них нет другой функции, кроме как быть поглощенными в этой роли. Однако если мы используем программный RAID, это системные ресурсы общего назначения (в первую очередь ЦП), которые потребляются для целей обработки массива RAID. Влияние даже на очень маленькую систему с большим объемом RAID по-прежнему очень мало, но его можно измерить, и его следует учитывать, хотя бы в незначительной степени. Задержка и воздействие на систему напрямую связаны друг с другом. Не существует простого способа указать задержку и влияние на систему для разных уровней. Вот как мы можем выразить это: Во многих случаях эта задержка и влияние на систему настолько малы, что их невозможно измерить стандартными системными инструментами. По мере того, как современные процессоры становятся все более мощными, задержка и влияние на систему будут продолжать уменьшаться. Влияние систем RAID 5 и RAID 6 считалось незначительным для систем RAID 5 и RAID 6 даже на недорогих, серийных аппаратных средствах примерно с 2001 года. ресурсы.
Недостаток RAID 5 заключается в том, что небольшие операции ввода-вывода можно записывать на дисковую систему. Даже если операция записи повлияет только на данные на одном диске, нам все равно нужно вычислить новую четность. Поскольку четность, как объяснялось в другой статье, создается с помощью XOR на всех дисках, теперь это можно сделать двумя способами. Мы могли бы либо выполнить чтение со всеми другими дисками, а затем выполнить операцию XOR с новой информацией. Однако это приведет к очень большим накладным расходам, и нецелесообразно блокировать все остальные диски только для одной записи. Однако существует довольно умный способ вычислить новую четность с минимальным дисковым вводом-выводом.
Предположим, что у нас есть следующие восемь дисков, и запись должна быть выполнена на пятом диске, который должен быть изменен, скажем, на 1111. (Для простоты мы рассмотрим только четыре бита на каждом диске, но это может любого размера.) Для получения нового паритета необходимо выполнить некоторые действия. Сначала читаем старые данные по блокам, которые следует изменить. Мы можем назвать это «Disk5-Old», и это будет первый ввод-вывод, который необходимо выполнить. Данные, которые должны быть записаны, здесь 1111, можно назвать Disk5-New. Disk5-0ld = 0110 Теперь мы будем использовать XOR для старых и новых данных, чтобы вычислить разницу между старыми и новыми. Мы можем назвать это Disk5-Delta. Диск5-Дельта = Диск5-Старое XOR Диск5-Новый = 0110 XOR 1111 = 1001 Когда мы узнаем «дельту», нам придется совершить еще одно чтение. Это против старого паритета. Мы называем это Старая четность, в этом примере старая четность равна 0010. Теперь мы выполним XOR старой четности с помощью Disk5-Delta. Что весьма интересно, так это создаст новую четность, но без необходимости чтения остальных шести дисков. Четность-новая = четность-старая XOR Disk5-Delta = 0010 XOR 1001 = 1011 Когда мы знаем новую четность, мы можем записать как новый блок данных, так и новую четность. Это приводит к двум операциям записи на диски и является последним из «штрафов». Итак, действия с диском, которые необходимо выполнить:Задержка и влияние на систему программного RAID
В наборе RAID 5 с любым количеством дисков мы вычислим информацию о четности для каждой полосы. См. эту статью о том, как работает контроль четности RAID 5. Короче говоря, мы используем операцию XOR для всех двоичных битов на всех дисках и сохраняем результат на диске четности. Например, если у нас есть набор из восьми дисков, фактические данные сохраняются на семи дисках, а контроль четности — на последнем диске, см. рисунок выше.
Disk5-New = 1111
2. Прочитать старую четность
3. Запишите новые данные
4. Запишите новую четность
Это означает, что каждая запись в наборе RAID 5 вызывает четыре операции ввода-вывода для дисков, причем первые две должны быть выполнены до того, как можно будет выполнить две последние, что приводит к некоторой дополнительной задержке.
Читайте также: