Какие бывают raid. Что такое RAID массив и для чего он нужен

RAID – аббревиатура, расшифровываемая как Redundant Array of Independent Disks – “отказоустойчивый массив из независимых дисков” (раньше иногда вместо Independent использовалось слово Inexpensive). Концепция структуры, состоящей из нескольких дисков, объединенных в группу, обеспечивающую отказоустойчивость родилась в 1987 году в основополагающей работе Паттерсона, Гибсона и Катца.

Исходные типы RAID-массивов

RAID-0
Если мы считаем, что RAID это “отказоустойчивость”(Redundant…), то RAID-0 это “нулевая отказоустойчивость”, отсутствие ее. Структура RAID-0 это “массив дисков с чередованием”. Блоки данных поочередно записываются на все входящие в массив диски, по порядку. Это повышает быстродействие, в идеале во столько раз, сколько дисков входит в массив, так как запись распараллеливается между несколькими устройствами.
Однако во столько же раз снижается надежность, поскольку данные будут потеряны при выходе из строя любого из входящих в массив дисков.

RAID-1
Это так называемое “зеркало”. Операции записи производятся на два диска параллельно. Надежность такого массива выше, чем у одиночного диска, однако быстродействие повышается незначительно (или не повышается вовсе).

RAID-10
Попытка объединить достоинства двух типов RAID и лишить их присущих им недостатков. Если взять группу RAID-0 с повышенной производительностью, и придать каждому из них (или массиву целиком) “зеркальные” диски для защиты данных от потери в результате выхода из строя, мы получим отказоустойчивый массив с повышенным, в результате использования чередования, быстродействием.
На сегодняшний день “в живой природе” это один из наиболее популярных типов RAID.
Минусы – мы платим за все вышеперечисленные достоинства половиной суммарной емкости входящих в массив дисков.

RAID-2
Остался полностью теоретическим вариантом. Это массив, в котором данные кодируются помехоустойчивым кодом Хэмминга, позволяющим восстанавливать отдельные сбойные фрагменты за счет его избыточности. Кстати различные модификации кода Хэмминга, а также его наследников, используются в процессе считывания данных с магнитных головок жестких дисков и оптических считывателей CD/DVD.

RAID-3 и 4
“Творческое развитие” идеи защиты данных избыточным кодом. Код Хэмминга незаменим в случае “постоянно недостоверного” потока, насыщенного непрерывными слабопредсказуемыми ошибками, такого, например, как зашумленный эфирный канал связи. Однако в случае жестких дисков основная проблема не в ошибках считывания (мы считаем, что данные выдаются жесткими дисками в том виде, в каком мы их записали, если уж он работает), а в выходе из строя целиком диска.
Для таких условий можно скомбинировать схему с чередованием (RAID-0) и для защиты от выхода из строя одного из дисков дополнить записываемую информацию избыточностью, которая позволит восстановить данные при потере какой-то ее части, выделив под это дополнительный диск.
При потере любого из дисков данных мы можем восстановить хранившиеся на нем данные путем несложных математических операций над данными избыточности, в случае выходя из строя диска с данными избыточности мы все равно имеем данные, считываемые с дискового массива типа RAID-0.
Варианты RAID-3 и RAID-4 отличаются тем, что в первом случае чередуются отдельные байты, а во втором – группы байт, “блоки”.
Основным недостатком этих двух схем является крайне низкая скорость записи на массив, поскольку каждая операция записи вызывает обновление “контрольной суммы”, блока избыточности для записанной информации. Очевидно, что, несмотря на структуру с чередованием, производительность массива RAID-3 и RAID-4 ограничена производительностью одного диска, того, на котором лежит “блок избыточности”.

RAID-5
Попытка обойти это ограничение породила следующий тип RAID, в настоящее время он получил, наряду с RAID-10, наибольшее распространение. Если запись на диск “блока избыточности” ограничивает весь массив, давайте его тоже размажем по дискам массива, сделаем для этой информации невыделенный диск, тем самым операции обновления избыточности окажутся распределенными по всем дискам массива. То есть мы также как и в случае RAID-3(4) берем дисков для хранения N информации в количестве N + 1 диск, но в отличие от Type 3 и 4 этот диск также используется для хранения данных вперемешку с данными избыточности, как и остальные N.
Недостатки? А как же без них. Проблема с медленной записью отчасти была решена, но все же не полностью. Запись на массив RAID-5 осуществляется, тем не менее, медленнее, чем на массив RAID-10. Зато RAID-5 более “экономически эффективен”. Для RAID-10 мы платим за отказоустойчивость ровно половиной дисков, а в случае RAID-5 это всего один диск.

Однако скорость записи снижается пропорционально увеличению количества дисков в массиве (в отличие от RAID-0, где она только растет). Это связано с тем, что при записи блока данных массиву нужно заново рассчитать блок избыточности, для чего прочитать остальные “горизонтальные” блоки и пересчитать в соответствии с их даными блок избыточности. То есть на одну операцию записи массив из 8 дисков (7 дисков данных + 1 дополнительный) будет делать 6 операций чтения в кэш (остальные блоки данных со всех дисков, чтобы рассчитать блок избыточности), вычислять из этих блоков блок избыточности, и делать 2 записи (запись блока записываемых данных и перезапись блока избыточности). В современных системах частично острота снимается за счет кэширования, но тем не менее удлиннение группы RAID-5 хотя и вызывает пропорциональное увеличение скорости чтения, но также и соответственное ему снижение скорости записи.
Ситуация со снижением производительности при записи на RAID-5 иногда порождает любопытный экстремизм, например, http://www.baarf.com/ ;)

Тем не менее, поскольку RAID-5 есть наиболее эффективная RAID-структура с точки зрения расхода дисков на “погонный мегабайт” он широко используется там, где снижение скорости записи не является решающим параметром, например для долговременного хранения данных или для данных, преимущественно считываемых.
Отдельно следует упомянуть, что расширение дискового массива RAID-5 добавлением дополнительного диска вызывает полное пересчитывание всего RAID, что может занимать часы, а в отдельных случаях и дни, во время которых производительность массива катастрофически падает.

RAID-6
Дальнейшее развитие идеи RAID-5. Если мы рассчитаем дополнительную избыточность по иному нежели применяемому в RAID-5 закону, то мы сможем сохранить доступ к данным при отказе двух дисков массива.
Платой за это является дополнительный диск под данные второго “блока избыточности”. То есть для хранения данных равных объему N дисков нам нужно будет взять N + 2 диска.Усложняется “математика” вычисления блоков избыточности, что вызывает еще большее снижение скорости записи по сравнению с RAID-5, зато повышается надежность. Причем в ряде случаев она даже превышает уровень надежности RAID-10. Нетрудно увидеть, что RAID-10 тоже выдерживает выход из строя двух дисков в массиве, однако в том случае, если эти диски принадлежат одному “зеркалу” или разным, но при этом не двум зеркальным дискам. А вероятность именно такой ситуации никак нельзя сбрасывать со счета.

Дальнейшее увеличение номеров типов RAID происходит за счет “гибридизации”, так появляются RAID-0+1 ставший уже рассмотренным RAID-10, или всяческие химерические RAID-51 и так далее.
В живой природе к счастью не встречаются, обычно оставаясь “сном разума” (ну, кроме уже описанного выше RAID-10).

Если Вы заинтересовались этой статьей, то Вы, по-видимому, столкнулись или предполагаете вскоре столкнуться с одной из ниже перечисленных проблем на Вашем компьютере:

- явно не хватает физического объема винчестера, как единого логического диска. Наиболее часто эта проблема возникает при работе с файлами большого объема (видео, графика, базы данных);
- явно не хватает производительности винчестера. Наиболее часто эта проблема возникает при работе с системами нелинейного видео монтажа или при одновременном обращении к файлам на винчестере большого количества пользователей;
- явно не хватает надежности винчестера. Наиболее часто эта проблема возникает при необходимости работать с данными, которые ни в коем случае нельзя потерять или которые должны быть всегда доступны для пользователя. Печальный опыт показывает, что даже самая надежная техника иногда ломается и, как правило, в самый не подходящий момент.
Решить эти и некоторые другие проблемы может создание на Вашем компьютере RAID-системы.

Что такое «RAID»?

В 1987 году Паттерсон (Patterson), Гибсон (Gibson) и Катц (Katz) из калифорнийского университета Беркли опубликовали статью «Корпус для избыточных массивов из дешевых дисководов (RAID)» (A Case for Redundant Arrays of Inexpensive Disks (RAID)). В этой статье описывались разные типы дисковых массивов, обозначаемых сокращением RAID - Redundant Array of Independent (или Inexpensive) Disks (избыточный массив независимых (или недорогих) дисководов). В основу RAID положена следующая идея: объединяя в массив несколько небольших и/или дешевых дисководов, можно получить систему, превосходящую по объему, скорости работы и надежности самые дорогие дисководы. Вдобавок ко всему такая система с точки зрения компьютера выглядит как один единственный дисковод.
Известно, что среднее время наработки на отказ массива дисководов равно среднему времени наработки на отказ одиночного дисковода, деленному на число дисководов в массиве. Вследствие этого среднее время наработки на отказ массива оказывается слишком малым для многих приложений. Однако дисковый массив можно несколькими способами сделать устойчивым к отказу одного дисковода.

В вышеупомянутой статье было определено пять типов (уровней) дисковых массивов: RAID-1, RAID-2, ..., RAID-5. Каждый тип обеспечивал устойчивость на отказ, а также различные преимущества по сравнению с одиночным дисководом. Наряду с этими пятью типами популярность приобрел также дисковый массив RAID-0, НЕ обладающий избыточностью.

Какие существуют уровни RAID и какой из них выбрать?

RAID-0 . Обычно определяется как НЕ избыточная группа дисководов без контроля четности. RAID-0 по способу размещения информации по дисководам, входящим в массив, иногда называется "Striping" ("полосатый" или "тельняшка"):

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

Область применения: аудио- и видео приложения требующие высокой скорости непрерывной передачи данных, которую не может обеспечить одиночный дисковод. Например, исследования, проведенные фирмой Mylex, с целью определить оптимальную конфигурацию дисковой системы для станции нелинейного видео монтажа показывают, что, по сравнению с одним дисководом, массив RAID-0 из двух дисководов дает прирост скорости записи/чтения на 96%, из трех дисководов - на 143% (по данным теста Miro VIDEO EXPERT Benchmark).
Минимальное количество дисководов в массиве "RAID-0" - 2шт.

RAID-1 . Более известен как "Mirroring" ("Зеркалирование") - это пара дисководов, содержащих одинаковую информацию и составляющих один логический диск:

Запись производится на оба дисковода в каждой паре. Тем не менее, дисководы, входящие в пару, могут совершать одновременные операции чтения. Таким образом «зеркалирование» может удваивать скорость чтения, но скорость записи остается неизменной. RAID-1 обладает 100% избыточностью и авария одного дисковода не приводит к аварии всего массива - контроллер просто переключает операции чтения/записи на оставшийся дисковод.
RAID-1 обеспечивает наивысшую скорость работы среди всех типов избыточных массивов (RAID-1 - RAID-5), особенно в многопользовательском окружении, но наихудшее использование дискового пространства. Поскольку для RAID-1 не требуются сложные математические или логические вычисления, затраты на его реализацию минимальны.
Минимальное количество дисководов в массиве "RAID-1" - 2шт.
Для увеличения скорости записи и обеспечения надежности хранения данных несколько массивов RAID-1 можно, в свою очередь, объединить в RAID-0. Такая конфигурация называется «двухуровневый» RAID или RAID-10 (RAID 0+1):


Минимальное количество дисководов в массиве "RAID 0+1" - 4шт.
Область применения: дешевые массивы, в которых главное - надежность хранения данных.

RAID-2 . Распределяет данные по страйпам размером в сектор по группе дисководов. Некоторые дисководы выделяются для хранения ECC (код коррекции ошибок). Так как большинство дисководов по умолчанию хранят коды с ECC для каждого сектора, RAID-2 не дает особых преимуществ по сравнению с RAID-3 и, поэтому, практически не применяется.

RAID-3 . Как и в случае с RAID-2 данные распределяются по страйпам размером в один сектор, а один из дисководов массива отводится для хранения информации о четности:

RAID-3 полагается на коды с ECC, хранящиеся в каждом секторе для обнаружения ошибок. В случае отказа одного из дисководов восстановление хранившейся на нем информации возможно с помощью вычисления исключающего ИЛИ (XOR) по информации на оставшихся дисководах. Каждая запись обычно распределена по всем дисководам и поэтому этот тип массива хорош для работы в приложениях с интенсивным обменом с дисковой подсистемой. Так как каждая операция ввода-вывода обращается ко всем дисководам массива, RAID-3 не может одновременно выполнять несколько операций. Поэтому RAID-3 хорош для однопользовательского однозадачного окружения с длинными записями. Для работы с короткими записями требуется синхронизация вращения дисководов, так как иначе неизбежно уменьшение скорости обмена. Применяется редко, т.к. проигрывает RAID-5 по использованию дискового пространства. Реализация требует значительных затрат.
Минимальное количество дисководов в массиве "RAID-3" - 3шт.

RAID-4 . RAID-4 идентичен RAID-3 за исключением того, что размер страйпов много больше одного сектора. В этом случае чтение осуществляется с одного дисковода (не считая дисковода, хранящего информацию о четности), поэтому возможно одновременное выполнение нескольких операций чтения. Тем не менее, так как каждая операция записи должна обновить содержимое дисковода четности, одновременное выполнение нескольких операций записи невозможно. Этот тип массива не имеет заметных преимуществ перед массивом типа RAID-5.
RAID-5. Этот тип массива иногда называется «массив с вращающейся четностью». Данный тип массива успешно преодолевает присущий RAID-4 недостаток - невозможность одновременного выполнения нескольких операций записи. В этом массиве, как и в RAID-4, используются страйпы большого размера, но, в отличие от RAID-4, информация о четности хранится не на одном дисководе, а на всех дисководах по очереди:

Операции записи обращаются к одному дисководу с данными и к другому дисководу с информацией о четности. Так как информация о четности для разных страйпов хранится на разных дисководах выполнение нескольких одновременных операций записи невозможно только в тех редких случаях, когда либо страйпы с данными, либо страйпы с информацией о четности находятся на одном и том же дисководе. Чем больше дисководов в массиве, тем реже совпадает местоположение страйпов информации и четности.
Область применения: надежные массивы большого объема. Реализация требует значительных затрат.
Минимальное количество дисководов в массиве "RAID-5" - 3шт.

RAID-1 или RAID-5?
RAID-5 по сравнению с RAID-1 более экономно использует дисковое пространство, так как в нем для избыточности хранится не «копия» информации, а контрольное число. В результате в RAID-5 можно объединить любое количество дисководов, из которых только один будет содержать избыточную информацию.
Но более высокая эффективность использования дискового пространства достигается за счет более низкой скорости обмена информацией. Во время записи информации в RAID-5 надо каждый раз обновлять информацию о четности. Для этого надо определить, какие именно биты четности изменились. Сначала считывается подлежащая обновлению старая информация. Затем эта информация перемножается по XOR с новой информацией. Результат этой операции - битовая маска, в которой каждый бит =1 означает, что в информации о четности в соответствующей позиции надо заменить значение. Затем обновленная информация о четности записывается на соответствующее место. Следовательно, на каждое требование программы записать информацию, RAID-5 совершает два чтения, две записи и две операции XOR.
За то, что более эффективно используется дисковое пространство (вместо копии данных хранится блок четности) приходится платить: на генерацию и запись информации о четности уходит добавочное время. Это означает, что скорость записи на RAID-5 ниже, чем на RAID-1 в соотношении 3:5 или даже 1:3 (т.е. скорость записи на RAID-5 составляет от 3/5 до 1/3 от скорости записи RAID-1). Из-за этого RAID-5 бессмысленно создавать в программном варианте. Их также нельзя рекомендовать в тех случаях, когда именно скорость записи имеет решающее значение.

Какой выбрать способ реализации RAID - программный или аппаратный?

Прочитав описание различных уровней RAID можно заметить, что нигде не упоминаются какие-либо специфические требования к аппаратуре, которая необходима для реализации RAID. Из чего можно сделать вывод, что все, что нужно для реализации RAID - подключить необходимое количество дисководов к имеющемуся в компьютере контроллеру и установить на компьютер специальное программное обеспечение. Это верно, но не совсем!
Действительно, существует возможность программной реализации RAID. Примером может служить ОС Microsoft Windows NT 4.0 Server, в которой возможна программная реализация RAID-0, -1 и даже RAID-5 (Microsoft Windows NT 4.0 Workstation обеспечивает только RAID-0 и RAID-1). Однако данное решение следует рассматривать, как крайне упрощенное, не позволяющее полностью реализовать возможности RAID-массива. Достаточно отметить, что при программной реализации RAID вся нагрузка по размещению информации на дисководах, вычислению контрольных кодов и т.д. ложится на центральный процессор, что естественно, не увеличивает производительности и надежности системы. По тем же причинам, здесь практически отсутствуют какие-либо сервисные функции и все операции по замене неисправного дисковода, добавления нового дисковода, изменения уровня RAID и т. п. производятся с полной потерей данных и при полном запрете выполнения каких-либо других операций. Единственное достоинство программной реализации RAID - минимальная стоимость.
- специализированный контроллер освобождает центральный процессор от основных операций с RAID, причем эффективность контроллера тем более заметна, чем выше уровень сложности RAID;
- контроллеры, как правило, снабжены драйверами, позволяющими создать RAID практически для любой популярной ОС;
- встроенный BIOS контроллера и прилагаемые к нему программы управления позволяют администратору системы легко подключать, отключать или заменять дисководы, входящие в RAID, создавать несколько RAID-массивов, причем даже разных уровней, контролировать состояние дискового массива и т.д. У «продвинутых» контроллеров эти операции можно производить «на лету», т.е. не выключая системный блок. Многие операции могут быть выполнены в «фоновом режиме», т.е. не прерывая текущую работу и даже дистанционно, т.е. с любого (конечно при наличии доступа) рабочего места;
- контроллеры могут оснащаться буферной памятью («кэш»), в которой запоминаются несколько последних блоков данных, что, при частом обращении к одним и тем же файлам, позволяет значительно увеличить быстродействие дисковой системы.
Недостатком аппаратной реализации RAID является относительно высокая стоимость RAID-контроллеров. Однако, с одной стороны, за все (надежность, быстродействие, сервис) надо платить. С другой стороны, в последнее время, с развитием микропроцессорной техники, стоимость RAID-контоллеров (особенно младших моделей) стала резко падать и стала сравнимой со стоимостью обыкновенных дисковых контроллеров, что позволяет устанавливать RAID-системы не только в дорогие мэйнфреймы, но и в сервера начального уровня и даже в рабочие станции.

Как выбрать модель RAID-контроллера?

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

Ultra (Ultra Wide) SCSI контроллер фирмы Mylex KT930RF (KT950RF).
Внешне данный контроллер ни чем не отличается от обыкновенного SCSI-контроллера. Вся "специализация" находится в BIOS, который как бы разделен на две части - «Конфигурация SCSI» / «Конфигурация RAID». Несмотря на невысокую стоимость (менее $200) данный контроллер обладает неплохим набором функций:

- объединение до 8-и дисководов в RAID 0, 1или 0+1;
- поддержка Hot Spare для замены "на лету" вышедшего из строя дисковода;
- возможность автоматической (без вмешательства оператора) замены неисправного дисковода;
- автоматический контроль целостности и идентичности (для RAID-1) данных;
- наличие пароля для доступа в BIOS;
- программа RAIDPlus представляющая информацию о состоянии дисководов в RAID;
- драйвера для DOS, Windows 95, NT 3.5x, 4.0

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



RAID 0

  • RAID 0 (Stripe). Режим, при использовании которого достигается максимальная производительность. Данные равномерно распределяются по дискам массива, объединяются в один, который может быть размечен на несколько. Распределенные операции чтения и записи позволяют значительно увеличить скорость работы, поскольку несколько одновременно читают/записывают свою порцию данных. Пользователю доступен весь объем , но это снижает надежность хранения данных, поскольку при отказе одного из дисков массив обычно разрушается и восстановить данные практически невозможно. Область применения - приложения, требующие высоких скоростей обмена с диском, например видеозахват, видеомонтаж. Рекомендуется использовать с высоконадежными дисками.

    RAID 1
  • RAID 1 (Mirror). Несколько дисков (обычно 2), работающие синхронно на запись, то есть полностью дублирующие друг друга. Повышение производительности происходит только при чтении. Самый надежный способ защитить информацию от сбоя одного из дисков. Из-за высокой стоимости обычно используется при хранении очень важных данных. Высокая стоимость обусловлена тем, что лишь половина от общей емкости доступна для пользователя.

    RAID 10
  • RAID 10 , также иногда называется RAID 1+0 - комбинация двух первых вариантов. (Массив RAID0 из массивов RAID1). Имеет все скоростные преимущества RAID0 и преимущество надежности RAID1, сохраняя недостаток - высокую стоимость дискового массива, так как эффективная ёмкость массива равна половине ёмкости использованных в нём дисков. Для создания такого массива требуется минимум 4 диска. (При этом их число должно быть чётным).
  • RAID 0+1 - Массив RAID1 из массивов RAID0. Фактически не применяется из-за отсутствия преимуществ по сравнению с RAID10 и меньшей отказоустойчивости.

    RAID 1E
  • RAID 1E - Похожий на RAID10 вариант распределения данных по дискам, допускающий использование нечётного числа (минимальное количество - 3)
  • RAID 2, 3, 4 - различные варианты распределенного хранения данных с дисками, выделенными под коды четности и различными размерами блока. В настоящее время практически не используются из-за невысокой производительности и необходимости выделять много дисковой емкости под хранение кодов ЕСС и/или четности.


    RAID 5
  • RAID 5 - массив, также использующий распределенное хранение данных аналогично RAID 0 (и объединение в один большой логический ) + распределенное хранение кодов четности для восстановления данных при сбоях. Относительно предыдущих конфигураций размер Stripe-блока еще больше увеличен. Возможно как одновременное чтение, так и запись. Плюсом этого варианта является то, что доступная для пользователя емкость массива уменьшается на емкость лишь одного диска, хотя надежность хранения данных ниже, чем у RAID 1. По сути, является компромиссом между RAID0 и RAID1, обеспечивая достаточно высокую скорость работы при неплохой надежности хранения данных. При отказе одного диска из массива данные могут быть восстановлены без потерь в автоматическом режиме. Минимальное количество дисков для такого массива - 3.
    "Программные" реализации RAID5, встроенные в южные мосты материнских плат, не отличаются высокой скоростью записи, поэтому годятся далеко не для всех применений.


    RAID 5EE
  • RAID 5EE - массив, аналогичный RAID5, однако кроме распределенного хранения кодов четности используется распределение резервных областей - фактически задействуется , который можно добавить в массив RAID5 в качестве запасного (такие массивы называют 5+ или 5+spare). В RAID 5 массиве резервный диск простаивает до тех пор, пока не выйдет из строя один из основных , в то время как в RAID 5EE массиве этот диск используется совместно с остальными HDD все время, что положительно сказывается на производительность массива. К примеру, массив RAID5EE из 5 HDD сможет выполнить на 25% больше операций ввода/вывода за секунду, чем RAID5 массив из 4 основных и одного резервного HDD. Минимальное количество дисков для такого массива - 4.


    RAID 6
  • RAID 6 - аналог RAID5 c большим уровнем избыточности - информация не теряется при отказе двух любых дисков, соответственно, общая ёмкость массива уменьшается на ёмкость двух дисков. Минимальное количество дисков, необходимое для создания массива такого уровня - 4. Скорость работы в общем случае примерно аналогична RAID5. Рекомендуется для применений, где важна максимально высокая надёжность.


    RAID 50
  • RAID 50 - объединение двух(или более, но это крайне редко применяется) массивов RAID5 в страйп, т.е. комбинация RAID5 и RAID0, частично исправляющая главный недостаток RAID5 - низкую скорость записи данных за счёт параллельного использования нескольких таких массивов. Общая ёмкость массива уменьшается на ёмкость двух , но, в отличие от RAID6, без потери данных такой массив переносит отказ лишь одного диска, а минимально необходимое число дисков для создания массива RAID50 равно 6. Наряду с RAID10, это наиболее рекомендуемый уровень RAID для использования в приложениях, где требуется высокая производительность в сочетании с приемлемой надёжностью.


    RAID 60
  • RAID 60 - объединение двух массивов RAID6 в страйп. Скорость записи повышается примерно в два раза, относительно скорости записи в RAID6. Минимальное количество дисков для создания такого массива - 8. Информация не теряется при отказе двух дисков из каждого RAID 6 массива.
  • Matrix RAID - технология, реализованная фирмой Intel в своих южных мостах, начиная с ICH6R, позволяющая организовать всего на двух дисках несколько массивов RAID0 и RAID1, одновременно создавая разделы как с повышенной скоростью работы, так и с повышенной надёжностью хранения данных.
  • JBOD (От английского "Just a Bunch Of Disks")- последовательное объединение нескольких физических в один логический, не влияющее на производительность (надёжность при этом падает аналогично RAID0), при этом могут иметь разные размеры. В настоящее время практически не применяется.
  • Всем доброго времени суток. Продолжаем погружение в мир компьютерного железа. Всем известно о том, что у компьютера есть жесткий диск, который можно сравнить с человеческой памятью — на нем хранится вся информация которая только есть. Устройства эти с каждым поколением становятся все быстрее и умеют хранить все больше данных.

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

    Скорость передачи данных отражается на производительности всего компьютера. Какой бы мощной не была его начинка — скорость работы диска ограничивает эту мощность. Есть ли способы как то повысить отказоустойчивость и повысить скорость? Да, есть и технологии эти придуманы давно.

    Для чего нужны RAID массивы?

    Слово «массив» — означает некое скопление однотипных предметов, или информации. Полку с книгами на определенную тематику можно назвать массивом. Старинную картотеку из деревянных ящичков то же.

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

    Особенно это актуально для серверных систем, систем работающих с большими базами данных, где скорость записи / чтения на диск критически важна. RAID — массивы призваны повысить производительность системы.

    При этом хорошо, чтобы система еще отличалась бы надежностью и отказоустойчивостью. На практике бывает так, что когда один из дисков отказывает, его меняют,система восттанавливается. Все зависит от того, какую разновидность массива Вы будете использовать.

    Многие удивятся, но еще в 1987 году Девид Петерсон со своей командой представил «резервный массив недорогих дисков», наверное потому, что жесткие диски — это в общем то не такое уж дешевые устройства… Так и расшифровывается сегодня аббревиатура RAID «избыточный массив независимых дисков »

    Чем отличаются рейд — массивы друг от друга?

    Отличий основных два. Первое отличие — это количество используемых жестких дисков в массиве. Вы покупаете два (или больше дисков) и одновременно подключаете их к компьютеру.

    Подключать можно столько — сколько у вас на материнской плате разъемов для подключения. На блок питания компьютера так же стоит обратить внимание. Мощность и количество разъемов питания для подключения возможно придется увеличить.

    Исходя из этого уже можно судить о том, какие массивы может поддерживать материнская плата вашего компьютера. Можно говорить о том, что все мало-мальски современные материнские платы поддерживают использование RAID . А вот ноутбуки — нет, там без вариантов только один жесткий диск.

    Второе отличие — это технологии, которые используются при записи чтении данных. Жесткий диск — это магнитный носитель. То есть информация записывается на него так же, как и на старый магнитофон.

    Изменились конечно технологии. У меня в 90-х годах был компьютер «Спектр» , там в качестве «жесткого диска» использовалась магнитофонная кассета и подключенный магнитофон.

    Игра была записана на кассету. Перед тем как играть, нужно было для начала кассету «прослушать» — так загружалась игра в этот компьютер. Видел недавно у друга подобную вещь — ZX Spectrum , еще работает. Были времена…


    А сегодня уже активно используются массивы из твердотельных жестких дисков. Жесткий диск стал еще «тверже». Принцип их работы — как у большой флешки. Информация записывается не «на пластинку», а в микросхемы устройства.

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

    Виды и назначение рейд массивов

    Продолжим про технологии. Технологии создания массивов тоже различаются. Можно по разному использовать имеющиеся в наличии жесткие диски. Переходим непосредственно к существующим стандартам RAID . Есть базовые стандарты, и их комбинации. Сегодня расскажу только о базовых.

    RAID -0 . Самый доступный и простой вариант, например из двух одинаковых по объему дисков. Данные записываются путем чередования. Информация разбивается на равные части и затем одна часть записывается на один диск, следующая часть на другой и так по очереди.

    Скорость чтения записи возрастает в нашем случае в два раза. Если дисков в массиве три — то в три раза и т. д. Данные при таком варианте массива не резервируются.


    Вероятность потери данных при отказе одного из дисков так же повышается в два раза. У меня есть компьютер с двумя дисками в RAID0. Плюс отдельно один диск, на который ежедневно скидывается копия системы. Вот я и решил применить дополнительные средства.

    RAID1. В этом варианте можно использовать два или более дисков, которые являются полными копиями друг друга (зеркалом). Здесь скорость записи на диск такая же как обычно, хотя данные эти записываются сразу на все диски параллельно.

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

    Можно построить «зеркало» из трех дисков. Соответственно, вероятность отказа уменьшается втрое, а скорость чтения увеличивается. Но тут мы проигрываем, теряя дисковое пространство — массив из двух (или трех) дисков получается по объему как один обычный.


    RAID2. Эта схема мудренее предыдущих, в ней сочетаются принцип RAID -0 (для данных используются как минимум два диска). А на остальных записываются коды коррекции ошибок, с помощью которых можно восстановить информацию в случае отказа. Причем коррекция ошибок происходит в процессе работы системы. Беда в том, что дисков коррекции нужно довольно много. Параллельной записи нет.

    RAID3 Массив можно сделать по минимуму — из трех дисков. Опять же, как в RAID -0 два или больше дисков используется для хранения данных. Причем данные разбиваются на маленькие порции — байты и записываются. Третий диск тоже используется как контрольный, на него записывается информация о блоках четности.

    На этот диск приходится большая нагрузка, по этой причине он подвержен риску отказа. Скорость считывания данных падает, если работа идет с небольшими файлами и при многозадачной работе — данные раскиданы маленькими порциями, на считывание их уходит больше времени.

    RAID4 отличается от предыдущего только тем, что данные разбиты на блоки данных, а не на байты. Скорость чтения несколько увеличивается. Так же используются контрольные диски, как во 2 и 3 стандартах. Параллельной записи нет.


    RAID5 Интересная и экономичная комбинация. Нет контрольных дисков. Минимальное количество дисков — это три. Данные на диски записываются циклично. К примеру, один файл пишется сразу на все диски.

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

    При этом обеспечивается высокая скорость чтения и записи, так как эти операции идут параллельно по всем дискам. При увеличении количества дисков повышается отказоустойчивость. Недостаток — система медленно восстанавливается в случае повреждения. Есть повышенный риск выхода из строя дисков массива в процессе восстановления данных.

    RAID6 отличается от предыдущего варианта наличием контрольных дисков. На два диска данных подключается три контрольных. Запись ведется по особому коду. Повышена надежность, но несколько снижена производительность по сравнению с RAID 5.


    Итак, слегка пробежавшись по базовым стандартам мы видим, что есть только два «достойных» варианта, это RAID0 и RAID1 Один из них обеспечивает самую высокую скорость, другой — высокую надежность. Остальные базовые стандарты — это компромиссы между скоростью и надежностью.

    И выбирать нужно исходя из потребностей. Основное назначение массивов — повышение скорости и отказоустойчиовсти в процессе работы. Есть и распространенные комбинации базовых вариантов. Одной из таких является стандарт RAID 1,0.

    RAID 1,0 (1+0) Если у Вас есть задумки развернуть к примеру сервер 1с или любой другой сервер баз данных, то комбинация RAID 1,0 то, что надо. Нужно будет использовать как минимум 4 (или восемь) дисков в массиве.

    Это дорого, зато оправдывает затраты тем, что обеспечивается высокая скорость чтения записи данных на диски, как в схеме RAID0 . На каждый диск с данными есть зеркало, как в схеме RAID1.

    Какие HDD (жесткие диски) можно подключить в RAID

    В первую очередь — заведомо исправные. Перед подключением нужно проверить у диска S.M.A.R.T, если есть сомнения. Диски с деградирующей поверхностью подключать ни в коем случае нельзя.

    В противном случае может получиться, что нагрузка на один диск больше, чем на другой. Никогда не подключал в RAID диски разной емкости. Предполагаю, что какая-то часть дискового пространства потеряется, и не будет использоваться.


    Новые диски могут различаться по энергопотреблению, скорости, объемом буферной памяти и предназначению. Крайне желательно, чтобы все эти показатели были одинаковыми. Может получиться так, что самый слабый диск будет замедлять работу всей связки ввиду более низких характеристик.

    В общем, брать новые и одинаковые. Самым продвинутым и дорогим на сегодня вариантом является объединение в RAID массив твердотельных жестких дисков. Если вы собираетесь модернизировать сервер в этом направлении — тут нужно брать специальные серверные версии таких устройств.

    На момент написания статьи ведущим лидером среди производителей SSD (на нашем рынке) для сервера остается Intel. Цена на их устройства высока, но с качеством не прогадаете. Даже такой производитель как Hitachi пока не может похвастать особым выбором устройств SSD для серверов, по крайней мере у нас.

    Перенос центра тяжести с процессоро-ориентированных на дата-ориентированные приложения обуславливает повышение значимости систем хранения данных. Вместе с этим проблема низкой пропускной способности и отказоустойчивости характерная для таких систем всегда была достаточно важной и всегда требовала своего решения.

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

    Особенности технологии построения магнитных дисков привели к значительному несоответствию между увеличением производительности процессорных модулей и самих магнитных дисков. Если в 1990 г. лучшими среди серийных были 5.25″ диски со средним временем доступа 12мс и временем задержки 5 мс (при оборотах шпинделя около 5 000 об/м 1), то сегодня пальма первенства принадлежит 3.5″ дискам со средним временем доступа 5 мс и временем задержки 1 мс (при оборотах шпинделя 10 000 об/м). Здесь мы видим улучшение технических характеристик на величину около 100%. В тоже время, быстродействие процессоров увеличилось более чем на 2 000%. Во многом это стало возможно благодаря тому, что процессоры имеют прямые преимущества использования VLSI (сверхбольшой интеграции). Ее использование не только дает возможность увеличивать частоту, но и число компонент, которые могут быть интегрированы в чип, что дает возможность внедрять архитектурные преимущества, которые позволяют осуществлять параллельные вычисления.

    1 - Усредненные данные.

    Сложившуюся ситуацию можно охарактеризовать как кризис ввода-вывода вторичной системы хранения данных.

    Увеличиваем быстродействие

    Невозможность значительного увеличения технологических параметров магнитных дисков влечет за собой необходимость поиска других путей, одним из которых является параллельная обработка.

    Если расположить блок данных по N дискам некоторого массива и организовать это размещение так, чтобы существовала возможность одновременного считывания информации, то этот блок можно будет считать в N раз быстрее, (без учёта времени формирования блока). Поскольку все данные передаются параллельно, это архитектурное решение называется parallel-access array (массив с параллельным доступом).

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

    Некоторые задачи, наоборот, характерны большим количеством малых запросов. К таким задачам относятся, например, задачи обработки баз данных. Располагая записи базы данных по дискам массива, можно распределить загрузку, независимо позиционируя диски. Такую архитектуру принято называть independent-access array (массив с независимым доступом).

    Увеличиваем отказоустойчивость

    К сожалению, при увеличении количества дисков в массиве, надежность всего массива уменьшается. При независимых отказах и экспоненциальном законе распределения наработки на отказ, MTTF всего массива (mean time to failure - среднее время безотказной работы) вычисляется по формуле MTTF array = MMTF hdd /N hdd (MMTF hdd - среднее время безотказной работы одного диска; NHDD - количество дисков).

    Таким образом, возникает необходимость повышения отказоустойчивости дисковых массивов. Для повышения отказоустойчивости массивов используют избыточное кодирование. Существует два основных типа кодирования, которые применяются в избыточных дисковых массивах - это дублирование и четность.

    Дублирование, или зеркализация - наиболее часто используются в дисковых массивах. Простые зеркальные системы используют две копии данных, каждая копия размещается на отдельных дисках. Это схема достаточно проста и не требует дополнительных аппаратных затрат, но имеет один существенный недостаток - она использует 50% дискового пространства для хранения копии информации.

    Второй способ реализации избыточных дисковых массивов - использование избыточного кодирования с помощью вычисления четности. Четность вычисляется как операция XOR всех символов в слове данных. Использование четности в избыточных дисковых массивах уменьшает накладные расходы до величины, исчисляемой формулой: НР hdd =1/N hdd (НР hdd - накладные расходы; N hdd - количество дисков в массиве).

    История и развитие RAID

    Несмотря на то, что системы хранения данных, основанные на магнитных дисках, производятся уже 40 лет, массовое производство отказоустойчивых систем началось совсем недавно. Дисковые массивы с избыточностью данных, которые принято называть RAID (redundant arrays of inexpensive disks - избыточный массив недорогих дисков) были представлены исследователями (Петтерсон, Гибсон и Катц) из Калифорнийского университета в Беркли в 1987 году. Но широкое распространение RAID системы получили только тогда, когда диски, которые подходят для использования в избыточных массивах стали доступны и достаточно производительны. Со времени представления официального доклада о RAID в 1988 году, исследования в сфере избыточных дисковых массивов начали бурно развиваться, в попытке обеспечить широкий спектр решений в сфере компромисса - цена-производительность-надежность.

    С аббревиатурой RAID в свое время случился казус. Дело в том, что недорогими дисками во время написания статьи назывались все диски, которые использовались в ПК, в противовес дорогим дискам для мейнфрейм (универсальная ЭВМ). Но для использования в массивах RAID пришлось использовать достаточно дорогостоящую аппаратуру по сравнению с другой комплектовкой ПК, поэтому RAID начали расшифровывать как redundant array of independent disks 2 - избыточный массив независимых дисков.

    2 - Определение RAID Advisory Board

    RAID 0 был представлен индустрией как определение не отказоустойчивого дискового массива. В Беркли RAID 1 был определен как зеркальный дисковый массив. RAID 2 зарезервирован для массивов, которые применяют код Хемминга. Уровни RAID 3, 4, 5 используют четность для защиты данных от одиночных неисправностей. Именно эти уровни, включительно по 5-й были представлены в Беркли, и эта систематика RAID была принята как стандарт де-факто.

    Уровни RAID 3,4,5 достаточно популярны, имеют хороший коэффициент использования дискового пространства, но у них есть один существенный недостаток - они устойчивы только к одиночным неисправностям. Особенно это актуально при использовании большого количества дисков, когда вероятность одновременного простоя более чем одного устройства увеличивается. Кроме того, для них характерно длительное восстановление, что также накладывает некоторые ограничения для их использования.

    На сегодняшний день разработано достаточно большое количество архитектур, которые обеспечивают работоспособность массива при одновременном отказе любых двух дисков без потери данных. Среди всего множества стоит отметить two-dimensional parity (двухпространственная четность) и EVENODD, которые для кодирования используют четность, и RAID 6, в котором используется кодирование Reed-Solomon.

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

    Минимальная избыточность в таком массиве достигается при равном количестве столбцов и строчек. И равна: 2 x Square (N Disk) (в «квадрат»).

    Если же двухпространственный массив не будет организован в «квадрат», то при реализации вышеуказанной схемы избыточность будет выше.

    Архитектура EVENODD имеет похожую на двухпространственную четность схему отказоустойчивости, но другое размещение информационных блоков, которое гарантирует минимальное избыточное использование емкостей. Так же как и в двухпространственной четности каждый блок данных участвует в построении двух независимый кодовых слов, но слова размещены таким образом, что коэффициент избыточности постоянен (в отличие от предыдущей схемы) и равен: 2 x Square (N Disk).

    Используя два символа для проверки, четность и недвоичные коды, слово данных может быть сконструировано таким образом, чтобы обеспечить отказоустойчивость при возникновении двойной неисправности. Такая схема известна как RAID 6. Недвоичный код, построенный на основе Reed-Solomon кодирования, обычно вычисляется с использованием таблиц или как итерационный процесс с использованием линейных регистров с обратной связью, а это - относительно сложная операция, требующая специализированных аппаратных средств.

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

    В 1996 г. Саведж и Вилкс предложили AFRAID - часто избыточный массив независимых дисков (A Frequently Redundant Array of Independent Disks). Эта архитектура в некоторой степени приносит отказоустойчивость в жертву быстродействию. Делая попытку компенсировать проблему малой записи (small-write problem), характерную для массивов RAID 5-го уровня, разрешается оставлять стрипинг без вычисления четности на некоторый период времени. Если диск, предназначенный для записи четности, занят, то ее запись откладывается. Теоретически доказано, что 25% уменьшение отказоустойчивости может увеличить быстродействие на 97%. AFRAID фактически изменяет модель отказов массивов устойчивых к одиночным неисправностям, поскольку кодовое слово, которое не имеет обновленной четности, восприимчиво к отказам дисков.

    Вместо того чтобы приносить в жертву отказоустойчивость, можно использовать такие традиционные способы увеличения быстродействия, как кэширование. Учитывая то, что дисковый трафик имеет пульсирующий характер, можно использовать кеш память с обратной записью (writeback cache) для хранения данных в момент, когда диски заняты. И если кеш-память будет выполнена в виде энергонезависимой памяти, тогда, в случае исчезновения питания, данные будут сохранены. Кроме того, отложенные дисковые операции, дают возможность объединить в произвольном порядке малые блоки для выполнения более эффективных дисковых операций.

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

    Один из вариантов - parity logging (регистрация четности), который предполагает решение проблемы малой записи (small-write problem) и более эффективного использования дисков. Регистрация четности предполагает отложение изменения четности в RAID 5, записывая ее в FIFO log (журнал регистраций типа FIFO), который размещен частично в памяти контроллера и частично на диске. Учитывая то, что доступ к полному треку в среднем в 10 раз более эффективен, чем доступ к сектору, с помощью регистрации четности собираются большие количества данных модифицированной четности, которые потом все вместе записываются на диск, предназначенный для хранения четности по всему треку.

    Архитектура floating data and parity (плавающие данные и четность), которая разрешает перераспределить физическое размещение дисковых блоков. Свободные сектора размещаются на каждом цилиндре для уменьшения rotational latency (задержки вращения), данные и четность размещаются на этих свободных местах. Для того, чтобы обеспечить работоспособность при исчезновении питания, карту четности и данных нужно сохранять в энергонезависимой памяти. Если потерять карту размещения все данные в массиве будут потеряны.

    Virtual stripping - представляет собой архитектуру floating data and parity с использованием writeback cache. Естественно реализуя положительные стороны обеих.

    Кроме того, существуют и другие способы повышения быстродействия, например распределение RAID операций. В свое время фирма Seagate встроила поддержку RAID операций в свои диски с интерфейсом Fibre Chanel и SCSI. Что дало возможность уменьшить трафик между центральным контроллером и дисками в массиве для систем RAID 5. Это было кардинальным новшеством в сфере реализаций RAID, но технология не получила путевки в жизнь, так как некоторые особенности Fibre Chanel и SCSI стандартов ослабляют модель отказов для дисковых массивов.

    Для того же RAID 5 была представлена архитектура TickerTAIP. Выглядит она следующим образом - центральный механизм управления originator node (узел-инициатор) получает запросы пользователя, выбирает алгоритм обработки и затем передает работу с диском и четность worker node (рабочий узел). Каждый рабочий узел обрабатывает некоторое подмножество дисков в массиве. Как и в модели фирмы Seagate, рабочие узлы передают данные между собой без участия узла-инициатора. В случае отказа рабочего узла, диски, которые он обслуживал, становятся недоступными. Но если кодовое слово построено так, что каждый его символ обрабатывается отдельным рабочим узлом, то схема отказоустойчивости повторяет RAID 5. Для предупреждения отказов узла-инициатора он дублируется, таким образом, мы получаем архитектуру, устойчивую к отказам любого ее узла. При всех своих положительных чертах эта архитектура страдает от проблемы «ошибки записи» («;write hole»). Что подразумевает возникновение ошибки при одновременном изменении кодового слова несколькими пользователями и отказа узла.

    Следует также упомянуть достаточно популярный способ быстрого восстановления RAID - использование свободного диска (spare). При отказе одного из дисков массива, RAID может быть восстановлен с использованием свободного диска вместо вышедшего из строя. Основной особенностью такой реализации есть то, что система переходит в свое предыдущее (отказоустойчивое состояние без внешнего вмешательства). При использовании архитектуры распределения свободного диска (distributed sparing), логические блоки spare диска распределяются физически по всем дискам массива, снимая необходимость перестройки массива при отказе диска.

    Для того чтобы избежать проблемы восстановления, характерной для классических уровней RAID, используется также архитектура, которая носит название parity declustering (распределение четности). Она предполагает размещение меньшего количества логических дисков с большим объемом на физические диски меньшего объема, но большего количества. При использовании этой технологии время реакции системы на запрос во время реконструкции улучшается более чем вдвое, а время реконструкции - значительно уменьшается.

    Архитектура основных уровней RAID

    Теперь давайте рассмотрим архитектуру основных уровней (basic levels) RAID более детально. Перед рассмотрением примем некоторые допущения. Для демонстрации принципов построения RAID систем рассмотрим набор из N дисков (для упрощения N будем считать четным числом), каждый из которых состоит из M блоков.

    Данные будем обозначать - D m,n , где m - число блоков данных, n - число подблоков, на которые разбивается блок данных D.

    Диски могут подключаться как к одному, так и к нескольким каналам передачи данных. Использование большего количества каналов увеличивает пропускную способность системы.

    RAID 0. Дисковый массив без отказоустойчивости (Striped Disk Array without Fault Tolerance)

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

    Преимущества :

    • наивысшая производительность для приложений требующих интенсивной обработки запросов ввода/вывода и данных большого объема;
    • простота реализации;
    • низкая стоимость на единицу объема.

    Недостатки :

    • не отказоустойчивое решение;
    • отказ одного диска влечет за собой потерю всех данных массива.

    RAID 1. Дисковый массив с дублированием или зеркалка (mirroring)

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

    Преимущества :

    • простота реализации;
    • простота восстановления массива в случае отказа (копирование);
    • достаточно высокое быстродействие для приложений с большой интенсивностью запросов.

    Недостатки :

    • высокая стоимость на единицу объема - 100% избыточность;
    • невысокая скорость передачи данных.

    RAID 2. Отказоустойчивый дисковый массив с использованием кода Хемминга (Hamming Code ECC).

    Избыточное кодирование, которое используется в RAID 2, носит название кода Хемминга. Код Хемминга позволяет исправлять одиночные и обнаруживать двойные неисправности. Сегодня активно используется в технологии кодирования данных в оперативной памяти типа ECC. И кодировании данных на магнитных дисках.

    В данном случае показан пример с фиксированным количеством дисков в связи с громоздкостью описания (слово данных состоит из 4 бит, соответственно ECC код из 3-х).

    Преимущества :

    • быстрая коррекция ошибок («на лету»);
    • очень высокая скорость передачи данных больших объемов;
    • при увеличении количества дисков, накладные расходы уменьшаются;
    • достаточно простая реализация.

    Недостатки :

    • высокая стоимость при малом количестве дисков;
    • низкая скорость обработки запросов (не подходит для систем ориентированных на обработку транзакций).

    RAID 3. Отказоустойчивый массив с параллельной передачей данных и четностью (Parallel Transfer Disks with Parity)

    Данные разбиваются на подблоки на уровне байт и записываются одновременно на все диски массива кроме одного, который используется для четности. Использование RAID 3 решает проблему большой избыточности в RAID 2. Большинство контрольных дисков, используемых в RAID уровня 2, нужны для определения положения неисправного разряда. Но в этом нет нужды, так как большинство контроллеров в состоянии определить, когда диск отказал при помощи специальных сигналов, или дополнительного кодирования информации, записанной на диск и используемой для исправления случайных сбоев.

    Преимущества :

    • очень высокая скорость передачи данных;
    • отказ диска мало влияет на скорость работы массива;

    Недостатки :

    • непростая реализация;
    • низкая производительность при большой интенсивности запросов данных небольшого объема.

    RAID 4. Отказоустойчивый массив независимых дисков с разделяемым диском четности (Independent Data disks with shared Parity disk)

    Данные разбиваются на блочном уровне. Каждый блок данных записывается на отдельный диск и может быть прочитан отдельно. Четность для группы блоков генерируется при записи и проверяется при чтении. RAID уровня 4 повышает производительность передачи небольших объемов данных за счет параллелизма, давая возможность выполнять более одного обращения по вводу/выводу одновременно. Главное отличие между RAID 3 и 4 состоит в том, что в последнем, расслоение данных выполняется на уровне секторов, а не на уровне битов или байтов.

    Преимущества :

    • очень высокая скорость чтения данных больших объемов;
    • высокая производительность при большой интенсивности запросов чтения данных;
    • малые накладные расходы для реализации избыточности.

    Недостатки :

    • очень низкая производительность при записи данных;
    • низкая скорость чтения данных малого объема при единичных запросах;
    • асимметричность быстродействия относительно чтения и записи.

    RAID 5. Отказоустойчивый массив независимых дисков с распределенной четностью (Independent Data disks with distributed parity blocks)

    Этот уровень похож на RAID 4, но в отличие от предыдущего четность распределяется циклически по всем дискам массива. Это изменение позволяет увеличить производительность записи небольших объемов данных в многозадачных системах. Если операции записи спланировать должным образом, то, возможно, параллельно обрабатывать до N/2 блоков, где N - число дисков в группе.

    Преимущества :

    • высокая скорость записи данных;
    • достаточно высокая скорость чтения данных;
    • высокая производительность при большой интенсивности запросов чтения/записи данных;
    • малые накладные расходы для реализации избыточности.

    Недостатки :

    • скорость чтения данных ниже, чем в RAID 4;
    • низкая скорость чтения/записи данных малого объема при единичных запросах;
    • достаточно сложная реализация;
    • сложное восстановление данных.

    RAID 6. Отказоустойчивый массив независимых дисков с двумя независимыми распределенными схемами четности (Independent Data disks with two independent distributed parity schemes)

    Данные разбиваются на блочном уровне, аналогично RAID 5, но в дополнение к предыдущей архитектуре используется вторая схема для повышения отказоустойчивости. Эта архитектура является устойчивой к двойным отказам. Однако при выполнении логической записи реально происходит шесть обращений к диску, что сильно увеличивает время обработки одного запроса.

    Преимущества :

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

    Недостатки :

    • очень сложная реализация;
    • сложное восстановление данных;
    • очень низкая скорость записи данных.

    Современные RAID контроллеры позволяют комбинировать различные уровни RAID. Таким образом, можно реализовать системы, которые объединяют в себе достоинства различных уровней, а также системы с большим количеством дисков. Обычно это комбинация нулевого уровня (stripping) и какого либо отказоустойчивого уровня.

    RAID 10. Отказоустойчивый массив с дублированием и параллельной обработкой

    Эта архитектура являет собой массив типа RAID 0, сегментами которого являются массивы RAID 1. Он объединяет в себе очень высокую отказоустойчивость и производительность.

    Преимущества :

    • высокая отказоустойчивость;
    • высокая производительность.

    Недостатки :

    • очень высокая стоимость;
    • ограниченное масштабирование.

    RAID 30. Отказоустойчивый массив с параллельной передачей данных и повышенной производительностью.

    Представляет собой массив типа RAID 0, сегментами которого являются массивы RAID 3. Он объединяет в себе отказоустойчивость и высокую производительность. Обычно используется для приложений требующих последовательной передачи данных больших объемов.

    Преимущества :

    • высокая отказоустойчивость;
    • высокая производительность.

    Недостатки :

    • высокая стоимость;
    • ограниченное масштабирование.

    RAID 50. Отказоустойчивый массив с распределенной четностью и повышенной производительностью

    Являет собой массив типа RAID 0, сегментами которого являются массивы RAID 5. Он объединяет в себе отказоустойчивость и высокую производительность для приложений с большой интенсивностью запросов и высокую скорость передачи данных.

    Преимущества :

    • высокая отказоустойчивость;
    • высокая скорость передачи данных;
    • высокая скорость обработки запросов.

    Недостатки :

    • высокая стоимость;
    • ограниченное масштабирование.

    RAID 7. Отказоустойчивый массив, оптимизированный для повышения производительности. (Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates). RAID 7® является зарегистрированной торговой маркой Storage Computer Corporation (SCC)

    Для понимания архитектуры RAID 7 рассмотрим ее особенности:

    1. Все запросы на передачу данных обрабатываются асинхронно и независимо.
    2. Все операции чтения/записи кэшируются через высокоскоростную шину x-bus.
    3. Диск четности может быть размещен на любом канале.
    4. В микропроцессоре контроллера массива используется операционная система реального времени ориентированная на обработку процессов.
    5. Система имеет хорошую масштабируемость: до 12 host-интерфейсов и до 48 дисков.
    6. Операционная система контролирует коммуникационные каналы.
    7. Используются стандартные SCSI диски, шины, материнские платы и модули памяти.
    8. Используется высокоскоростная шина X-bus для работы с внутренней кеш памятью.
    9. Процедура генерации четности интегрирована в кеш.
    10. Диски, присоединенные к системе, могут быть задекларированы как отдельно стоящие.
    11. Для управления и мониторинга системы можно использовать SNMP агент.

    Преимущества :

    • высокая скорость передачи данных и высокая скорость обработки запросов (1.5 - 6 раз выше других стандартных уровней RAID);
    • высокая масштабируемость хост интерфейсов;
    • скорость записи данных увеличивается с увеличением количества дисков в массиве;
    • для вычисления четности нет необходимости в дополнительной передаче данных.

    Недостатки :

    • собственность одного производителя;
    • очень высокая стоимость на единицу объема;
    • короткий гарантийный срок;
    • не может обслуживаться пользователем;
    • нужно использовать блок бесперебойного питания для предотвращения потери данных из кеш памяти.

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

    RAID Минимум
    дисков
    Потребность
    в дисках
    Отказо-
    устойчивость
    Скорость
    передачи данных
    Интенсивность
    обработки
    запросов
    Практическое
    использование
    0 2 N очень высокая
    до N х 1 диск
    Графика, видео
    1 2 2N * R > 1 диск
    W = 1 диск
    до 2 х 1 диск
    W = 1 диск
    малые файл-серверы
    2 7 2N ~ RAID 3 Низкая мейнфреймы
    3 3 N+1 Низкая Графика, видео
    4 3 N+1 R W R = RAID 0
    W
    файл-серверы
    5 3 N+1 R W R = RAID 0
    W
    серверы баз данных
    6 4 N+2 самая высокая низкая R > 1 диск
    W
    используется крайне редко
    7 12 N+1 самая высокая самая высокая разные типы приложений

    Уточнения :

    • * - рассматривается обычно используемый вариант;
    • k - количество подсегментов;
    • R - чтение;
    • W - запись.

    Некоторые аспекты реализации RAID систем

    Рассмотрим три основных варианта реализации RAID систем:

    • программная (software-based);
    • аппаратная - шинно-ориентированная (bus-based);
    • аппаратная - автономная подсистема (subsystem-based).

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

    Каждая из вышеперечисленных реализаций базируется на исполнении программного кода. Отличаются они фактически тем, где этот код исполняется: в центральном процессоре компьютера (программная реализация) или в специализированном процессоре на RAID контроллере (аппаратная реализация).

    Главное преимущество программной реализации - низкая стоимость. Но при этом у нее много недостатков: низкая производительность, загрузка дополнительной работой центрального процессора, увеличение шинного трафика. Программно обычно реализуют простые уровни RAID - 0 и 1, так как они не требуют значительных вычислений. Учитывая эти особенности, RAID системы с программной реализацией используются в серверах начального уровня.

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

    Шинно-ориентированные реализации представляют собой RAID контроллеры, которые используют скоростную шину компьютера, в который они устанавливаются (в последнее время обычно используется шина PCI). В свою очередь шинно-ориентированные реализации можно разделить на низкоуровневые и высокоуровневые. Первые обычно не имеют SCSI чипов и используют так называемый RAID порт на материнской плате со встроенным SCSI контроллером. При этом функции обработки кода RAID и операций ввода/вывода распределяются между процессором на RAID контроллере и чипами SCSI на материнской плате. Таким образом, центральный процессор освобождается от обработки дополнительного кода и уменьшается шинный трафик по сравнению с программным вариантом. Стоимость таких плат обычно небольшая, особенно если они ориентированы на системы RAID - 0 или 1 (есть также реализации RAID 3, 5, 10, 30, 50, но они дороже), благодаря чему они понемногу вытесняют программные реализации с рынка серверов начального уровня. Высокоуровневые контроллеры с шинной реализацией имеют несколько другую структуру, чем их младшие братья. Они берут на себя все функции, связанные с вводом/выводом и исполнением RAID кода. Кроме того, они не так зависимы от реализации материнской платы и, как правило, имеют больше возможностей (например, возможность подключения модуля для хранения информации в кеш в случае отказа материнской платы или исчезновения питания). Такие контроллеры обычно стоят дороже низкоуровневых и используются в серверах среднего и высокого уровня. Они, как правило, реализуют RAID уровней 0,1, 3, 5, 10, 30, 50. Учитывая то, что шинно-ориентированные реализации подключаются прямо к внутренней PCI шине компьютера, они являются наиболее производительными среди рассматриваемых систем (при организации одно-хостовых систем). Максимальное быстродействие таких систем может достигать 132 Мбайт/с (32bit PCI) или же 264 Мбайт/с (64bit PCI) при частоте шины 33MHz.

    Вместе с перечисленными преимуществами шинно-ориентированная архитектура имеет следующие недостатки:

    • зависимость от операционной системы и платформы;
    • ограниченная масштабируемость;
    • ограниченные возможности по организации отказоустойчивых систем.

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

    Обычно внешний контроллер ставится в отдельную стойку и в отличие от систем с шинной организацией может иметь большое количество каналов ввода/вывода, в том числе и хост-каналов, что дает возможность подключать к системе несколько хост-компьютеров и организовывать кластерные системы. В системах с автономным контроллером можно реализовать горячее резервирование контроллеров.

    Одним из недостатков автономных систем остается их большая стоимость.

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