Немного теории
Чтобы понимать, о чем идет речь, следует сказать пару слов о самой технологии. Акроним RAID означает Redundant Array of Inexpensive/Independed Disks, что переводится как "избыточный массив из недорогих/независимых дисков". Заметьте — именно независимых дисков, то есть их должно быть, по крайней мере, два (а для некоторых уровней — три, четыре, a то и больше).
RAID-массив можно организовать при помощи специального контролера, стоимость которого — от 20 у.е за отдельный чип на материнской плате и 200 у.е. за отдельное специализированное устройство.
Но при покупке компьютера не всегда предусматривается создание RAID, поэтому, чтобы немного сэкономить, можно создать такой массив программно — то есть фактически бесплатно. Но за бесплатность придется платить увеличением нагрузки на процессор. К тому же, soft-RAID — по сравнению с железной реализацией — на всех уровнях показывает более низкую производительность. Так что данный метод лучше задействовать в случаях, когда, во-первых, утилита top показывает, что есть еще порох в пороховницах, и, во-вторых, сохранность данных важнее общей производительности.
Упоминались уровни RAID. Действительно, отцы-создатели данной технологии Дэвид Паттерсон, Рэнди Катц и Гарт Гибсон предложили шесть способов организации винчестеров в виртуальный диск, при этом сразу оговорив область применения каждого. Один из этих методов позволяет добиться увеличения скорости, а пять других направлены на повышение общей надежности.
Основой всех способов (кроме RAID-1) является страйпинг — то есть при работе логические блоки RAID-тома (который видится как единое целое, хотя и состоит из нескольких дисков) сопоставляются физическим на различных носителях.
- RAID-0 (striping) — последовательный поток данных равномерно записывается на различные носители, контроль четности при этом не производится. Обеспечивает самые быстрые операции ввода/вывода — однако является наименее надежным из методов;
- RAID-1 (mirroring) — полное зеркалирование (дублирование) данных на другой носитель. Дополнительно обеспечивается повышение производительности при операциях чтения;
- RAID-2 — этот метод уже практически забыт; информация записывается побайтно на несколько винчестеров, головки которых движутся синхронно. Дополнительно на отдельный носитель (носители) записывается избыточная информация для восстановления;
- RAID-3 — тоже редко используемый метод. Уже хотя бы по причине трудности реализации. Похож на предыдущий, только избыточная информация высчитывается по "исключаемому ИЛИ", а не ECC;
- RAID-4 — также предусматривает отдельный диск для контроля четности, что является самым узким местом такой системы. Однако при этом способе данные распределяются по секторам, а не по байтам;
- RAID-5 — напоминает предыдущий метод, но тут избыточные данные равномерно распределены по всем дискам. Таким образом решается проблема "узкого места" — однако при программной реализации такой способ оказывается для процессора наиболее трудоемким.
Но это не всё — существуют также производные методы, в которых пытаются устранить некоторые недостатки родительских: RAID-0+1, RAID-10, RAID-30, есть и RAID-6. Ядро Linux поддерживает еще так называемый linear- (известный еще как append) режим. В этом режиме разделы диска просто как бы плюсуются, суммарный объем равен объему всех разделов, участвующих в формировании тома, и запись осуществляется как на обычный диск. При этом не содержится никакой избыточности и скорость записи/считывания не увеличивается (только объем).