Como corrijo meu servidor para inicializar corretamente após remover / adicionar uma unidade no meu RAID de software mdadm

1

Configurei um array RAID-5 para uma partição de dados montada em /mnt/data . Meu sistema não está inicializando ( / e /boot está em uma unidade dedicada não parte de qualquer array RAID).

Eu adicionei um 4º drive à minha matriz de software RAID-5 de 3 discos no Ubuntu 12.04 via mdadm (software raid). Meu array RAID continha /dev/sdb1 , dev/sdc1 e /dev/sdd1.

Eu usei esse comando para adicionar uma quarta unidade:

mdadm --add /dev/md0 /dev/sde

Em seguida, atualizei o array para transformá-lo em um RAID-6 usando:

mdadm --grow /dev/md0 --raid-devices 4 --level 6 --backup-file=backup/raid-backup-file

Funciona muito bem. O servidor funcionou e não houve problema na inicialização. O único problema é que eu vi que eu adicionei a quarta unidade como toda a unidade. Eu deveria ter adicionado /dev/sde1 em vez de sde!

Para limpar isso, eu removo a unidade e a adiciono novamente, mas com a partição dessa vez:

mdadm /dev/md0 --fail /dev/sde --remove --/dev/sde
mdadm --add /dev/md0 /dev/sde1

Após a migração, funcionou (a matriz estava acessível), exceto que, na próxima inicialização, recebi uma mensagem dizendo que a matriz RAID estava degradada porque / dev / sde estava ausente (toda a minha unidade estava marcada como sobressalente) e entrou em prompt initramfs. Depois de sair desse shell, o servidor continuou a inicialização sem montar a partição de dados do meu array RAID.

Após o login, consegui parar a matriz RAID e ressambiá-la via:

mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 

e, em seguida, monte o sistema de arquivos. Todos os dados estavam lá e a matriz RAID estava limpa.

No entanto, o sistema não inicializou mais corretamente. Minha última tentativa foi remover a última unidade e mudar a matriz RAID-6 para um RAID-5 novamente via:

mdadm /dev/md0 --remove /dev/sde1
mdadm --grow /dev/md0 --raid-devices 3 --level 5 --backup-file=backup/raid-backup-file

Mas isso não resolveu o problema. Na inicialização, o sistema diz que a matriz está degradada e que ainda está faltando a unidade sde.

Depois de sair do shell initramfs, faça o login e remonte o array como antes, o array está limpo, veja

cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid5 sdb1[0] sdd1[2] sdc1[1]
      3907026816 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

Eu também encontrei, nas minhas mensagens do kernel, após a descoberta da unidade (sda, sdb, sdc, sde) e a descoberta da placa de rede, aquela linha estranha :

md: bind<sde>

De onde vem isso e como eu posso mudar isso?

Minha matriz RAID NÃO deve conter nenhuma referência a / dev / sde.

Eu não atualizei o initramfs na primeira alteração da minha matriz, tentei depois, mas isso não mudou nada.

A propósito, aqui está meu /etc/mdadm.conf:

DEVICE partitions

CREATE owner=root group=disk mode=0660 auto=yes

HOMEHOST <system>

MAILADDR root

ARRAY /dev/md0 metadata=0.90 UUID=4d84e24c:e40f825f:3ba42e3c:267295e2
    
por paulgreg 03.01.2014 / 08:36

2 respostas

3

Deve haver alguns metadados md restantes no dispositivo sde.

  • Remove sde1 do dispositivo de ataque.
  • Limpe metadados sde md completamente (usando dd e dependendo da versão dos metadados e sua localização no disco) algo como:

    dd se = / dev / zero de = / dev / sde bs = 4096 contagem = 1 busca = 1

    ou melhor:

    mdadm --misc --zero-superblock / dev / sde

  • Recrie seu sde1 e adicione-o novamente ao dispositivo md0 e atualize seu mdadm.conf se ainda desejar que ele contenha UUIDs (você também pode restaurar os metadados anteriores se os tiver feito primeiro)

por 03.01.2014 / 11:47
1

você tentou regenerar o initrd depois de atualizar seu dispositivo md? tente update-initramfs ou a ferramenta que corresponda à sua distribuição. e é provavelmente uma boa idéia atualizar seu bootlegger também (update-grub2 para grub-pc)

também tenta especificar os uuids das partições em seu mdadm.conf para md0.

    
por 03.01.2014 / 09:56