Ho preso spunto da alcune istruzioni trovate sul web e ho provato sulla mia pelle tutto cio che è scritto.
Oltre alla messa in funzione di un RAID vedremo i comandi di base per la gestione di questi array di dischi.
Utilizzeremo il paccheto sys-apps/mdadm (http://cgi.cse.unsw.edu.au/~neilb/mdadm) al posto del "vecchio" sys-fs/raidtools, che è meno amichevole da usare (IMHO).
Tutte le istruzioni riportate si riferiscono ad un sistema con due dischi IDE/ATA impostati come hda e hdb e ad una configurazione delle partizioni in "/", "/boot" e "swap". E' preferibile inoltre che io due hdd siano il piu simili possibile in ordine di grandezza.
Partiamo con il livecd di gentoo seguiamo la guida di istallazione fino alla parte "4. Preparazione dei dischi".
A questo punto lanciamo il seguente comando per attivare il supporto al software raid:
Code: Select all
modprobe raid1Code: Select all
mknod /dev/md0 b 9 0
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
Per chiarezza diciamo pure che
Andiamo ora a partizionare i due hard disks in modo che le tre partizioni che creeremo siano uguali su entrambi./dev/md0 = /dev/hda1 + /dev/hdb1
/dev/md1 = /dev/hda2 + /dev/hdb2
/dev/md2 = /dev/hda3 + /dev/hdb3
E' molto importante che le partizione siano del tipo "Linux raid autodetect", con cfdisk il codice per questo tipo è "FD". Impostiamo inoltre le partizioni di boot come "boottabili".
Per facilitare questa operazione di consiglia di partizionare il primo hard disk e di lanciare il seguente comando:
Code: Select all
sfdisk -d /dev/hda | sfdisk /dev/hdbEccoci ora alle creazione vera e propria del RAID. Lanciamo i seguenti comandi:
Code: Select all
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hda1 /dev/hdb1
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/hda2 /dev/hdb2
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/hda3 /dev/hdb3
Code: Select all
cat /proc/mdstat
A questo punto non ci resta che formattare le partizioni! Ad esempio con:Personalities : [raid1]
md1 : active raid1 hdb2[1] hda2[0]
1951808 blocks [2/2] [UU]
md2 : active raid1 hdb3[1] hda3[0]
13671232 blocks [2/2] [UU]
md0 : active raid1 hdb1[1] hda1[0]
96256 blocks [2/2] [UU]
unused devices: <none>
Code: Select all
mke2fs /dev/md0
mke2fs -j /dev/md2
mkswap /dev/md1
Code: Select all
swapon /dev/md1Code: Select all
mount /dev/md2 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/md0 /mnt/gentoo/boot
Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
<*> RAID support
< > Linear (append) mode
< > RAID-0 (striping) mode
<*> RAID-1 (mirroring) mode
.....
<*> Device mapper support
e di settare /etc/fstab correttamente. Ad esempio:
Code: Select all
...
/dev/md0 /boot ext2 noauto,noatime 1 1
/dev/md2 / ext3 noatime 0 0
/dev/md1 none swap sw 0 0
...
Per permettere il boot del sistema da entrambi i dischi, in caso di rottura di uno dei due, grub (in questo caso) va istallato nel Master Boot Record dei due hard disks.
Ecco come procedere dopo l'emerge di grub.
Avviare la shell di grub con il comando:
Code: Select all
grubCode: Select all
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
grub> quit
Prima di terminare l'istallazione di Gentoo e di procedere con il reboot non dimenticate di istallare il pacchetto sys-apps/mdadm :# Boot automatically after 30 secs.
timeout 30
# By default, boot the first entry.
default 0
# Fallback to the second entry.
fallback 1
# For booting with disc 0 kernel
title GNU/Linux (hd0,0)
kernel (hd0,0)/kernel-2.6.10 root=/dev/md2
# For booting with disc 1 kernel, if (hd0,0)/bzImage is unreadable
title GNU/Linux (hd1,0)
kernel (hd1,0)/kernel-2.6.10 root=/dev/md2
Code: Select all
emerge mdadm
Ora qualche cenno sulla gestione.
Il comando "mdadm" permette la completa amministrazione degli array.
Facciamo qualche esempio pratico. Ammettiamo di accorgerci che il secondo hard disk (hdb) si stia rompendo e che quindi vogliamo sostituirlo con uno nuovo.
Ecco il dafarsi:
Code: Select all
mdadm /dev/md0 --fail /dev/hdb1 --remove /dev/hdb1
mdadm /dev/md1 --fail /dev/hdb2 --remove /dev/hdb2
mdadm /dev/md2 --fail /dev/hdb3 --remove /dev/hdb3
ora spegniamo il pc, sostituiamo il disco guasto, riavviamo e...Personalities : [raid1]
md1 : active raid1 hda2[0]
1951808 blocks [2/1] [U_]
md2 : active raid1 hda3[0]
13671232 blocks [2/1] [U_]
md0 : active raid1 hda1[0]
96256 blocks [2/1] [U_]
unused devices: <none>
Ripartizioniamo l'hard disk:
Code: Select all
sfdisk -d /dev/hda | sfdisk /dev/hdb
Code: Select all
mdadm /dev/md0 --add /dev/hdb1
mdadm /dev/md1 --add /dev/hdb2
mdadm /dev/md2 --add /dev/hdb3
ricordiamoci inoltre di istallare grub nel MBR del nuovo hdd:Personalities : [raid1]
md1 : active raid1 hdb2[2] hda2[0]
1951808 blocks [2/1] [U_]
[=>...................] recovery = 6.2% (123008/1951808) finish=2.4min speed=12300K/sec
md2 : active raid1 hdb3[2] hda3[0]
13671232 blocks [2/1] [U_]
resync=DELAYED
md0 : active raid1 hdb1[1] hda1[0]
96256 blocks [2/2] [UU]
unused devices: <none>
Code: Select all
grub> root (hd1,0)
grub> setup (hd1)
E' chiaro che ho esposto solo una parte di quello che puo essere fatto con il software RAID di linux e col pacchetto "mdadm". Oltre alle operazioni di base è possibile configurare il monitoraggio dello stato del RAID per avvisare l'amministratore in caso di eventuali problemi.
Note:
mdadm puo essere usato anche via file di configurazione /etc/mdadm.conf in modo da rendere piu "coerente" la gestione.
Fonti d'ispirazione:
http://www.linuxdevcenter.com/pub/a/lin ... /RAID.html
http://www.gentoo.org/doc/en/gentoo-x86 ... tware-raid
http://www.fonderiadigitale.it/gentoo/s ... it_Padova/
Spero di non aver detto qualche castroneria... Buon lavoro!
byebye
fat_penguin





