mdadm

January 16, 2010

mdadm - это утилита для создания raid под линукс

итак, выжимка - мне нужен был raid-1, то есть зеркало:

я взял два одинаковых жёстких диска и создал на каждом 1 раздел (disklabel type = dos ибо на x86_64 работаю), тип раздела не 83 как у линуксовых разделов а fd, то есть автоматически определяемый (ядром) рэйд-массив,

далее мне понадобился набор утилит mdadm, который у меня в системе уже стоит, ибо я уже использую 1 рэйд :) а для тех кто не использует рэйд и кому нужен такой набор пишем от рута в командной строке

**apt-get install mdadm**

и всё будет :)

далее надо уведомить систему что у неё есть такая классная вещь как рэйд:

**mdadm --create /dev/md1 --chunk=128 --raid-devices=2 --level=1 /dev/sde1 /dev/sdf1**

вот, теперь в системе при загрузке будет появляться девайс /dev/md1 представляющий из себя составное блоковое устройство, компонентами которого будут собственно /dev/sde1 /dev/sdf1 (устройства, содержащие некие метаданные, говорящие системе о том, что они являются частью одного рэйда, а система сама решает как его обозвать) собственно это устройство уже готово к использованию - то есть на него можно вполне натравить либо mkfs либо cfdisk, а потом mkfs, я долго вопросами не задавался и сказал по просту:

**mkfs.ext3 /dev/md1**

и получил то, что хотел - то бишь рэйд первого уровня.

Важно тут ещё вот что: в принципе эту пару дисков можно использовать в любой linux системе; новую систему надо только уведомить о том, что эта пара устройств должна быть активирована (собрана и запущена) - пока что у меня опыта активации не было, так что поделиться не чем,
зато есть опыт разборки рэйда - казалось бы что тут сложного? но как и везде есть свои заковырки - тут тоже имеются нюансы - по-началу я немножко не так собрал рэйд (без рэйд-партишна), как мне хотелось, попробовал тормознуть рэйд командой mdadm --stop /dev/md1 и попросту записать в первые хз сколько мегов нули из /dev/zero (dd if=/dev/zero of=/dev/sde bs=16M аналогично для второго диска), но не тут-то было, после перезагрузки системы (для чистоты эксперимента) выпер всё тот же неправильный массив, у меня аж глаза на лоб полезли - вроде метаданные стёр и всё такое - не должен этот девайс обнаруживаться! а он сцуко есть, порывшись в и-нете нашёл - нужно пометить все устройства как fail (сломанные):

**mdadm /dev/md1 --fail /dev/sdf --fail /dev/sde**

а потом вынуть из массива всё, что оттуда вынимается - в массиве остаётся минимальный набор дисков, обеспечивающий его минимальный функционал - то есть в моём случае - 1 диск.

Итак:

**mdadm /dev/md1 --remove /dev/sde**

что дальше? - надо остановить массив (остановите Землю я сойду :) ) :

**mdadm --stop /dev/md1**

ну и наконец самое главное - надо корректным образом обнулить суперблок:

**mdadm --zero-superblock /dev/sde
mdadm --zero-superblock /dev/sdf**

фсё - нет такого устройства /dev/md1 , а если и есть, то оно состоит из 0 девайсов и идёт лесом :)

Next Post