Como posso dizer ao mdadm para começar a usar um disco ausente na minha matriz RAID5 novamente?

1

Eu tenho uma matriz RAID de 3 discos em execução no meu servidor Ubuntu. Isso tem funcionado sem falhas há mais de um ano, mas recentemente fui forçado a remover, mover e reconstruir a máquina.

Quando eu tive tudo de volta e corri para o Ubuntu, eu tive alguns problemas com os discos não serem detectados. Um par de reinicializações depois e eu resolvi esse problema. O problema agora é que a matriz de 3 discos está aparecendo como degradada toda vez que eu inicializo. Por alguma razão, parece que o Ubuntu criou uma nova matriz e adicionou o disco ausente.

Eu tentei parar a nova matriz de 1 disco e adicionar o disco ausente, mas estou com dificuldades. Na inicialização eu recebo isso:

root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d1 : inactive sdf1[2](S)
      1953511936 blocks

md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
      2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

Eu tenho dois arrays RAID e o que normalmente aparece como md1 não está aparecendo.

Eu li em algum lugar que chamar mdadm --assemble --scan iria remontar a matriz ausente, então eu tentei primeiro parar a matriz existente que o Ubuntu começou:

root@uberserver:~# mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1

... e depois tentei dizer ao Ubuntu para escolher os discos novamente:

root@uberserver:~# mdadm --assemble --scan
mdadm: /dev/md/1 has been started with 2 drives (out of 3).

Então, isso começou o md1 novamente, mas não está pegando o disco do md_d1:

root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sde1[1] sdf1[2]
      3907023872 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]

md_d1 : inactive sdd1[0](S)
      1953511936 blocks

md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
      2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

O que está errado aqui? Por que o Ubuntu está tentando pegar sdd1 em uma matriz diferente? Como obtenho o disco ausente novamente?

[Editar] - percebi que não havia adicionado o md1 ao início automático em mdadm.conf . Depois de adicionar o md1 a mdadm.conf , ele agora tenta montar a matriz na inicialização, mas ainda está faltando sdd1 . Se eu disser para tentar montar automaticamente, fico com a impressão de que sabe que precisa de sdd1 , mas não consigo usá-lo:

root@uberserver:~# mdadm --assemble --scan
/dev/md1: File exists
mdadm: /dev/md/1 already active, cannot restart it!
mdadm:   /dev/md/1 needed for /dev/sdd1...

O que estou perdendo?

    
por Jon Cage 30.06.2012 / 10:56

1 resposta

4

Não tenho certeza se essa foi a maneira mais clara de resolver o problema, mas parece que o seguinte ocorreu novamente:

root@uberserver:~# mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1

root@uberserver:~# mdadm --add /dev/md1 /dev/sdd1
mdadm: re-added /dev/sdd1

root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sde1[1] sdf1[2]
      3907023872 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
      [>....................]  recovery =  0.0% (121728/1953511936) finish=1337.0min speed=24345K/sec

md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
      2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

Ainda não entendi porque não foi possível adicionar o disco novamente: - /

    
por 30.06.2012 / 12:31