Como faço para desmarcar um dispositivo md "com falha"?

4

Em um esforço para limpar de um bug de software no md, marquei metade de um RAID (/ dev / sda1 e / dev / sdb1 em RAID1) como defeituoso usando:

mdadm /dev/md2 --fail /dev/sdb1
mdadm /dev/md2 --remove /dev/sdb1

Mas agora quero usar a metade "com falha". Ou seja, em vez de usar /dev/sda1 , quero usar /dev/sdb1 , mas o mdadm se recusa a colocá-lo on-line:

mdadm --stop /dev/md2
mdadm -A /dev/md2 /dev/sdb1 --run --force

Isso falha, pois considera /dev/sdb1 um "sobressalente" e não um membro real da matriz.

    
por Kees Cook 03.12.2010 / 06:26

3 respostas

2

Você está usando -A , que é --assemble , mas deve usar -a , que é --add .

Se bem me lembro, os dispositivos (re) adicionados a uma matriz existente são sempre adicionados como sobressalentes e, pouco tempo depois, o kernel perceberá que a matriz está degradada e tem um sobressalente, e então começará a espelhar novamente . Você pode ver isso com watch cat /proc/mdstat .

    
por poolie 18.10.2011 / 00:27
1

O comando inteiro que deve ser executado é um dos seguintes, assumindo que o array não está montado ou em execução (o que o OP mostra como não sendo executado):

Se a matriz não estiver em execução:

mdadm --assemble /dev/md2 /dev/sdb1

No entanto, se a matriz estiver em execução:

mdadm --manage /dev/md2 -a /dev/sdb1
    
por Areeb Soo Yasir 28.03.2017 / 07:45
0

Acho que a maneira mais simples de desmarcar a partição seria adicioná-la novamente à matriz. A propósito, se você precisar fazer um teste, não remova a unidade da matriz. Sinalize como defeituoso e se você reiniciar, ele recorrerá à outra partição.

mdadm /dev/md2 --add /dev/sdb1
    
por Nicolas Guérinet 26.07.2017 / 16:59

Tags