Немного о RAID вообще
RAID расшифровывается как Redundant Array of Inexpensive Disks (избыточный массив недорогих дисков) или, что больше отражает реальность, как Redundant Array of Independent Disks (избыточный массив независимых дисков). Изначально, как следует из любого определения, они предназначались для повышения надёжности хранения данных именно за счёт избыточности их записи, допускающей восстановление информации при выходе из строя одного из входящих в массив накопителей.Избыточность записи на массив обеспечивалась специальными контроллерами (почему их называют аппаратными RAID) со SCSI-, а затем ATA-интерфейсами, которые реализовывались на самостоятельных платах расширения, а позднее начали встраиваться в материнские платы. Пока, наконец, поддержка избыточности не была включена в южные мосты стандартных чипсетов, начиная с Intel ICH5 (хотя такие "чипсетные" RAID, строго говоря, являются "полуаппаратными").
В зависимости от реализации избыточности, выделяются RAID нескольких уровней:
- Level 1 -- массив из двух дисков, данные на которых полностью дублируются при записи, почему он называется также зеркальным (mirror); обеспечивает максимальную надёжность -- в случае выхода из строя одного массива система способна к продолжению работы: оборотная сторона медали -- удвоение цены дисковой подсистемы;
- Level 2, когда массив разделяется на две группы дисков: на одну записываются данные, на вторую -- коды коррекции, предназначенные для исправления ошибок "на лету" по так называемому методу Хемминга, первоначально разработанному для оперативной памяти с коррекцией ошибок -- ECC); метод считается надёжным, и к тому же может вести к повышению быстродействия за счёт распараллеливания записи на диски для данных, однако решение оказывается дорогостоящим и сложным в обслуживании;
- Level 3 и 4 -- массивы из нескольких дисков с частичной избыточностью за счёт записи контрольных сумм; в массивах уровней 2 и 3 под них выделяется специальный диск с побайтной или блоковой записью, соответственно; надёжность обеих подсистем сильно зависит от "контрольного" диска, на который падает максимальная нагрузка;
- Level 5 -- массив, в котором данные и контрольные суммы циклически распределяются по всем входящим в него дискам; такой механизм обеспечивает достаточную надёжность, сохраняя работоспособность дисковой подсистемы при выходе из строя одного элемента массива, а как бонус может даже давать прирост быстродействия за счёт стриппинга между разными носителями; однако при аварии требуется быстрая замена диска, так как производительность и надёжность подсистемы резко снижается
- Level 6 -- похож на массив уровня 5, но в нём для всех данных записывается по две контрольные суммы, рассчитанные по разным алгоритмам; сохраняет работоспосбность при выходе из строя двух дисков, но требует очень мощных контроллеров, что выливается в высокую цену.
Кроме того, существует ещё RAID Level 0, который, строго говоря, RAID'ом не является, так как не содержит никакой избыточности вообще: в нём данные при записи расщепляются (stripping) на два диска и, соответственно, с двух же дисков и считываются, что в некоторых условиях способствует существенному ускорению дисковых операций. Однако отказ одного из дисков приводит к полному краху дисковой подсистемы с полной потерей данных.
Возможна также комбинация уровней 0 и 1 -- RAID Level 0+1 (называемый также Level 10), образованный из двух пар дисков: на первую осуществляется запись с расщеплением, результаты чего зеркалируются на вторую пару. Позволяет сочетать быстродействие нулевого уровня с надёжностью первого, но требует минимум четырёх дисков.
Наконец, в "чипсетных" контроллерах от Intel поддерживается так называемый Matrix RAID; он позволяет объединять в массивы не диски целиком, а их разделы, и при этом для одних пар разделов осуществлять стриппинг, а для других -- зеркалирование. Этим теоретически можно обеспечить быстродействие в отношении восстановимых компонентов, например, системных, и надёжность хранения -- для пользовательских данных: крах одного из дисков приводит в систему в неработоспособное состояние, но по крайней мере данные можно спасти.
На практике наиболее используемы массивы уровней 0, 1, 10 и 5; прочие распространения не получили по разным причинам, вдаваться в которые здесь неуместно. Относительно Matrix RAID ничего сказать не могу: теоретически он наиболее доступен, так как поддерживается большинством современных материнских плат, но примеров его практического использования мне видеть не доводилось.
Все аппаратные RAID-решения, кроме "чипсетного" -- удовольствие достаточно дорогое (для подавляющего большинства пользователей -- неоправданно дорогое). Что же до "чипсетного" RAID -- тут можно сказать одно: халява -- она и есть халява, и сфера применения его, как мы увидим на следующей странице, оказывается весьма ограниченной. Именно это и заставляет обратиться к soft RAID.
Функции RAID большинства уровней вполне способно выполняться самими операционными системами, без всякого участия аппаратуры: для этого требуется лишь включение соответствующих опций в ядре ОС и наличие программного инструментария -- утилит для создания массивов и управления ими. Таким образом создаются те самые soft RAID, которые и будут предметом дальнейшего рассмотрения.
Серверные версии Windows, насколько я слышал, поддерживают массивы уровней 0, 1 и 5. В настольных версиях эти функции заблокированы, но могут быть включены методом "чёрного хака" (повторяю, я основываюсь на слухах).
Зато FOSS-системы -- Linux, все BSD, OpenSolaris , -- поддерживают soft RAID с давних времён и разнообразными методами. Их средствами можно создавать массивы уровней 0, 1, 10 и 5. Причём массивы могут собираться не только из дисков, как в случае чисто аппаратных решений, но и из дисковых разделов, лежащих на разных дисках (очевидно, что массив из разделов на одном диске ни малейшего смысла не имеет).
Кроме того, для программных реализаций RAID существует так называемый линейный (linear) режим. В этом случае два диска или раздела видятся системой как одно устройство, но заполнение его физических компонентов происходит последовательно -- сначала первого, затем второго. Разумеется, тут не приходится говорить ни о увеличении быстродействия за счёт стриппинга, ни о повышении надёжности вследствие зеркалирования. Единственное основание для организации линейного массива -- соображения удобства, дабы не напрягать себя монтированием второго диска или думать о переполнении одного из них.
Таким образом, пользователь ОС FOSS-мира может бесплатно получить большинство функции, предоставляемых дорогими и весьма дорогими аппаратными контроллерами. Разумеется, с некоторыми ограничениями. Очевидно, что программные RAID-решения отличаются меньшим быстродействием. А главное, они, как считается, влекут резкое возрастание нагрузки на процессор: ведь ему приходится выполнять функции, которые в "железных" решениях выполняют специализированные чипы.
Так что для начала давайте посмотрим, а не целесообразней ли будет выбрать компромисс -- использовать практически даровые RAID-функции современных материнских плат?
- Программные RAID-массивы в FOSS-системах
- Немного о RAID вообще
- RAID-контроллеры для FOSS: аппаратные и не очень
- Нужен ли RAID народу?
- Soft RAID в Linux: подготовительный этап
- Soft RAID в Linux: процесс созидания
- Soft RAID в Linux: альтернатива
- Mdadm vs raidtools
- Fedora: программный RAID при инсталляции
Теги: raid, soft raid