Rimuovere l'unità dal soft RAID


11

Ho un server dedicato con 3 unità SSD in RAID 1. Output di cat / proc / mdstat:

    Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md4 : active raid1 sdc4[2] sdb4[1] sda4[0]
      106738624 blocks [3/3] [UUU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md2 : active raid1 sdc2[2] sda2[0] sdb2[1]
      5497792 blocks [3/3] [UUU]

md1 : active raid1 sda1[0] sdc1[2] sdb1[1]
      259008 blocks [3/3] [UUU]

unused devices: <none>

¿In che modo è possibile rimuovere in modo sicuro un'unità dall'incursione software senza perdere dati? Vorrei rimuovere un'unità dall'array per riformattarla e utilizzarla in modo indipendente, pur mantenendo i dati più importanti sottoposti a mirroring.

Grazie in anticipo

Risposte:


19

Hai un mirror a tre vie lì: ogni unità ha una copia completa di tutti i dati. Supponendo che l'unità che si desidera rimuovere è /dev/sdc, e si desidera rimuoverla da tutti e tre gli array, che ci si comporta i seguenti passaggi per /dev/sdc1, /dev/sdc2e /dev/sdc4.

Passaggio 1: rimuovere l'unità dall'array. Non è possibile rimuovere un dispositivo attivo da un array, quindi è necessario contrassegnarlo prima come non riuscito.

mdadm /dev/md1 --fail /dev/sdc1
mdadm /dev/md1 --remove /dev/sdc1

Passaggio 2: cancellare i metadati RAID in modo che il kernel non tenti di aggiungerlo nuovamente:

wipefs -a /dev/sdc1

Passaggio 3: ridurre l'array in modo che sia solo un mirror a due vie, non un mirror a tre vie con un'unità mancante:

mdadm --grow /dev/md1 --raid-devices=2

Potrebbe essere necessario rimuovere la bitmap con intento di scrittura /dev/md4prima di ridurla (il manuale non è chiaro su questo), nel qual caso lo faresti appena prima del passaggio 3 con mdadm --grow /dev/md4 --bitmap=none, quindi rimetterlo in seguito con mdadm --grow /dev/md4 --bitmap=internal.


Questo conserva i dati sul disco che rimuovi? Cioè puoi successivamente accedere ai dati che erano sul RAID anche dal disco separato?
Nessuno il

1
@Nessuno, se vuoi leggere i dati dall'unità rimossa, dovresti saltare il passaggio 2. Praticamente tutti i dati sono ancora lì dopo l'esecuzione wipefs(cancella solo alcuni byte chiave richiesti per il riconoscimento del filesystem), ma leggerlo diventa un esercizio nel recupero dei dati piuttosto che semplicemente nel collegare l'unità.
Segna il

0

man mdadm:

   -r, --remove
          remove listed devices.  They must  not  be  active.   i.e.  they
          should be failed or spare devices.

          As well as the name of a device file (e.g.  /dev/sda1) the words
          failed, detached and names like set-A can be given to  --remove.
          The  first  causes  all failed device to be removed.  The second
          causes any device which is no longer  connected  to  the  system
          (i.e  an  'open'  returns  ENXIO) to be removed.  The third will
          remove a set as describe below under --fail.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.