Nozioni di base
mdadm (amministratore di più dispositivi) è uno strumento estremamente utile per l'esecuzione di sistemi RAID. È uno strumento per creare, gestire e monitorare i dispositivi RAID utilizzando il driver md. Può essere usato come sostituto dei raidtools o come supplemento. Puoi utilizzare dischi interi (/dev/sdb, /dev/sdc) o singole partizioni (/dev/sdb1, /dev/sdc1) come componenti di un array.
I vantaggi dell'utilizzo di mdadm sono:
1. mdadm può diagnosticare, monitorare e raccogliere informazioni dettagliate sugli array.
2. mdadm è un unico programma centralizzato e non una raccolta di programmi dispersi, quindi esiste una sintassi comune per ogni comando di gestione RAID.
3. mdadm può eseguire quasi tutte le sue funzioni senza avere un file di configurazione e non ne usa uno per impostazione predefinita.
Gli strumenti software mdadm funzionano per tutte le distribuzioni Linux, con la stessa sintassi.
Installazione di mdadm
Assicurati di eseguire un aggiornamento di sistema e quindi di installare l'ultimo programma mdadm nel tuo sistema:
# yum clean all # yum update # yum install mdadm -y
Il file di configurazione
– Il file /etc/mdadm.conf viene utilizzato per identificare quali dispositivi sono dispositivi RAID e a quale array appartiene un dispositivo specifico. Ciò è necessario per creare automaticamente i dispositivi RAID all'avvio.
– Per impostazione predefinita, questo file non è disponibile e deve essere creato manualmente.
– Una volta terminata la creazione dei dispositivi RAID, è possibile crea semplicemente il file mdadm.conf reindirizzando l'output del comando :
# mdadm --detail -scan ARRAY /dev/md0 level=linear num-devices=2 metadata=1.2 name=localhost.localdomain:0 UUID=a50ac9f2:62646d92:725255bd:7f9d30e3 devices=/dev/sdb,/dev/sdc
Come visto nell'output sopra, ho un array lineare md0 con 2 dispositivi /dev/sdb e /dev/sdc.
# mdadm --verbose --detail -scan > /etc/mdadm.conf
Creazione dei dispositivi RAID
Per elencare le opzioni per creare un dispositivo RAID con mdadm utilizzare l'opzione –help. Ci sono diverse opzioni durante la creazione di RAID con mdadm. Ne elencherò alcuni importanti.
# mdadm --create --help -C | --create /dev/mdn -l | --level 0|1|4|5 -n | --raid-devices device [..] -x | --spare-devices device [..]
Modalità lineare
– Due o più dischi vengono combinati in un dispositivo fisico.
– I dischi vengono "aggiunti" l'uno all'altro, quindi la scrittura lineare sul dispositivo RAID riempirà prima il disco 0, quindi il disco 1 e così via acceso.
– I dischi non devono avere la stessa dimensione.
– Non c'è ridondanza in questo livello.
– Le prestazioni di lettura e scrittura non aumenteranno per singole letture/scritture . Ma se più utenti utilizzano il dispositivo, più utenti utilizzano dischi diversi contemporaneamente, vedrai un miglioramento delle prestazioni.
Per creare due dischi in modalità lineare con mdadm, basta digitare una singola riga di comando:
# mdadm --create --verbose /dev/md0 --level=linear --raid-devices=2 /dev/sdb /dev/sdc mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
Lo stesso comando può essere eseguito utilizzando la versione più breve delle opzioni :
# mdadm --Cv /dev/md0 --l linear -n2 /dev/sdb /dev/sdc
RAID 0
– Chiamata anche modalità "strisce".
– I dispositivi devono avere le stesse dimensioni.
– Non c'è ridondanza neanche a questo livello. In caso di guasto di un'unità non è possibile alcun salvataggio dei dati.
– Le prestazioni di lettura e scrittura aumenteranno, poiché le letture e le scritture vengono eseguite in parallelo sui dispositivi.
Per creare due dischi in modalità RAID 0:
# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
RAID 1
– Questo livello ha ridondanza.
– RAID-1 può essere utilizzato su due o più dischi con zero o più dischi di riserva.
– Questa modalità mantiene un esatto mirror delle informazioni su uno disco sugli altri dischi.
– Naturalmente, i dischi devono avere la stessa dimensione.
– Se un disco è più grande di un altro, il dispositivo RAID avrà le dimensioni del disco più piccolo.
– Se vengono rimossi (o si arrestano in modo anomalo) fino a N-1 dischi, tutti i dati sono ancora intatti. Se sono disponibili dischi di riserva e se il sistema è sopravvissuto all'arresto anomalo, la ricostruzione del mirror verrà avviata immediatamente su uno dei dischi di riserva, dopo il rilevamento dell'errore dell'unità.
– Le prestazioni di scrittura sono spesso peggiori rispetto a un singolo disco. dispositivo in quanto gli stessi dati devono essere scritti contemporaneamente su 2 o più dispositivi.
Puoi configurare RAID 1 con due dischi e un disco di riserva:
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=/dev/sdd
RAID 4
– Questo livello RAID non viene utilizzato molto spesso.
– Può essere utilizzato su tre o più dischi.
– Invece di eseguire il mirroring completo delle informazioni, mantiene le informazioni di parità su un'unità e scrive i dati sugli altri dischi in modo simile a RAID-0.
– Poiché un disco è riservato alle informazioni sulla parità, la dimensione dell'array sarà (N-1)*S, dove S è la dimensione del unità più piccola dell'array.
– Se un'unità si guasta, le informazioni sulla parità possono essere utilizzate per ricostruire tutti i dati. Se due unità si guastano, tutti i dati vengono persi.
Per configurare RAID 4 con 4 dischi e un disco di riserva:
# mdadm --create --verbose /dev/md0 --level=4 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde spare-devices=/dev/sdf
RAID 5
– RAID-5 può essere utilizzato su tre o più dischi, con zero o più dischi di riserva.
– La dimensione del dispositivo RAID-5 risultante sarà (N-1)*S, proprio come RAID -4.
– La grande differenza tra RAID-5 e -4 è che le informazioni sulla parità sono distribuite uniformemente tra le unità partecipanti, evitando il problema del collo di bottiglia in RAID-4.
– Se uno dei i dischi si guastano, tutti i dati sono ancora intatti, grazie alle informazioni sulla parità. Se sono disponibili dischi di riserva, la ricostruzione inizierà immediatamente dopo l'errore del dispositivo. Se due dischi si guastano contemporaneamente, tutti i dati vengono persi. RAID-5 può sopravvivere a un guasto del disco, ma non a due o più.
– Le letture sono simili alle letture RAID-0, le scritture sono generalmente costose poiché è necessario scrivere la parità che diventa l'overhead.
Per configurare RAID 5 con 3 dischi e 1 disco di riserva utilizzando mdadm:
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=/dev/sde
Creazione di filesystem su dispositivi RAID
Per creare un filesystem ext4 sul dispositivo RAID e montarlo:
# mkfs.ext4 /dev/md0 # mkdir /data01 # mount /dev/md0 /data01
Assicurati di inserire una voce in /etc/fstab, per renderlo persistente tra i riavvii.
# vi /etc/fstab /dev/md0 /data01 ext4 defaults 0 0
Verifica della configurazione
/proc/mdstat è un file gestito dal kernel che contiene le informazioni in tempo reale sugli array RAID e sui dispositivi.
# cat /proc/mdstat Personalities : [linear] md0 : active linear sdc[1] sdb[0] 4194288 blocks super 1.2 0k rounding unused devices: [none]
Per ottenere informazioni dettagliate su un array specifico, utilizzare :
# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Mon Nov 3 06:03:03 2014 Raid Level : linear Array Size : 4194288 (4.00 GiB 4.29 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Mon Nov 3 06:03:03 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Rounding : 0K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : a50ac9f2:62646d92:725255bd:7f9d30e3 Events : 0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc
Arresta/Avvia (assembla) e rimuovi l'array RAID
Per interrompere un array esistente e rimuoverlo completamente dal sistema:
# mdadm --stop /dev/md0 # mdadm --remove /dev/md0
Per avviare (assemblare) un array interrotto:
# mdadm --asemble /dev/md0NOTA :Il comando assemble legge il file /etc/mdadm.conf per avviare l'array. Nel caso in cui non avessi salvato la configurazione in mdadm.conf prima di arrestare l'array, questo comando fallirebbe. È possibile utilizzare il comando seguente per ricreare il file mdadm.conf:
# mdadm –examine –scan> /etc/mdadm.conf
Gestione dei dispositivi nell'array
aggiunta di un dispositivo
Per aggiungere un nuovo dispositivo all'array :
# mdadm --add /dev/md0 /dev/sdd
rimozione di un dispositivo
Possiamo fallire un dispositivo (-f) da un array e quindi rimuoverlo (-r):
# mdadm --manage /dev/md0 -f /dev/sdd # mdadm --manage /dev/mdadm -r /dev/sddSostituzione di un disco mirror guasto in un array RAID software (mdadm)