Ricerca nel sito web

Come gestire i RAID software in Linux con lo strumento "Mdadm" - Parte 9


Indipendentemente dalla tua precedente esperienza con gli array RAID e dal fatto che tu abbia seguito o meno tutti i tutorial di questa serie RAID, la gestione dei RAID software in Linux non è un compito molto complicato una volta che hai acquisito familiarità con mdadm --manage comando.

In questo tutorial esamineremo le funzionalità fornite da questo strumento in modo che tu possa averlo a portata di mano quando ne hai bisogno.

Scenario di test RAID

Come nell'ultimo articolo di questa serie, utilizzeremo per semplicità un array RAID 1 (mirror) composto da 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 elencati qui si applicano ad altri tipi di anche le configurazioni. Detto questo, sentiti libero di andare avanti e aggiungere questa pagina ai segnalibri del tuo browser e iniziamo.

Comprendere le opzioni e l'utilizzo di mdadm

Fortunatamente, mdadm fornisce un flag incorporato --help che fornisce spiegazioni e documentazione per ciascuna delle opzioni principali.

Iniziamo quindi digitando:


mdadm --manage --help

per vedere quali sono le attività che mdadm --manage ci consentirà di eseguire e come:

Come possiamo vedere nell'immagine sopra, la gestione di un array RAID implica l'esecuzione delle seguenti attività in un momento o nell'altro:

  1. (Ri)Aggiunta di un dispositivo all'array.
  2. Contrassegnare un dispositivo come difettoso.
  3. Rimozione di un dispositivo difettoso dall'array.
  4. Sostituzione del dispositivo difettoso con uno di riserva.
  5. Avvia un array parzialmente creato.
  6. Arresta un array.
  7. Contrassegna un array come ro (sola lettura) o rw (lettura-scrittura).

Gestione dei dispositivi RAID con lo strumento mdadm

Tieni presente che se ometti l'opzione --manage, mdadm assume comunque la modalità di gestione. Tieni presente questo fatto per evitare di incorrere in problemi più avanti lungo la strada.

Il testo evidenziato nell'immagine precedente mostra la sintassi di base per gestire i RAID:


mdadm --manage RAID options devices

Illustriamolo con alcuni esempi.

Esempio 1: aggiungere un dispositivo all'array RAID

Solitamente aggiungi un nuovo dispositivo quando ne sostituisci uno difettoso o quando hai un pezzo di ricambio che vuoi 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 passaggio obbligatorio prima di rimuovere logicamente il dispositivo dall'array e successivamente estrarlo fisicamente dalla macchina, in quest'ordine (se si salta uno di questi passaggi si potrebbe causare un danno effettivo al dispositivo):


mdadm --manage /dev/md0 --fail /dev/sdb1

Nota come il dispositivo di riserva aggiunto nell'esempio precedente viene utilizzato per sostituire automaticamente il disco guasto. Non solo, ma anche il recupero e la ricostruzione dei dati del raid iniziano immediatamente:

Una volta che il dispositivo è stato indicato manualmente come guasto, può essere rimosso in sicurezza dall'array:


mdadm --manage /dev/md0 --remove /dev/sdb1
Esempio 3: riaggiunta di un dispositivo che faceva parte dell'array precedentemente rimosso

Fino a questo punto, abbiamo un array RAID 1 funzionante composto da 2 dispositivi attivi: /dev/sdc1 e /dev/sdd1. Se proviamo ad aggiungere nuovamente /dev/sdb1 a /dev/md0 adesso:


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 numero massimo possibile di unità. Quindi abbiamo 2 scelte: a) aggiungere /dev/sdb1 come riserva, come mostrato nell'esempio n. 1, oppure b) rimuovere /dev/sdd1 dall'array e quindi aggiungi nuovamente /dev/sdb1.

Scegliamo l'opzione b) e inizieremo fermando l'array per poi rimontarlo:


mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1

Se il comando precedente non aggiunge nuovamente /dev/sdb1 all'array, utilizza il comando dell'Esempio n. 1 per farlo.

Sebbene mdadm rileverà inizialmente il dispositivo appena aggiunto come ricambio, inizierà a ricostruire i dati e una volta terminato, 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 di riserva è semplice:


mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1

Ciò fa sì che il dispositivo che segue l'opzione --with venga aggiunto al RAID mentre il disco indicato tramite --replace venga contrassegnato come difettoso:

Esempio 5: contrassegnare un array Raid come ro o rw

Dopo aver creato l'array, è necessario aver creato un filesystem sopra di esso e averlo montato su una directory per poterlo utilizzare. Quello che probabilmente non sapevi allora è che puoi contrassegnare il RAID come ro, consentendo così di eseguire su di esso solo operazioni di lettura, o rw, per poter scrivere anche al dispositivo.

Per contrassegnare il dispositivo come ro, è necessario prima smontarlo:


umount /mnt/raid1
mdadm --manage /dev/md0 --readonly
mount /mnt/raid1
touch /mnt/raid1/test1

Per configurare l'array per consentire anche operazioni di scrittura, utilizzare l'opzione --readwrite. Tieni presente 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

Riepilogo

In questa serie abbiamo spiegato come configurare una varietà di array RAID software utilizzati negli 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 dovessi avere domande o suggerimenti, non esitate a contattarci utilizzando il modulo sottostante.