Компьютеры
26 октября 2005, 00:33

Подробное знакомство с RAID-массивами

Пришла пора разобраться в современных технологиях хранения данных. Повестка дня: RAID массивы и уровни их организации. Правда ли, что RAID 50 лучше RAID 10, а JBOD – это вообще не RAID? Сегодня мы ищем ответы на эти вопросы.

На свете существует много интересного компьютерного железа. И не всегда получается понять, какой от него прок. А ведь именно любопытство в паре с ленью являются главными двигателями прогресса. Главное – это направить свой поток интереса в правильное русло.

Где искать свежие, оригинальные идеи? Новые технологии не сразу приходят к конечным пользователям. Сначала они окупаются и обкатываются на профессиональном рынке, служа бизнесу или государству, и лишь затем потихоньку дрейфуют «в массы», появляясь в бюджетных решениях.

В нашу тестовую лабораторию попала на редкость интересная вещица, одно название которой вызвает трепет: плата контроллера RAID-массива LSI LOGIC MegaRAID SCSI 320-1 PCI 64 1ch 64МБ (RAID levels: 0, 1, 50, 10, 5).

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

lsi view

Плата RAID контроллера LSI LOGIC MegaRAID

scsi

Внешний SCSI разъем на плате

scsi inner

Внутренний SCSI разъем на плате

Перед нами типичный образец платы с RAID-контроллером, используемой в серверных решениях. В таких системах обычно устанавливаются дорогие, но надежные жесткие диски с параллельным SCSI интерфейсом и материнские платы с 64-разрядными PCI слотами. Ключевым же на сегодня будет слово RAID и перечисленные уровни: 0, 1, 50, 10, 5.

Что такое RAID?

В переводе с английского «RAID» (Redundant Arrays of Inexpensive Disks) означает «избыточный массив независимых дисков». Этот перевод не совсем дословный, но именно содержащийся в нем смысл является правильным.

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

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

Со временем оборудование для построения RAID массивов стало более доступным, особенно с появлением дешевых решений для IDE/ATA и SATA дисков. Теперь уже не только специалисты по СХД, но и обычные пользователи столкнулись с хитростями построения дисковых массивов.

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

Не испугались? Значит, пора знакомиться с RAID более подробно.

Пять таинственных слов

В основе теории RAID лежат пять основных принципов – пять таинственных слов. Это Массив (Array), Зеркалирование (Mirroring), Дуплекс (Duplexing), Чередование (Striping) и Четность (Parity).

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

Зеркалирование – технология, позволяющая повысить надежность системы. В RAID массиве с зеркалированием все данные одновременно пишутся не на один, а на два жестких диска. То есть создается «зеркало» данных. При выходе из строя одного из дисков вся информация остается сохраненной на втором.

mirroring

Зеркалирование

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

Дуплекс – развитие идеи зеркалирования. В этом случае так же высок уровень надежности и требуется в два раза больше жестких дисков. Но появляются дополнительные затраты: для повышения надежности в систему устанавливаются два независимых RAID контроллера. Выход из строя одного диска или контроллера не сказывается на работоспособности системы.

duplexing

Дуплекс

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

Чередование – отличная возможность повысить быстродействие системы. Очевидно, если чтение и запись вести параллельно на нескольких жестких дисках, можно получить выигрыш в скорости. Как это делается? Записываемый файл разбивается на части определенного размера и посылается одновременно на все имеющиеся накопители. В таком фрагментированном виде файл и хранится. Считывается он тоже «по кусочкам».

striping

Чередование

Размер «кусочка» может быть минимальным – 1 байт, но чаще используют более крупное дробление – по 512 байт (размер сектора).

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

Если имеется I блоков данных и на их основе вычисляется еще один дополнительный экстраблок, из получившихся (I+1) блоков всегда можно восстановить информацию даже при повреждении одного из них. Соответственно, для создания нормального RAID-массива в этом случае требуется (I+1) жесткий диск.

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

Что же хранится в экстраблоке? Обычно каждый бит экстраблока состоит из суммы бит всех I блоков, точнее из результата выполнения логической операции XOR. Многие помнят со школы, что XOR – удивительный оператор, при его повторном наложении мы можем получить первоначальный результат. То есть (A XOR B) XOR B = A. Это правило распространяется на любое количество операндов.

Плюсы четности очевидны. За счет использования чередования повышается скорость работы. При зеркалировании надежность сохраняется, но при этом «нерабочий» объем массива заметно уменьшается, он одинаков при любом количестве дисков и составляет емкость одного диска, то есть при 5 дисках в массиве пропадает всего 20% емкости.

Но у четности есть весомый минус. Для формирования экстраблоков требуются вычисления! Их надо делать на лету, причем с миллионами, миллиардами бит! Если это дело поручить центральному процессору, мы получим очень «тормознутую» систему. Необходимо использовать довольно дорогие платы с RAID-контроллерами, которые «берут все вычисления на себя». В случае выхода из строя одного из дисков, процесс восстановления будет не столь быстрым, как при зеркалировании.

Уровни RAID

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

В RAID уровнях нет преемственности. RAID 3 не есть улучшенная модификация RAID 4, так же как RAID 5 не лучше RAID 1. Они разные.

Сразу оговоримся, что есть простые (single) и составные (multiple) RAID массивы. Составные являются сочетанием двух простых, так что начнем с основных 8 уровней.

RAID 0

raid0+

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

raid0

Хранение данных в RAID 0

На рисунке приведен пример, как в RAID 0 массиве на 4 дисках хранятся данные разного размера. Размер блока – 16 кбайт. Красный – файл размером 4 кбайт, синий – 20 кбайт, зеленый – 100 кбайт, пурпурный – 500 кбайт.

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

RAID 1

raid1+

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

raid1

Хранение данных в RAID 1

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

RAID 2

raid2+

Второй уровень RAID умер, так и не родившись. Все те же умельцы из Беркли предложили использовать одновременно две технологии – побитовое чередование и код Хамминга для восстановления ошибок. В теории это должен быть неплохой по надежности и рабочей емкости массив, построенный из 14 или 39 дисков (!). Часть дисков (10 или 32) используется для хранения данных с чередованием, остальные – для хранения высчитанных контрольных сумм. Реализация таких систем требовала специальных дорогостоящих контроллеров, которые так и не прижились на рынке. В итоге RAID 2 сейчас не используется. Но идея красивая.

RAID 3

raid3+

Третий уровень использует чередование и выделенный диск для контроля четности. Блоки данных обычно имеют длину меньше 1024 байт. Информация распределяется на несколько дисков, а высчитанное значение по четности сохраняется на отдельный диск.

raid3

Хранение данных в RAID 3

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

RAID 4

raid4+

Отличается от RAID 3 только размером блока данных при чередовании. Это несколько улучшает работу массива при случайном чтении, но запись все равно довольно медленная. Диск с контрольными суммами является ярко выраженным «узким местом» в системе.

raid4

Хранение данных в RAID 4

Так как является компромиссным вариантом между RAID 3 и RAID 5, не нашел своего места на рынке и редко используется. Это держит цены на соответствующие контроллеры на высоком уровне.

RAID 5

raid5+

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

raid5

Хранение данных в RAID 5

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

RAID 6

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

raid6

Хранение данных в RAID 6

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

RAID 7

В отличие от остальных уровней, RAID 7 не является открытым стандартом, столь звучное и выгодное название выбрала для своей модификации RAID 3 компания Storage Computer Corporation. Улучшения заключаются в использовании асинхронного чередования, применении кэш-памяти и специального высокопроизводительного микропроцессора.

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

Составные RAID массивы

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

Составной RAID строится так: сначала диски разделяются на наборы (set). Затем на основе каждого из наборов строятся простые массивы. А завершается все объединением этих массивов в один мегамассив. Запись типа X+Y означает, что сначала диски объединены в RAID уровня X, а затем несколько RAID X массивов объединены в RAID уровня Y.

RAID 0+1 (01) и 1+0 (10)

RAID 0+1 часто называют «зеркалом страйпов», а RAID 1+0 – «страйпом зеркал» (нормальное русское «чередование» практически не используется, сменившись американизмом). В обоих случаях используются две технологии – чередование и зеркалирование, но результаты разные.

raid01

Структура RAID 0+1

RAID 0+1 обладает высокой скоростью работы и повышенной надежностью, поддерживается даже дешевыми RAID контроллерами и является недорогим решением. Но по надежности несколько лучше RAID 1+0. Так, массив из 10 дисков (5 по 2) может остаться работоспособным пи отказе до 5 жестких дисков!

raid10

Структура RAID 1+0

Основной недостаток этих массивов – низкий процент использования емкости накопителей – всего 50%. Но для домашних систем именно RAID 01 или 10 может оказаться оптимальным решением.

RAID 0+3 (03) и 3+0 (30)

С этими массивами у производителей наблюдается путаница. Довольно часто вместо 0+3 или 3+0 указывают более привлекательное число 5+3 (53). Не верьте!

По идее сочетание чередования и RAID 3 дает выигрыш в скорости, но он довольно мал. Зато система заметно усложняется. Наиболее простой уровень 3+0. Из двух массивов RAID 3 строится страйп, и минимальное количество требуемых дисков – 6. Получившийся RAID 3+0 с точки зрения надежности лучше, чем 0+3.

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

RAID 0+5 (05) и 5+0 (50)

Что будет, если объединить чередование с распределенной четностью с обыкновенным чередованием? Получится быстрая и надежная система. RAID 0+5 представляет собой набор страйпов, на основе которых построен RAID 5. Такая комбинация используется редко, так как практически не дает выигрыша ни в чем. Широкое распространение получил составной RAID массив 5+0.

raid50

Структура RAID 5+0

Чаще всего это два массива RAID 5, объединенных в страйп. Такая конфигурация позволяет получить высокую производительность при работе с файлами малого размера. Типичный пример – использование в качестве WEB-сервера.

RAID 1+5 (15) и 5+1 (51)

Этот уровень построен на сочетании зеркалирования или дуплекса и чередования с распределенной четностью. Основная цель RAID 15 и 51 – значительное повышение надежности. Массив 1+5 продолжает работать при отказе трех накопителей, а 5+1 - даже при потере пяти из восьми жестких дисков! Платить приходится большим количеством неиспользуемой емкости дисков и общим удорожанием системы.

Чаще всего для построения RAID 5+1 используют два контроллера RAID 5, которые зеркалируют на программном уровне, что позволяет снизить затраты.

JBOD

А что делать, если нужен просто один логический диск гигантского размера? Без всяких зеркалирований, чередования и четности? Тогда это уже не RAID, а JBOD – Just A Bunch Of Disks. Реализовать этот режим способен простейший контроллер или даже программная реализация контроллера.

JBOD

Объединение дисков в один логический

Есть ли у него преимущества, если JBOD не повышает ни быстродействия, ни надежности? Есть. По крайней мере, для работы используется все доступное пространство жестких дисков. И еще: в случае выхода из строя одного из жестких дисков, информация на других не повреждается.

Сведем основные характеристики наиболее распространенных уровней в таблицы.

Распространенные single RAID массивы

RAID 0RAID 1RAID 3RAID 5RAID 6
ТехнологияЧередованиеЗеркали-рованиеЧередование, четностьЧередование, четностьЧередование, четность
КонтроллерВсеВсеАппаратныйАппаратный Hi-EndСпециали-зированный
Кол-во жестких дисков2, 423 и больше3 и больше3 и больше
Доступное рабочее пространство, %1005066 для 3,75 для 466 для 3,75 для 433 для 350 для 460 для 5
Стойкость при отказе дискаНетВысокаяВысокаяВысокаяОчень высокая
Восстановление данныхНетОчень быстроеБыстроеБыстроеОчень быстрое
Скорость случайного чтенияОчень хорошаяХорошаяХорошаяОчень хорошаяОчень хорошая
Скорость случайной записиОчень хорошаяХорошаяПлохаяНормальнаяПлохая
Скорость линейного чтенияОчень хорошаяХорошаяОчень хорошаяОчень хорошаяХорошая
Скорость линейной записиОчень хорошаяХорошаяХорошаяХорошаяСредняя
ЦенаСамая низкаяНизкаяСредняяСредняяВысокая

Распространенные multi-RAID массивы

RAID 0+1RAID 1+0RAID 5+0RAID 5+1
ТехнологияЧередование, зеркали-рованиеЧередование, зеркали-рованиеЧередование, четностьЧередование, четность, зеркали-рование
КонтроллерПочти всеПочти всеСпециали-зированныйСпециали-зированный
Кол-во жестких дисков4 min4 min6 min6 min
Доступное рабочее пространство, %505066 для 2 страйпов по 3 диска33-40
Стойкость при отказе дискаОчень хорошаяОтличнаяХорошаяОтличная
Восстановление данныхБыстроеОчень быстроеСреднееБыстрое
Скорость случайного чтенияОчень хорошаяОчень хорошаяОчень хорошаяОчень хорошая
Скорость случайной записиХорошаяХорошаяХорошаяХорошая
Скорость линейного чтенияОчень хорошаяОчень хорошаяОчень хорошаяОчень хорошая
Скорость линейной записиХорошаяХорошаяХорошаяХорошая
ЦенаОтносительно высокаяОтносительно высокаяВысокаяОчень высокая

Вместо заключения

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

lsi new

НазваниеRAID LSI LOGIC MegaRAID SCSI 320-1 PCI 64 1ch 64МБ (RAID levels: 0, 1, 50, 10, 5)
ПроизводительLSI Logic
Объем кэш-памяти, Мбайт64
Максимальный объем кэш-памяти, Мбайт64
Разъем расширенияPCI 64
Количество каналов ввода-вывода1
Количество поддерживаемых устройств15
Поддерживаемые уровни RAID0, 1, 5+0, 1+0, 5
Гарантия, лет3
Габариты, мм167,6 x64,5 x15
Вес, г145
Приблизительная цена, $420

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

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

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