Soft RAID в Linux: подготовительный этап

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

Первое условие, разумеется, -- физическое наличие более чем одного диска. Причем очевидно, что число их для линейного режима значения не имеет, а для level 0 предпочтительно четное количество. Опять же повторюсь: в случае PATA-дисков при выборе нулевого RAID’а очень желательно разнести их на разные контроллеры.

Далее, на дисках необходимо создать (средствами fdisk, cfdisk, parted или любыми дистрибутив-специфичными утилитами) два раздела. Опять-таки, при использовании линейного режима размер разделов не имеет значения, тогда как при режиме параллельном их желательно делать равными (или хотя бы примерно равными) по объему: в противном случае размер суммарного массива будет уменьшена на величину разности его составляющих.

Наконец, разделам, предназначенным для объединения в массив, хорошо бы присвоить соответствующий идентификатор типа файловой системы -- fd (в шестнадцатеричном счислении), который так и называется -- RAID Auto detection. В принципе, это не обязательно, но, как станет видно из дальнейшего, здорово упрощает жизнь.

Теперь -- ядро системы: для использования программного RAID’а в его конфигурации должны быть включены соответствующие опции в пункте Multi-device support (RAID and LVM) главного меню, генерируемого по команде

$ make menuconfig

А именно:

  • общая поддержка “многочленных” устройств (Multiple devices driver support (RAID and LVM));
  • общая поддержка RAID;
  • поддержка предполагаемого режима -- линейного (Linear (append) mode) или параллельного (RAID-0 (striping) mode).

Общая поддержка “многочленных” устройств может быть только встроена в ядро, прочие же опции либо встраиваются, либо подключаются в качестве модулей (последнее имеет место быть по умолчанию в большинстве известных пакетных дистрибутивов). В рассматриваемом нами случае это безразлично. Встраивание поддержки RAID в ядро обязательно только в том случае, если на массиве располагается корневая файловая система и (или) он выступает в качестве загрузочного устройства -- ни того, ни другого мы договорились не делать. Да и то, при должном конфигурировании виртуального загрузочного диска (initrd или initramfs) даже в этих случаях можно обойтись модулями. Тем не менее, во времена ручной настройки RAID я всегда жестко встраивал в ядро поддержку нужных мне устройств -- пусть ядро становится больше, зато меньше возни с настройкой подключения модулей (да и интегрально так, мне кажется, выходит быстрее -- а кого нынче волнует размер ядра?).

Из опций конфигурации ядра, прямо не связанных с RAID’ами, полезно проследить, включена ли поддержка файловой системы процессов (procfs) -- она позволит в дальнейшем иметь информацию о текущем состоянии массива. Делается это в пункте File systems главного меню (/proc file system support). Разумеется, эта файловая система должна быть прописана в файле /etc/fstab соответствующей строкой:

proc /proc proc defaults 0 0

для автоматического монтирования при старте системы. Впрочем, во всех современных дистрибутивах и то, и другое включено по умолчанию с вероятностью почти стопроцентной.


Теги: , ,