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