RAID degradado, partições ausentes

1

Estamos tendo um problema muito estranho no trabalho. Nosso servidor Ubuntu possui 6 drives, configurados com o RAID1 da seguinte forma:

/dev/md0, consisting of:
/dev/sda1
/dev/sdb1

/dev/md1, consisting of:
/dev/sda2
/dev/sdb2

/dev/md2, consisting of:
/dev/sda3
/dev/sdb3

/dev/md3, consisting of:
/dev/sdc1
/dev/sdd1

/dev/md4, consisting of:
/dev/sde1
/dev/sdf1

Como você pode ver, md0, md1 e md2 usam os mesmos 2 drives (divididos em 3 partições). Eu também tenho que notar que isso é feito via ataque de software do Ubuntu, não raid de hardware.

Hoje, a matriz /md0 RAID1 é mostrada como degradada - falta a unidade /dev/sdb1 . Mas como /dev/sdb1 é apenas uma partição (e /dev/sdb2 e /dev/sdb3 estão funcionando bem), obviamente não é a unidade que desapareceu, parece que a própria partição está faltando.

Como isso é possível? E o que poderíamos fazer para consertar isso?

Minha saída de cat /proc/mdstat :

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md1 : active raid1 sda2[0] sdb2[1]
      24006528 blocks super 1.2 [2/2] [UU]


md2 : active raid1 sda3[0] sdb3[1]
      1441268544 blocks super 1.2 [2/2] [UU]


md0 : active raid1 sda1[0]
      1464710976 blocks super 1.2 [2/1] [U_]


md3 : active raid1 sdd1[1] sdc1[0]
      2930133824 blocks super 1.2 [2/2] [UU]


md4 : active raid1 sdf2[1] sde2[0]
      2929939264 blocks super 1.2 [2/2] [UU]


unused devices: <none>

FYI: tentei o seguinte:

mdadm /dev/md0 --add /dev/sdb1

Mas recebi este erro:

mdadm: add new device failed for /dev/sdb1 as 2: Invalid argument
    
por reano 07.11.2013 / 14:48

2 respostas

1

Primeiro, olhe /var/log/messages (ou seja, dmesg) para ver porque o / dev / sdb1 foi retirado do RAID. Provavelmente, houve um erro ao ler ou gravar em / dev / sdb1.

Se você executar smartctl -a /dev/sdb , suspeito que o disco tenha um valor diferente de zero para reallocated sectors ou current pending sectors . Se tiver um setor realocado, o disco está começando a degradar e deve ser substituído imediatamente se este for um servidor de produção. Embora você possa fazer mdadm /dev/md0 -r /dev/sdb1 seguido por mdadm /dev/md0 -a /dev/sdb1 para remover e adicionar novamente a partição, é melhor fazer backup dos seus dados e substituir / dev / sdb imediatamente.

Para substituir o disco, faça o seguinte:

  1. Faça o backup de seus dados e desligue a máquina.
  2. Anote o número de série de cada unidade (assim você sabe qual precisa ser substituído).
  3. Instale seu novo disco rígido, inicialize a máquina e verifique se os nomes dos dispositivos não foram alterados. Se os nomes dos dispositivos tiverem mudado, pegue um pedaço de papel e observe qual novo nome de dispositivo corresponde a cada nome antigo e número de série. Você já deve saber disso, mas pode usar cat /proc/mdstat para ver quais nomes de dispositivos estão sendo usados pelos RAIDs e fdisk -l ou smartctl -a <device> para verificar os números de série.
  4. Particione o novo disco conforme apropriado (usando os mesmos tamanhos de partição dos outros discos).
  5. Para cada RAID, adicione a partição apropriada da nova unidade com mdadm <md device> -a <new disk partition> (Ah, e caso você queira perguntar ... sim, o software RAID é tão incrível. Você pode adicione quantos espelhos quiser ao RAID1 de um software Linux.
  6. Verifique periodicamente o status de recriação com cat /proc/mdstat .
  7. Quando a reconstrução estiver concluída, execute mdadm -f <md device> -f <bad disk's partition> seguido por 'mdadm -f -f para cada RAID1 que use o disco danificado. Isso marca a partição do disco defeituoso como falha e, em seguida, remove-a do RAID.
  8. Desligue a máquina e remova o disco danificado.
  9. Se você quiser mais de um espelho daqui para frente, repita as etapas de 3 a 6 para um ou mais discos adicionais. Caso contrário, você terá que usar o mdadm para redimensionar os RAIDs de volta para 2 dispositivos (ou então o md irá avisá-lo sobre matrizes degradadas toda vez que você reinicializar).

NOTA: se o SMART diags não relatar erros críticos para / dev / sdb, pode ser apenas que / dev / sdb1 foi retirado / dev / md0 porque excedeu o limite de tempo limite. Nesse caso, o / dev / sdb pode estar bem, mas não faria mal fazer backup dos seus dados e adicionar um ou mais espelhos adicionais de qualquer maneira.

    
por 22.11.2013 / 08:12
0

Primeiro, faça o backup dessa partição!

Em seguida, primeiro remova essa unidade da matriz e, em seguida, adicione-a novamente - no entanto, verifique primeiro o dmesg pelo motivo real de ter sido removido ...

    
por 07.11.2013 / 14:58

Tags