RAID-массивы и их классификация
Вопрос повышения производительности дисковой подсистемы весьма сложен. Рост вычислительных мощностей современных процессоров привел к тому, что наблюдается явный дисбаланс между возможностями жестких дисков и потребностями процессоров. При этом не спасают ни дорогие SCSI-диски, ни уж тем более IDE- диски. Однако если не хватает возможностей одного диска, может быть, отчасти решить данную проблему позволит наличие нескольких дисков? Конечно, само по себе наличие двух и более жеслких дисков в компьютере или сервере не спасает — нужно заставить эти диски работать совместно (параллельно) друг с другом так, чтобы это позволило повысить производительность дисковой подсистемы при операциях чтения/записи.

Кроме того, нельзя ли, используя несколько жестких дисков, добиться повышения не только производительности, но и надежности хранения данных, чтобы выход из строя одного из дисков не приводил к потере информации? Именно такой подход был предложен еще в 1987 году американскими исследователями Паттерсоном, Гибсоном и Катцом из Калифорнийского университета Беркли. В своей статье A Case for Redundant Arrays of Inexpensive Discs, RAID («Избыточный массив недорогих дисков») они описали, каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так, чтобы в результате повышались емкость и быстродействие системы, а отказ отдельных дисков не приводил к отказу всей системы.
С момента выхода статьи прошло уже более 20 лет, но технология построения RAID-массивов не утратила актуальности и сегодня. Единственное, что изменилось с тех пор, — это расшифровка аббревиатуры RAID. Дело в том, что первоначально RAID-массивы строились вовсе не на дешевых дисках, поэтому слово Inexpensive (недорогие) поменяли на Independent (независимые), что больше соответствовало действительности.
Более того, именно сейчас технология RAID получила широкое распространение. Так, если еще несколько лет назад RAID-массивы использовались в дорогостоящих серверах масштаба предприятия с применением SCSI-дисков, то сегодня они стали своеобразным стандартом де-факто и для ПК, поскольку все современные материнские платы имеют интегрированные RAID-контроллеры.
Итак, RAID — это избыточный массив независимых дисков (Redundant Arrays of Independent Discs), на который возлагается задача обеспечения отказоустойчивости и повышения производительности. Отказоустойчивость достигается за счет избыточности, то есть часть емкости дискового пространства отводится для служебных целей, становясь недоступной для пользователя.
Повышение производительности дисковой подсистемы обеспечивается одновременной работой нескольких дисков, и в этом смысле, чем больше дисков в массиве (до определенного предела), тем лучше.
Совместную работу дисков в массиве можно организовать с использованием либо параллельного, либо независимого доступа.
При параллельном доступе дисковое пространство разбивается на блоки (полоски) для записи данных. Аналогично информация, подлежащая записи на диск, разбивается на такие же блоки. При записи отдельные блоки записываются на различные диски, причем запись нескольких блоков на различные диски происходит одновременно, что и приводит к увеличению производительности в операциях записи. Нужная информация считывается отдельными блоками одновременно с нескольких дисков, что также способствует росту производительности пропорционально количеству дисков в массиве.
Следует отметить, что модель с параллельным доступом реализуется только при условии, что размер запроса на запись данных больше размера самого блока. В противном случае реализовать параллельную запись нескольких блоков просто невозможно. Представим ситуацию, когда размер отдельного блока составляет 8 Кбайт, а размер запроса на запись данных — 64 Кбайт. В этом случае исходная информация нарезается на восемь блоков по 8 Кбайт каждый. Если имеется массив из четырех дисков, то одновременно можно записать четыре блока, или 32 Кбайт, за один раз. Очевидно, что в рассмотренном примере скорость записи и скорость считывания окажутся в четыре раза выше, чем при использовании одного диска. Однако такая ситуация является идеальной, поскольку далеко не всегда размер запроса кратен размеру блока и количеству дисков в массиве.
Если же размер записываемых данных меньше размера блока, то реализуется принципиально иная модель доступа — независимый доступ. Более того, эта модель может быть реализована и в том случае, если размер записываемых данных больше размера одного блока. При независимом доступе все данные отдельного запроса записываются на отдельный диск, то есть ситуация идентична работе с одним диском. Преимущество модели с параллельным доступом в том, что при одновременном поступлении нескольких запросов на запись (чтение) все они будут выполняться независимо, на отдельных дисках. Подобная ситуация типична, например, в серверах.
В соответствии с различными типами доступа существуют и различные типы RAID массивов, которые принято характеризовать уровнями RAID. Кроме типа доступа, уровни RAID различаются способом размещения и формирования избыточной информации. Избыточная информация может либо размещаться на специально выделенном диске, либо перемешиваться между всеми дисками. Способов формирования этой информации несколько больше. Простейший из них — это полное дублирование (стопроцентная избыточность), или зеркалирование. Кроме того, используются коды с коррекцией ошибок, а также вычисление четности.
В настоящее время существует несколько стандартизированных RAID уровней: от RAID 0 до RAID 6. К тому же используются комбинации этих уровней, например 0+1. Наиболее распространенными являются уровни 0, 1 и 5.
RAID 0
RAID уровня 0, строго говоря, не является избыточным массивом и не обеспечивает надежности хранения данных. Тем не менее данный уровень находит широкое применение в случаях, когда необходимо обеспечить высокую производительность дисковой подсистемы. Особенно популярен этот уровень в рабочих станциях. При создании RAID-массива уровня 0 информация разбивается на блоки, которые записываются на отдельные диски (рис. 6.1), то есть создается система с параллельным доступом (если, конечно, размер блока это позволяет). Благодаря возможности одновременного ввода-вывода с нескольких дисков RAID 0 обеспечивает максимальную скорость передачи данных и максимальную эффективность использования дискового пространства, поскольку не требуется места для хранения контрольных сумм. Реализация этого уровня очень проста. В основном RAID 0 применяется в тех областях, где требуется быстрая передача большого объема данных.

RAID-массив уровня 0
RAID 1 (Mirrored disk)
RAID уровня 1 — это массив дисков со стопроцентной избыточностью. То есть данные просто полностью дублируются (зеркалируются), за счет чего достигается очень высокий уровень надежности (как, впрочем, и стоимости). Отметим, что для реализации уровня 1 не требуется предварительно разбивать диски и данные на блоки. В простейшем случае два диска содержат одинаковую информацию и являются одним логическим диском (рис. 6.2). При выходе из строя одного диска его
функции выполняет другой (что абсолютно прозрачно для пользователя). Кроме того, данный уровень удваивает скорость считывания информации, так как эта операция может выполняться одновременно с двух дисков. Такая схема хранения информации используется в основном в тех случаях, когда цена безопасности данных намного выше стоимости реализации системы хранения.

RAID-массив уровня I
RAID 2
RAID уровня 2 — это схема резервирования данных с использованием кода Хэмминга для коррекции ошибок. Записываемые данные формируются не на основе блочной структуры, как в RAID 0, а на основе слов, причем размер слова равен количеству дисков для записи данных в массиве. Если, к примеру, в массиве имеются четыре диска для записи данных, то размер слова равен 4 бита. Каждый отдельный бит слова записывается на отдельный диск массива. Например, если массив имеет четыре диска для записи данных, то последовательность четырех бит, то есть слово, запишется на массив дисков таким образом, что первый бит окажется на первом диске, второй бит — на втором и т. д.
Кроме того, для каждого слова вычисляется код коррекции ошибок (ЕСС), который записывается на выделенные диски для хранения контрольной информации. Их число равно количеству бит в контрольном слове, причем каждый бит контрольного слова записывается на отдельный диск. Количество бит в контрольном слове и соответственно необходимое количество дисков для хранения контрольной информации рассчитывается на основе следующего мнемонического правила: разрядность контрольного слова определяется количеством разрядов, необходимым для двоичного представления размера слова.

RAID-массив уровня 2
Если, например, размер слова равен 4 (в двоичной записи — 100), то, чтобы записать это число в двоичном виде, потребуется три разряда, значит, размер контрольного слова равен 3. Следовательно, если имеются четыре диска для хранения данных, потребуются еще три диска для хранения контрольных данных. Аналогично при
наличии семи дисков для данных (в двоичной записи — 111) понадобятся три диска для хранения контрольных слов. Если же под данные отводится восемь дисков (в двоичной записи — 1000), то нужно уже четыре диска для контрольной информации.
Код Хэмминга, формирующий контрольное слово, основан на использовании поразрядной операции «исключающего ИЛИ» (XOR). Напомним, что логическая операция XOR дает единицу при несовпадении операндов (0 и 1) и нуль при их совпадении (0 и 0 или 1 и 1).
Само контрольное слово, полученное по алгоритму Хэмминга, — это инверсия результата поразрядной операции «исключающего ИЛИ» номеров тех информационных разрядов слова, значения которых равны 1. Для иллюстрации рассмотрим исходное слово 1101. В первом (001), третьем (011) и четвертом (100) разрядах этого слова стоит единица. Поэтому необходимо провести поразрядную операцию «исключающего ИЛИ» для этих номеров разрядов:
001+011+100 = 110.
Само же контрольное слово (код Хэмминга) получается при поразрядном инвертировании полученного результата, то есть равно 001.
При считывании данных вновь рассчитывается код Хэмминга и сравнивается с исходным кодом. Для сравнения двух кодов используется поразрядная операция «исключающего ИЛИ». Если результат сравнения во всех разрядах равен нулю, то считывание верное, в противном случае его значение есть номер ошибочно принятого разряда основного кода. Пусть, к примеру, исходное слово равно 1100000. Поскольку единицы стоят в шестой (110) и седьмой (111) позициях, контрольное слово равно 110.
Если при считывании зафиксировано слово 1100100, то контрольное слово для него равно 101. Сравнивая исходное контрольное слово с полученным (поразрядная операция «исключающего ИЛИ»), имеем:
1100000 +1100100 = 0000100,
то есть ошибка при считывании в третьей позиции. Соответственно, зная, какой именно бит является ошибочным, его легко исправить «на лету».
RAID 2 — один из немногих уровней, позволяющих не только исправлять «на лету» одиночные ошибки, но и обнаруживать двойные. При этом он является самым избыточным из всех уровней с кодами коррекции. Данная схема хранения данных применяется редко, поскольку плохо справляется с большим количеством запросов, сложна в организации и обладает незначительными преимуществами перед уровнем RAID 3.
RAID 3
RAID уровня 3 — это отказоустойчивый массив с параллельным вводом-выводом и одним дополнительным диском, на который записывается контрольная информация (рис. 6.4). При записи поток данных разбивается на блоки на уровне байт (хотя возможно и на уровне бит) и записывается одновременно на все диски массива, кроме выделенного для хранения контрольной информации. Для вычисления контрольной информации (называемой также контрольной суммой) используется поразрядная операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. При выходе из строя любого диска информацию на нем можно восстановить по контрольным данным и данным, оставшимся на исправных дисках.

RAID-массив уровня 3
Рассмотрим в качестве иллюстрации блоки размером по 4 бита. Пусть имеются четыре диска для хранения данных и один диск для записи контрольных сумм. Если имеется последовательность бит 1101 0011 1100 1011, разбитая на блоки по 4 бита, то для расчета контрольной суммы необходимо выполнить операцию:
1101+0011+1100+1011 = 1001.
Таким образом, контрольная сумма, записываемая на пятый диск, равна 1001.
Если один из дисков, например третий, вышел из строя, то блок 1100 окажется недоступным при считывании. Однако его значение легко восстановить по контрольной сумме (Parity) и значениям остальных блоков, используя все ту же операцию «исключающего ИЛИ»:
Блок 3 = Блок 1 + Блок 2 + Блок 4 + Parity.
В нашем примере получим:
БлокЗ = 1101 +0011+ 1011 +1001 = 1100.
RAID уровня 3 имеет намного меньшую избыточность, чем RAID 2. Благодаря разбиению данных на блоки RAID 3 имеет высокую производительность. При считывании информации не производится обращение к диску с контрольными суммами (в случае отсутствия сбоя), что происходит всякий раз при операции записи. Поскольку при каждой операции ввода-вывода выполняется обращение практически ко всем дискам массива, одновременная обработка нескольких запросов невозможна. Данный уровень подходит для приложений с файлами большого объема и малой частотой обращений. Кроме того, к достоинствам RAID 3 относятся незначительное снижение производительности при сбое и быстрое восстановление информации. Ё настоящее время RAID 3 практически не используется.
RAID 4
RAID уровня 4 — это отказоустойчивый массив независимых дисков с одним диском для хранения контрольных сумм. RAID 4 во многом схож с RAID 3, но отличается от последнего прежде всего значительно большим размером блока записываемых данных (большим, чем размер записываемых данных). В этом и есть главное различие между RAID 3 и RAID 4. После записи группы блоков вычисляется контрольная сумма (точно так же, как и в случае RAID 3), которая записывается на выделенный для этого диск. Благодаря большему, чем у RAID 3, размеру блока возможно одновременное выполнение нескольких операций чтения (схема независимого доступа).
RAID 4 повышает производительность передачи файлов малого объема (за счет распараллеливания операции считывания). Но поскольку при записи должна вычисляться контрольная сумма на выделенном диске, одновременное выполнение операций здесь невозможно (налицо асимметричность операций ввода и вывода). Рассматриваемый уровень не обеспечивает преимущества в скорости при передаче данных большого объема. Эта схема хранения разрабатывалась для приложений, в которых данные изначально разбиты на небольшие блоки, поэтому нет необходимости дополнительно их разбивать. RAID 4 представляет собой неплохое решение для файл-серверов, информация с которых преимущественно считывается и редко записывается. Эта схема хранения данных имеет невысокую стоимость, но ее реализация достаточно сложна, как и восстановление данных при сбое. Именно поэтому данный уровень RAID также практически не встречается.
RAID 5
RAID уровня 5 — это отказоустойчивый массив независимых дисков с распределенным хранением контрольных сумм. При записи поток данных разбивается на блоки (страйпы) на уровне байт (хотя возможно и на уровне бит) и записывается одновременно на все диски массива. Для вычисления контрольной суммы используется поразрядная операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. Так, если имеется п жестких дисков, a D — блок данных (страйп), то контрольная сумма рассчитывается по следующей формуле:
рn =d1 + d2+...+ dn-1.
При выходе из строя любого диска информацию на нем можно восстановить по контрольным данным и данным, оставшимся на исправных дисках.
Блоки данных и контрольные суммы циклически записываются на все диски массива, то есть отсутствует выделенный диск для хранения информации о контрольных суммах.

RAID-массив уровня 5
В случае RAID 5 все диски массива имеют одинаковый размер, однако общая емкость дисковой подсистемы, доступной для записи, становится меньше ровно на один диск. Например, если пять дисков имеют размер 100 Гбайт, то фактический размер массива составляет 400 Гбайт, так как 100 Гбайт отводится на контрольную информацию.
RAID 5, так же как и RAID 4, имеет архитектуру независимого доступа, то есть в отличие от RAID 3 здесь предусмотрен большой размер логических блоков для хранения информации. Поэтому, как и в случае с RAID 4, основной выигрыш такой массив обеспечивает при одновременной обработке нескольких запросов.
Главным же различием между RAID 5 и RAID 4 является способ размещения контрольных сумм.
Наличие отдельного (физического) диска, хранящего информацию о контрольных суммах, здесь, как и в трех предыдущих уровнях, приводит к тому, что операции считывания, не требующие обращения к этому диску, выполняются с большой скоростью. Однако при каждой операции записи меняется информация на контрольном диске, поэтому схемы RAID 2, RAID 3 и RAID 4 не позволяют проводить параллельные операции записи. RAID 5 лишен этого недостатка, ведь контрольные суммы записываются на все диски массива, что обеспечивает возможность выполнения нескольких операций считывания или записи одновременно.
RAID 6
Если RAID-массивы уровней 0 и 1 находят применение в домашних ПК, то уровень 5 используется для создания RAID-массивов в серверах и рабочих станциях с критически важными данными. Аналогична RAID-массив уровня 6 является прерогативой корпоративных систем. Для корпоративных вычислительных сред все больше характерно возрастание количества дисковых устройств большой емкости, их объединение в системы хранения данных и совместное использование дисковой памяти. Множество серверов применяют общие системы хранения данных, и одна авария может вызвать остановку многих систем.
Сочетание этих факторов позволило выявить один недостаток, присущий RAID 5, который раньше не был заметен. Этот недостаток был назван режимом с ухудшенными характеристиками. Далее мы расскажем об уязвимости реализаций RAID 5, а также о том, как технология RAID 6 позволяет справиться с этой проблемой.
Чтобы разобраться, почему RAID 6 так важен для сегодняшних корпоративных вычислительных сред, необходимо понять разницу между катастрофическим отказом устройства и ошибкой, связанной с появлением сбойных блоков, которая может быть обработана средствами RAID-контроллера. Катастрофический отказ устройства обычно связан с неисправностью двигателя или с поломкой головки чтения/записи. После катастрофического отказа диск обычно становится физически неработоспособным.
Ошибка, связанная с появлением сбойных блоков, возникает при неудачной попытке чтения по разным причинам, и хотя данный блок считать невозможно, в целом он остается физически работоспособным. Появление сбойных блоков — довольно частое явление, и оно влияет на общий объем диска и плотность записи. Появление сбойных блоков в системе без RAID (однодисковой системе) обычно приводит к разрушению данных. Но, несмотря на то что данные в сбойных блоках потеряны, остальное дисковое пространство остается работоспособным, поэтому доступ к диску обычно сохраняется. Если вы сталкивались с ситуацией, когда файл или не открывается, или содержит «мусор», то, скорее всего, у вас появился сбойный блок.
RAID-контроллеры, однако, обрабатывают ситуацию со сбойными блоками по- разному. Большинство контроллеров пытается заранее защитить пользователя от сбойных блоков и предпринимает сканирование диска в фоновом режиме. Такая защита обычно ненадежна — она только уменьшает шансы встретить сбойный блок при реальном запросе ввода-вывода. В случае если при проверке обнаружится сбойный блок, данные, которые могут в нем находиться, будут восстановлены и помещены в другое место диска, а этот блок будет помечен как непригодный. Такой алгоритм поиска и локализации сбойных блоков в неподходящее время и приводит к недостаткам, присущим RAID 5.
Хотя RAID 5 может защитить от одного катастрофического отказа, от второго эта схема уже не защищает. К тому же уровень RAID 5 не может защитить и от одного сбойного блока, если система находится в режиме с ухудшенными характеристиками. Например, если 14-дисковый массив RAID 5 испытал катастрофический отказ, он переходит в режим с ухудшенными характеристиками, а в случае «горячей» замены переходит в режим восстановления.
В обоих случаях массив становится уязвимым не только при полном отказе диска, но и при возникновении одного сбойного блока. При увеличении количества дисков и их объема эта проблема обостряется по следующим причинам:
1. возрастает длительность периода восстановления;
2. возрастает вероятность возникновения сбойного блока из-за большого объема дисков.
Поэтому если на одной из этих стадий встретится сбойный блок, будут потеряны данные не только из этого блока, а вообще все.
В зависимости от алгоритма, реализованного производителями, массив либо перейдет в режим отказа, либо просто будет продолжать работать (или предложит продолжить работу), несмотря на наличие сбойных блоков данных. В результате или не будут читаться некоторые файлы, или, если сбойный блок приходится на файл подкачки, будут возникать «синие экраны смерти». Однако обычно в таком случае система пытается восстановиться с использованием последней пригодной резервной копии.
Давайте рассмотрим такой же сценарий для 14-дискового массива RAID 6 с использованием двухдисковой схемы защиты. В случае катастрофического отказа одного диска массив остается работоспособным как при втором полном отказе, так и при обнаружении сбойного блока, не входя в состояние с ухудшенными характеристиками, как RAID 5. Это возможно потому, что имеются два резервных диска, а не один. Поэтому даже при потере одного диска массив будет продолжать работать и восстановит отказавший диск. При этом целостность данных будет защищена благодаря второму резервному диску.
Хотя вероятность второго полного отказа диска зависит от количества дисков в массиве, вероятность появления сбойного блока зависит как от количества дисков, так и от их объема, поэтому такая ошибка встречается гораздо чаще. Высокая потенциальная возможность появления сбойного блока в режиме с ухудшенными характеристиками является причиной внедрения RAID 6 в современные корпоративные системы хранения данных.
RAID 6 — это отказоустойчивый массив независимых дисков с двумя независимыми распределенными контрольными суммами (Independent Data Disks with Two Independent Distributed Parity Schemes), вычисленными двумя независимыми способами. Этот уровень во многом схож с RAID 5, но в нем используется не одна, а две независимые схемы контрольных сумм, что позволяет сохранять работоспособность системы при одновременном выходе из строя двух накопителей. В результате большая стоимость RAID 6 окупается существенным увеличением надежности хранения данных в массиве.
В алгоритме RAID 6 используются два интеллектуальных метода восстановления данных — 2D-XOR (Two dimensional XOR) и Р + Q. В методе 2D-XOR контрольные суммы вычисляются подобно тому, как это делается в RAID 5:
Dk = Dl+D2+...+Dk-l+Dk+l+...+Dn+ Рк.
Различие заключается в том, что в RAID 5 контрольные суммы вычисляются только для горизонтальных блоков данных, а в RAID 6 — как для горизонтальных, так и для диагональных. Контрольные суммы для горизонтальных блоков данных записываются на диски массива циклически (как и в случае с RAID 5), а контрольные суммы для диагональных блоков данных записываются на отдельный диск.
Рассмотрим пример массива RAID 6 из пяти дисков. Обозначим D.k — блок данных, записываемых на i-ю дорожку (k — 1) диска. Тогда при использовании схемы 2D-XOR информация распределится по дискам так, как показано ниже:

Схема массива RAID 6 при использовании метода восстановления данных 2D-XOR
Предположим далее, что блок данных Di0 (или даже весь диск 0) стал сбойным. Информацию этого блока можно восстановить точно так же, как и в случае RAID 5:
Dо = (Dо + D2 + Dз) + D2 + Dз = Dо»
поскольку D + D = 00...0.
Предположим далее, что одновременно вышел из строя диск 0 и не читается блок данных D23. В этом случае блок D23 можно восстановить на основе суммы диагональных блоков данных D01,D12 и контрольной суммы D0,1 + D1,2 + D2,3, хранящейся на диске 4.
Блоки данных первого диска восстанавливаются при этом так же, как в RAID 5. Аналогично блоки данных можно восстановить и в случае одновременного выхода из строя любых двух жестких дисков.
В схеме восстановления данных Р + Q для вычисления контрольных сумм в RAID 6 используется алгоритм, построенный на основе кода Рида — Соломона (Reed — Solomon). В результате расчета контрольных сумм по методу Рида — Соломона получают два дополнительных сегмента Р и Q (для одних и тех же входных данных с помощью двух разных уравнений вычисляются два результата).
Контрольная сумма Р рассчитывается точно так же, как и в случае RAID 5
Контрольная сумма Q рассчитывается на основе более сложного алгоритма с использованием образующего полинома. Сегменты Р и Q распределяются по набору дисков циклически (точно так же, как и в случае RAID 5).
Методы 2D-XOR и P + Q, применяемые в RAID 6, используют разные алгоритмы, в результате чего существенно меняется поведение и производительность дискового ввода-вывода. Это можно показать на примере записи одной дорожки диска. Дорожка состоит из одинакового дискового объема для каждого диска, который адресуется RAID-контроллером непрерывно. Каждый сегмент диска называется дорожкой. Следовательно, размер дорожки массива равен размеру дорожки диска, умноженному на количество дисков в массиве. RAID-контроллеры также управляют кэш-памятью RAID, объем которой соответствует объему дорожки, поэтому размер кэш-памяти RAID делится на части, равные объему дорожки.
Для больших операций записи, а также для операций обратной записи с кэш-памятью все дорожки данных записываются новыми данными. При этом соответствующие контрольные значения также перезаписываются. В этом случае алгоритм Р + Q RAID 6 работает эффективно. Алгоритмы 2D-XOR RAID 6 должны обрабатывать запись дорожки как набор записей, поэтому в данном случае они неэффективны. Для работы RAID на высоком уровне необходимо, чтобы решения 2D-XOR RAID 6 эффективно работали с кэш-памятью, что можно реализовать с помощью организации нескольких дорожек данных. При этом в кэш-памяти RAID будет меньше разных дорожек.
Алгоритм Р + Q RAID 6 обеспечивает запись дорожки таким же способом и с такой же скоростью, как и в случае RAID 5. Последовательность, приведенная ниже, иллюстрирует операцию записи, но применима также и к операции обратной записи кэш-памяти RAID.
1. Все данные, которые должны быть записаны на диск, сначала передаются в интеллектуальную память подсистемы ввода-вывода. Это выполняется с помощью операции прямого доступа к памяти, которая управляется и выполняется процессором интеллектуальной подсистемы ввода-вывода RAID.
2. Далее вычисляются контрольные значения (Р и Q) на основе записываемых данных и параметров алгоритма RAID. Эти вычисления производятся над каждым байтом данных. Они выполняются процессором ввода-вывода, освобождая центральный процессор от этой операции, требующей большого объема вычислений.
3. Затем записываемые данные и контрольные значения Р и Q записываются на дорожку диска под управлением алгоритма RAID, который выполняется на процессоре ввода-вывода.
Данная последовательность иллюстрирует полный процесс, необходимый для реализации высоконадежного алгоритма Р + Q RAID 6.
Концептуально уровень RAID 6 очень похож на RAID 5, за исключением одной важной особенности — возможности справляться более чем с одним отказом устройства без прерывания доступа к данным, и более того — без потери данных. В этом заключается основное преимущество RAID 6 по сравнению с RAID 5.
Однако такая схема защиты данных имеет и слабые стороны. Например, при одинаковом количестве дисков в каждом массиве стоимость решения RAID 6 за мегабайт выше, чем стоимость массива RAID 5, из-за того, что в RAID 6 для контроля данных используются два диска, а не один, как в RAID 5. Даже при использовании одинакового количества физических дисков полезный объем в случае RAID 6 будет меньше на один диск, что увеличивает стоимость полезного дискового пространства.
Еще один недостаток — уменьшение скорости записи. Скорость зависит от реализации. В отличие от RAID 5, однако, имеется несколько различных методов, которые можно применять при реализации RAID 6, а также некоторые методы двухдисковой защиты в случае использования сочетания других уровней RAID.
Поставщики предлагают разные варианты массивов RAID, которые могут выполнять самые различные функции. Уровень RAID 6 предоставляет расширенные возможности защиты данных, соответствующие изменяющимся потребностям корпоративных вычислительных сред, поэтому он может сменить RAID 5 в серверах общего назначения (например, в файловых и веб-серверах) по мере перехода на совместно используемую дисковую память, а также роста объема дисковых массивов и самих дисков. В своих процессорах ввода-вывода IOP331 и ЮР333 корпорация Intel уже сейчас предлагает аппаратную реализацию алгоритмов RAID 6.
