Подробное знакомство с RAID-массивами
На свете существует много интересного компьютерного железа. И не всегда получается понять, какой от него прок. А ведь именно любопытство в паре с ленью являются главными двигателями прогресса. Главное – это направить свой поток интереса в правильное русло.
Где искать свежие, оригинальные идеи? Новые технологии не сразу приходят к конечным пользователям. Сначала они окупаются и обкатываются на профессиональном рынке, служа бизнесу или государству, и лишь затем потихоньку дрейфуют «в массы», появляясь в бюджетных решениях.
В нашу тестовую лабораторию попала на редкость интересная вещица, одно название которой вызвает трепет: плата контроллера RAID-массива LSI LOGIC MegaRAID SCSI 320-1 PCI 64 1ch 64МБ (RAID levels: 0, 1, 50, 10, 5).
Представьте, именно такой абракадаброй кажутся непосвященным пользователям краткие характеристики какого-нибудь системного блока. Но приходит опыт, и цифры обретают смысл.
Перед нами типичный образец платы с 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 массиве с зеркалированием все данные одновременно пишутся не на один, а на два жестких диска. То есть создается «зеркало» данных. При выходе из строя одного из дисков вся информация остается сохраненной на втором.
За такую стопроцентную защиту приходится дорого платить: считайте, что один винчестер у вас работает просто так, не увеличивая доступную емкость ни на Мегабайт. При этом нет никакого выигрыша в производительности.
Дуплекс – развитие идеи зеркалирования. В этом случае так же высок уровень надежности и требуется в два раза больше жестких дисков. Но появляются дополнительные затраты: для повышения надежности в систему устанавливаются два независимых RAID контроллера. Выход из строя одного диска или контроллера не сказывается на работоспособности системы.
Столь дорогое решение используется только во внешних RAID-массивах, предназначенных для ответственных приложений.
Чередование – отличная возможность повысить быстродействие системы. Очевидно, если чтение и запись вести параллельно на нескольких жестких дисках, можно получить выигрыш в скорости. Как это делается? Записываемый файл разбивается на части определенного размера и посылается одновременно на все имеющиеся накопители. В таком фрагментированном виде файл и хранится. Считывается он тоже «по кусочкам».
Размер «кусочка» может быть минимальным – 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
Простейший массив, использующий чередование без четности. Вся входящая информация разбивается на блоки фиксированной длины (например, 16 кбайт) и раскидывается на все имеющиеся диски.
На рисунке приведен пример, как в RAID 0 массиве на 4 дисках хранятся данные разного размера. Размер блока – 16 кбайт. Красный – файл размером 4 кбайт, синий – 20 кбайт, зеленый – 100 кбайт, пурпурный – 500 кбайт.
При наличии двух-четырех дисков RAID 0 дает ощутимый выигрыш в скорости передачи данных, но совершенно не обеспечивает надежность. Для его построения подойдет любой дешевый и даже программный RAID-контроллер. Подходит для тех, кому нужно выжать максимум производительности от файловой системы при минимальных затратах.
RAID 1
Этот уровень является обычным зеркалированием. На два жестких диска пишутся две одинаковые копии данных. При этом можно использовать дешевый RAID контроллер или даже его программную реализацию.
RAID 1 позволяет надежно защитить данные и обеспечить работу системы даже при поломке одного из дисков. Вот почему он получил широкое распространение среди пользователей, желающих защитить от потери личные данные. Выигрыша в скорости при использовании RAID 1 нет.
RAID 2
Второй уровень RAID умер, так и не родившись. Все те же умельцы из Беркли предложили использовать одновременно две технологии – побитовое чередование и код Хамминга для восстановления ошибок. В теории это должен быть неплохой по надежности и рабочей емкости массив, построенный из 14 или 39 дисков (!). Часть дисков (10 или 32) используется для хранения данных с чередованием, остальные – для хранения высчитанных контрольных сумм. Реализация таких систем требовала специальных дорогостоящих контроллеров, которые так и не прижились на рынке. В итоге RAID 2 сейчас не используется. Но идея красивая.
RAID 3
Третий уровень использует чередование и выделенный диск для контроля четности. Блоки данных обычно имеют длину меньше 1024 байт. Информация распределяется на несколько дисков, а высчитанное значение по четности сохраняется на отдельный диск.
Все скоростные преимущества чередования сводятся на нет необходимостью записывать контрольную сумму на выделенный диск, а больше всех страдает скорость случайной записи. К достоинствам отнесем возможность работы массива при отказе одного из дисков.
RAID 4
Отличается от RAID 3 только размером блока данных при чередовании. Это несколько улучшает работу массива при случайном чтении, но запись все равно довольно медленная. Диск с контрольными суммами является ярко выраженным «узким местом» в системе.
Так как является компромиссным вариантом между RAID 3 и RAID 5, не нашел своего места на рынке и редко используется. Это держит цены на соответствующие контроллеры на высоком уровне.
RAID 5
Наиболее распространенный в системах хранения данных – пятый уровень. Он характеризуется применением чередования и четности. В отличие от RAID 3, контрольные суммы не хранятся на одном диске, а разбрасываются по всем, что позволяет значительно поднять скорость записи. Главный принцип распределения экстраблоков: они не должны располагаться на том же диске, с которого была зашифрована информация.
Надежность и скорость работы такой системы оказываются очень даже высокими. При восстановлении информации всю работу на себя берет RAID контроллер, так что операция проходит довольно быстро.
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 – «страйпом зеркал» (нормальное русское «чередование» практически не используется, сменившись американизмом). В обоих случаях используются две технологии – чередование и зеркалирование, но результаты разные.
RAID 0+1 обладает высокой скоростью работы и повышенной надежностью, поддерживается даже дешевыми RAID контроллерами и является недорогим решением. Но по надежности несколько лучше RAID 1+0. Так, массив из 10 дисков (5 по 2) может остаться работоспособным пи отказе до 5 жестких дисков!
Основной недостаток этих массивов – низкий процент использования емкости накопителей – всего 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.
Чаще всего это два массива 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 не повышает ни быстродействия, ни надежности? Есть. По крайней мере, для работы используется все доступное пространство жестких дисков. И еще: в случае выхода из строя одного из жестких дисков, информация на других не повреждается.
Сведем основные характеристики наиболее распространенных уровней в таблицы.
Распространенные single RAID массивы
RAID 0 | RAID 1 | RAID 3 | RAID 5 | RAID 6 | |
Технология | Чередование | Зеркали-рование | Чередование, четность | Чередование, четность | Чередование, четность |
Контроллер | Все | Все | Аппаратный | Аппаратный Hi-End | Специали-зированный |
Кол-во жестких дисков | 2, 4 | 2 | 3 и больше | 3 и больше | 3 и больше |
Доступное рабочее пространство, % | 100 | 50 | 66 для 3,75 для 4 | 66 для 3,75 для 4 | 33 для 350 для 460 для 5 |
Стойкость при отказе диска | Нет | Высокая | Высокая | Высокая | Очень высокая |
Восстановление данных | Нет | Очень быстрое | Быстрое | Быстрое | Очень быстрое |
Скорость случайного чтения | Очень хорошая | Хорошая | Хорошая | Очень хорошая | Очень хорошая |
Скорость случайной записи | Очень хорошая | Хорошая | Плохая | Нормальная | Плохая |
Скорость линейного чтения | Очень хорошая | Хорошая | Очень хорошая | Очень хорошая | Хорошая |
Скорость линейной записи | Очень хорошая | Хорошая | Хорошая | Хорошая | Средняя |
Цена | Самая низкая | Низкая | Средняя | Средняя | Высокая |
Распространенные multi-RAID массивы
RAID 0+1 | RAID 1+0 | RAID 5+0 | RAID 5+1 | |
Технология | Чередование, зеркали-рование | Чередование, зеркали-рование | Чередование, четность | Чередование, четность, зеркали-рование |
Контроллер | Почти все | Почти все | Специали-зированный | Специали-зированный |
Кол-во жестких дисков | 4 min | 4 min | 6 min | 6 min |
Доступное рабочее пространство, % | 50 | 50 | 66 для 2 страйпов по 3 диска | 33-40 |
Стойкость при отказе диска | Очень хорошая | Отличная | Хорошая | Отличная |
Восстановление данных | Быстрое | Очень быстрое | Среднее | Быстрое |
Скорость случайного чтения | Очень хорошая | Очень хорошая | Очень хорошая | Очень хорошая |
Скорость случайной записи | Хорошая | Хорошая | Хорошая | Хорошая |
Скорость линейного чтения | Очень хорошая | Очень хорошая | Очень хорошая | Очень хорошая |
Скорость линейной записи | Хорошая | Хорошая | Хорошая | Хорошая |
Цена | Относительно высокая | Относительно высокая | Высокая | Очень высокая |
Вместо заключения
Сейчас, разобравшись в многообразии уровней RAID, мы можем посмотреть на представленную плату новыми глазами и понять ее основные характеристики.
Название | 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 |
Поддерживаемые уровни RAID | 0, 1, 5+0, 1+0, 5 |
Гарантия, лет | 3 |
Габариты, мм | 167,6 x64,5 x15 |
Вес, г | 145 |
Приблизительная цена, $ | 420 |
Перед нами дорогой RAID контроллер, поддерживающий самые популярные уровни RAID. Он устанавливается в корпус сервера и работает с быстрыми SCSI дисками, максимальное количество которых в массиве – 15.
Конечно, для домашнего использования такое устройство не предназначено. Но кто знает, что будет через несколько лет?…
Этой статьей мы открыли ряд публикаций о современных технологиях хранения данных. Надеемся, они помогут вам не только расширить свои знания, но и защитить важные данные дома и на работе.