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
для автоматического монтирования при старте системы. Впрочем, во всех современных дистрибутивах и то, и другое включено по умолчанию с вероятностью почти стопроцентной.
- Программные RAID-массивы в FOSS-системах
- Немного о RAID вообще
- RAID-контроллеры для FOSS: аппаратные и не очень
- Нужен ли RAID народу?
- Soft RAID в Linux: подготовительный этап
- Soft RAID в Linux: процесс созидания
- Soft RAID в Linux: альтернатива
- Mdadm vs raidtools
- Fedora: программный RAID при инсталляции
Теги: kernel, linux, soft raid