RAID su linux con mdadm

Home Page Lavoro Linux

Su linux è possibile implementare una configurazione RAID dei dischi, anche complessa, sfruttando direttamente il kernel di questo sistema operativo. Nel kernel linux infatti è implementato tutto quel che server per tirare su un sistema RAID nelle configurazioni 0,1,5 e 6 più qualche altra. Il bello è che è possibile gestire queste configurazioni, sia col kernel direttamente, sia con la funzionalità LVM (Logical Volume Manager).

Nelle moderne distribuzioni il lavoro sporco viene fatto dalla procedura di installazione, che attraverso delle procedure guidate, permette di configurare i dischi con quasi tutte le configurazioni RAID permesse da linux.

Prima di iniziare dobbiamo capire l’uso che verrà fatto del filesystem che verrà caricato sul nostro RAID. Se sul nostro filesystem verrà usato come filesystem generico o per condividere file o ancora come archivio per un web server, useremo dei chunk (dimensione sel settore RAID) piccoli, 32 o 64 kibibyte (unità di misura dei settori RAID in linux), in modo da limitare lo spreco di memoria. Se il nostro filesystem verrà usato da un database engine, allora useremo un chunk più grande, tipo 128 kibibyte in modo da privilegiare la velocità di trasferimento.

Faccio una nota importante per chi voglia usare il RAID 5 sul root filesystem. Con questa configurazione RAID non è possibile effettuare il boot del kernel di linux. In questo caso vi consiglio di creare un piccolo filesystem in RAID 1, su cui montare la cartella boot del vostro filesystem, cosi che tutti i file necessari all’avvio del vostro sistema risiederanno sul RAID 1. Una volta che il kernel si è avviato, monterà senza problemi il root file system e procederà col boot.

Per chi volesse invece smanettare con il prompt dei comandi, riporto di seguito una breve analisi dell’utility mdadm.

Mdadm ha diverse modalità operative, la prima si accede usando il parametro –create, e consente la creazione di una nuova unità logica raid. Da qui si possono impostare il livello RAID da utilizzare, la dimensione dei chunk, il numero di unità attive nell’unità logica, quelle di riserva, etc.

La seconda modalità operativa è accessibile usando il parametro –assemble, e permette di assemblare a mano unità precedentemente create. Questo è molto utile se avete dimenticato di impostare il tipo di partizione usata per creare l’unità logica, a “FD – Linux RAID auto”

La terza modalità operativa è accessibile usando il parametro –build. Questa modalità operativa è molto simile alla prima. La differenza tra le due e che in questo caso non viene creato un nuovo superblock.

La quarta modalità operativa è accessibile usando il parametro –manage, è permette di manutenere il RAID, aggiungere unità a disco, togliere, mettere in FAIL un elemento dell’array o cancellare del tutto l’unità logica.

Altre modalità operative permettono la modifica di parametri più o meno vitali dell’unità RAID, quindi a meno che non sappiate quello che state facendo e meglio evitare di usarle, in particolare –grow per modificare le dimensione dell’unità logica.

C’è anche una modalità per il monitoring dell’array che notifica in caso di problema con una e-mail.

Non volevo essere esaustivo sul argomento e vi rimando al manuale di mdadm per ulteriori dettagli, ma spero di aver chiarito le idee a chi si volesse cimentare nella creazione di unità RAID sfruttando il kernel del nostro Linux.

Esempi:

Abbiamo 3 unità a disco sda, sdb ed sdc. Tutte configurate con un’unica partizione e vogliamo usarle per creare un array in RAID 1.
mdadm –create /dev/md0 -l 1 -n 3 /dev/sda1 /dev/sdb1 /dev/sdc1

Stessa configurazione precedente, ma in questo caso un’unità la vogliamo configurarla come hot-standby in caso di guasto.
mdadm –create /dev/md0 -l 1 -n 2 -x 1/dev/sda1 /dev/sdb1 /dev/sdc1

Una ulteriore variante della nostra configurazione potrebbe essere quella di mettere le unità in RAID 5.
mdadm –create /dev/md0 -l 5 -n 3 /dev/sda1 /dev/sdb1 /dev/sdc1
Vi ricordo che in questo caso non è possibile usare questa unità per il boot, mentre possiamo usarla come root filesystem.

Ora mettiamo che vogliamo controllare lo stato del nostro RAID.
cat /proc/mdstat

Vogliamo rimuovere una unità difettosa dal nostro RAID.
mdadm –manage /dev/md0 -r /dev/sda1

Vogliamo aggiungere una nuova unità al nostro RAID che si trova in modalitàà degradata.
mdadm –manage /dev/md0 -a /dev/sda1

Vogliamo simulare un guasto ad una unità del nostro RAID.
mdadm –manage /dev/md0 -f /dev/sda1

Scritto da

Share

Lascia un commento