Mdadm parece ter esquecido completamente de um dispositivo e encolhido meu array

1

Depois de investigar um problema que acabei de encontrar, parece que o mdadm se esqueceu completamente de um novo dispositivo que eu adicionei a um array. Eu adicionei recentemente um novo dispositivo para o array que correu bem, mas agora eu reiniciei (eu não acho que eu tinha reiniciado desde que fiz esta mudança) e eu fui saudado com todos os tipos de erros, e eu estou bastante com certeza é baixo para isso.

Então, minha pergunta é: deveria ser seguro adicionar novamente o dispositivo de volta ao array? Eu realmente não quero perder nenhum dado aqui! Isto é o que eu penso que eu deveria fazer, mas eu gostaria de confirmação de alguém com um pouco mais de experiência primeiro :) Tenha em mente que eu já fiz isso uma vez, e tenho fscked e cresceu o sistema de arquivos também e, em seguida, escreveu muito mais dados para ele.

sudo umount /dev/md0
sudo mdadm --stop /dev/md0
sudo mdadm --add /dev/md0 /dev/sdd1
sudo mdadm --grow /dev/md0 --raid-devices=4

Um monte de informações e passos extras que eu já fiz: eu reiniciei e fui recebido com uma mensagem como "Não é possível ler superbloco" para / dev / md0, minha matriz RAID. Eu imediatamente suspeitei do mdadm desde que eu estava recentemente mexendo nele, e cat /proc/mdstat relata isso:

...
md0 : inactive sdb1[0](S) sdc1[1](S)[/code]

O que está errado; Eu acabei de adicionar / dev / sdd1 ao array também. sudo mount -a reportou bad superblock on /dev/md0 . Não me lembro do próximo comando que usei agora, mas outra coisa relatou que tentei escrever após o final do sistema de arquivos, o que faz sentido, já que havia mais dados nele do que os dois primeiros dispositivos.

sudo fdisk -l informa que o novo dispositivo e a partição estão vivos e bem. cat /etc/mdadm/mdadm.conf mostra isso:

DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 level=raid5 num-devices=2 UUID=*snip*
spares=1

O que mostra claramente que está completamente esquecido do novo dispositivo que adicionei. Eu deveria "salvar" a configuração depois de executar os comandos acima? Eu assumi que eram mudanças duradouras; Não consigo ver nenhum uso deles sendo perdido na reinicialização.

Editar nota: Eu percebi que o 'num-devices = 2' é inclusive do 'spares = 1', o que significa que o mdadm não mudou um disco de 'em uso' para 'reserva', é simplesmente esquecido sobre isso. Vou atualizar o título para explicar isso.

    
por Ben Hymers 26.10.2010 / 02:52

1 resposta

2

A linha:

DEVICE /dev/sdb1 /dev/sdc1

significa que o mdadm somente verificará esses dois dispositivos para serem usados como parte de uma matriz RAID.

Você precisa adicionar /dev/sdd1 a essa linha ou substituí-la por:

DEVICE partitions

que é o padrão e fará com que ele verifique todas as partições para superblocos mdadm.

    
por JanC 26.10.2010 / 03:50