...
Hostingi.net.ua
Логотип сайта
Каталог украинских хостингов

Технология RAID простыми словами

Вопрос производительности дисков на выделенных серверах (а значит, как следствие — и на серверах VPS/VDS), всегда представляет особую важность. Чтобы заставить систему работать быстрее, используются самые разные технологии и ухищрения, и RAID массивы — как раз тот случай.

Для чего нужен RAID?

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

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

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

Виды RAID

Здесь все не так просто, да и саму технологию простой не назовёшь. Есть разделение на стандартные RAID и нестандартные RAID, кроме того, имеются ещё и комбинированные RAID массивы. Сейчас мы вкратце пройдёмся по всем основным. Итак:

Стандартные RAID

Наиболее распространенными стандартными алгоритмами RAID являются:

RAID 0

Чередование (striping) — это самый простой и наименее надежный уровень RAID. Он основан на разделении данных на блоки и записи их на разные диски. Предположим, что у нас есть два диска, каждый из которых имеет емкость 1 ТБ. Если мы объединим эти диски в массив RAID 0, то получим логический диск емкостью 2 ТБ. При записи данных на массив RAID 0 они будут разделены на блоки размером 512 Кбайт. Каждый блок будет записан на один из дисков. Например, первый блок будет записан на первый диск, второй блок — на второй диск, и так далее. При чтении данных с массива RAID 0 они будут прочитаны с нескольких дисков параллельно. Это позволит значительно повысить скорость чтения данных. Если 1 диск выведен из строя, второй сам по себе уже не используется. RAID 0 чаще используется как верхний уровень в более сложных алгоритмах, например RAID 10.

RAID 1

Это зеркальный массив (mirroring), в котором данные дублируются на двух дисках. Такой массив обеспечивает высокую отказоустойчивость, но обладает меньшей производительностью, чем RAID 0. Это означает, что все данные записываются на два отдельных физических диска. Таким образом, если один диск выходит из строя, данные можно восстановить с другого диска.

RAID 2

Данные в массиве RAID 2 распределяются по дискам так же, как и в RAID 0, то есть они разбиваются на небольшие блоки по числу дисков. Применение кода Хэмминга в данном алгоритме позволяет исправлять ошибки в процессе работы, что называется — “на лету”. Однократные ошибки исправляются, двукратные — выявляются. Минимальное количество дисков, при котором есть резон пользоваться RAID 2 — 7. 3 из 7 дисков нужны для исправления ошибок.

RAID 3

Данные распределяются по нескольким дискам, а информация о четности записывается на один из дисков. В случае отказа одного из дисков данные можно восстановить из оставшихся дисков применив операцию XOR. Корректировать ошибки на лету, как в RAID 2, нельзя, а для создания массива нужно не менее 3-х дисков. Причём, “диск поддержки” с блоками четности оказывается под большой нагрузкой, так как он всего один.

RAID 4

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

RAID 5

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

RAID 6

Использует два независимых метода кодирования четности для защиты данных. Первый метод называется P+Q, а второй — DP. В методе P+Q данные разделяются на блоки, которые затем делятся на две части. Первая часть данных хранится в исходном виде, а вторая часть используется для вычисления четности. Четность рассчитывается для каждого блока данных и хранится на двух дисках. В методе DP данные разделяются на блоки, которые затем делятся на три части. Первая часть данных хранится в исходном виде, а две другие части используются для вычисления четности. Четность рассчитывается для каждого блока данных и хранится на трех дисках. Создание массива нуждается в 4х дисках (как минимум), но RAID 6 имеет высокую надежность хранения данных даже при поломке 2х дисков из 4х.

Комбинированные RAID

Наиболее известным из нестандартных алгоритмов RAID являются:

RAID 10

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

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

RAID 51

RAID 51 (не путать с 15, хотя они и похожи) — это гибридный уровень RAID, главное преимущество которого, это высокая надёжность. Собственно, он и был разработан для повышения надежности массивов, и сегодня по праву считается одним из наиболее «непробиваемых». Он сочетает в себе зеркалирование (RAID 1) и чередование с распределением четности (RAID 5), минимальное количество дисков — 6 (допускается, опять же, только четное число). В RAID 51 данные делятся на блоки, которые распределяются по всем дискам массива. Для каждого блока вычисляется байт четности, который хранится на отдельном диске.

Если один из дисков массива выходит из строя, данные из него могут быть восстановлены из других дисков с помощью информации о четности. Минусом является то, что из 6 дисков 4 вам придётся пожертвовать на «поддержку». Кроме того, скорость записи будет низкой (скорость чтения, напротив, высокой). Однако, при этом надёжность действительно на высоте, так как в массиве из 8 дисков при отказе 5 из них, данные будут сохранены. Обычно, данный вид массива реализуется на базе двух контроллеров, которые объединяются между собой на программном уровне, что позволяет увеличить эффективный объём рабочего пространства.

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

Нестандартные RAID

Название говорит само за себя — сюда входят именно нестандартные решения.

RAID 1E — фактически, это RAID 1 с возможностью использования нечетного количества дисков и реализации зеркала при таком количестве. Если дисков будет 2, RAID 1E будет идентичен RAID 1, потому, требует минимум 3 дисков для создания массива.

RAID 7 — на самом деле мало чем отличается от того же RAID 4 (по крайней мере, в отношении математики). Суть дела в том что RAID 7 — это торговая марка, и выпускает RAID 7 одна единственная компания (Storage Computer Corp).

RAID DP — представляет собой развитие RAID 4, его модифицированную версию (DP означает Dual Parity). Здесь под контрольные суммы выделяется 2 диска, а в качестве файловой системы выступает WAFL, что почти нивелирует падение производительности.

Программные RAID

Данная технология использует ресурсы системы, но, в отличие от аппаратных решений описанных выше, основывается на использовании специальных драйверов. В частности, на ядре Linux 2.6.28 можно реализовать RAID 0, 1, 4, 5, 6, 10, а для управления используется утилита mdadm. Windows NT также позволяет реализовать RAID 0, 1, 5; Windows Server рассчитан на RAID 0, 1, 5. Более того, вы удивитесь, но даже на старой доброй Windows 7 можно реализовать RAID 0, 1.

Преимущества и недостатки RAID

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

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

  • Отказоустойчивость — RAID-массивы обеспечивают защиту данных от потери в случае выхода из строя одного или нескольких дисков. Исключением может быть, например, RAID 0.
  • Производительность — RAID-массивы могут повысить производительность системы ввода и/или вывода.
  • Расширяемость — RAID-массивы можно легко расширять добавлением новых дисков, но не все. Некоторые виды легко поддаются замене и/или расширению и имеют высокую устойчивость к отказу, другие же могут создать проблемы, например, при выходе из строя одного из накопителей.

Недостатки:

  • Дополнительная стоимость — RAID-массивы требуют специального оборудования и/или программного обеспечения, что увеличивает их стоимость.
  • Уменьшение емкости — при использовании некоторых алгоритмов RAID общая емкость накопителей уменьшается, причём, порой, весьма существует.
  • Необходимость правильного выбора (и последствия неправильного), так как различные виды RAID предназначены для разных задач.

RAID-массивы широко используются в различных системах, включая:

  • Серверы.
  • Сетевые хранилища.
  • Системы резервного копирования.
  • Рабочие станции.

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

Подытожим…

Технология RAID является эффективным способом повышения отказоустойчивости и производительности систем хранения данных. Выбор того или иного алгоритма RAID зависит от конкретных задач и требований к системе, а вот неверно выбранный алгоритм может негативно сказаться впоследствии. Кроме вышеописанных, есть ещё RAID Matrix от Intel, но мы оставим данную тему для отдельной статьи —  следите за обновлениями в нашем блоге.