Sono disarmato dalla semplicità con cui ho installato un RAID 1 sul mio PC. Dopo aver riflettuto (per qualche mese) sul post di Fullo sulla volatilità dei dati, mi ero convinto a prendere un NAS… ma i costi proibitivi mi hanno fatto cambiare idea. Così leggendo Linux Pro di questo mese mi sono imbattuto in una serie sul RAID, parola d’ordine semplicità assoluta!
Ho acquistato 2 hard disk Maxtor PATA (i classici Ultra Ata 133) da 250 GB a 76,90 € l’uno ed è cominciato il divertimento. La mia situazione era un po’ complessa: 3 HD (preistorici) e un DVD-RW riempivano tutti e 4 i canali IDE.
Premetto che il disco su cui c’è la partizione di root non l’ho toccata. Ho iniziato sostituendo uno dei due dischi dati con uno nuovo.
Con
ho partizionato in 3 il mio disco nuovo e con
ho formattato i le tre partizioni di tipo ext3 appena create (con X che va da 1 a 3).
A questo punto ho copiato i dati dall’HD vecchio al nuovo, ho sostituito il secondo disco vecchio con il primo e copiato anche questo sul HD nuovo.
Ora ho sostituito anche quest’ultimo HD vecchio con il nuovo non formattato.
Ho eseguito su questo il partizionamento (identico a prima) con
ma contrassegnandole con il tipo di filesystem FD (Linux raid autodetect); sempre con
ho cambiato il tipo di fs anche sul primo HD nuovo che ora conteneva tutti i miei dati.
La situazione quindi era la seguente: /dev/hdb1 = /dev/hdd1 (stesso spazio, stesso fs [FD], in hdb1 i dati e hdd1 vuoto e neanche formattato), stessa cosa per hdb2, hdb3, hdd2, hdd3.
Ed ora il punto centrale. Con l’utilizzo del programma mdadm creiamo gli array:
mdadm --create /dev/md0 --auto=yes --level=raid1 --raid-devices=2 /dev/hdb1 /dev/hdd1
Facciamo la stessa cosa per le altre partizioni ed abbiamo concluso!
Il sistema in automatico formatta e sincronizza le partizioni una alla volta e si può vedere lo stato della sincronizzazione/stato dei raid con il comando
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 hdb1[0] hdd1[1]
31246272 blocks [2/2] [UU]
md1 : active raid1 hdb2[0] hdd2[1]
200193920 blocks [2/2] [UU]
md2 : active raid1 hdb3[0] hdd3[1]
13671232 blocks [2/2] [UU]
unused devices: <none>
Nel caso ci sia uno o più array che si stanno sincronizzando si vede una barra di avanzamento, la percentuale di completamento e il tempo stimato per la conclusione delle operazioni.
Un’altra cosa fantastica è che non dobbiamo aspettare che tutto sia sincronizzato per poter utilizzare l’array ma possiamo montarlo immediatamente! (per la partizione da 204GB che avevo fatto la sincronizzazione era stimata 58 minuti!)
Quindi possiamo montarli direttamente come qualsiasi alto disco, utilizzando però i device di Multi Device (/dev/mdX)
mount /dev/md0 /mnt/mio_mount_point
o come nel mio caso
mount /dev/md0 /home
mount /dev/md1 /mnt/dati
mount /dev/md2 /var/www
Con mdadm possiamo ottenere molte altre informazioni per verificare lo stato dei RAID con
oppure possiamo modificare l’array esistente, fermarlo, avviarlo etc.