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

Алексей Федорчук

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

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

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

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

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

Так что если программный RAID — более простой способ конкатенации дискового пространства, чем LVM, почему бы им не воспользоваться. Договоримся сразу — речь пойдёт о случае, когда программный RAID используется только для хранения пользовательских данных (то есть под файловую систему, монтируемую в каталог /home) — ни о корневой файловой системе, ни о загрузке с RAID’а речи пока не будет.

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

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

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