В компьютерных хранилищах стандартные уровни RAID включают базовый набор конфигураций RAID («избыточный массив независимых дисков» или «избыточный массив недорогих дисков»), в которых используются методы чередования , зеркалирования или контроля четности для создания больших надежных хранилищ данных из несколько жестких дисков компьютера общего назначения (HDD). Наиболее распространенными типами являются RAID 0 (чередование), RAID 1 (зеркалирование) и его варианты, RAID 5 (распределенная четность) и RAID 6 (двойная четность). Несколько уровней RAID также могут быть объединены или вложены , например RAID 10 (чередование зеркал) или RAID 01 (зеркальное чередование наборов). Уровни RAID и связанные с ними форматы данных стандартизированы Ассоциацией производителей сетей хранения данных (SNIA) в стандарте Common RAID Disk Drive Format (DDF). [1] Числовые значения служат только идентификаторами и не обозначают производительность, надежность, генерацию или какие-либо другие показатели.
Хотя большинство уровней RAID могут обеспечить хорошую защиту и восстановление после аппаратных дефектов или дефектных секторов/ошибок чтения ( жестких ошибок ), они не обеспечивают никакой защиты от потери данных из-за катастрофических сбоев (пожар, вода) или программных ошибок, таких как ошибка пользователя. , сбой программного обеспечения или заражение вредоносным ПО. Для ценных данных RAID является лишь одним из строительных блоков более крупной схемы предотвращения потери данных и восстановления — он не может заменить план резервного копирования .
RAID 0 (также известный как чередующийся набор или чередующийся том ) распределяет (« чередует ») данные равномерно по двум или более дискам, без информации о четности , избыточности или отказоустойчивости . Поскольку RAID 0 не обеспечивает отказоустойчивости и избыточности, выход из строя одного диска приведет к выходу из строя всего массива; в результате чередования данных по всем дискам сбой приведет к полной потере данных. Эта конфигурация обычно реализуется с целью достижения скорости. [2] [3] RAID 0 обычно используется для повышения производительности, хотя его также можно использовать для создания большого логического тома из двух или более физических дисков. [4]
Настройка RAID 0 может быть создана с дисками разного размера, но объем памяти, добавляемый в массив каждым диском, ограничен размером самого маленького диска. Например, если диск емкостью 120 ГБ чередуется с диском емкостью 320 ГБ, размер массива составит 120 ГБ × 2 = 240 ГБ. Однако некоторые реализации RAID позволяют использовать оставшиеся 200 ГБ для других целей.
На диаграмме в этом разделе показано, как данные распределяются по полосам на двух дисках: A1:A2 — первая полоса, A3:A4 — вторая и т. д. После того, как размер страйпа определен во время создания массива RAID 0 , его нужно поддерживать постоянно. Поскольку доступ к полосам осуществляется параллельно, массив RAID 0 с n дисками выглядит как один большой диск со скоростью передачи данных в n раз выше, чем скорость одного диска.
Массив RAID 0 из n дисков обеспечивает скорость чтения и записи данных, в n раз превышающую скорость отдельных дисков, но без избыточности данных. В результате RAID 0 в основном используется в приложениях, требующих высокой производительности и допускающих более низкую надежность, например, в научных вычислениях [5] или компьютерных играх . [6]
Некоторые тесты настольных приложений показывают, что производительность RAID 0 немного выше, чем у одного диска. [7] [8] В другой статье были рассмотрены эти утверждения и сделан вывод, что «чередование не всегда увеличивает производительность (в некоторых ситуациях оно фактически будет медленнее, чем установка без RAID), но в большинстве ситуаций оно приведет к значительному улучшению производительности. ". [9] [10] Синтетические тесты показывают разные уровни улучшения производительности при использовании нескольких жестких дисков или твердотельных накопителей в конфигурации RAID 0 по сравнению с производительностью одного диска. Однако некоторые синтетические тесты также показывают падение производительности при том же сравнении. [11] [12]
RAID 1 состоит из точной копии (или зеркала ) набора данных на двух или более дисках; Классическая зеркальная пара RAID 1 содержит два диска. Эта конфигурация не обеспечивает четности, чередования или разделения дискового пространства на несколько дисков, поскольку данные зеркально отражаются на всех дисках, принадлежащих массиву, а размер массива может быть равен размеру самого маленького диска-члена. Эта схема полезна, когда производительность или надежность чтения более важны, чем производительность записи или результирующая емкость хранилища данных. [13] [14]
Массив будет продолжать работать до тех пор, пока работает хотя бы один диск-участник. [15]
Любой запрос на чтение может обслуживаться и обрабатываться любым диском в массиве; таким образом, в зависимости от характера нагрузки ввода-вывода производительность произвольного чтения массива RAID 1 может равняться сумме производительности каждого члена, [a] в то время как производительность записи остается на уровне одного диска. Однако если в массиве RAID 1 используются диски с разной скоростью, общая производительность записи равна скорости самого медленного диска. [14] [15]
Синтетические тесты показывают различные уровни улучшения производительности при использовании нескольких жестких дисков или твердотельных накопителей в конфигурации RAID 1 по сравнению с производительностью одного диска. Однако некоторые синтетические тесты также показывают падение производительности при том же сравнении. [11] [12]
RAID 2 , который редко используется на практике, распределяет данные на битовом (а не блочном) уровне и использует код Хэмминга для исправления ошибок . Диски синхронизируются контроллером для вращения с одинаковой угловой ориентацией (они достигают индекса одновременно [16] ), поэтому он обычно не может обслуживать несколько запросов одновременно. [17] [18] Однако, в зависимости от высокоскоростного кода Хэмминга , многие шпиндели будут работать параллельно для одновременной передачи данных, так что возможны «очень высокие скорости передачи данных» [19] , как, например, в DataVault думающих машин, где Одновременно передавалось 32 бита данных. IBM 353 [20] также наблюдал аналогичное использование кода Хэмминга и был способен передавать 64 бита данных одновременно, а также 8 битов ECC.
Поскольку все жесткие диски реализовали внутреннюю коррекцию ошибок, сложность внешнего кода Хэмминга не давала большого преимущества перед контролем четности, поэтому RAID 2 реализовывался редко; это единственный оригинальный уровень RAID, который в настоящее время не используется. [17] [18]
RAID 3 , который редко используется на практике, состоит из чередования на уровне байтов с выделенным диском четности . Одной из характеристик RAID 3 является то, что он, как правило, не может обслуживать несколько запросов одновременно, что происходит потому, что любой отдельный блок данных по определению будет распределен по всем членам набора и будет находиться в одном и том же физическом месте на каждом диске. Таким образом, любая операция ввода-вывода требует активности на каждом диске и обычно требует синхронизации шпинделей.
Это делает его подходящим для приложений, требующих высочайшей скорости передачи данных при длительных последовательных операциях чтения и записи, например, при редактировании несжатого видео . Приложения, выполняющие небольшие операции чтения и записи из произвольных мест на диске, получат наихудшую производительность на этом уровне. [18]
Требование, чтобы все диски вращались синхронно (одновременно ) , добавило конструктивных особенностей, которые не давали существенных преимуществ по сравнению с другими уровнями RAID. И RAID 3, и RAID 4 были быстро заменены RAID 5. [21] RAID 3 обычно реализовывался аппаратно, а проблемы с производительностью решались за счет использования больших дисковых кэшей. [18]
RAID 4 состоит из чередования блоков на уровне выделенного диска четности . Благодаря своей структуре RAID 4 обеспечивает хорошую производительность произвольного чтения, в то время как производительность случайной записи низкая из-за необходимости записи всех данных четности на один диск [22] , если только файловая система не поддерживает RAID-4. и компенсирует это.
Преимущество RAID 4 заключается в том, что его можно быстро расширить в режиме онлайн без повторного вычисления четности, если вновь добавленные диски полностью заполнены нулевыми байтами.
На диаграмме 1 запрос на чтение блока A1 будет обслуживаться диском 0. Одновременный запрос на чтение блока B1 должен будет подождать, но запрос на чтение B2 может одновременно обслуживаться диском 1.
RAID 5 состоит из чередования на уровне блоков с распределенной четностью. В отличие от RAID 4, информация о четности распределяется между дисками. Для работы требуется наличие всех приводов, кроме одного. В случае выхода из строя одного диска последующие чтения могут быть рассчитаны на основе распределенной четности, так что данные не будут потеряны. [5] Для RAID 5 требуется как минимум три диска. [23]
В дисковом массиве RAID 5 существует множество схем размещения данных и четности в зависимости от последовательности записи на диски, [24] , а именно:
На рисунке показаны 1) блоки данных, записанные слева направо, 2) блок четности в конце страйпа и 3) первый блок следующего страйпа, расположенный не на том же диске, что и блок четности предыдущего страйпа. Его можно обозначить как схему левого асинхронного RAID 5 [24] , и это единственная схема, указанная в последнем издании The Raid Book [25] , опубликованном несуществующим Raid Advisory Board. [26] При синхронной компоновке первый блок данных следующей полосы записывается на тот же диск, что и блок четности предыдущей полосы.
По сравнению с RAID 4, распределенная четность RAID 5 выравнивает нагрузку на выделенный диск четности среди всех членов RAID. Кроме того, производительность записи увеличивается, поскольку все члены RAID участвуют в обслуживании запросов на запись. Хотя это будет не так эффективно, как настройка с чередованием (RAID 0), поскольку четность все равно должна быть записана, это больше не является узким местом. [27]
Поскольку вычисление четности выполняется на всей полосе, небольшие изменения в массиве влияют на усиление записи : в худшем случае, когда необходимо записать один логический сектор, необходимо прочитать исходный сектор и соответствующий сектор четности. , исходные данные удаляются из контроля четности, записываются новые данные, рассчитанные для контроля четности, и записываются как новый сектор данных, так и новый сектор четности.
RAID 6 расширяет RAID 5, добавляя еще один блок четности ; таким образом, он использует чередование на уровне блоков с двумя блоками четности, распределенными по всем дискам-членам. [28]
Как и в RAID 5, существует множество схем дисковых массивов RAID 6 в зависимости от направления записи блоков данных, расположения блоков четности относительно блоков данных и того, записывается ли первый блок данных последующей полосы. на тот же диск, что и последний блок четности предыдущей полосы. Рисунок справа — лишь один из многих подобных макетов.
По данным Ассоциации производителей сетей хранения данных (SNIA), RAID 6 определяется следующим образом: «Любая форма RAID, которая может продолжать выполнять запросы на чтение и запись ко всем виртуальным дискам массива RAID при наличии любых двух одновременных сбоев дисков. Для реализации RAID уровня 6 использовались несколько методов, включая вычисления данных двойной проверки (четность и Рида-Соломона ), ортогональные данные двойной проверки четности и диагональную проверку четности». [29]
RAID 6 не имеет снижения производительности при операциях чтения, но имеет снижение производительности при операциях записи из-за накладных расходов, связанных с вычислениями четности. Производительность сильно различается в зависимости от того, как RAID 6 реализован в архитектуре хранения данных производителя — в программном обеспечении, встроенном ПО или с помощью встроенного ПО и специализированных ASIC для интенсивных вычислений четности. RAID 6 может читать с той же скоростью, что и RAID 5, с тем же количеством физических дисков. [30]
Когда используется диагональная или ортогональная двойная четность, для операций записи необходим второй расчет четности. Это удваивает нагрузку на ЦП при записи RAID-6 по сравнению с уровнями RAID с одинарной четностью. При использовании кода Рида-Соломона второй расчет четности не требуется. [ нужна цитация ] Преимущество Рида Соломона заключается в том, что вся избыточная информация может содержаться в пределах заданной полосы. [ нужны разъяснения ]
Можно поддерживать гораздо большее количество накопителей, если более тщательно выбирать функцию четности. Перед нами стоит задача обеспечить единственное решение системы уравнений над конечным полем, поэтому мы обратимся к теории полиномиальных уравнений. Рассмотрим поле Галуа с . Это поле изоморфно полиномиальному полю для подходящего неприводимого многочлена степени над . Мы будем представлять элементы данных в виде полиномов в поле Галуа. Пусть соответствует полосам данных на жестких дисках, закодированных таким образом как элементы поля. Мы будем использовать для обозначения сложения в поле, а конкатенацию для обозначения умножения. Повторное использование является преднамеренным: это связано с тем, что сложение в конечном поле представляет собой оператор XOR, поэтому вычисление суммы двух элементов эквивалентно вычислению XOR для полиномиальных коэффициентов.
Генератор поля — это такой элемент поля, который различен для каждого неотрицательного числа . Это означает, что каждый элемент поля, за исключением значения , может быть записан в виде степени конечного поля гарантированно будет иметь хотя бы один генератор. Выберите один такой генератор и определите и следующим образом:
Как и раньше, первая контрольная сумма — это просто XOR каждой полосы, хотя теперь она интерпретируется как полином. Эффект можно рассматривать как действие тщательно выбранного регистра сдвига с линейной обратной связью на фрагмент данных. [31] В отличие от битового сдвига в упрощенном примере, который можно было применить только один раз, прежде чем кодирование начало повторяться, многократное применение оператора гарантированно создаст уникальные обратимые функции, которые позволят поддерживать длину фрагмента до данных. куски.
Если один фрагмент данных потерян, ситуация аналогична предыдущей. В случае двух потерянных фрагментов данных мы можем вычислить формулы восстановления алгебраически. Предположим, что и – потерянные значения с , тогда, используя другие значения , находим константы и :
Мы можем решить во втором уравнении и подставить его в первое, чтобы найти , а затем .
В отличие от P , вычисление Q требует относительно большого количества ресурсов ЦП, поскольку включает в себя полиномиальное умножение . Это можно устранить с помощью аппаратной реализации или использования FPGA .
Вышеупомянутое матричное решение Вандермонда можно расширить до тройной четности, но для выхода за рамки требуется конструкция матрицы Коши . [32]
В следующей таблице представлен обзор некоторых рекомендаций по стандартным уровням RAID. В каждом случае эффективность использования пространства массива выражается в количестве дисков n ; это выражение обозначает дробное значение от нуля до единицы, представляющее долю суммы мощностей накопителей, доступную для использования. Например, если три диска объединены в RAID 3, это дает эффективность использования пространства массива 1 – 1/ n = 1 – 1/3 = 2/3 ≈ 67% ; таким образом, если каждый диск в этом примере имеет емкость 250 ГБ, то общая емкость массива составляет 750 ГБ, но емкость, которую можно использовать для хранения данных, составляет только 500 ГБ. Различные конфигурации RAID также могут обнаруживать сбои во время так называемой очистки данных .
Исторически диски были менее надежными, и уровни RAID также использовались для определения того, какой диск в массиве вышел из строя, в дополнение к сбою диска. Хотя, как отмечают Паттерсон и др. даже на момент появления RAID многие (хотя и не все) диски уже были способны находить внутренние ошибки с помощью кодов исправления ошибок. В частности, для обнаружения сбоя достаточно иметь зеркальный набор дисков, но двух дисков недостаточно для обнаружения сбоя в дисковом массиве без функций исправления ошибок. [33] Современные RAID-массивы по большей части зависят от способности диска идентифицировать себя как неисправный, что можно обнаружить в ходе очистки. Избыточная информация используется для восстановления недостающих данных, а не для идентификации неисправного диска. Диски считаются неисправными, если на них возникает неисправимая ошибка чтения , которая возникает после того, как диск много раз пытался прочитать данные и потерпел неудачу. Корпоративные диски также могут сообщать о сбое при гораздо меньшем количестве попыток, чем потребительские диски, в рамках TLER , чтобы гарантировать своевременное выполнение запроса на чтение. [34]
При измерении производительности ввода-вывода пяти файловых систем с пятью конфигурациями хранилища — один SSD, RAID 0, RAID 1, RAID 10 и RAID 5 было показано, что F2FS на RAID 0 и RAID 5 с восемью SSD превосходит EXT4 в 5 раз. и 50 раз соответственно. Измерения также показывают, что RAID-контроллер может стать существенным узким местом при построении RAID-системы с высокоскоростными твердотельными накопителями. [36]
Комбинации двух или более стандартных уровней RAID. Они также известны как RAID 0+1 или RAID 01, RAID 0+3 или RAID 03, RAID 1+0 или RAID 10, RAID 5+0 или RAID 50, RAID 6+0 или RAID 60 и RAID 10+0. или RAID 100.
Помимо стандартных и вложенных уровней RAID, альтернативы включают нестандартные уровни RAID и архитектуры дисков, отличные от RAID . Архитектуры дисков без RAID обозначаются схожими терминами и аббревиатурами, в частности JBOD («просто набор дисков»), SPAN/BIG и MAID («огромный массив простаивающих дисков»).
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )Один диск четности может обнаружить одну ошибку, но для исправления ошибки нам нужно достаточное количество проверочных дисков, чтобы идентифицировать диск с ошибкой. [...] Большинство проверочных дисков в RAID уровня 2 используются для определения того, какой диск вышел из строя, поскольку для обнаружения ошибки необходим только один резервный диск четности. Эти дополнительные диски действительно «избыточны», поскольку большинство контроллеров дисков уже могут обнаружить сбой в сумерках либо с помощью специальных сигналов, предоставляемых в интерфейсе диска, либо с помощью дополнительной проверочной информации в конце сектора.
{{cite book}}
: |journal=
игнорируется ( помощь )