Типы RAID-массивов

Типы RAIDЛюбому системному администратору практически с самого начала его деятельности приходится сталкиваться с необходимость всесторонней защиты данных. Конечно же основа основ — резервные копии данных, но для обеспечения некоторой степени отказоустойчивости, а в некоторых случаях также и повышения быстродействия, используются различные конфигурации избыточных массивов независимых дисков, чтобы выход одного или более дисков не был причиной нарушения нормального функционирования системы. Оригинальное название технологии — RAID — Redundant Array of Independent Disks.

В принципе само слово RAID или RAID-массив на слуху и знакомо далеко не только системным администраторам. На домашних ПК можно встретить материнские платы с возможностью конфигурирования как минимум RAID 0,1, что уж говорить о серверных технологиях. Для чего же тогда предназначается статья? Главное назначение — это максимально полный обзор не только самых популярных типов массивов, но и обзор забытых или «экзотических» вариантов. При этом я не ставлю перед собой задачу рассказать самостоятельно про каждый из типов массивов. Зачем, если в интернете и так много информации по этой тематике? Вполне приемлемым вариантом для меня будет просто аккумулирование существующего в сети опыта. Итак, начнем.


Если вам интересны raid-технологии и задачи администрирования raid-контроллеров, рекомендую обратиться к рубрике RAID на моем блоге.


RAID 0

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

Минусы — снижение надежности (при выходе хотя бы одного диска данные вы потеряете).

Плюсы — максимально эффективное использование свободного пространства, высокое быстродействие. Может показаться, что увеличение производительности должно быть пропорционально количеству дисков, но нет. Реальный прирост скорости будет примерно в районе 70% 1, но речь идет преимущественно о бюджетных контроллерах. Есть также ещё один нюанс — производительность массива RAID 0 в конечном счете должна упереться в минимальную производительность дисков из этого массива, но это при условии, что максимальная пропускная способность RAID-контроллера ещё не достигнута. Тесты в некоторых статьях 2 3 4 выглядят более чем наглядно (кстати, реальная производительность от эталонной также различается).

RAID 1

Один из самых распространенных вариантов — зеркало дисков. В комментариях не нуждается. Минимальное количество дисков — 2.

Минусы — неэкономичный расход свободного пространства;

Плюсы — хорошая надежность, простота обслуживания, широкая поддержка со стороны всех известных raid-контроллеров.

RAID 10 & RAID 01

Разница этих двух массивов в вариантах комбинации зеркал и страйпов — raid 10 состоит из страйпа зеркал, а raid 01 — из зеркала страйпов.

RAID-blockdiagram-RAID-01-10

Казалось бы разница этих двух уровней в варианте комбинации, но raid 10 применяется значительно чаще за счет более высокой надежности. Однако внятное объяснение этому факту я нашел лишь на двух сайтах и на одном из них это иллюстрируется таблицей 5:

Failed disks Fatal for RAID 1+0 Fatal for RAID 0+1
1 & 2 X
1 & 3
1 & 4 X
1 & 5 X
1 & 6 X
2 & 3
2 & 4 X
2 & 5 X
2 & 6 X
3 & 4 X X
3 & 5 X
3 & 6 X
4 & 5
4 & 6
5 & 6 X

В некоторых 6 источниках встречается также и математическое объяснение:

«Mathematically, the difference is that the chance of system failure with two drive failures in a RAID 0+1 system with two sets of drives is (n/2)/(n — 1) where n is the total number of drives in the system. The chance of system failure in a RAID 1+0 system with two drives per mirror is 1/(n — 1). So, using the 8 drive systems shown in the diagrams, the chance that losing a second drive would bring down the RAID system is 4/7 with a RAID 0+1 system and 1/7 with a RAID 1+0 system.»

Минусы — неэффективное использование дискового пространства (но это как всегда плата за надежность).

Плюсы — простота обслуживания, высокая надежность и производительность (растет при увеличении количества дисков), поддержка со стороны большинства контроллеров (начиная с самых дешевых «домашних» и заканчивая enterprise-уровнем).

RAID 100

Ещё один уровень (правильнее сказать уровень-мутант) RAID из самых базовых и самых популярных RAID 0 и RAID 1. Иерархия уровней идет как и всегда: первая цифра — самый низший уровень, последняя — самый высокий. Вот и получается, что мы имеем страйп из страйпов из зеркал. Как стандартный уровень массива в обычных контроллерах вы не увидите. Скорее это попытка увеличить производительность всего массива, если она уже давно уперлась в производительность контроллеров. Простыми словами — это софтовое объединение нескольких аппаратных страйпов из зеркал (то есть массивов RAID 10) 7:

RAID-100_cropped

Минусы — сложность конфигурации, нужно контролировать фактически несколько разных массивов, ничего друг о друге не знающих;

Плюсы — если вы имеете несколько одинаковых низкопроизводительных RAID-контроллеров, на них можно построить массив, по производительности выше, чем пропускная способность одного контроллера (объединить производительность нескольких CPU RAID).

Минимальное количество дисков — 8, максимум из строя может выйти половина дисков (см. RAID 10).

RAID 1E

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

RAID1E

Минусы — средняя надежность, хуже RAID 1, допускается выход из строя половины дисков с округлением в меньшую сторону 9 (например, при трех дисках допускается выход из строя 1). Конечно же при использовании больше 3 дисков не должны выйти из строя соседние, на которых хранятся дубли одного куска данных;

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

RAID 2

Массивы, использующие для коррекции ошибок код Хэмминга 10. На практике код Хэмминга получил широкое применение в оперативной памяти, но не в RAID-технологиях. Адекватное минимальное количество дисков — 7. Расчет количества дисков для данных и дисков для кодов коррекции ошибок очень наглядно представлен в табличке из Википеднии 11:

Raid2

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

Плюсы — достаточно высокая производительность при чтении.

RAID 3

Очень похож на RAID 2, но только с меньшей избыточностью и всего одним диском для коррекции ошибок. Фактически является одним из уровней, предшествующих RAID 5. Минимальное количество дисков — 3.

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

Плюсы — неплохая скорость чтения, надежность массива все же выше, чем у RAID 0, в остальном ничем не примечательный вариант.

RAID 30 & RAID 03

Хоть и ни разу не слышал про такие конфигурации до создания этой статьи, все же нашел в сети достаточно подробные описание этих вариантов. Что поделать, если всем хочется к любому массиву прикрутить вариацию на тему RAID 0 или RAID  1 — почему тогда нет RAID 20 с минимальным количеством дисков в 14 штук (вариант с 6 дисками будет просто бессмысленным)? Но раз такие уровни RAID все же есть, с удовольствием о них напишу.

Минимальное количество дисков — 6.

Чтобы лучше понять о чем идет дело:

RAID_0+3

raid30

Минусы — низкая отказоустойчивость и отсутствие исправления ошибок одиночных битов  «на лету» делает этот массив примерно таким же по надежности как и RAID 0.

Плюсы — достаточно высокая производительность.

На некоторых ресурсах 13 есть упоминание, что raid 30 также имеет имя raid 53, но мне кажется это не совсем так — хоть и RAID  3 и RAID 5 оба используют бит четности, принцип работы у них отличается (см. ниже).

RAID 4

Принцип работы аналогичен 14 RAID 3 за тем лишь исключением, что вместо битов данные разбиваются на блоки. Минимальное количество дисков — 3.

Минусы — скорость записи все также упирается в производительность диска четности, недостаточная отказоустойчивость.

Плюсы — скорость чтения будет равна скорости чтения у RAID 0 с аналогичным количеством дисков.

Встречаются интересные обзоры 15 уровня raid 4 с примером алгоритма записи данных и объяснением низкой производительности на запись.

RAID 5

Данные и контрольные суммы (результат логической операции XOR) записываются на все диски по порядку, тем самым устраняется недостаток предыдущих вариантов — узкое место в виде диска битов четности. Встречал достаточно много разногласий по поводу использования RAID 5 вплоть до того, чтобы не использовать его в продакшне вообще 16, но сути это не меняет — RAID 5 самый дешевый вариант в плане расходования дискового пространства и использовать его, например, с некритичными к потере данными даже нужно, другое дело что бэкапы никто не отменял и RAID к средствам резервного копирования вообще не относится. Минимальное количество дисков — 3.

Минусы — невысокая отказоустойчивость, низкое быстродействие при записи данных (особенно при случайной записи), ощутимое падение производительности при выходе одного диска из строя, при этом отказ ещё одного диска повлечет за собой полную потерю данных.

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

RAID 5E & RAID 5EE

Сначала трудно разобраться в чем точно разница между этими двумя вариантами — на одних источниках есть информация об обоих уровнях, но как будто одну и ту же информацию просто перемешали по-разному и разместили в двух разных статьях; где-то RAID 5 не упоминается вообще, а где-то наоборот есть только  RAID 5ee. Я сделал вывод, что это один и тот же уровень RAID , но возможно с небольшими различиями в последовательности записи пустых блоков данных. Однако сути это не меняет — это все тот же RAID  5, но только с одним диском в резерве. Таким образом убирается одно из основных слабых мест — сильная деградация производительности при выходе из строя одного диска. Но этот уровень RAID имеет также одно существенное преимущество над RAID 5 + spare: запасной диск не простаивает, а работает точно также как и другие диски в массиве. Так что можно сделать вывод, что запасной диск уже запасным не является. Минимальное количество дисков — 4.

Удалось найти всего лишь две картинки 17, наглядно иллюстрирующие разницу между этими двумя вариантами массивов:

RAID_5E

RAID_5EE

Минусы — низкая производительность при записи данных, все ещё большое время, необходимое для перестроения массива в случае выхода одного диска из строя, менее эффективное использование дискового пространства, чем у RAID  5.

Плюсы — надежность выше, чем у RAID 5, неплохая производительность при чтении, более эффективное использование дополнительного диска, чем у RAID 5 + spare, скорость чтения и записи данных пропорционально выше за счет использования дополнительного диска при таком же объеме полезных данных.

RAID 50

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

RAID_50

Минусы — низкая производительность в деградированном состоянии массива, существенная вероятность потери данных при перестроении (порядка 5-10% в некоторых случаях);

Плюсы — отличная скорость чтения и хорошая скорость на запись, самое эффективное использование дискового пространства, да ещё и с некоторой отказоустойчивостью 19.

Минимум необходимо 6 дисков, максимальное количество вышедших из строя дисков — 2 20. При увеличении количества дисков в массиве, увеличивается вероятность выхода из строя всего массива.

RAID 51 & RAID 15

Если RAID 50 — хороший способ увеличить производительность как на запись, так и на чтение, то комбинация уровня 1 и 5 — это вариант увеличения отказоустойчивости при неплохой производительности на чтение. RAID 51 — это зеркало из RAID 5, RAID 15 — это RAID 5 из зеркал 21:

RAID-51_cropped

RAID-15_cropped

В первом случае допускается максимум выход из строя 50% дисков +1 в случае, если выйдет из строя полностью одно зеркало и ещё один диск в соседнем зеркале. Минимально допустимое количество вышедших из строя дисков в наихудшем варианте — 2, если выйдут из строя по одному диску с одинаковым номером в каждом зеркале. Во втором случае допускается выход также 50% +1 диска — то есть выход из строя одного зеркала полностью и ещё по одному диску из оставшихся зеркал. Массив выйдет из строя, если выйдут два зеркала в раз — это наихудший вариант.

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

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

RAID 6

Стремление повысить отказоустойчивость RAID 5 вылилось в разработку следующего варианта — RAID 6. В этой конфигурации под служебную информацию используется два диска, минимальное количество дисков всего — 4. RAID 6 имеет промежуточное место между RAID 1 и RAID 5 как по показателям производительности, так и по полезному дисковому пространству. Фактически это все тот же RAID 5 с присущими ему минусами и плюсами, но с небольшой платой в виде свободного дискового пространства в угоду надежности. Конечно этот вариант использовать более предпочтительно при большом количестве дисков. Поскольку в RAID 6 просто сделали дополнительный диск под коды четности, возникает вполне логичное предположение — а не выделить ли 3 или 4 диска под служебную информацию? Вполне закономерное предположение и встречается даже информация о массиве с тройной четностью 22.

RAID_6.svg

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

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

RAID 60

Теоретически должен быть ещё и RAID 06, по аналогии с предыдущими конфигурациями, но упоминания об этом уровне я не нашел. Является компромиссным вариантом между RAID 10 и RAID 50, по эффективному дисковому пространству большего, чем первый вариант и по надежности выше, чем второй. Комбинация RAID 0 и RAID 6 — страйп из RAID 6 23:

RAID_60

Минусы — большое минимальное количество дисков (8 штук), сильное падение производительности при деградации массива, большие затраты процессорной мощности на вычисление служебной информации;

Плюсы — эффективность использования дискового пространства выше, чем у RAID 1, отличная скорость чтения и неплохая скорость записи данных.

RAID 61 & RAID 16

В основу этих массивов легли различные комбинации RAID 6 с зеркалом. Как и в случае с RAID 51 и 15, в некоторых комбинациях допускается выход из строя более чем половины всех имеющихся дисков. В RAID 61 может выйти из строя полностью одно зеркало и два диска из второго, то есть в минимальном варианте с 8 дисками допускается выход из строя 6 штук, а это 75%. Второй вариант допускает выход из строя максимум полностью двух зеркал, а также по одному диску из всех оставшихся. К сожалению, в сети касательно RAID 16 удалось найти только картинку.

RAID-61_cropped

RAID-16_cropped

Минусы — достаточно экзотический вариант, мало где можно встретить, низкая скорость записи, сильное снижение производительности при деградации массива (это касается не только того, что функционировать будет небольшое количество жестких дисков, но и имеется в виду сильная загрузка ЦП контроллера при вычислении недостающих данных);

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

RAID DP

Вариант массива, использующий двойной паритет также как и RAID 6, однако для служебной информации используются только два диска без всякого чередования, на остальных дисках располагаются исключительно данные. Фактически это тот же RAID 4 с записью битов паритета на отдельный диск, но в случае DP этих дисков два для повышения отказоустойчивости (как в RAID 6). Спецификация принадлежит компании NetApp 24. Для решения проблемы производительности, упирающейся в быстродействие жесткого диска для записи битов четности, была использована собственная файловая система WAFL 25 26.

Минусы — проприетарный стандарт, более сложен в администрировании и поставляется в дорогих конфигурациях сетевых хранилищ, а потому является стандартом «не для всех»;

Плюсы — при ребилде производительность не снижается 27, имеет неплохую надежность (максимум 2 вышедших из строя диска).


На этом все. В сети можно встретить информацию о других гибридных уровнях RAID, но в большинстве случаев они существуют лишь в безумных головах авторов статей, например, RAID 160 28, RAID 6E, RAID 500 и другие. Intel Matrix RAID 29 рассматриваться не будет, поскольку это вообще не уровень RAID, а технология. Точно так же с другими 30 технологиями построения различных массивов, которых в сущности нельзя назвать RAID-уровнями. В сети можно найти удобные калькуляторы 31 для определения минимального количества дисков в различных конфигурациях RAID, если самому лень считать.

comments powered by HyperComments