Технология хранения Redundant array of independent disks (RAID) – Setevuha

Технология хранения Redundant array of independent disks (RAID)

RAID — аббревиатура, расшифровываемая как Redundant Array of Independent Disks — «отказоустойчивый массив из независимых дисков» (раньше иногда вместо Independent использовалось слово Inexpensive). Концепция структуры, состоящей из нескольких дисков, объединенных в группу, обеспечивающую отказоустойчивость родилась в 1987 году в основополагающей работе Паттерсона, Гибсона и Катца.

Содержание статьи:

RAID — аббревиатура, расшифровываемая как Redundant Array of Independent Disks — «отказоустойчивый массив из независимых дисков» (раньше иногда вместо Independent использовалось слово Inexpensive). Концепция структуры, состоящей из нескольких дисков, объединенных в группу, обеспечивающую отказоустойчивость родилась в 1987 году в основополагающей работе Паттерсона, Гибсона и Катца.


типы RAID


img04.jpg


RAID-0

Если мы считаем, что RAID это «отказоустойчивость»(Redundant…), то RAID-0 это «нулевая отказоустойчивость», отсутствие ее. Структура RAID-0 это «массив дисков с чередованием». Блоки данных поочередно записываются на все входящие в массив диски, по порядку. Это повышает быстродействие, в идеале во столько раз, сколько дисков входит в массив, так как запись распараллеливается между несколькими устройствами. Однако во столько же раз снижается надежность, поскольку данные будут потеряны при выходе из строя любого из входящих в массив дисков.


RAID-1

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


RAID-2

Остался полностью теоретическим вариантом. Это массив, в котором данные кодируются помехоустойчивым кодом Хэмминга, позволяющим восстанавливать отдельные сбойные фрагменты за счет его избыточности. Кстати различные модификации кода Хэмминга, а также его наследников, используются в процессе считывания данных с магнитных головок жестких дисков и оптических считывателей CD/DVD.


RAID-3 и RAID-4

«Творческое развитие» идеи защиты данных избыточным кодом. Код Хэмминга незаменим в случае «постоянно недостоверного» потока, насыщенного непрерывными слабо предсказуемыми ошибками, такого, например, как зашумленный эфирный канал связи. Однако в случае жестких дисков основная проблема не в ошибках считывания (мы считаем, что данные выдаются жесткими дисками в том виде, в каком мы их записали, если уж он работает), а в выходе из строя целиком диска. Для таких условий можно скомбинировать схему с чередованием (RAID-0) и для защиты от выхода из строя одного из дисков дополнить записываемую информацию избыточностью, которая позволит восстановить данные при потере какой-то ее части, выделив под это дополнительный диск. При потере любого из дисков данных мы можем восстановить хранившиеся на нем данные путем несложных математических операций над данными избыточности, в случае выхода из строя диска с данными избыточности мы все равно имеем данные, считываемые с дискового массива типа RAID-0. Варианты RAID-3 и RAID-4 отличаются тем, что в первом случае чередуются отдельные байты, а во втором — группы байт, «блоки». Основным недостатком этих двух схем является крайне низкая скорость записи на массив, поскольку каждая операция записи вызывает обновление «контрольной суммы», блока избыточности для записанной информации. Очевидно, что, несмотря на структуру с чередованием, производительность массива RAID-3 и RAID-4 ограничена производительностью одного диска, того, на котором лежит «блок избыточности». В «живой природе» в чистом виде почти не встречается. Однако RAID-4 (чередование с четностью с выделенным диском четности) успешно применяется в дисковых системах хранения компании NetApp, где его конструктивные недостатки успешно скомпенсированы особенностями работы файловой системы внутренней OS системы хранения и режимом работы процесса записи данных из кэш-памяти. На сегодняшний день это единственная широко применяемая реализация этого типа.


RAID-5

Попытка обойти это ограничение породила следующий тип RAID, в настоящее время он получил, наряду с RAID-10, наибольшее распространение. Если запись на диск «блока избыточности» ограничивает весь массив, давайте его тоже размажем по дискам массива, сделаем для этой информации невыделенный диск, тем самым операции обновления избыточности окажутся распределенными по всем дискам массива. То есть мы также как и в случае RAID-3(4) берем дисков для хранения N информации в количестве N + 1 диск, но в отличие от Type 3 и 4 этот диск также используется для хранения данных вперемешку с данными избыточности, как и остальные N. Недостатки: Проблема с медленной записью отчасти была решена, но все же не полностью. Запись на массив RAID-5 осуществляется, тем не менее, медленнее, чем на массив RAID-10. Зато RAID-5 более «экономически эффективен». Для RAID-10 мы платим за отказоустойчивость ровно половиной дисков, а в случае RAID-5 это всего один диск.

Однако скорость записи снижается пропорционально увеличению количества дисков в массиве (в отличие от RAID-0, где она только растет). Это связано с тем, что при записи блока данных массиву нужно заново рассчитать блок избыточности, для чего прочитать остальные «горизонтальные» блоки и пересчитать в соответствии с их даными блок избыточности. То есть на одну операцию записи массив из 8 дисков (7 дисков данных + 1 дополнительный) будет делать 6 операций чтения в кэш (остальные блоки данных со всех дисков, чтобы рассчитать блок избыточности), вычислять из этих блоков блок избыточности, и делать 2 записи (запись блока записываемых данных и перезапись блока избыточности). В современных системах частично острота снимается за счет кэширования, но тем не менее удлинение группы RAID-5 хотя и вызывает пропорциональное увеличение скорости чтения, но также и соответственное ему снижение скорости записи. Ситуация со снижением производительности при записи на RAID-5 иногда порождает любопытный экстремизм.

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


RAID-6

Дальнейшее развитие идеи RAID-5. Если мы рассчитаем дополнительную избыточность по иному нежели применяемому в RAID-5 закону, то мы сможем сохранить доступ к данным при отказе двух дисков массива. Платой за это является дополнительный диск под данные второго «блока избыточности». То есть для хранения данных равных объему N дисков нам нужно будет взять N + 2 диска. Усложняется «математика» вычисления блоков избыточности, что вызывает еще большее снижение скорости записи по сравнению с RAID-5, зато повышается надежность. Причем в ряде случаев она даже превышает уровень надежности RAID-10. Нетрудно увидеть, что RAID-10 тоже выдерживает выход из строя двух дисков в массиве, однако в том случае, если эти диски принадлежат одному «зеркалу» или разным, но при этом не двум зеркальным дискам. А вероятность именно такой ситуации никак нельзя сбрасывать со счета.


комбинированные типы: RAID-10, 50

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

RAID-10 Попытка объединить достоинства двух типов RAID и лишить их присущих им недостатков. Если взять группу RAID-0 с повышенной производительностью, и придать каждому из них (или массиву целиком) «зеркальные» диски для защиты данных от потери в результате выхода из строя, мы получим отказоустойчивый массив с повышенным, в результате использования чередования, быстродействием. На сегодняшний день «в живой природе» это один из наиболее популярных типов RAID. Минусы — мы платим за все вышеперечисленные достоинства половиной суммарной емкости входящих в массив дисков.


Проприетарные варианты

RAID-DP

RAID with Diagonal Parity или иногда встречается вариант ‘Double Parity’ — реализованный в 2003 году (впервые появился в версии Data ONTAP 6.5) собственный NetApp-овский аналог RAID-6. Несмотря на то, что RAID-DP в деталях отличается от «канонического» RAID-6, тем не менее в NetApp было принято решение также пользоваться и обозначением RAID-6 для RAID-DP в своей продукции. Это облегчает принципиальное понимание и, кроме прочего, облегчает соответствие систем NetApp тендерным требованиям.

Функционально же, как средство, обеспечивающее защиту данных при выходе из строя двух дисков в RAID-группе, RAID-DP эквивалентен RAID-6. В чем же разница? Практически все вендоры, использующие RAID-6, признают, что использование RAID-6 вместо RAID-5 приводит к падению производительности от 10 до 20 %. Иная ситуация с RAID-DP. Компания NetApp официально подтверждает, что по сравнению с традиционным RAID-4 производительность тома на группе RAID-DP отличается не более чем на единицы процентов.

То есть за повышенную надежность своих данных пользователь системы хранения NetApp не платит производительностью вовсе. Такой результат также является следствием использования все той же тесной интеграции между OS, кэшем, дисками, RAID-структурой и файловой системой. Это позволило Network Appliance рекомендовать использовать RAID-DP как схему по умолчанию для всех своих систем хранения. Однако проприетарность определяет существование этого типа RAID только на системах хранения этого вендора.


RAID-Z

Так называемая "программная" реализация RAID осуществляемая на уровне файловой системы ZFS. Выпущена и распространяется под открытой лицензией компанией SUN. Постепенно завоевывает признание. Впервые поддержка появилась в версии ОS SUN Solaris 10, но по причине открытости лицензии и кода может быть перенесена во множество других OS, например, в настоящее время есть реализации во FreeBSD и Mac OS X. По причине конфликта лицензий не поддерживается ядром Linux, но существует реализация в виде user-module под FUSE. "... RAID-Z — реализация RAID-5 без присущих ему недостатков. Основные недостатки RAID-5 — фиксированный размер страйпа и проблема, называемая «write hole». В RAID-5 при модификации неполного страйпа необходимо:

- считать старые данные,
- изменить их,
- вычислить новые данные и новое значение четности,
- а затем записать.

В RAID-Z размер страйпа не фиксирован: он равен размеру логического блока файловой системы, записываемого или считываемого в данный момент. Необходимые параметры страйпа хранятся в метаданных этого логического блока. Таким образом, все операции записи в RAID-Z превращаются в операции записи целого страйпа, что положительно сказывается на производительности и вместе с Copy-On-Write устраняет необходимость в дорогой энергонезависимой памяти. RAID-Z2 — аналог RAID-Z, использующий два диска для хранения информации о четности, что позволяет продолжать работу даже в случае отказа двух дисков.

Оцените эту статью:

Интересные статьи по теме «Системы хранения данных (СХД)»

Технологии, процессы и концепции СХД

Технологии, процессы и концепции СХД

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

Виды систем хранения данных
Протоколы - системы хранения данных

Протоколы - системы хранения данных

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

Файловый сервер

Файловый сервер

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