Часто бывает необходимо организовать безотказное хранилище данных.Для этих целей как раз и подойдет RAID. Однако не все материнские платы поддерживают аппаратный RAID-массив.В особенности если у нас сервер не полноценный,а из обычного ПК )) Тут как раз нас и выручит программный RAID,который позволяет создать рабочий массив из практически любый одинаковых дисков.
Начнем. Установим утилиту-драйвер:
apt-get install mdadm
Теперь принимаем за константу что у нас два жестких диска с именами /dev/sdb и /dev/sdc. Разобьем диски программой fdisk.Если у вас там были разделы,то сначала удалим их все.
fdisk /dev/sdb
Затем посмотрим какие разделы у нас есть.Вводим в приглашение англ. букву p.
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdc1 1 1216 9767488+ 83 Linux
/dev/sdc2 1217 1277 489982+ 82 Linux swap / Solaris
/dev/sdc3 1278 19457 146030850 5 Extended
/dev/sdc5 3224 19457 130399573+ 83 Linux
/dev/sdc6 1278 3223 15631213+ 83 Linux
В этом примере у нас 5 разделов.Удаляем их.Вводим в приглашение букву d и номер раздела.И так по очереди все.
После этого создаем новый раздел.Вводим букву n.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Вводим тут букву p — это значит раздел будет Первичным.
Partition number (1-4): 1
Тут номер раздела.Первый конечно же.
First cylinder (1-41610, default 1):
жмем просто Ентер.
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-31510, default 31510):
Тут тоже просто жмем Ентер.У вас в зависимости от размера диска будут другие конечные цифры,но суть не меняется.
Using default value 31510
Раздел создан.Можно посмотреть его информацию введя букву p. Далее мы изменим тип раздела — сейчас там тип 83 Linux. А нам надо fd Linux autodetect. Вводим букву t и в приглашении буквы fd и жмем Ентер.Тип раздела изменится.Теперь записываем все изменения введя букву w. Готово! Первый диск разбит.Тоже самое делаем со вторым.
Теперь создаем зеркальный RAID 1-массив :
mdadm —create —verbose /dev/md0 —level=1 —raid-devices=2 /dev/hdb1 /dev/hdс1
mdadm: size set to 16041518K
mdadm: array /dev/md0 started.
После этого вводим cat /proc/mdstat и смотрим статус — диски должны начать синхронизацию:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 hdс1[1] hdb1[0]
20971328 blocks [2/2] [UU]
[==>………………] resync = 10.7% (2260416/20971328) finish=8.4min speed=36824K/sec
unused devices: <none>
Этот процесс занимает много времени.Тем больше,чем больше размер дисков.Ждем завершения.После завершения надо записать конфигурацию нашего массива в файл конфига,иначе после перезагрузки он потеряется.Это проще всего сделать коммандой:
mdadm —detail —scan —verbose | awk ‘/ARRAY/ {print}’ >> /etc/mdadm/mdadm.conf
Теперь настраиваем что б наш массив монтировался при загрузке системы. Создаем папку,например mkdir /media/raid. Теперь добавляем строчку в /etc/fstab:
/dev/md0 /media/raid ext3 defaults 0 0
Заметка: на этом месте во многих мануалах настройка и заканчивается.Массив должен уже монтироватсья.Однако лично я столкнулся с тем,что он не монтировался — писал что не найдена файловая система.Решилось все просто:
mkfs.ext3 /dev/md0
Готово! Теперь пробуем смонтировать его:
mount /media/raid
Если все смонтировалось без ошибок,поздравляю! Все работает и будет работать. Теперь у вас есть отказоустойчивый массив дисков.Если один из них выйдет из строя,то информация останется на втором.