Reconstrua o raid1 do Linux após a reinstalação

1

Eu tenho 4 discos no meu servidor. sda e sdb foram combinados para RAID1 e tinham o sistema operacional. O sdc e o sdd eram um segundo dispositivo RAID1 que tinha um único grupo de volumes com um monte de LVMs. sdd morreu então meus dados RAID foram degradados. Depois de substituir o sdd (mas antes de adicionar ao RAID), o grub decidiu perder a mente e se recusar a inicializar. A maneira mais rápida de consertar era apenas reinstalar o sistema operacional, já que não havia nada de importante nele.

Eu removi o sdc e o sdd durante a instalação para garantir que eles não fossem sobrescritos por engano. Depois que a instalação foi concluída, eu coloquei as unidades de volta, e o Centos encontrou meu grupo de volume automaticamente. O sdc não fazia mais parte de um array RAID.

Ele é particionado / dev / sdc1 detecção automática do Linux Raid

A minha pergunta é - como posso usar o mdadm para recriar a matriz RAID sdc1, sdd1 sem perder dados já no sdc?

Meu melhor palpite era criar o array com apenas sdc1 primeiro, depois adicionar sdd1 após (assim ele reconstrói de sdc para sdd)

EDIT Depois de olhar para a saída de / cat / mdstat novamente, notei algo estranho. Meu disco de dados estava aparecendo como parte de uma matriz RAID, mas um dos meus arrays RAID do sistema operacional estava faltando (e o fstab tentou vincular minha troca ao meu disco de dados).

fdisk /dev/sda
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      257008+  fd  Linux raid autodetect
/dev/sda2              33        2072    16386300   fd  Linux raid autodetect
/dev/sda3            2073       30401   227552692+  fd  Linux raid autodetect

O md1 deveria ter sido / dev / sda2 e / dev / sdb2, mas está faltando

cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb1[1] sda1[0]
      256896 blocks [2/2] [UU]

md3 : active raid1 sdc1[0]
      1465135936 blocks [2/1] [U_]

md0 : active raid1 sdb3[1] sda3[0]
      227552576 blocks [2/2] [UU]

Quando tento criar o md2, obtenho:

[root@xen2 ~]# mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 /dev/sdb2
mdadm: /dev/sda2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug 15 02:48:06 2012
mdadm: /dev/sdb2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug 15 02:48:06 2012
Continue creating array? n

O mdadm scan também mostra a falta dele

[root@xen2 ~]# mdadm --detail --scan
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 UUID=51ef54bd:770bb58e:90183df1:d82a79c7
ARRAY /dev/md3 level=raid1 num-devices=2 metadata=0.90 UUID=2d7dfb1e:6b091396:a7558ec2:4d288e6f
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 UUID=ecdd769b:c49d51b6:fe43f166:465b7073

Não sei por que o / dev / md1 decidiu se perder após a reinicialização, mas é seguro reconstruí-lo?

    
por John P 15.08.2012 / 10:28

1 resposta

1

Sim, você precisa iniciar o array no modo degradado usando o drive sdc. Então, você pode adicionar novamente o drive com falha sdd.

Eu costumo usar o comando mdadm com a opção --assemble para montar e iniciar o array no modo degradado usando apenas um disco. Algo parecido com isto:

$ mdadm --assemble /dev/md1 /dev/sda2

Pode ser necessário usar a opção -f para forçar a inicialização do array degradado.

Se isso funcionar bem, você pode continuar adicionando novamente a unidade substituída.

$ mdadm --re-add /dev/md1 /dev/sdb2

Eu usei esses comandos muitas vezes antes e não tive nenhuma perda de dados. Eles funcionaram sem problemas quando as unidades estão bem.

Precaução: faça backup dos seus discos antes de executar esses comandos para evitar possíveis perdas de dados.

    
por 15.08.2012 / 10:31