Erro ao configurar o Raid 1 com o mdadm no RaspberryPi 2

0

Eu estava configurando um RAID 1 com mdadm no meu RaspberryPi com duas unidades (ambas de 2 TB e formatadas com exFAT, ambas com fontes de alimentação independentes), mas tive um erro.

Infelizmente, não sou especialista em comandos do Linux und.

Aqui está o que eu fiz:

  • mdadm instalado com o apt-get install mdadm
  • encontrou os dois dispositivos com sudo fdisk -l (como / dev / sda e / dev / sdb)
  • configure o RAID 1 para / dev / md0 com sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1
  • formatado / dev / md0 com sudo mkfs /dev/md0 -t ext4
  • montado / dev / md0 em / media / nas com sudo mount /dev/md0 /media/nas
  • editado / etc / fstab com /dev/md0 /media/nas ext4 4 0 0
  • adicionou AUTOSTART = true a / etc / default / mdadm
  • ativado samba em /etc/samba/smb.conf

Tudo correu bem e eu pude carregar meus arquivos para / media / nas com o WinSCP.

Agora meu problema: No dia seguinte, meus uploads falharam com o código de erro 4 (sem mais texto de erro). Quando eu corro sudo fdisk -l eu encontrei ambos os dispositivos sda e sdb. Também há / dev / md0 com tamanho de 2000,3 GB, mas também há / dev / md127 com tamanho de 2000,3 GB.

Quando executo sudo mdadm --detail /dev/md0 , obtenho o seguinte:

/ dev / md0:         Versão: 1.2   Tempo de criação: Sex Jan 5 12:23:50 2018      Raid Level: raid1      Tamanho da Matriz: 1953371712 (1862.88 GiB 2000.25 GB)   Tamanho Dev usado: 1953371712 (1862.88 GiB 2000.25 GB)    Dispositivos de ataque: 2   Total de dispositivos: 1     Persistência: Superblock é persistente

Update Time : Sun Jan  7 14:37:23 2018
      State : clean, degraded

Dispositivos ativos: 1 Dispositivos de trabalho: 1  Dispositivos com falha: 0   Dispositivos de reposição: 0

       Name : raspberrypi:0  (local to host raspberrypi)
       UUID : 926bc124:2945e335:1e79ab6c:06b12095
     Events : 21

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

A saída de sudo mdadm --detail /dev/md127 é:

/ dev / md127:         Versão: 1.2   Tempo de criação: Sex Jan 5 12:23:50 2018      Raid Level: raid1      Tamanho da Matriz: 1953371712 (1862.88 GiB 2000.25 GB)   Tamanho Dev usado: 1953371712 (1862.88 GiB 2000.25 GB)    Dispositivos de ataque: 2   Total de dispositivos: 1     Persistência: Superblock é persistente

Update Time : Sun Jan  7 14:38:47 2018
      State : clean, degraded

Dispositivos ativos: 1 Dispositivos de trabalho: 1  Dispositivos com falha: 0   Dispositivos de reposição: 0

       Name : raspberrypi:0  (local to host raspberrypi)
       UUID : 926bc124:2945e335:1e79ab6c:06b12095
     Events : 27

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

Quando tento configurar o RAID novamente com sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1 , recebo o erro:

mdadm: super1.x cannot open /dev/sda1: Device or resource busy mdadm: failed container membership check mdadm: cannot open /dev/sda1: Device or resource busy

Como posso definir o RAID novamente, de onde vem o md127 e o que causa esse erro?

(reiniciar não faz nada)

Obrigado antecipadamente!

    
por Cauti 08.01.2018 / 17:54

1 resposta

0

O que aconteceu é que sua matriz RAID se desfez. Com base na saída fragmentária que você forneceu, suspeito que /dev/sdb1 sofreu uma falha transitória (provavelmente um soluço do sistema USB do Pi) e foi marcado como com falha. Quando voltou on-line, o subsistema md do Linux o viu como um novo volume RAID que não pertencia a nenhuma matriz conhecida e o configurou como /dev/md127 .

Quando você executou sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1 , teve sorte: ele falhou. Executar mdadm --create é quase nunca a solução para um problema de RAID. É muito mais provável que você destrua seus dados do que recuperá-los.

Neste ponto, sua melhor opção é provavelmente destruir a matriz /dev/md127 e adicionar novamente /dev/sdb1 a /dev/md0 .

  1. Verifique se /dev/md0 é realmente a cópia ativa de seus dados. Inspecione a saída de mount para verificar se ela está montada em /media/nas e execute ls /media/nas para garantir que seus dados estejam lá.
  2. Remova /dev/sdb1 de /dev/md127 : mdadm /dev/md127 --fail /dev/sdb1 , seguido por mdadm /dev/md127 --remove /dev/sdb1 .
  3. Faça com que /dev/sdb1 não pareça mais um membro RAID: wipefs -a /dev/sdb1 .
  4. Coloque de volta em /dev/md0 : mdadm /dev/md0 --add /dev/sdb1 .
  5. Deixe o computador reconstruir a matriz, copiando tudo de /dev/sda1 .

Para evitar que isso aconteça no futuro, configure entradas descrevendo sua matriz em /etc/mdadm/mdadm.conf . Se uma unidade cair temporariamente da matriz, mdadm a verá no arquivo de configuração e ficará lá esperando que você execute a etapa (4).

Se a sua configuração tiver o hábito de produzir falhas temporárias, considere adicionar um bitmap de intenção de gravação ao seu array: mdadm --grow /dev/md0 --bitmap=internal . Isso reduzirá a velocidade das gravações, já que o bitmap precisa ser atualizado, mas acelerará muito a recuperação, pois apenas as alterações precisam ser copiadas de um disco para o outro. Se você adicionar um bitmap de intenção de gravação, colocará discos com falhas temporárias de volta na matriz com --re-add em vez de --add .

    
por 20.01.2018 / 03:51