Lendo as unidades MDADM após o servidor ter morrido

3

Eu tinha um array RAID-1 de 2 drives rodando no Ubuntu, o qual eu tinha esquecido. O host que eu estava executando agora está morto, deixando-me com esses dois discos. Como posso obter dados deles? Se eu despejo-los-usando dd ou o tal-como posso ler esses dados em um formato útil?

    
por alicht 04.07.2012 / 03:20

2 respostas

2

mdadm armazena todos os dados da matriz nos próprios discos e é altamente portável entre as mesmas versões ou versões mais recentes. Supondo que o espelhamento estava atualizado, você pode até ler os dados de um único disco, por exemplo, um adaptador USB. (Claro, ter backups reduziria a necessidade de fazer isso).

Todos esses passos podem ser feitos a partir de um sistema em execução, mas um LiveCD etc. também funcionará da seguinte maneira:

  1. Anexe as unidades ao sistema que você deseja usar para recuperar os dados
  2. Encontre as informações da partição / disco com dmesg output, sudo fdisk -l etc.
  3. Encontre os metadados mdadm dos discos (use seus próprios valores de disco aqui):

    $ sudo mdadm --examine /dev/sda1
    $ sudo mdadm --examine /dev/sdb1
    

    O valor "Preferred Minor" informará a você qual matriz (por exemplo, /dev/md0 ) dos discos fazia parte.

  4. Monte o array:

    $ sudo mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
    

    Se tudo estiver OK, você receberá uma mensagem como "md0 started with 2 devices"; verifique /proc/mdstat para ter certeza.

  5. Se a matriz tiver uma tabela de partições, use fdisk -l para encontrá-la e monte a partição correta ( kpartx pode ser útil aqui); caso contrário, simplesmente mount /dev/md0 /mnt/temp conforme apropriado

A montagem de um único disco pode ou não "funcionar", como disse a 3dinfluence, dependendo da localização dos metadados mdadm ; para ter certeza, você pode montar com um único membro usando

$ mdadm --assemble /dev/md0 /dev/sda1 --run.
    
por 04.07.2012 / 04:09
2

Com o RAID1, você pode simplesmente montar a unidade como se fosse uma única unidade.

Portanto, coloque a unidade em outro computador e, por exemplo, se a unidade estava em / dev / sdb, execute mount /dev/sdb1 /mnt/ Você pode ter que especificar o sistema de arquivos. Então, mount -t ext4 /dev/sdb1 /mnt/ , por exemplo, se o volume antigo era ext4.

    
por 04.07.2012 / 03:53

Tags