Um disco de um software RAID10 foi reparticionado. O que fazer?

3

Eu tenho uma matriz de software em uma máquina

root@c ~# mdadm --query --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Mon Mar 17 10:22:38 2014
     Raid Level : raid10
     Array Size : 976772096 (931.52 GiB 1000.21 GB)
  Used Dev Size : 488386048 (465.76 GiB 500.11 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Jan 19 10:30:49 2015
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : far=2
     Chunk Size : 256K

           UUID : e21d2907:a7b46e36:220b319d:884b2099
         Events : 0.296

    Number   Major   Minor   RaidDevice State
       0       8       32        0      active sync   /dev/sdc
       1       8       48        1      active sync   /dev/sdd
       2       8       64        2      active sync   /dev/sde
       3       8       80        3      active sync   /dev/sdf

md0 é um array RAID-10. Um colega de trabalho fez um fdisk em / dev / sdf e criou três partições linux lá. Atualmente, o md0 está funcionando bem, mas estou preocupado com o que acontecerá quando o servidor for reiniciado.

As minhas informações estão seguras? O fdisk destruiu um dos dois RAID1? Como corrigir o sdf sem danificar o array?

Obrigado antecipadamente.

    
por jdinunzio 19.01.2015 / 16:07

1 resposta

3

Sua informação não é segura; você destruiu um disco na matriz e ele não aparecerá na reinicialização. Seu kernel provavelmente ainda estará usando a tabela de partição antiga, porque ela estava em uso quando o fdisk estava pronto, mas você precisa seguir estes passos:

  1. Faça backup dos seus dados (não é preciso dizer, mas quero deixar claro que não me responsabilizo se esse procedimento não funcionar; -)
  2. Falha no disco: mdadm --fail /dev/md0 /dev/sdf
    • A matriz agora deve aparecer como degradada em /proc/mdstat
  3. Remova o disco da matriz: mdadm --remove /dev/md0 /dev/sdf
    • O disco agora deve ter desaparecido de /proc/mdstat
  4. Limpe a tabela de partições: dd if=/dev/zero of=/dev/sdf bs=1k count=1
  5. Adicione novamente o disco à matriz: mdadm --add /dev/md0 /dev/sdf
  6. A matriz deve agora estar sendo reconstruída. Monitore /proc/mdstat até completar.
  7. Faça o backup dos seus dados novamente em um local diferente. Compare-o com o primeiro backup e assegure-se de que apenas os arquivos novos / atualizados tenham sido alterados.

Você deve ser capaz de fazer todos os itens acima enquanto a matriz estiver on-line, porque o RAID 10 significa que você tem pelo menos duas cópias de cada bloco.

O que seu colega de trabalho fez com o array é um bom motivo para não usar discos brutos em matrizes RAID. Para matrizes futuras, você deve criar uma partição em cada disco do tipo FD para que o sistema saiba que elas são partições RAID e quem aparecer verá partições nela. Você só perde uma pequena quantidade de espaço e ganha uma grande bandeira vermelha que diz às pessoas que o disco está em uso.

Boa sorte!

    
por 21.01.2015 / 00:38