Нужен ли RAID народу?

Остается все-таки определиться, для чего вообще RAID на десктопе. Тот же резонный человек скажет, что либо а) для повышения производительности (RAID level 0), либо б) для увеличения надежности (RAID level 1), либо в) для счастливого сочетания того и другого (RAID level 5). Прочие уровни для десктопа действительно практического значения не имеют -- разве что уж для тех, кто совсем с претензиями -- RAID10.На все эти ответы можно привести не менее резонные возражения, как-то:

  • производительность дисковой подсистемы настольной машины (не о серверах речь!) ни во FreeBSD, ни, особенно, в Linux обычно не столь критична, как в... ну сами знаете где;
  • RAID 1-го и тем более 10-го уровня для большинства пользователей экономически не оправдан -- проще и надёжнее наладить регулярный инкрементный бэкап на внешние носители;
  • RAID 5-го уровня гарантирует от потери данных только при условии, что вышедший из строя диск можно заменить таким же, лежащим в ящике стола (а любой пользователь нашел бы ему более интересное применение);
  • любой RAID с избыточностью (то есть от 1-го уровня и выше) ни в малейшей степени не страхует от ошибок пользователя -- причины, по которой данных было потеряно больше, чем из-за всех аппаратных сбоев, вместе взятых; и, замечу в скобках, ни в коей мере не отменяет резервного копирования.

Таким образом, чуть ли не единственная причина использовать RAID -- просто соображения удобства: разделы на двух (или более) физических дисках сливаются воедино и на них создается единая файловая система, например, под каталог /home со всеми пользовательскими данными (конечно, теоретически RAID можно создать из разделов на одном диске, однако это не более осмысленно, чем чесать правое ухо мизинцем левой ноги).

Конечно, есть и другой способ конкатенации разделов на разных носителях -- технология LVM (Linux Volume Manager), до которой у нас тоже со временем дойдёт дело. Которая, помимо этого, предоставляет такие полезные возможности, как изменение размера файловой системы, подключение к ней “на лету” дополнительных разделов и т.д. Только нужно ли это на десктопе? Мое мнение -- а я использовал LVM в течении длительного времени именно на своей БНМ (боевой настольной машине), -- нет, не очень. За год у меня ни разу не появилось потребности в перераспределении дискового пространства. А если вдруг образовывались новые диски -- то необходимости аккумулировать их в существующие файловые системы также не возникало.

Тем более, что нынче функции управления логическими томами уверенно поддерживаются в OpenSolaris и FreeBSD за счёт файловой системы ZFS, а в Linux они обещаны по "устаканиванию" другой файловой системы -- btrfs.

Так что если программный RAID -- более простой способ конкатенации дискового пространства, чем LVM, почему бы им не воспользоваться. Вот давайте и рассмотрим этот вопрос -- сначала на примере Linux, а затем и FreeBSD.

Договоримся сразу -- на ближайших страницах речь пойдёт о случае, когда наш программный RAID будет использоваться только под файловую систему, монтируемую в каталог /home -- ни о корневой файловой системе, ни о загрузке с RAID’а речи пока не будет. А потому имеет смысл рассматривать только две RAID-разновидности -- т.н. линейный режим и RAID level 0. При обоих дисковые разделы просто как бы механически соединяются воедино и выглядит для операционки (и ее пользователя) как один. Разница -- в том, что при линейном режиме данные физически пишутся на сначала на один диск, потом -- на второй. То есть, кроме собственно удобства в обращении с двумя дисками, он ничего не обеспечивает. Хотя имеет и достоинство -- при крахе одного диска информацию со второго удастся извлечь. Особенно если этот второй -- на самом деле первый.

В массиве нулевого уровня (именуемый также режимом striple, что в данном случае можно трактовать как параллельный), напротив, каждая порция записываемых данных расслаивается на две равные части, одна из которых в одну и ту же единицу времени записывается на первый диск раздела, другая -- на второй. Что теоретически должно способствовать быстродействию дисковых операций. И -- способствует практически, но только при условии, что PATA-диски массива разнесены на разные каналы IDE-контроллера (очевидно, что SATA-диски в любом случае будут сидеть каждый на своём канале). В противном случае выигрыша в производительности не только не будет, но весьма вероятно даже ее падение.

Кроме того, RAID нулевого уровня не способствует надежности хранения данных -- при отказе хотя бы одного диска пропадут они все (тогда как в линейном режиме информация на исправном диске в первом приближении сохранится). Тем не менее, применение параллельного режима может быть оправданным: сколько бы я ни говорил о некритичности дискового быстродействия в настольных условиях, все же приятно, когда пара-тройка гигабайт копируется пусть не вдвое, но хотя бы в полтора раза быстрее.

Так что ответив положительно на вопрос, нужен ли RAID народу, засуча рукава, примемся за дело.


Теги: ,