mdadm: a substituição da unidade é mostrada como sobressalente e se recusa a sincronizar

3

Prelúdio

Eu tinha os seguintes dispositivos em /dev/md0 RAID 6: /dev/sd[abcdef]

As seguintes unidades também estavam presentes, não relacionadas ao RAID: /dev/sd[gh]

As seguintes unidades faziam parte de um leitor de cartões que estava conectado, novamente, não relacionado: /dev/sd[ijkl]

Análise

O cabo SATA de

sdf foi mal (você pode dizer que ele foi desconectado enquanto estava em uso) e sdf foi subseqüentemente rejeitado da matriz /dev/md0 . Eu substituí o cabo e a unidade estava de volta, agora em /dev/sdm . Por favor, não desafie meu diagnóstico, não há problema com a unidade.

mdadm --detail /dev/md0 mostrou sdf(F) , ou seja, que sdf estava com defeito. Então usei mdadm --manage /dev/md0 --remove faulty para remover as unidades defeituosas.

Agora, mdadm --detail /dev/md0 mostrou "removido" no espaço em que sdf costumava ser.

root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jul 30 13:17:25 2014
     Raid Level : raid6
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB)
   Raid Devices : 6
  Total Devices : 5
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Tue Mar 17 21:16:14 2015
          State : active, degraded
 Active Devices : 5
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : eclipse:0
           UUID : cc7dac66:f6ac1117:ca755769:0e59d5c5
         Events : 67205

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       32        1      active sync   /dev/sdc
       4       0        0        4      removed
       3       8       48        3      active sync   /dev/sdd
       4       8       64        4      active sync   /dev/sde
       5       8       16        5      active sync   /dev/sdb

Por algum motivo, o RaidDevice do dispositivo "removido" agora corresponde a um que está ativo. De qualquer forma, vamos tentar adicionar o dispositivo anterior (agora conhecido como /dev/sdm ) porque essa era a intenção original:

root@galaxy:~# mdadm --add /dev/md0 /dev/sdm
mdadm: added /dev/sdm
root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jul 30 13:17:25 2014
     Raid Level : raid6
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Tue Mar 17 21:19:30 2015
          State : active, degraded
 Active Devices : 5
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : eclipse:0
           UUID : cc7dac66:f6ac1117:ca755769:0e59d5c5
         Events : 67623

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       32        1      active sync   /dev/sdc
       4       0        0        4      removed
       3       8       48        3      active sync   /dev/sdd
       4       8       64        4      active sync   /dev/sde
       5       8       16        5      active sync   /dev/sdb

       6       8      192        -      spare   /dev/sdm

Como você pode ver, o dispositivo aparece como sobressalente e se recusa a sincronizar com o restante do array:

root@galaxy:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdm[6](S) sdb[5] sda[0] sde[4] sdd[3] sdc[1]
      15627548672 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [UU_UUU]
      bitmap: 17/30 pages [68KB], 65536KB chunk

unused devices: 

Eu também tentei usar mdadm --zero-superblock /dev/sdm antes de adicionar, com o mesmo resultado.

O motivo pelo qual estou usando o RAID 6 é fornecer alta disponibilidade. Não aceitarei parar /dev/md0 e remontá-lo com --assume-clean ou similar como soluções alternativas para resolver isso. Isso precisa ser resolvido on-line, caso contrário, não vejo o ponto de usar o mdadm.

    
por Milos Ivanovic 17.03.2015 / 09:27

1 resposta

6

Depois de horas pesquisando e alguma ajuda extremamente sábia do JyZyXEL no canal # linux-raid Freenode, nós temos uma solução! Não houve uma única interrupção na matriz RAID durante esse processo - exatamente o que eu precisava e esperava do mdadm.

Por algum motivo (atualmente desconhecido), o estado do RAID ficou congelado. O comando vencedor para descobrir isso é cat /sys/block/md0/md/sync_action :

root@galaxy:~# cat /sys/block/md0/md/sync_action
frozen

Simplificando, é por isso que não estava usando as peças disponíveis. Todo meu cabelo se foi ao custo de um simples comando de gato!

Então, apenas descongele a matriz:

root@galaxy:~# echo idle > /sys/block/md0/md/sync_action

E você está fora!

root@galaxy:~# cat /sys/block/md0/md/sync_action
recover
root@galaxy:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdm[6] sdb[5] sda[0] sde[4] sdd[3] sdc[1]
      15627548672 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [UU_UUU]
      [>....................]  recovery =  0.0% (129664/3906887168) finish=4016.8min speed=16208K/sec
      bitmap: 17/30 pages [68KB], 65536KB chunk

unused devices: 
root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jul 30 13:17:25 2014
     Raid Level : raid6
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Tue Mar 17 22:05:30 2015
          State : active, degraded, recovering
 Active Devices : 5
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 0% complete

           Name : eclipse:0
           UUID : cc7dac66:f6ac1117:ca755769:0e59d5c5
         Events : 73562

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       32        1      active sync   /dev/sdc
       6       8      192        2      spare rebuilding   /dev/sdm
       3       8       48        3      active sync   /dev/sdd
       4       8       64        4      active sync   /dev/sde
       5       8       16        5      active sync   /dev/sdb

Bliss: -)

    
por 17.03.2015 / 10:17