A prescindere dalla tua precedente esperienza con gli array RAID, e se hai seguito tutti i tutorial di questa serie RAID o meno, gestire i RAID software in Linux non è un compito molto complicato una volta che hai imparato a conoscere il comando mdadm --manage
.
In questo tutorial esamineremo le funzionalità fornite da questo strumento in modo da poterlo avere a portata di mano quando ne hai bisogno.
- Scenario di test del RAID
- Capire le opzioni e l’uso di mdadm
- Gestire i dispositivi RAID con lo strumento mdadm
- Esempio 1: Aggiungere un dispositivo all’array RAID
- Esempio 2: Contrassegnare un dispositivo RAID come difettoso e rimuoverlo dall’array
- Esempio 3: Riaggiungere un dispositivo che faceva parte dell’array che era stato rimosso in precedenza
- Esempio 4: Sostituire un dispositivo Raid con un disco specifico
- Esempio 5: Marcare un array Raid come ro o rw
- Summary
Scenario di test del RAID
Come nell’ultimo articolo di questa serie, useremo per semplicità un array RAID 1 (mirror) che consiste di due dischi da 8 GB (/dev/sdb e /dev/sdc) e un dispositivo di riserva iniziale (/dev/sdd) per illustrare, ma i comandi e i concetti qui elencati si applicano anche ad altri tipi di configurazione. Detto questo, sentitevi liberi di aggiungere questa pagina ai segnalibri del vostro browser, e cominciamo.
Capire le opzioni e l’uso di mdadm
Fortunatamente, mdadm fornisce un flag built-in --help
che fornisce spiegazioni e documentazione per ciascuna delle opzioni principali.
Quindi, iniziamo a digitare:
# mdadm --manage --help
per vedere quali sono i compiti che mdadm --manage
ci permetterà di eseguire e come:
Come possiamo vedere nell’immagine qui sopra, la gestione di un array RAID comporta l’esecuzione dei seguenti compiti in un momento o nell’altro:
- (Ri)Aggiungere un dispositivo all’array.
- Marcare un dispositivo come difettoso.
- Rimuovere un dispositivo difettoso dall’array.
- Sostituire il dispositivo difettoso con uno di riserva.
- Avviare un array parzialmente costruito.
- Arrestare un array.
- Marcare un array come ro (sola lettura) o rw (lettura-scrittura).
Gestire i dispositivi RAID con lo strumento mdadm
Nota che se ometti l’opzione --manage
, mdadm assume comunque la modalità di gestione. Tenete a mente questo fatto per evitare di incorrere in problemi più avanti.
Il testo evidenziato nell’immagine precedente mostra la sintassi di base per gestire i RAID:
# mdadm --manage RAID options devices
Illustriamo con alcuni esempi.
Esempio 1: Aggiungere un dispositivo all’array RAID
In genere si aggiunge un nuovo dispositivo quando se ne sostituisce uno difettoso, o quando si ha un pezzo di ricambio che si vuole avere a portata di mano in caso di guasto:
# mdadm --manage /dev/md0 --add /dev/sdd1
Esempio 2: Contrassegnare un dispositivo RAID come difettoso e rimuoverlo dall’array
Questo è un passo obbligatorio prima di rimuovere logicamente il dispositivo dall’array, e successivamente estrarlo fisicamente dalla macchina – in quest’ordine (se si salta uno di questi passi si può finire per causare danni reali al dispositivo):
# mdadm --manage /dev/md0 --fail /dev/sdb1
Nota come il dispositivo di riserva aggiunto nell’esempio precedente è usato per sostituire automaticamente il disco difettoso. Non solo, ma anche il recupero e la ricostruzione dei dati raid iniziano immediatamente:
Una volta che il dispositivo è stato indicato manualmente come guasto, può essere rimosso dall’array in modo sicuro:
# mdadm --manage /dev/md0 --remove /dev/sdb1
Esempio 3: Riaggiungere un dispositivo che faceva parte dell’array che era stato rimosso in precedenza
Fino a questo punto, abbiamo un array RAID 1 funzionante che consiste di 2 dispositivi attivi: /dev/sdc1 e /dev/sdd1. Se tentiamo di riaggiungere /dev/sdb1 a /dev/md0 in questo momento:
# mdadm --manage /dev/md0 --re-add /dev/sdb1
ci imbatteremo in un errore:
mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible
perché l’array è già composto dal massimo numero possibile di unità. Quindi abbiamo 2 scelte: a) aggiungere /dev/sdb1 come riserva, come mostrato nell’esempio #1, o b) rimuovere /dev/sdd1 dall’array e poi riaggiungere /dev/sdb1.
Scegliamo l’opzione b), e cominceremo fermando l’array per riassemblarlo successivamente:
# mdadm --stop /dev/md0# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
Se il comando precedente non aggiunge con successo /dev/sdb1 all’array, usate il comando dell’esempio #1 per farlo.
Anche se mdadm inizialmente rileverà il dispositivo appena aggiunto come uno spare, inizierà a ricostruire i dati e quando avrà finito, dovrebbe riconoscere il dispositivo come parte attiva del RAID:
Esempio 4: Sostituire un dispositivo Raid con un disco specifico
Sostituire un disco nell’array con uno spare è facile come:
# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
Il risultato è che il dispositivo che segue lo switch --with
viene aggiunto al RAID mentre il disco indicato tramite --replace
viene marcato come difettoso:
Esempio 5: Marcare un array Raid come ro o rw
Dopo aver creato l’array, devi aver creato un filesystem sopra di esso e averlo montato su una directory per poterlo utilizzare. Quello che probabilmente non sapevi allora è che puoi marcare il RAID come ro, permettendo così di eseguire solo operazioni di lettura su di esso, o rw, per poter scrivere anche sul dispositivo.
Per marcare il dispositivo come ro, deve essere prima smontato:
# umount /mnt/raid1# mdadm --manage /dev/md0 --readonly# mount /mnt/raid1# touch /mnt/raid1/test1
Per configurare l’array per permettere anche operazioni di scrittura, usa l’opzione --readwrite
. Nota che dovrai smontare il dispositivo e fermarlo prima di impostare il flag rw:
# umount /mnt/raid1# mdadm --manage /dev/md0 --stop# mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1# mdadm --manage /dev/md0 --readwrite# touch /mnt/raid1/test2
Summary
In questa serie abbiamo spiegato come impostare una varietà di array RAID software che sono usati in ambienti aziendali. Se hai seguito gli articoli e gli esempi forniti in questi articoli sei pronto a sfruttare la potenza dei RAID software in Linux.
Se ti capita di avere domande o suggerimenti, sentiti libero di contattarci utilizzando il modulo sottostante.