Doppio boot dei dischi con RAID 1 e configurazione di Grub su Debian/Lenny
In questo articolo descriverò come realizzare un sistema sicuro con due dischi in RAID 1 e la possibilità di far fare il boot ad un singolo disco se l’altro è rotto.
Il tutto è realizzato utilizzando il RAID software presente in tutte le maggiori distribuzioni GNU/Linux, senza dover avere necessariamente a disposizione un RAID Hardware.
Quello di cui abbiamo bisogno sono due dischi della stessa dimensione (in caso di dimensioni diverse il disco logico sarà pari alla dimensione del disco più piccolo) e una distribuzione GNU/Linux che supporta in fase d’installazione la configurazione del RAID. Nel nostro caso ho utilizzato Debian Lenny, quindi la procedura seguente fa riferimento all’installer Debian.
Procedete quindi con una normale installazione Debian, scegliendo nel menù d’avvio l’opzione per esperti. Procedete normalmente fino alla sezione “Partizionare i dischi”. Scegliete come metodo di partizionamento “Manuale”.
A questo punto il configuratore di Debian vi dovrebbe mostrare due dischi (nel mio caso):
Master IDE1 (hda): 40GB
Slave IDE2 (hdd): 40GB
Adesso bisogna creare le partizioni per entrambi i dischi, nel mio caso:
/dev/hda1 100 M (attivare il flag avviabile)
/dev/hda2 10 G
/dev/hda3 28 G
/dev/hda4 1 G
lo stesso va fatto per l’altro disco:
/dev/hdd1 100 M (attivare il flag avviabile)
/dev/hdd2 10 G
/dev/hdd3 28 G
/dev/hdd4 1 G
e scegliere per tutte le partizioni appena create “Usato come: volume fisico per il RAID”.
Dovreste, ora, avere otto dischi marcati come volumi per RAID. Scegliamo ora “Configura il RAID software”, scegliamo si alla domanda di scrittura della tabella di partizionamento, quindi “Creare un device multidisk (MD)”.
Scegliamo “RAID 1″ e numero device attivi 2, numero spare 0. A questo punto scegliamo i due volumi fisici da aggiungere al RAID nel mio caso:
/dev/hda1
/dev/hdd1
La stessa operazione va fatta per /dev/hda2 e /dev/hdd2, /dev/hda3 e /dev/hdd3, /dev/hda4 e /dev/hdd4.
Infine “Termina”. Adesso il configuratore Debian vi farà vedere le unità RAID su cui potete creare il File System.
RAID 1 dispositivo n. 0 – 100 MB Dispositivo RAID Software
n. 1 100 MB
RAID 1 dispositivo n. 1 – 10 GB Dispositivo RAID Software
n. 1 10 GB
RAID 1 dispositivo n. 2 – 29 GB Dispositivo RAID Software
n. 1 28 GB
RAID 1 dispositivo n. 3 – 1 GB Dispositivo RAID Software
n. 1 1 GB
Posizioniamoci su ogni dispositivo RAID e procediamo alla creazione delle partizioni come in una normale installazione, nel mio caso:
/dev/md0 100M /boot
/dev/md1 10G /
/dev/md2 29G /home
/dev/md3 1G swap
Alcune note: lo schema di partizionamento è stato semplificato per non appesantire la spiegazione della procedura. Ovviamente la struttura delle partizioni dipende molto da quello che andrete a fare con il server.
A questo punto potete proseguire con la normale installazione di Debian. Una volta terminata l’installazione, fate partire il sistema e una volta connessi come root eseguite questi comandi:
# grub
grub> root (hd0,0)
grub> setup (hd0)grub> root (hd1,0)
grub> setup (hd1)
Per maggiori chiarimenti su come grub numera i dischi potete cliccare qui.
Adesso se facciamo ripartire il sistema scollegando un disco e facendolo ripartire con l’altro e viceversa potrete constatare che entrambi i dischi effettuano il boot correttamente.
Per verificare che il sistema sta lavorando su un solo disco digitate il seguente comando:
cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 hda4[0]
1951808 blocks [2/1] [U_]
md2 : active raid1 hda3[0]
1951808 blocks [2/1] [U_]
md1 : active raid1 hda2[0]
7815552 blocks [2/1] [U_]
md0 : active raid1 hda1[0]
96256 blocks [2/1] [U_]
unused devices: <none>
E’ chiaramente visibile la mancanza del secondo device. Una volta effettuato il test possiamo ricollegare entrambi i dischi.
Dopo che il sistema è ripartito vedremo ancora la mancanza del secondo disco, perchè adesso il secondo disco non è più allineato con il primo, per risincronizzarli:
mdadm /dev/md0 -a /dev/hdd1
vedremo adesso il RAID che lavora per riallineare i dati, informandoci della percentuale di sincronizzazione effettuata:
md0 : active raid1 hdd1[2] hda1[0]
96256 blocks [2/1] [U_]
[=====>...............] recovery = 26.3% (26496/96256) finish=0.1min speed=8832K/sec
Il comando va ripetuto per tutti i device RAID disallineati.
L’operazione di allineamento può richiedere parecchio tempo a seconda della dimensione dei dischi. Infine digitando il comando:
cat /proc/mdstat
Vedremo i dischi sincronizzati:
md0 : active raid1 hdd1[1] hda1[0]
96256 blocks [2/2] [UU]


