Gestione Array con MDADM

MDADM è uno dei raidtools piu' evoluti e facile da utilizzare per la gestione degli Array software. Vediamo adesso come creare diversi livelli di raid software con il tool mdadm.

mdadm.conf
Uno dei principali file di configurazione di mdadm è /etc/mdadm.conf che a differenza del file /etc/raidtab utilizzato in mkraid non viene utilizzato per la creazione/gestione degli array ma soltanto per tenere tracciabilità dei RAIDs software. Utilizzare /etc/mdadm.conf è utile ma non obbligatorio.
Per esempio, se l'array non parte, il file mdadm.conf torna utile in quanto ci permette di determinare le proprietà dell'array.
In genere, comunque, è meglio creare il file mdadm.conf perchè senza di esso dovremmo specificare piu' informazioni sull'array ogni volta che eseguiamo il comando 'mdadm' per la gestione/attivazione del raid.
E` possibile creare il file mdadm.conf manualmente come segue:

DEVICE		/dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
ARRAY		/dev/md0 devices=/dev/sdc1,/dev/sdd1
ARRAY		/dev/md1 devices=/dev/sde1,/dev/sdf1

oppure automaticamente col comando

# mdadm --detail --scan > /etc/mdadm.conf

Creazione di un Array.
Ricordiamoci sempre di configurare il "partition-type con id FD" sulle partizioni da inserire sull'array.
Il seguente comando permette di creare un RAID-0 sul device /dev/md0 utilizzando le partizioni /dev/sdb1 e /dev/sdc1:

# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

oppure

# mdadm -Cv /dev/md0 -l0 -n2 -c128 /dev/sdb1 /dev/sdc1 (-c128 chunk-size=128 che per default è 64K)

Avviare un Array.
Se avete creato il file mdadm.conf il comando è il seguente:

# mdadm -As /dev/md0 (-A assembla, s scan)

Se NON avete creato il file mdadm.conf il comando è il seguente:

# mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1

Stoppare un Array.
# mdadm -S /dev/md0

Aggiungere un disco all'array md0:
# mdadm /dev/md0 --add /dev/sdh1

Rimuovere un disco dall'array md0:

# mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1

Monitoraggio e Troubleshooting di un Array:
# mdadm -E /dev/sdb1 (-E oppure --examine esamina il disco)
# mdadm --detail /dev/md0 (Print detail of one or more md devices)
# mdadm --monitor --delay=300 /dev/md0 (monitoraggio dell'array)
# cat /proc/mdstat (informazioni sugli array in esecuzione)