NethServer: ricostruire il mirror software

Ho di recente iniziato a sperimentare con una distribuzione Linux molto interessante che si chiama NethServer. E’ una distribuzione italiana basata su CentOS 6 che si propone di realizzare alcuni task tipici in una azienda medio/piccola con semplicità e con l’utilizzo di una interfaccia web molto completa.

I parametri di installazione sono ridotti al minimo (indirizzo IP del server e poco altro) per velocizzare l’installazione e di standard, in presenza di due dischi, l’installatore crea un RAID mirror software con un volume LVM già dimensionato adeguatamente.

Il primo dubbio che mi sono posto è cosa fare se un disco del mirror si guasta.

Non sono un sistemista Linux esperto, ma con un paio di prove sono riuscito ad ottenere il risultato desiderato.

ATTENZIONE! Ciascuno di questi comandi è potenzialmente pericoloso per i vostri dati se usato senza criterio. Non limitatevi ad un copia e incolla senza riflettere!

Supponiamo che a guastarsi sia stato il disco sdb.

Se verifichiamo con il comando:

cat /proc/mdstat

Le partizioni del mirror avranno una situazione di fail sul secondo disco, identificata dalla sigla [U_].

Dopo aver sostituito il disco con uno vergine o comunque “sacrificabile”, come prima cosa, dobbiamo creare una tabella delle partizioni identica a quella del disco ancora funzionante. Possiamo farlo con il comando:

sfdisk -d /dev/sda | sfdisk /dev/sdb --force

L’opzione --force si rende necessaria perché CentOS è un po’ pignolo e pare che la configurazione automatica di NethServer lasci qualche cilindro non utilizzato.

Ora dobbiamo aggiungere le partizioni di boot e principale al RAID e lo facciamo con i comandi:

mdadm --manage /dev/md1 --add /dev/sdb1
mdadm --manage /dev/md2 --add /dev/sdb2

A questo punto il raid è di nuovo attivo ed inizierà la sincronizzazione, che possiamo monitorare con il comando:

cat /proc/mdstat

Quando sarà terminata non ci saranno più percentuali di recovery in corso ed entrambe le partizioni saranno “up”, cioè con il simbolo [UU].

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page