A unidade não conseguiu montar o array

2

eu corri

mdadm -A /dev/md0 /dev/sda1 /dev/sdb1

Somente /dev/sdb1 foi carregado na matriz. Eu tenho mais alguns arrays nas mesmas duas unidades também. Toda vez que a partição em sda falha. dmesg me disse que sda estava fora de sincronia ... Como isso foi de um cd de resgate. Desconectei sda (em termos de hardware) por enquanto, pois estava me impedindo de inicializar.

Como devo proceder? Esta é provavelmente a causa de uma unidade borked? Eu tive alguns problemas estranhos no outro dia que não consegui encontrar (talvez um precursor): arquivos perdidos que mais tarde apareceram magicamente. Talvez um cabo faltando?

A questão principal é como tento sincronizar novamente a unidade?

cat /proc/mdstat
Personalities : [raid10] 
md3 : active raid10 sda4[1]
      955683840 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]

md2 : active raid10 sda3[1]
      10483712 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]

md1 : active raid10 sda2[1]
      10484736 blocks 512K chunks 2 far-copies [2/1] [_U]

md0 : active raid10 sda1[1]
      101376 blocks 512K chunks 2 far-copies [2/1] [_U]

unused devices: <none>

atualização

Corri badblocks em toda a outra unidade, e um teste smartctl longo, não encontrou problemas.

uma saída de solicitação de mdadm -D /dev/md0 (tenho md0-3 se outras forem necessárias)

/dev/md0:
        Version : 0.90
  Creation Time : Mon May 31 20:24:14 2010
     Raid Level : raid10
     Array Size : 101376 (99.02 MiB 103.81 MB)
  Used Dev Size : 101376 (99.02 MiB 103.81 MB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Oct 25 07:58:25 2010
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

         Layout : far=2
     Chunk Size : 512K

           UUID : 30ffe1d2:f5759995:820bb796:b5530bd2 (local to host slave-iv)
         Events : 0.212

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8        1        1      active sync   /dev/sda1

Desde que eu não encontrei nenhum problema real com a unidade, mas obviamente algo deu errado, eu estou querendo saber o que devo fazer a seguir? a partir de hoje, um backup completo de dados importantes está em vigor

update 2 Sempre que eu tento adicionar o que foi sda de volta (pelo menos sem limpá-lo) ele estraga meu processo de inicialização com um erro de número mágico do kernel. Eu estou supondo porque a versão do kernel ficou fora de sincronia. atualmente esta unidade está em um gabinete externo como sdd . Devo voltar a adicionar (re-sync) esta unidade enquanto ele estiver conectado via usb? Isso causará problemas?

df
Filesystem            Size  Used Avail Use% Mounted on
udev                   10M  284K  9.8M   3% /dev
/dev/md1              9.9G  7.0G  2.4G  75% /
shm                   3.0G  1.5M  3.0G   1% /dev/shm
/dev/md0               96M   15M   77M  16% /boot
/dev/md2              9.9G  6.5G  3.0G  69% /var
/dev/md3              898G  451G  402G  53% /home
none                  1.0G   45M  980M   5% /tmp
/dev/sdb1             992M   36M  956M   4% /media/D4A4-B7C1

cada drive md tem um sda / sdb correspondente. foi a unidade sda (ou 0 unidade) na matriz que eu tive que puxar.

    
por xenoterracide 13.10.2010 / 03:48

1 resposta

3

Ok, claramente um dos seus discos não está ativo no array agora. Digamos, sob a enumeração atual, que /dev/md0 está faltando /dev/sdb1 .

Para adicionar /dev/sdb1 de volta ao estado anterior:

mdadm -a --re-add /dev/md0 /dev/sdb1

Você pode querer verificar novamente a matriz para garantir que os dados sejam consistentes.

echo check >>/sys/block/md0/md/sync_action

Para espelhar de novo a partir do zero:

Certifique-se de que /dev/sdb1 seja completamente removido da matriz.

mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

Limpe a configuração em /dev/sdb1 para que mdadm a adicione de volta ao array como se fosse um disco completamente novo.

mdadm --zero-superblock /dev/sdb1

Adicione /dev/sdb1 de volta ao array como membro.

mdadm -a /dev/md0 /dev/sdb1

Sincronizar um disco em USB funciona lentamente.

No entanto, eu acho que o seu problema é que o seu gerenciador de inicialização não está instalado corretamente na sua segunda unidade, o que o impede de inicializar quando é inserido.

Você poderia trocar a ordem dessas duas unidades, para que o seu sistema seja inicializado com a boa configuração conhecida.

Quando estiver em funcionamento e puder sincronizar as duas unidades, você deverá reinstalar o carregador de inicialização nas duas unidades. Dessa forma, você sempre pode inicializar, independentemente da unidade que esteja faltando ou seja enumerada primeiro.

Como reinstalar seu gerenciador de inicialização varia:

  • Se você estiver usando lilo ≥ 22.0, especifique boot = /dev/md0 e raid-extra-boot = mbr em /etc/lilo.conf e execute novamente lilo . Se você estiver usando um lilo antigo, crie duas configurações de lilo, uma para cada disco na matriz e instale lilo em cada disco individualmente.
  • Se você estiver usando o Grub, tente executar grub-install /dev/sda e grub-install /dev/sdb . Se isso falhar, tente usar o shell do Grub para setup (hd0) e setup (hd1) ( cat /boot/grub/device.map para ver quais são as numerações do disco rígido do Grub).
por 26.10.2010 / 00:17