Situazione iniziale:
/dev/sda1 – /boot
/dev/sda2 – /
/dev/sda3 – swap
/dev/sda5 – /var
/dev/sda6 – /home
Il nuovo disco è /dev/sdb.
Installare mdadm se non già presente nel sistema.
Per Debian:
aptitude install mdadm / dpkg-reconfigure mdadm
Per Redhat:
yum install mdadm
Modificare il tipo delle partizioni in “fd” (Linux raid autodetect”).
Device Boot Start End Blocks Id System
/dev/sda1 1 7 56196 fd Linux raid autodetect
/dev/sda2 8 1251 9992430 fd Linux raid autodetect
/dev/sda3 1252 1495 1959930 fd Linux raid autodetect
/dev/sda4 1496 19457 144279765 5 Extended
/dev/sda5 1496 2224 5855661 fd Linux raid autodetect
/dev/sda6 2225 19457 138424041 fd Linux raid autodetect
sfdisk -d /dev/sda | sfdisk /dev/sdc
mdadm –create /dev/md0 –level 1 –raid-devices=2 missing /dev/sdc1
Ripetere per tutti gli altri volumi che si vogliono creare (md1, md2, …)
mdadm –create /dev/md1 –level 1 –raid-devices=2 missing /dev/sdc2
Formattate i singoli volumi raid con il file system voluto:
mkfs.ext3 /dev/md0
mkfs.xfs /dev/md1
mkswap /dev/md2
mkfs.xfs /dev/md3
mkfs.xfs /dev/md4
Montare i nuovi volumi raid e procedete alla copia dei dati desiderati
mount /dev/md0 /mnt
cp -dpRx /boot/* /mnt
umount /mnt
(l’opzione -dpRx preserva gli attrubuti e, nel caso di filesystem montati, crea solo la dir)
Ripetere per tutti gli altri volumi raid…
mount /dev/md1 /mnt
cp -dpRx / /mnt
umount /mnt
Modificare /etc/fstab per fare usare i volumi raid:
# /etc/fstab: static file system information.
#
# proc /proc proc defaults 0 0##/dev/sda2 / xfs defaults 0 1
/dev/md1 / xfs defaults 0 1##/dev/sda1 /boot ext3 defaults 0 2
/dev/md0 /boot ext3 defaults 0 2##/dev/sda3 none swap sw 0 0
/dev/md2 none swap sw 0 0##/dev/sda5 /var xfs defaults 0 2
/dev/md3 /var xfs defaults 0 2##/dev/sda6 /some xfs defaults,quota 0 2
dev/md4 /some xfs defaults.quota 0 2
/dev/sdb /media/cdrom udf,iso9660,user,noauto 0 0
/dev/fd0 /media/floppy auto rw,user,noauto 0 0
Modificare o creare il file /etc/mdadm/mdadm.conf in rispetto di quanto riportato in /etc/fstab:
DEVICE partitions
# /
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=220a85ef:3072d384:b934adcf:3d8b599b
devices=/dev/sda1,/dev/sdc1 auto=yes
# swap
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=238b4e00:cf1cc4a1:e3bf2a7a:3d793c7a
devices=/dev/sda2,/dev/sdc2 auto=yes
[ARRAY ------------------------------------------------------------]
MAILADDR root@localhost
Dove l’UUID di ciascun array è desunto dal comando:
mdadm -D md[n]
E dove altre opzioni si trovano nel file:
/etc/default/mdadm
Installare grub oltra che in /dev/sda anche in /dev/sdc per mettersi al riparo da guai:
grub-install /dev/sda
grub
grub: device (hd0) /dev/sdb
grub: root (hd0,0)
grub: setup (hd0)
grub: quit
Se si usa un kernel modulare, ricordarsi di eseguire “mkinitrd …” per far caricare all’avvio del sistema anche i moduli che gestiscono il raid:
mkinitrd -r /dev/md1 -o /tmp/initrd-[versionedelkernel]
[ dpkg-reconfigure kernel-image-[versionedelkernel] ]
ATTENZIONE:
Riavviate la macchina (avere SEMPRE un floppy con Grub disponibile!) Dopo il reboot, dovremmo avere una situazione simile a questa:
#Filesystem blocchi di 1K Usati Disponib. Uso% Montato su
/dev/md1 9982080 1923780 8058300 20% /
udev 10240 112 10128 2% /dev
devshm 1021820 0 1021820 0% /dev/shm
/dev/md0 54348 20776 30766 41% /boot
/dev/md3 5845312 733712 5111600 13% /var
/dev/md4 138356348 4524 138351824 1% /home
Assicurarsi che il boot sia avvenuto dalla partizione giusta:
cat /proc/cmdline //deve ripostare la root in /dev/md1
A questo punto i dati originali sono già sul nuovo disco e possiamo aggiungere le varie partizioni di /dev/sda al RAID…
mdadm –add /dev/md0 /dev/sda1
mdadm –add /dev/md1 /dev/sda2
mdadm –add /dev/md2 /dev/sda3
mdadm –add /dev/md3 /dev/sda5
mdadm –add /dev/md4 /dev/sda6
Il sistema inizia a sincronizzare i dati e, dopo un tempo che dipende dalle dimensioni delle partizioni, dovremmo avere questa situazione:
ltsp2:~# cat /proc/mdstat
Personalities : [raid1]
md4 : active raid1 sda6[1] sdc6[1]
5855552 blocks [2/2] [UU
md3 : active raid1 sda5[1] sdc5[1]
138423936 blocks [2/2] [UU]
[ snip --------------- ]
Si puo’ controllare quanto avviene durante la sincronizzazione dei dischi col comando:ltsp2:~#
more /proc/mdstat
—-[POST SCRIPTUM]—-
Comandi utili:
Mettere in “fail” le partizione di un disco (? = numero partizione)
mdadm -f /dev/md1 /dev/sda?
Rimuovere le partizioni di un disco (? = numero partizione):
mdadm -r /dev/md1 /dev/sda?
Azzerare il superblock
mdadm –zero-superblock /dev/sda?
Esaminare il RAID, dal “punto di vista di sdc…
mdadm -E /dev/sdc[n]
Dal “punto di vista di sda…
mdadm -E /dev/sda[n]
(Opzione da aggiungere come parametro del kernel in /boot/grub/menu.lst)
root=/dev/md1 md=0,/dev/sda1,/dev/sdc1 ro


































