Precisa de ajuda para recuperar a matriz RAID

5

Para encurtar a história, sou responsável por um servidor de mídia que tenha dois arrays RAID (/ dev / md0 e / dev / md2). Eu ainda tenho muito a aprender sobre software RAID e LVM, etc. Tivemos uma falha na unidade / dev / md0, ok não é grande coisa eu substituí a unidade ruim, remontado a matriz RAID (que levou a maior parte da noite passada para concluir ) e hoje de manhã eu entrei e consegui montar / dev / md0 sem perda de dados.

Mal sabia eu, algo se tornou corrompido com / dev / md2. Agora / dev / md0 foi configurado pelo meu colega de trabalho há dois anos, eu configurei / dev / md2 cerca de seis meses atrás. Sempre tendo feito o RAID usando os controladores de hardware integrados nos servidores da Dell e da HP, esta é a primeira vez que tenho que lidar com o software RAID. Eu segui as instruções no link que eu senti que era o A melhor idéia como LVM me daria a capacidade de crescer a matriz RAID no futuro (eu só agora aprendi que mdadm pode fazer o mesmo). Não houve problemas com isso até hoje. Após a reinicialização da máquina após o reparo / dev / md0, não foi possível montar o / dev / lmv-raid / lvm0 (o arquivo ou diretório não pôde ser encontrado). Quase parece que o volume lógico desapareceu. Eu não entendo o que teria causado isso. Nenhuma unidade na segunda matriz era ruim, eu não toquei na segunda matriz. Nada deveria ter corrido mal com a matriz. Mas parece que algo não está certo.

Agora / dev / md2 está em execução e está em estado limpo, mas não consigo montá-lo. Temo que os dados tenham desaparecido. A coisa realmente terrível é que não há explicação em minha mente sobre o que aconteceu. Eu estou supondo que eu não posso montar / dev / md2 porque a matriz RAID está esperando para ser controlada pelo LVM. Talvez eu não entenda bem o sistema, mas se eu tiver uma matriz limpa, os dados ainda não estarão no array? Alguma ideia de como posso recuperar os dados? A última coisa que quero fazer é voltar para o meu chefe e dizer a ele que, no processo de conserto de um array, outro arranjo magicamente quebrou e todos os seus dados se foram. Eu olhei para vários sites, mas como não sei o que realmente rompeu com tudo isso, não sei se realmente perdi dados ou se há algo mais que está faltando.

Qualquer conselho seria muito apreciado, eu tenho lutado com isso durante toda a manhã e estou em uma perda total.

Aqui estão mais algumas informações:

 [root@viamao ~]# mdadm --detail /dev/md2
 /dev/md2:
 Version : 00.90.01
 Creation Time : Tue Jun  9 11:32:06 2009
 Raid Level : raid5
 Array Size : 4395415488 (4191.79 GiB 4500.91 GB)
 Device Size : 1465138496 (1397.26 GiB 1500.30 GB)
 Raid Devices : 4
 Total Devices : 4
 Preferred Minor : 2
 Persistence : Superblock is persistent

Update Time : Tue Jun  9 15:54:39 2009
      State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

     Layout : left-symmetric
 Chunk Size : 64K

Number   Major   Minor   RaidDevice State
   0       8      128        0      active sync   /dev/sdi
   1       8      144        1      active sync   /dev/sdj
   2       8      160        2      active sync   /dev/sdk
   3       8      176        3      active sync   /dev/sdl
       UUID : 88bbe155:b6d852b1:3ad8a77d:5eba3ee2
     Events : 0.36


  [root@viamao archive2]# mount -t ext3 /dev/md2 /share/archive2
  mount: wrong fs type, bad option, bad superblock on /dev/md2,
  or too many mounted file systems


 [root@viamao archive2]# mount
 /dev/hda3 on / type ext3 (rw)
 none on /proc type proc (rw)
 none on /sys type sysfs (rw)
 none on /dev/pts type devpts (rw,gid=5,mode=620)
 usbfs on /proc/bus/usb type usbfs (rw)
 /dev/hda1 on /boot type ext3 (rw)
 none on /dev/shm type tmpfs (rw)
 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
 /dev/md0 on /share/archive1 type ext3 (rw)


  [root@viamao share]# cat /proc/mdstat
  Personalities : [raid5] 
  md2 : active raid5 sdl[3] sdk[2] sdj[1] sdi[0]
  4395415488 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

  md0 : active raid5 sda[0] sdh[7] sdg[6] sdf[5] sde[4] sdd[3] sdc[2] sdb[1]
  5128021248 blocks level 5, 64k chunk, algorithm 2 [8/8] [UUUUUUUU]

  unused devices: <none>

Mais alguma coisa que eu possa mostrar para você que possa ajudar? Eu tenho uma matriz RAID ativa que não posso montar, pensando que isso tem algo a ver com o fato de que isso costumava ser em lvm, mas agora quando eu tento montar / dev / lvm-raid / lvm0 ele me diz o especial dispositivo não pode ser encontrado. lvdisplay não me dá nada pvdisplay só me mostra a unidade que o meu sistema operacional está ligado. O vgdisplay também não produz nada.

Pensamentos? Estou seriamente perdido aqui.

    
por sxanness 09.06.2009 / 22:06

5 respostas

4

Camadas do sistema de arquivos no Linux (iniciando na ordem inversa, da unidade física para o sistema de arquivos):

  1. dispositivo físico
    • / dev / sdi
    • / dev / sdj
    • / dev / sdk
    • / dev / sdl
  2. tipo especial de partição md em cada unidade (quando usado)

    • isso pode ou não estar presente. Embora seja recomendado que você simplesmente crie partições únicas em cada unidade que abranja todo o tamanho da unidade, é possível especificar a unidade inteira usando diretamente o nome do dispositivo. Note que isso pode fazer com que algumas ferramentas de partição fiquem confusas sobre o que elas estão lidando (porque a tabela de partições simplesmente "vai embora"), então eu não a recomendo.

    No seu caso, todas as unidades são especificadas, portanto, não há partições para ver. Você não precisa se preocupar com isso.

  3. driver md (quando usado)

    • / dev / md2

    Sua saída do detalhe e /proc informa que a matriz está ativa em todas as unidades e que nenhuma unidade está em estado de falha. Isso significa que o array é saudável!

  4. LVM (quando usado)

    • Digite o seguinte em um shell enquanto estiver logado como root:

    pvscan && vgscan && lvscan

    Se houver algum volume a ser encontrado, eles devem estar aqui. Observe que o processo de varredura de volume é controlado por um arquivo que pode escolher determinados dispositivos a serem ignorados quando executar a varredura. Você vai querer ter certeza de que você digitou / dev / md2 explicitamente. Cada volume LVM tem um GUID impresso nele; Se isso for perdido ou corrompido, isso pode causar alguns dos problemas que você está vendo. O objetivo aqui é obter seus volumes de LVM reconhecidos. Quando estiverem saudáveis, você estará em boa forma.

  5. sistema de arquivos

    Eu acho que você sabe o que fazer aqui.

A partir daqui, você poderá recuperar seu (s) sistema (s) de arquivos.

    
por 10.06.2009 / 08:35
3

geralmente LVM é feito 'em cima de' MD. talvez você configure o LVM usando a linha de comando e não as ferramentas da sua distro? se assim for, talvez os scripts de inicialização não saibam sobre o LVM.

primeiro faça um 'vgscan' e veja se ele aparece. se assim for, é apenas uma questão de desembaraçar os scripts.

    
por 09.06.2009 / 22:11
2

Você pode ser desafiado a obter uma resposta do tipo "faça isso para corrigir o problema", pois qualquer administrador bom é extremamente paranóico com a perda de dados, incluindo a orientação de outra pessoa em uma situação que pode levar à perda de dados.

Do que você forneceu, eu vou resumir o que vejo e talvez onde você possa começar.

  • / dev / md2 é um dispositivo RAID 5 com (4) unidades de 1,5 TB
  • A unidade subjacente inteira está sendo usada pelo módulo de ataque - não há partições na unidade
  • Seu dispositivo / dev / md2 agora está relatando um status normal / feliz

Comece postando os resultados de: pvdisplay e vgscan

Você tem um arquivo "lvm-raid" localizado em / etc / lvm / backup /?

    
por 09.06.2009 / 22:52
2

A primeira coisa que eu faria neste tipo de situação, se possível: Faça uma cópia exata de ambos os discos formando / dev / md2 (com dd ou algo parecido). Isso pode levar muito tempo, mas se você frustar ainda mais as coisas enquanto tenta consertar isso, você pode voltar para onde começou.

    
por 09.06.2009 / 23:09
1

Você pode tentar o seguinte

pvdisplay / dev / md2

e forneça os resultados. Isso explicitamente informará ao pvdisplay para tentar ler o dispositivo md2 para informações do LVM.

    
por 09.06.2009 / 23:22

Tags