Como marcar um dos discos RAID1 como sobressalente? (mdadm)

1

Eu tenho um RAID1 baseado em software saudável e funcional usando 3 HDDs como ativo na minha máquina Debian.

Eu quero marcar um dos discos como sobressalente, então ele acaba sendo 2 ativo + 1 de reserva.

Coisas como:

mdadm --manage --raid-devices=2 --spare-devices=1 /dev/md0

e similares apenas falham dizendo que qualquer uma das opções não é suportada no modo de opção atual ou simplesmente falha.

Billy@localhost~#: mdadm -G --raid-devices=2 /dev/md0
mdadm: failed to set raid disks
unfreeze

ou

Billy@localhost~#: mdadm --manage --raid-devices=2 --spare-devices=1 /dev/md0
mdadm: :option --raid-devices not valid in manage mode

ou similar. Eu não tenho idéia cara. por favor ajude?

    
por Infogeek 28.08.2016 / 23:39

1 resposta

3

Você pode verificar o estado atual da matriz com cat /proc/mdstat . Neste exemplo, é de onde vêm os dados.

Então, vamos supor que temos md127 com 3 discos em um raid1. Aqui eles são apenas partições de um disco, mas isso não importa

md127 : active raid1 vdb3[2] vdb2[1] vdb1[0]
      102272 blocks super 1.2 [3/3] [UUU]

Precisamos colocar um dos discos off-line antes de removê-lo:

$ sudo mdadm --manage /dev/md127 --fail /dev/vdb2
mdadm: set /dev/vdb2 faulty in /dev/md127

E o status agora mostra que é ruim

md127 : active raid1 vdb3[2] vdb2[1](F) vdb1[0]
      102272 blocks super 1.2 [3/2] [U_U]

Agora podemos remover este disco:

$ sudo mdadm --manage /dev/md127 --remove /dev/vdb2
mdadm: hot removed /dev/vdb2 from /dev/md127

md127 : active raid1 vdb3[2] vdb1[0]
      102272 blocks super 1.2 [3/2] [U_U]

E agora redimensione:

$ sudo mdadm --grow /dev/md127 --raid-devices=2
raid_disks for /dev/md127 set to 2
unfreeze

Neste ponto, reduzimos a matriz com êxito para dois discos:

md127 : active raid1 vdb3[2] vdb1[0]
      102272 blocks super 1.2 [2/2] [UU]

Agora, o novo disco pode ser adicionado novamente como um ponto de acesso:

$ sudo mdadm -a /dev/md127 /dev/vdb2
mdadm: added /dev/vdb2

md127 : active raid1 vdb2[3](S) vdb3[2] vdb1[0]
      102272 blocks super 1.2 [2/2] [UU]

O (S) mostra que é um ponto de acesso.

Podemos verificar se isso funciona conforme o esperado, ao falhar em um disco existente e perceber que uma reconstrução ocorre no sobressalente:

$ sudo mdadm --manage /dev/md127 --fail /dev/vdb1
mdadm: set /dev/vdb1 faulty in /dev/md127

md127 : active raid1 vdb2[3] vdb3[2] vdb1[0](F)
      102272 blocks super 1.2 [2/1] [_U]
      [=======>.............]  recovery = 37.5% (38400/102272) finish=0.0min speed=38400K/sec

vdb2 não está mais marcado com (S) porque não é um hotspare.

Depois que o disco defeituoso foi adicionado novamente, ele é marcado como o ponto de acesso

md127 : active raid1 vdb1[4](S) vdb2[3] vdb3[2]
      102272 blocks super 1.2 [2/2] [UU]
    
por 29.08.2016 / 00:14