GNU/Linux >> Linux Esercitazione >  >> Linux

Come sostituire in modo sicuro un disco non ancora guasto in un array RAID5 Linux?

Utilizzo di mdadm 3.3

Dal mdadm 3.3 (rilasciato il 3 settembre 2013), se hai un kernel 3.2+, puoi procedere come segue:

# mdadm /dev/md0 --add /dev/sdc1
# mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1

sdd1 è il dispositivo che vuoi sostituire, sdc1 è il dispositivo preferito per farlo e deve essere dichiarato come riserva sull'array.

Il --with l'opzione è facoltativa, se non specificata, verrà utilizzata qualsiasi riserva disponibile.

Versione mdadm precedente

Nota:hai ancora bisogno di un kernel 3.2+.

Innanzitutto, aggiungi una nuova unità come riserva (sostituisci md0 e sdc1 con il tuo dispositivo RAID e disco, rispettivamente):

# mdadm /dev/md0 --add /dev/sdc1

Quindi, avvia un'operazione di copia-sostituzione come questa (sdd1 essendo il dispositivo difettoso):

# echo want_replacement > /sys/block/md0/md/dev-sdd1/state 

Risultato

Il sistema copierà tutti i blocchi leggibili da sdd1 a sdc1 . Se si tratta di un blocco illeggibile, lo ricostruirà dalla parità. Una volta completata l'operazione, l'ex spare (qui:sdc1 ) diventerà attivo e l'unità guasta verrà contrassegnata come guasta (F) in modo da poterla rimuovere.

Nota: il merito va a frostschutz e Ansgar Esztermann che ha trovato la soluzione originale (vedi la domanda duplicata).

Kernel meno recenti

Altre risposte suggeriscono:

  • Giovanni L'approccio di:convertire l'array in RAID6, "sostituire" il disco, quindi tornare in RAID5,
  • Hauke ​​Laging L'approccio di:rimuovere brevemente il disco dall'array RAID5, renderlo parte di un RAID1 (mirror) con il nuovo disco e aggiungere l'unità mirror all'array RAID5 (teorico)...

Se non ti dispiace eseguire RAID-6 (2 dischi di parità anziché 1) e se stai eseguendo mdadmin 3.1.x o versioni successive, puoi convertire il tuo array RAID-5 in RAID-6 per aggiungere un ulteriore disco di parità . Tuttavia, ciò metterà l'array sotto stress durante la ricostruzione. E ha alcune implicazioni sulle prestazioni poiché ci sono più dischi di parità da aggiornare durante le scritture.

Ma se viene completato correttamente, puoi mantenere il tuo disco in errore e quando alla fine fallisce, hai ancora la protezione della parità per l'array. Penso che tu possa riconvertire l'array da RAID6 a RAID5 se non aspetti a mantenerlo come RAID6.

Non conosco un modo online per mantenere l'array come RAID-5 e sostituire il disco senza mettere l'array in modalità degradata, poiché penso che devi contrassegnarlo come non riuscito a sostituirlo. La tua idea di dd copy potrebbe essere il modo per farlo.


Questo potrebbe essere possibile soddisfacendo i requisiti

  1. online
  2. non stressare nessun disco tranne quello che deve essere sostituito

Ma anche se quanto segue potrebbe funzionare, probabilmente non troverai alcuna raccomandazione di questo tipo "nei libri"...

Idea:

  1. Togli il disco OLD dall'array (per un breve momento):mdadm --manage /dev/raid5 --fail /dev/OLD
  2. Crea un nuovo dispositivo md (RAID-1) dai dischi VECCHI e NUOVI:mdadm --build /dev/md42 --level=mirror --raid-devices=2 /dev/OLD /dev/NEW
  3. Rimetti il ​​RAID-1 nell'array (invece di /dev/OLD):mdadm --manage /dev/raid5 --re-add /dev/md42

Cosa dovrebbe :-) capita:

  1. Il RAID-5 sincronizza /dev/md42. Questo non dovrebbe richiedere molto tempo.
  2. Il RAID-5 è di nuovo operativo (ma più lento).
  3. /dev/NEW è sincronizzato con /dev/OLD.

Guarda l'avanzamento della sincronizzazione (cat /proc/mdstat o mdadm --monitor ). Se la sincronizzazione è terminata, rimuovere RAID-1 da RAID-5, arrestare RAID-1, aggiungere nuovamente /dev/NEW a RAID-5. Se tutto va bene, sovrascrivi i superblocchi mdraid su /dev/OLD per evitare problemi:mdadm --zero-superblock

Avviso: La veloce sincronizzazione RAID-5 potrebbe funzionare solo se si utilizza una bitmap. Se non ne hai uno, allora è meglio fare prima un test con un fittizio RAID-5 (senza bitmap). Oppure aggiungine uno. Almeno dovrebbe essere possibile aggiungerne uno esterno. Altrimenti potrebbe essere necessario arrestare il RAID-5 prima di cambiare i dispositivi. Se fai il boot da RAID-5, però, questo diventerebbe un po' complicato.


Linux
  1. Come usare dd in Linux senza distruggere il tuo disco

  2. Come partizionare un disco in Linux

  3. Come scoprire se il disco è SSD o HDD in Linux

  4. Come trovare un disco è SSD o HDD in Linux?

  5. Come modificare UID o GID in modo sicuro in Linux

Come montare il disco NTFS su Linux

Come visualizzare l'utilizzo del disco su Linux usando Baobab

Come crittografare la partizione su Linux

Come crittografare il filesystem di root su Linux

Come formattare le partizioni del disco su Linux

Come creare partizioni del disco su Linux