Matrizes RAID falharam, agora não serão reiniciadas; mdadm --examine mostra a unidade íntegra, mas --assemble falha, faltando dois discos

Matrizes RAID falharam, agora não serão reiniciadas; mdadm --examine mostra a unidade íntegra, mas --assemble falha, faltando dois discos

Este é um sistema Linux Mint 21.1 x64, que ao longo dos anos teve discos adicionados a matrizes RAID até que agora temos uma matriz de 10 3 TB e uma matriz de 5 6 TB. Quatro HDs caíram dos arrays, dois de cada, aparentemente como resultado da falha de um controlador. Substituímos os controladores, mas isso não restaurou o funcionamento dos arrays. mdadm --assemblerelata que não foi possível iniciar nenhum dos arrays, discos insuficientes (com dois falhando em cada um, não estou surpreso); mdadm --runrelata erro de E/S (o syslog parece sugerir que isso ocorre porque ele não consegue iniciar todas as unidades, mas não há indicação de que ele tentou iniciar as duas aparentemente infelizes), mas ainda posso mdadm --examinefalhar nos discos e eles parecem absolutamente normais . Aqui está a saída de uma unidade funcional:

mdadm --examine /dev/sda
/dev/sda:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 829c0c49:033a810b:7f5bb415:913c91ed
           Name : DataBackup:back  (local to host DataBackup)
  Creation Time : Mon Feb 15 13:43:15 2021
     Raid Level : raid5
   Raid Devices : 10

 Avail Dev Size : 5860268976 sectors (2.73 TiB 3.00 TB)
     Array Size : 26371206144 KiB (24.56 TiB 27.00 TB)
  Used Dev Size : 5860268032 sectors (2.73 TiB 3.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=944 sectors
          State : clean
    Device UUID : 6e072616:2f7079b0:b336c1a7:f222c711

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Apr  2 04:30:27 2023
  Bad Block Log : 512 entries available at offset 24 sectors
       Checksum : 2faf0b93 - correct
         Events : 21397

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 9
   Array State : AAAAAA..AA ('A' == active, '.' == missing, 'R' == replacing)

E aqui está o resultado de uma unidade com falha:

mdadm --examine /dev/sdk
/dev/sdk:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 829c0c49:033a810b:7f5bb415:913c91ed
           Name : DataBackup:back  (local to host DataBackup)
  Creation Time : Mon Feb 15 13:43:15 2021
     Raid Level : raid5
   Raid Devices : 10

 Avail Dev Size : 5860268976 sectors (2.73 TiB 3.00 TB)
     Array Size : 26371206144 KiB (24.56 TiB 27.00 TB)
  Used Dev Size : 5860268032 sectors (2.73 TiB 3.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=944 sectors
          State : clean
    Device UUID : d62b85bc:fb108c56:4710850c:477c0c06

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Apr  2 04:27:31 2023
  Bad Block Log : 512 entries available at offset 24 sectors
       Checksum : d53202fe - correct
         Events : 21392

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 6
   Array State : AAAAAAAAAA ('A' == active, '.' == missing, 'R' == replacing)

Editar: aqui está o relatório --examine da segunda unidade com falha; como você pode ver, ele falhou ao mesmo tempo em que todo o array ficou fora de linha.

# mdadm --examine /dev/sdl
/dev/sdl:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 829c0c49:033a810b:7f5bb415:913c91ed
           Name : DataBackup:back  (local to host DataBackup)
  Creation Time : Mon Feb 15 13:43:15 2021
     Raid Level : raid5
   Raid Devices : 10

 Avail Dev Size : 5860268976 sectors (2.73 TiB 3.00 TB)
     Array Size : 26371206144 KiB (24.56 TiB 27.00 TB)
  Used Dev Size : 5860268032 sectors (2.73 TiB 3.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=944 sectors
          State : clean
    Device UUID : 35ebf7d9:55148a4a:e190671d:6db1c2cf

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Apr  2 04:27:31 2023
  Bad Block Log : 512 entries available at offset 24 sectors
       Checksum : c13b7b79 - correct
         Events : 21392

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 7
   Array State : AAAAAAAAAA ('A' == active, '.' == missing, 'R' == replacing)

A segunda matriz, 5x6 TB, ficou off-line dois minutos depois, quando dois discos foram encerrados. Os dois discos com falha neste array e os dois no outro array, todos conectados a uma única placa controladora SATA de 4 portas que, obviamente, foi substituída.

A principal coisa que acho interessante sobre isso é que a unidade com falha parece se reportar como viva, mas mdadmnão concorda com isso. journalctlnão parece remontar a 2 de abril, então talvez não consiga descobrir o que aconteceu. Alguém tem alguma ideia sobre o que posso fazer para trazer essa fera de volta online?

Responder1

  1. Sempre faça backups em nível de imagem de todas as unidades do array antes de tentar qualquer mdadmcomando potencialmente destrutivo. Com esses backups em mãos, você poderá tentar posteriormente a recuperação em uma VM fora da caixa.
  2. Examine Update timeo campo em busca de unidades com falha na saída de mdadm --examine /dev/sdXpara determinar a sequência exata de eventos quando as unidades estavam saindo da matriz. Às vezes, a falha da primeira unidade passa despercebida e colocar a unidade antiga online resultará em uma falha catastrófica ao tentar montar um sistema de arquivos.
  3. No seu caso, ambas as unidades falharam ao mesmo tempo, portanto, deve ser seguro forçar o array on-line com mdadm --assemble --force /dev/mdXou mdadm --assemble --force --scan. Se não fosse o caso, você deveria forçar on-line apenas a última unidade que caiu da matriz, especificando unidades membros da matriz para mdadm --assemble --force /dev/mdX /dev/sda /dev/sdb missing /dev/sdd, observe que a ordem das unidades é importante.
  4. Como você conseguiu fazer as coisas funcionarem apenas com a lista de dispositivos explícita, assembleacredito que seu array está atualmente em um estado degradado com aquele /dev/sdhmarcado como offline. Analise a saída de cat /proc/mdstatpara determinar isso, faça um backup, solucione problemas de hardware e reconstrua seu array completamente depois disso.

informação relacionada