Виды raid массивов. Что такое RAID-массивы и зачем они нужны

Начнем с малого: «RAID-массив» или в простонародье «RAID», что это?

RAID – это аббревиатура, которая расшифровывается как (англ. "Redundant Array of Independent Disks"), что в переводе на Русский - "избыточный (резервный) массив независимых дисков".
Проще говоря, «RAID-массив» - это объединение физических HDD дисков в один логический.
Логический диск – это, обычный HDD диск разделен на несколько логических. Обычно такое применяется в стационарных компьютерах, из одного делают несколько.
Как уже было упомянуто выше, что обычный физический диск можно разделить на несколько логических. В «RAID» происходит все на оборот - несколько HDD дисков устанавливаются в соединительный элемент (где они будут храниться), а потом операционная система воспринимает все HDD диски как один. т.е., операционная система 100% уверена, что подключен к ней всего один физический диск.

Какие бывают RAID-массивы их всего 2-а типа, аппаратные и программные:

1) Аппаратные RAID-массивы – обычно создаются до того, как производится загрузка операционной системы при помощи специализированных утилит, установленных (зашитых) в «RAID-контроллер» - что-то вроде «BIOS». После такой обработке, при подключении «RAID-массива» операционная система на стадии инсталляции видит ваши HDD диски как один.

2) Программные RAID-массивы - создаются посредством подключения HDD дисков к какой либо операционной системой. т.е., в то время когда вы подключите HDD диски она определяет несколько физических дисков и и только при помощи Операционной Системы, с помощью программного обеспечения, HDD диски объединяются в один массив. Сама же ОС будет располагаться не на самом «RAID-массиве», так как устанавливается до создания массива.

"Для чего это нужно?" – возникнет у Вас вопрос! Ответ прост: для того, чтобы повысить скорость чтения и записи данных или повышения безопасности и отказоустойчивости.
Давайте рассмотрим, каким же все-таки образом «RAID-массив» увеличивает производительность и безопасность для Ваших данных?" – чтобы ответить на этот вопрос, мы рассмотрим различные типы «RAID-массивов», как они формируются и что из этого получается.

Рассмотрим «RAID-0»:

Более одного HDD диска объединяются в один посредством последовательного соединения, после чего происходит суммирование объемов т.е. - если взять несколько HDD дисков, каждый из которых объемом «500Гб» и создадим из них «RAID-0», то операционная система будет воспринимать установленные HDD диски как один суммируя их, из чего мы получим один HDD диск объемом в 1000Gb (1Tb). После того, как произойдет слияние дисков в один массив, скорость чтения и записи у накопителя будет в два раза больше, чем у дисков по раздельности.

Пример – расположенная база данных на двух физических HDD дисках, один из которых пользователь будет производить только чтение данных, в то время как другой пользователь, будет производить запись данных на другой HDD диск, причем все это они будут делать одновременно. А вот если расположение базы данных будет только на одном диске, сам HDD диск функцию чтения или записи совершенно разных пользователей будет выполнять последовательно своему ПО. Массив «RAID-0» предоставит возможность выполнять чтение и запись параллельно. По скорости можно сделать вывод - сколько в вашем RAID-0 массиве HDD дисков, умножаем Ито число на существующую скорость (с той скоростью у вас быстрее будет работать RAID-0) – вся зависимость массива пропорциональная – скорость HDD исков возрастает в N раз, где N = количеству установленных HDD дисков, в массив.

Массив RAID-0 обладает только одним недостатком, этот минус перекрывает все, даже плюсы его использования – в массиве RAID-0 отсутствует отказоустойчивост. Проблема состоит в следующем, если выходит из строя один из физических HDD дисков установленный в массив, то следовательно умирает весь массив.
Существует старая шутка по этому поводу: "Что обозначает "0" в значении RAID-0? - объем информации которая восстанавливается после смерти массива!" (правда не весело совсем если там что-то очень важное).

Далее рассмотрим массив «RAID-1»:

Несколько или более HDD дисков объединяются в один путем установки в специализированный массив, т.е. если взять несколько HDD дисков емкостью 500Гб и сделаем из них массив «RAID-1», операционная система будет воспринимать его как один массив объемом в 500Гб.
Скорость чтения и записи у «RAID-1» массива будет точно такая же, как и у одного HDD диска, потому что, чтение и запись будет производиться производятся сразу на оба HDD диска одновременно.
Массив «RAID-1» не увеличит скорость производимости, зато отказоустойчивость вам обеспечена, в случае если выйдет из строя один из HDD дисков, на втором HDD диске будет полный бекап (резервная копия) информации. В случае удаления данных с массива целенаправленно, то удаление происходит с обоих дисков одновременно!

Далее рассматриваем массив «RAID-5»:

Наиболее из безопасных вариантов RAID-5. Заполнение массива информацией идет с расчетом, придерживаясь формулы «(N - 1) * DiskSize», где N число - это количество HDD дисков находящихся в массиве, а аббревиатура «DiskSize» - это объем каждого установленного HDD диска, т.е. при создании массива версии «RAID-5» из 3-х HDD дисков, емкостью каждый из которых по 500Гб, у нас получится массив объемом памяти в 1000Gb 1терабайт.

Суть RAID-5 массива заключается в следующем - несколько HDD дисков объединяются в «RAID-0», а на третьем HDD диске (который не учитывается) будет храниться, назовем ее "контрольная сумма" – это информация, предназначенная для восстановления одного из дисков массива, в случае его смерти. У массива «RAID-5» скорость записи немного ниже, так как есть небольшие затраты времени на расчет и запись полученной суммы на дополнительный диск, а скорость чтения остается такой же, как вмассиве «RAID-0».
Если случится, что один из находящихся у вас HDD дисков массива RAID-5 выйдет из строя, сразу резко понизится скорость чтения и записи, так как все происходящие операции имеют сопровождение дополнительным манипулятивными действиями.

Фактически RAID-5 превращается в RAID-0 и если своевременно не позаботиться восстановлением RAID-массива есть существенный риск потерять данные полностью.
Параллельно с массивом «RAID-5» есть возможность использовать «Spare-диск» - запасной. Во время стабильного режима работы «RAID-массива», диск «Spare» не используется и находится в режиме простоя. Но в случае возникновении любой критической ситуации, резервное восстановление «RAID-массива» начнется в автоматическом режиме - на запасной HDD диск будет происходить восстановление информации с поврежденного HDD при помощи контрольно-вычислительных сумм, нахождение которых находится на отдельном HDD диске.
Массив «RAID-5» обычно создается минимум из трех HDD дисков и поможет спасти Ваши данные только от одиночных возникших ошибок. При одновременном появлении различных ошибок на разных HDD дисках массив «RAID-5» не спасет.

Далее массив «RAID-6»:

Обладает улучшенными возможностями по сравнению с «RAID-5» массивом. В общем, суть работы такая же, как с массивом «RAID-5», только вычисление контрольных сумм будет происходить не на один HDD диск, а на два HDD диска, причем весь подсчет контрольных сумм делаются совершенно разных алгоритмов, что способствует существенному повышению отказоустойчивости всего «RAID-массива» в целом. Массив RAID-6 в основном собирается от 4-х HDD дисков. Формула, по которой ведутся расчеты, размера памяти массива выглядит следующее -- (N - 2) * DiskSize, где N - количество HDD дисков установленных в массив, а «DiskSize» - размер памяти каждого HDD диска, т.е. при создании массива «RAID-6» из пяти HDD дисков номиналом по 500Гб, в сумме получится массив размером в 1500Gb(1,5Tb-терабайта).
Скорость массива «RAID-6» при записи будет ниже чем у массива «RAID-5» приблизительно на 10-15%, снижение скорости обусловлено дополнительными затратами по времени на расчет с записью контрольных сумм.

Массив «RAID-10»:

Его иногда называют «RAID 0+1» или «RAID 1+0», Что представляет собой симбиоз «RAID-0 и RAID-1». Данный массив обычно создается минимум из четырех HDD дисков: на первом разделе «RAID-0» и на втором «RAID-0» для того, чтобы повысить скорость чтения и записи, между собой они будут находится в зеркале массива «RAID-1»- это нужно для повышения отказоустойчивости. Массив «RAID-10» смог совместить в себе плюсы двух первых вариантов - что последовало его быстродействию и отказоустойчивости.

Массив «RAID-50» - это аналог «RAID-10», являющимся симбиозом «RAID-0 и RAID-5» - по факту собирается как массив «RAID-5», только составляющие элементы которые входят в него будут не физические HDD диски, а он будет состоять из массивов плана «RAID-0». Таким образом, массив «RAID-50» предоставит Вам при работе, замечательную скорость чтения с записью и будет способствовать устойчивости и надежности «RAID-5».

Далее массив «RAID-60»:

Тот же принцип: фактически это «RAID-6», собирается из нескольких «RAID-0» массивов.
Существуют и другие комбинации массивов, таких как - «RAID 5+1 / RAID 6+1» - по сути, они схожи с «RAID-50 / RAID-60» с той разницей, что базой их элементов массива обладают не «RAID-0» как у других, а зеркала массива «RAID-1».

Понятия о комбинированных «RAID»-массивов:

По сути такие массивы как «RAID-10» / «RAID-50» / «RAID-60» и «RAID X+1» - это прямые наследники базовых массивов как - «RAID-0» / RAID-1 / RAID-5 и RAID-6 – в основном их используют для того, чтобы повысить либо скорость чтения, либо скорость записи или для повышения отказоустойчивости, используя в себе стандартный функционал базовых, стандартных типов RAID-массивов.

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

1) Массив RAID-0 в чистом виде не используется (совсем!);
2) «RAID-1» массив используется в основном там, где скорость чтения или записи не особенно играют большую роль, а в большей степени требуется отказоустойчивость – пример: на массив «RAID-1» очень хорошо устанавливать различные операционные системы. В этом случае к HDD дискам кроме ОС не обращается никто, скорость самих HDD дисков для работы достаточно, отказоустойчивость обеспечена;
3) RAID-5 устанавливаем туда, где необходима скорость с отказоустойчивостью, но нет возможности приобрести большего количества HDD дисков или если есть нужда восстанавливать массивы если произойдет повреждение, при этом, чтобы работа самого массива не прекращалась – в этом случае помогут Spare-диски (запасные).
4) Стандартное применение массива «RAID-5»:
В хранилищах данных или как их еще называют NAS сервер;
5) «RAID-6» массив:
Применяется там, где есть угроза, что выйти из строя могут сразу нескольких HDD дисков в массиве. В практике такого практически нет, если только у параноиков;
6) «RAID-10» массив:
Применяют там, где нужна скорость, для быстрой работы и чтобы надежно. Так же основное направлением в применении массива «RAID-10» - это, серверы баз данных и файловые серверы.

Вот в принципе и все что хотелось выяснить, что к чему и почему!

Оформление запроса

Пожалуйста, заполните контактные поля формы


Получать IT-новости

Поля, помеченные * обязательны для заполнения

Описание RAID-массивов ( , )

Описание RAID 0


Дисковый массив повышенной производительности без отказоустойчивости
Striped Disk Array without Fault Tolerance

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

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

Описание RAID 1


Дисковый массив с дублированием или зеркалирование
Duplexing & Mirroring
RAID 1 - mirroring - зеркальное отражение двух дисков. Избыточность структуры данного массива обеспечивает его высокую отказоустойчивость. Массив отличается высокой себестоимостью и низкой производительностью.

Преимущества:
- · простота реализации;
- · простота восстановления массива в случае отказа (копирование);
- · достаточно высокое быстродействие для приложений с большой интенсивностью запросов.
Недостатки:
- · высокая стоимость на единицу объема - 100% избыточность;
- · невысокая скорость передачи данных.

Описание RAID 2


Отказоустойчивый дисковый массив с использованием кода Хемминга
Hamming Code ECC
RAID 2 - использует коды исправления ошибок Хемминга (Hamming Code ECC). Коды позволяют исправлять одиночные и обнаруживать двойные неисправности.

Преимущества:
- · быстрая коррекция ошибок ("на лету");
- · очень высокая скорость передачи данных больших объемов;
- · при увеличении количества дисков, накладные расходы уменьшаются;
- · достаточно простая реализация.
Недостатки:
- · высокая стоимость при малом количестве дисков;
- · низкая скорость обработки запросов (не подходит для систем ориентированных на обработку транзакций).

Описание RAID 3


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

RAID 3 - данные хранятся по принципу striping на уровне байтов с контрольной суммой (КС) на одном из дисков. Массив не имеет проблему некоторой избыточности как в RAID 2-го уровня. Диски с контрольной суммой используемые в RAID 2, необходимы для определения ошибочного заряда. Однако большинство современных контроллеров способны определить, когда диск отказал при помощи спец сигналов или дополнительного кодирования информации, записанной на диск и используемой для исправления случайных сбоев.

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

  • Интерфейс scsi
  • 3.2. Запоминающие устройства на оптических дисках
  • 3.2.1. Оптические диски 3.2.2. Организация данных на оптических дисках
  • 3.2.3. Приводы оптических дисков
  • 3.2.1. Оптические диски
  • 3.2.2. Организация данных на оптических дисках
  • 3.2.3. Приводы оптических дисков
  • 3.3. Запоминающие устройства со сменными магнитными носителями
  • 3.3.1. Накопители на гибких магнитных дисках 3.3.2. Запоминающие устройства со сменными магнитными и магнитооптическими дисками 3.3.3. Накопители на магнитных лентах
  • 3.3.1. Накопители на гибких магнитных дисках
  • 3.3.2. Запоминающие устройства со сменными магнитными и магнитооптическими дисками
  • 3.3.3. Накопители на магнитных лентах
  • Глава 4. Методы оценки характеристик и повышения производительности памяти
  • 4.1. Методы оценки временных характеристик зу 4.2. Методы повышения производительности памяти эвм 4.3. Направления развития зу
  • 4.1. Методы оценки временных характеристик зу
  • 4.1.1. Экспериментальные методы оценки 4.1.2. Теоретические методы оценки
  • 4.1.1. Экспериментальные методы оценки
  • 4.1.2. Теоретические методы оценки
  • 4.2. Методы повышения производительности памяти эвм
  • 4.2.1. Использование кэш-памяти 4.2.2. Диспетчеризация (управление порядком) обслуживания обращений 4.2.3. Организация дисковых массивов (raid)
  • 4.2.1. Использование кэш-памяти
  • 4.2.2. Диспетчеризация (управление порядком) обслуживания обращений
  • 4.2.3. Организация дисковых массивов (raid)
  • 4.3. Направления развития зу
  • Литература и ссылки
  • 4.2.3. Организация дисковых массивов (raid)

    Еще одним способом повышения производительности дисковой памяти стало построение дисковых массивов, хотя этот нацелен не только (и не столько) на достижение более высокой производительности, но и большей надежности работы запоминающих устройств на дисках.

    Технология RAID (Redundant Array of Independent Disks – избыточный массив независимых дисков) задумывалась как объединение нескольких недорогих жестких дисков в один массив дисков для увеличения производительности, объема и надежности, по сравнению с одиночным диском. При этом ЭВМ должна видеть такой массив как один логический диск.

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

    В RAID системах для повышения надежности и производительности используются комбинации трех основных механизмов, каждый из которых хорошо известен и по отдельности: - организация “зеркальных” дисков, т.е. полное дублирование хранимой информации; - подсчет контрольных кодов (четность, коды Хэмминга), позволяющих восстановить информацию при сбое; - распределение информации по различным дискам массива так, как это делается при чередовании обращений по блокам памяти (см. interleave), что повышает возможности параллельной работы дисков при операциях над хранимой информацией. При описании RAID этот прием называют “stripped disks”, что буквально означает “разделенные на полоски диски”, или просто "полосатые диски"..

    Рис. 43. Разбиение дисков на чередующиеся блоки - “полоски”.

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

    Основные типы RAID массивов можно кратко охарактеризовать следующим образом .

    RAID 0 . Обычно этот тип массива определяется как группа дисков с чередованием (stripped) расположения информации без контроля четности и без избыточности данных. Размеры чередующихся областей (stripes – “полосок”, или блоков) могут быть большими в многопользовательском окружении или малыми в однопользовательской системе при последовательном доступе к длинным записям.

    Организация RAID 0 как раз и соответствует той, которая показана на рис. 43. Операции записи и чтения могут выполняться одновременно на каждом дисководе. Минимальное количество дисководов для RAID 0 – два.

    Для этого типа характерны высокая производительность и наиболее эффективное использование дискового пространства, однако, выход из строя одного из дисков приводит к невозможности работы со всем массивом.

    RAID 1 . Этот тип дискового массива (рис. 44, а ) известен также как зеркальные диски и представляет собой просто пары дисководов, дублирующих хранимые данные, но представляющиеся компьютеру как один диск. И хотя в рамках одной пары зеркальных дисков разбиение на полоски не производится, чередование блоков может быть организовано для нескольких массивов RAID 1, образующих вместе один большой массив из нескольких зеркальных пар дисков. Такой вариант организации получил название RAID 1 + 0. Существует и обратный вариант.

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

    RAID 2 . В этих дисковых массивах блоки – сектора данных чередуются по группе дисков, часть из которых используется только для хранения контрольной информации – ECC (error correcting codes) кодов. Но поскольку во всех современных дисках имеется встроенный контроль с помощью ECC кодов, то RAID 2 мало что дает, по сравнению с другими типами RAID, и сейчас редко используется.

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

    RAID 4. Эта организация, показанная на рис. 35, в ), похожа на RAID 3 с той лишь разницей, что в нем используются блоки (полоски) большого размера, так что записи можно читать с любого диска массива (кроме диска, хранящего коды четности). Это позволяет совмещать операции чтения на разных дисках. При операциях записи всегда происходит обновление диска четности, поэтому их совмещение невозможно. В целом, данная архитектура не имеет особых преимуществ перед другими вариантами RAID.

    RAID 5. Этот тип дискового массива похож на RAID 4, но хранение кодов четности в нем осуществляется не на специально выделенном диске, а блоками, располагающимися поочередно на всех дисках. Эту организацию даже иногда называют массив с “вращающейся четностью” (можно отметить некую аналогию с назначением линий прерываний для слотов шины PCI или с циклическим приоритетом контроллера прерываний в процессорах линии x86). Такое распределение позволяет избежать ограничения возможности одновременной записи из-за хранения кодов четности только на одном диске, характерного для RAID 4. На рис. 44, г ) показан массив, состоящий из четырех дисководов, причем для каждых трех блоков данных имеется один блок четности (эти блоки заштрихованы), местоположение которого для каждой тройки блоков данных изменяется, перемещаясь циклически по всем четырем дисководам.

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

    Сравнение различных вариантов организации дисковых массивов показывает следующее.

    Организация RAID 0 – это наиболее быстрый и эффективный вариант, но не обеспечивающий устойчивости к сбоям. Он требует минимум 2 дисковода. Операции записи и чтения могут выполняться одновременно на каждом дисководе.

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

    Архитектура RAID 2 используется редко.

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

    Архитектура RAID 4 не поддерживает одновременные операции и не имеет преимуществ, по сравнению с RAID 5.

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

    Кроме того, на основе наиболее распространенных вариантов RAID: 0, 1 и 5 могут формироваться так называемые двухуровневые архитектуры, в которых сочетаются принципы организации различных типов массивов. Например, несколько RAID массивов одного и того же типа можно объединить в одну группу массивов данных или массив четности.

    За счет такой двухуровневой организации можно достичь требуемого баланса между увеличением надежности хранения данных, характерным для массивов RAID 1 и RAID 5 и высокой скоростью чтения, присущей чередованию блоков на дисках в массиве типа RAID 0. Такие двухуровневые схемы иногда называют RAID 0+1 или 10 и 0+5 или 50.

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

    RAID (англ. redundant array of independent disks - избыточный массив независимых жёстких дисков) - массив из нескольких дисков, управляемых контроллером, взаимосвязанных скоростными каналами и воспринимаемых внешней системой как единое целое. В зависимости от типа используемого массива может обеспечивать различные степени отказоустойчивости и быстродействия. Служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи информации. Изначально, подобные массивы строились в качестве резерва носителям на оперативной (RAM) памяти, которая в то время была дорогой. Со временем, аббревиатура приобрела второе значение – массив уже был из независимых дисков, подразумевая использование нескольких дисков, а не разделов одного диска, а также дороговизну (теперь уже относительно просто нескольких дисков) оборудования, необходимого для построения этого самого массива.

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

    RAID 0. Дисковый массив с чередованием без отказоустойчивости/чётности (Stripe)

    Является массивом, где данные разбиваются на блоки (размер блока можно задавать при создании массива) и затем записываются на отдельные диски. В простейшем случае – есть два диска, один блок пишется на первый диск, другой на второй, затем опять на первый и так далее. Также этот режим называется «чередование», поскольку при записи блоков данных чередуются диски, на которые осуществляется запись. Соответственно, читаются блоки тоже поочерёдно. Таким образом, происходит параллельное выполнение операций ввода/вывода, что приводит к большей производительности. Если раньше за единицу времени мы могли считать один блок, то теперь можем сделать это сразу с нескольких дисков. Основным плюсом данного режима как раз и является высокая скорость передачи данных.

    Однако чудес не бывает, а если бывают, то нечасто. Производительность растёт всё же не в N раз (N – число дисков), а меньше. В первую очередь, увеличивается в N раз время доступа к диску, и без того высокое относительно других подсистем компьютера. Качество контроллера оказывает не меньшее влияние. Если он не самый лучший, то скорость может едва заметно отличаться от скорости одного диска. Ну и немалое влияние оказывает интерфейс, которым RAID контроллер соединён с остальной системой. Всё это может привести не только к меньшему, чем N увеличению скорости линейного чтения, но и к пределу количества дисков, установка выше которого прироста давать уже не будет вовсе. Или, наоборот, будет слегка снижать скорость. В реальных задачах, с большим числом запросов шанс столкнуться с этим явлением минимален, ибо скорость весьма сильно упирается в сам жёсткий диск и его возможности.

    Как видно, в этом режиме избыточности нет как таковой. Используется всё дисковое пространство. Однако, если один из дисков выходит из строя, то, очевидно, теряется вся информация.

    RAID 1. Зеркалирование (Mirror)

    Суть данного режима RAID сводится к созданию копии (зеркала) диска с целью повышения отказоустойчивости. Если один диск выходит из строя, то работа не прекращается, а продолжается, но уже с одним диском. Для этого режима требуется чётное число дисков. Идея этого метода близка к резервному копированию, но всё происходит «на лету», равно как и восстановление после сбоя (что порой весьма важно) и нет необходимости тратить время на это.

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

    RAID 2 Массив с использованием ошибкоустойчивого кода Хемминга.

    Данный код позволяет исправлять и обнаруживать двойные ошибки. Активно используется в памяти с коррекцией ошибок (ECC). В этом режиме диски разбиваются на две группы – одна часть используется для хранения данных и работает аналогично RAID 0, разбивая блоки данных по разным дискам; вторая часть используется для хранения ECC кодов.

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

    Главным минусом является высокая избыточность (при малом числе дисков она почти двойная, n-1). При увеличении числа дисков удельное число дисков хранения ECC кодов становится меньше (снижается удельная избыточность). Вторым минусом является низкая скорость работы с мелкими файлами. Из-за громоздкости и высокой избыточности с малым числом дисков, данный уровень RAID в данное время не используется, сдав позиции более высоким уровням.

    RAID 3. Отказоустойчивый массив с битовым чередованием и чётностью.

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

    Из основных минусов надо отметить низкую скорость при работе с мелкими файлами и множеством запросов. Связано это с тем, что все контрольные коды хранятся на одном диске и при операциях ввода/вывода их необходимо переписывать. Скорость этого диска и ограничивает скорость работы всего массива. Биты чётности пишутся только при записи данных. А при чтении – они проверяются. По причине этого наблюдается дисбаланс в скорости чтения/записи. Одиночное чтение небольших файлов также характеризуется невысокой скоростью, что связано с невозможностью параллельного доступа с независимых дисков, когда разные диски параллельно выполняют запросы.

    RAID 4

    Данные записываются блоками на разные диски, один диск используется для хранения битов чётности. Отличие от RAID 3 заключается в том, что блоки разбиваются не по битам и байтам, а по секторам. Преимущества заключаются в высокой скорости передачи при работе с большими файлами. Также высока скорость работы с большим числом запросов на чтение. Из недостатков можно отметить доставшиеся от RAID 3 – дисбаланс в скорости операций чтения/записи и существование условий, затрудняющих параллельный доступ к данным.

    RAID 5. Дисковый массив с чередованием и распределённой чётностью.

    Метод похож на предыдущий, но в нём для битов чётности выделяется не отдельный диск, а эта информация распределяется между всеми дисками. То есть, если используется N дисков, то будет доступен объём N-1 диска. Объём одного будет выделен под биты чётности, как и в RAID 3,4. Но они хранятся не на отдельном диске, а разделены. На каждом диске есть (N-1)/N объёма информации и 1/N объёма заполнено битами чётности. Если в массиве выходит из строя один диск, то он остаётся работоспособным (данные, хранившиеся на нём, вычисляются на основе чётности и данных других дисков «на лету»). То есть, сбой проходит прозрачно для пользователя и порой даже с минимальным падением производительности (зависит от вычислительной способности RAID контроллера). Из преимуществ отметим высокие скорости чтения и записи данных, как при больших объёмах, так и при большом числе запросов. Недостатки – сложное восстановление данных и более низкая, чем в RAID 4 скорость чтения.

    RAID 6. Дисковый массив с чередованием и двойной распределённой чётностью.

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

    Комбинированные (nested) уровни RAID.

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

    RAID 0+1

    Комбинация, которая является массивом RAID 1, собранным на базе массивов RAID 0. Как и в массиве RAID 1, доступным будет только половина объёма дисков. Но, как и в RAID 0, скорость будет выше, чем с одним диском. Для реализации такого решения необходимо минимум 4 диска.

    RAID 1+0

    Также известен, как RAID 10. Является страйпом зеркал, то есть, массивом RAID 0, построенным из RAID 1 массивов. Практически аналогичен предыдущему решению.

    RAID 0+3

    Массив с выделенной чётностью над чередованием. Является массивом 3-го уровня, в котором данные блоками разбиваются и пишутся на массивы RAID 0. Комбинации, кроме простейших 0+1 и 1+0 требуют специализированных контроллеров, зачастую достаточно дорогих. Надёжность данного вида ниже, чем у следующего варианта.

    RAID 3+0

    Также известен, как RAID 30. Является страйпом (массивом RAID 0) из массивов RAID 3. Обладает весьма высокой скорость передачи данных, вкупе с неплохой отказоустойчивостью. Данные сначала разделяются на блоки (как в RAID 0) и попадают на массивы-элементы. Там они опять делятся на блоки, считается их чётность, блоки пишутся на все диски кроме одного, на который пишутся биты чётности. В данном случае, из строя может выйти один из дисков каждого из входящих в состав RAID 3 массива.

    RAID 5+0 (50)

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

    RAID 5+1 (51)

    Сочетание зеркалирования и чередования с распределённой четностью. Также вариантом является RAID 15 (1+5). Обладает очень высокой отказоустойчивостью. Массив 1+5 способен работать при отказе трех дисков, а 5+1 – пяти из восьми дисков.

    RAID 6+0 (60)

    Чередование с двойной распределённой четностью. Иными словами – страйп из RAID 6. Как уже говорилось применительно к RAID 0+5, RAID 6 из страйпов не получил распространения (0+6). Подобные приёмы (страйп из массивов с четностью) позволяют повысить скорость работы массива. Ещё одним преимуществом является то, что так можно легко повысить объём, не усложняя ситуации с задержками, необходимыми на вычисление и запись большего числа битов четности.

    RAID 100 (10+0)

    RAID 100, также пишущийся как RAID 10+0, является страйпом из RAID 10. По своей сути, он схож с более широким RAID 10 массивом, где используется вдвое больше дисков. Но именно такой «трехэтажной» структуре есть своё объяснение. Чаще всего RAID 10 делают аппаратным, то есть силами контроллера, а уже страйп из них делают программно. К такой уловке прибегают, чтобы избежать проблемы, о которой говорилось в начале статьи – контроллеры имеют свои ограничения по масштабируемости и если воткнуть в один контроллер двойное число дисков, прироста можно при некоторых условиях вообще не увидеть. Программный же RAID 0 позволяет создать его на базе двух контроллеров, каждый из которых держит на борту RAID 10. Так, мы избегаем «бутылочного горлышка» в лице контроллера. Ещё одним полезным моментом является обход проблемы с максимальным числом разъёмов на одном контроллере – удваивая их число, мы удваиваем и число доступных разъёмов.

    Нестандартные режимы RAID

    Двойная четность

    Распространённым дополнением к перечисленным уровням RAID является двойная четность, порой реализованная и потому называемая «диагональной четностью». Двойная четность уже внедрена в RAID 6. Но, в отличие от нее, четность считается над другими блоками данных. Недавно спецификация RAID 6 была расширена, потому диагональная четность может считаться RAID 6. Если для RAID 6 четность считается как результат сложения по модулю 2 битов, идущих в ряд (то есть сумма первого бита на первом диске, первого бита на втором и т.д.), то в диагональной четности идет смещение. Работа в режиме сбоя дисков не рекомендуется (ввиду сложности вычисления утраченных битов из контрольных сумм).

    Является разработкой NetApp RAID массива с двойной четностью и подпадает под обновленное определение RAID 6. Использует отличную от классической RAID 6 реализации схему записи данных. Запись ведется сначала на кеш NVRAM, снабжённый источником бесперебойного питания, чтобы предотвратить потерю данных при отключении электричества. Программное обеспечение контроллера, по возможности, пишет только цельные блоки на диски. Такая схема предоставляет большую защиту, чем RAID 1 и имеет более высокую скорость работы, нежели обычный RAID 6.

    RAID 1,5

    Был предложен компанией Highpoint, однако теперь применяется очень часто в контроллерах RAID 1, без каких-либо выделений данной особенности. Суть сводится к простой оптимизации – данные пишутся как на обычный массив RAID 1 (чем 1,5 по сути и является), а читают данные с чередованием с двух дисков (как в RAID 0). В конкретной реализации от Highpoint, применявшейся на платах DFI серии LanParty на чипсете nForce 2, прирост был едва заметным, а порой и нулевым. Связано это, вероятно, с невысокой скоростью контроллеров данного производителя в целом в то время.

    Комбинирует в себе RAID 0 и RAID 1. Создаётся минимум на трёх дисках. Данные пишутся с чередованием на три диска, а со сдвигом на 1 диск пишется их копия. Если пишется один блок на три диска, то копия первой части пишется на второй диск, второй части – на третий диск. При использовании четного числа дисков лучше, конечно, использовать RAID 10.

    Обычно при построении RAID 5 один диск оставляют свободным (spare), чтобы в случае сбоя система сразу стала перестраивать (rebuild) массив. При обычной работе этот диск работает вхолостую. Система RAID 5E подразумевает использование этого диска в качестве элемента массива. А объём этого свободного диска распределяется по всему массиву и находится в конце дисков. Минимальное число дисков – 4 штуки. Доступный объём равен n-2, объём одного диска используется (будучи распределенным между всеми) для четности, объем еще одного – свободный. При выходе из строя диска происходит сжатие массива до 3-х дисков (на примере минимального числа) заполнением свободного пространства. Получается обычный массив RAID 5, устойчивый к отказу ещё одного диска. При подключении нового диска, массив расжимается и занимает вновь все диски. Стоит отметить, что во время сжатия и распаковки диск не является устойчивым к выходу еще одного диска. Также он недоступен для чтения/записи в это время. Основное преимущество – большая скорость работы, поскольку чередование происходит на большем числе дисков. Минус – что нельзя данный диск назначать сразу к нескольким массивам, что возможно в простом массиве RAID 5.

    RAID 5EE

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

    Аналогично с RAID 5E использует дополнительный диск для повышения скорости работы и распределения нагрузки. Свободное место разделяется между другими дисками и находится в конце дисков.

    Данная технология является зарегистрированной торговой маркой фирмы Storage Computer Corporation. Массив, основывающийся на RAID 3, 4, оптимизированный для повышения производительности. Основное преимущество заключается в использовании кеширования операций чтения/записи. Запросы на передачу данных осуществляются асинхронно. При построении используются диски SCSI. Скорость выше решений RAID 3,4 приблизительно в 1,5-6 раз.

    Intel Matrix RAID

    Является технологией, представленной Intel в южных мостах, начиная с ICH6R. Суть сводится к возможности комбинации RAID массивов разных уровней на разделах дисков, а не на отдельных дисках. Скажем, на двух дисках можно организовать по два раздела, два из них будут хранить на себе операционную систему на массиве RAID 0, а другие два – работая в режиме RAID 1 – хранить копии документов.

    Linux MD RAID 10

    Это RAID драйвер ядра Linux, предоставляющий возможность создания более продвинутой версии RAID 10. Так, если для RAID 10 существовало ограничение в виде чётного числа дисков, то этот драйвер может работать и с нечетным. Принцип для трех дисков будет тем же, что в RAID 1E, когда происходит чередование дисков по очереди для создания копии и чередования блоков, как в RAID 0. Для четырех дисков это будет эквивалентно обычному RAID 10. Помимо этого, можно задавать, на какой области диска будет храниться копия. Скажем, оригинал будет в первой половине первого диска, а его копия – во второй половине второго. Со второй половиной данных – наоборот. Данные можно дублировать несколько раз. Хранение копий на разных частях диска позволяет достичь большей скорости доступа в результате разнородности жесткого диска (скорость доступа меняется в зависимости от расположения данных на пластине, обычно разница составляет два раза).

    Разработан компанией Kaleidescape для использования в своих медиа устройствах. Схож с RAID 4 с использованием двойной четности, но использует другой метод отказоустойчивости. Пользователь может легко расширять массив, просто добавляя диски, причём в случае, если он содержит данные, данные будут просто добавлены в него, вместо удаления, как это требуется обычно.

    Разработка компании Sun. Самой большой проблемой RAID 5 является потеря информации в результате отключения питания, когда информация из дискового кеша (который является энергозависимой памятью, то есть не хранит данные без электричества) не успела сохраниться на магнитные пластины. Такое несовпадение информации в кеше и на диске называют некогерентностью. Сама организация массива связана с файловой системой Sun Solaris – ZFS. Используется принудительная запись содержимого кеш-памяти дисков, восстанавливать можно не только весь диск, но и блок «на лету», когда контрольная сумма не совпала. Ещё немаловажным аспектом является идеология ZFS – она не меняет данные при необходимости. Вместо этого она пишет обновлённые данные и потом, убедившись, что операция прошла уже удачно, меняет указатель на них. Таким образом, удаётся избежать потери данных при модификации. Мелкие файлы дублируются вместо создания контрольных сумм. Это тоже делается силами файловой системы, поскольку она знакома со структурой данных (массивом RAID) и может выделять место под эти цели. Существует также RAID-Z2, которая, подобно RAID 6 способна выдержать отказ двух дисков с помощью использования двух контрольных сумм.

    То, что не является RAID в принципе, но часто вместе с ним употребляется. Дословно переводится как «просто набор дисков» (just a bunch of disks) Технология объединяет все диски, установленные в системе в один большой логический диск. То есть, вместо трех дисков будет виден один крупный. Используется весь суммарный объем дисков. Ускорения ни надежности, ни производительности нет.

    Drive Extender

    Функция, заложенная в Window Home Server. Совмещает в себе JBOD и RAID 1. При необходимости создания копии, она не дублирует сразу файл, а ставит NTFS разделе метку, указывающую на данные. При простое система копирует файл так, чтобы место на дисках было максимальным (использовать можно диски разного объема). Позволяет достичь многих преимуществ RAID – отказоустойчивости и возможности простой замены вышедшего из строя диска и его восстановления в фоновом режиме, прозрачности местонахождения файла (вне зависимости от того, на каком диске он находится). Также можно проводить параллельный доступ с разных дисков с помощью вышеуказанных меток, получая сходную с RAID 0 производительность.

    Разработана компанией Lime technology LLC. Эта схема отличается от обычных RAID массивов тем, что позволяет смешивать диски SATA и PATA в одном массиве и диски разных объема и скорости. Для контрольной суммы (четности) используется выделенный диск. Данные не чередуются между дисками. В случае отказа одного диска, теряются только файлы, на нём хранящиеся. Однако, с помощью четности они могут быть восстановлены. UNRAID внедрен как добавление к Linux MD (multidisk).

    Большинство видов RAID массивов не получило распространения, часть используется в узких сферах применения. Наиболее массовыми, от простых пользователей до серверов начального уровня стали RAID 0, 1, 0+1/10, 5 и 6. Нужен ли вам рейд-массив для ваших задач – решать вам. Теперь вы знаете, в чём их отличия друг от друга.

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

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

    Особенности технологии построения магнитных дисков привели к значительному несоответствию между увеличением производительности процессорных модулей и самих магнитных дисков. Если в 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.

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

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

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

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

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

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