md0: alteração de capacidade detectada de 0 a… md0: tabela de partições desconhecida, mas o sistema inicializa [fechado]

0

Então eu tive um problema com o meu servidor rodando o Ubuntu 14.04 e 3x1T configurado com um software RAID. Forcei mdadm a montar o RAID apenas com dois discos, adicionei o disco ausente de volta ao array RAID e o sistema recriou o RAID e tudo ficou bem ..

E agora aqui está o problema. Toda vez que o servidor inicia, vejo essas mensagens

[    2.440341] md0: detected capacity change from 0 to 482848079872
[    2.460418]  md0: unknown partition table

Aguarda alguns segundos e depois monta as partições como deveria e está tudo bem.

Aqui estão mais algumas informações:

mdadm -D /dev/md0 /dev/md0:

        Version : 0.90   Creation Time : Sat Feb 26 10:39:28 2011  
     Raid Level : raid5  
     Array Size : 1921873792 (1832.84 GiB 1968.00 GB)   Used Dev Size : 960936896   (916.42 GiB 984.00 GB)    Raid Devices : 3   Total Devices  
: 3 Preferred Minor : 0  
    Persistence : Superblock is persistent  

    Update Time : Fri Jan 30 19:40:00 2015  
          State : clean   Active Devices : 3 Working Devices : 3  Failed Devices : 0     Spare Devices : 0

         Layout : left-symmetric  
     Chunk Size : 64K  

           UUID : 91c9bf9f:53a9ecfd:80cbc40e:2f20054f  
         Events : 0.602824  

    Number   Major   Minor   RaidDevice State  
       0       8        1        0      active sync   /dev/sda1  
       1       8       17        1      active sync   /dev/sdb1  
       2       8       33        2      active sync   /dev/sdc1    

fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes 255 heads, 63
sectors/track, 121601 cylinders, total 1953525168 sectors Units =
sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512
bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00072f13

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048  1921875967   960936960   fd  Linux raid
autodetect /dev/sda2      1921875968  1953523711    15823872   82 
Linux swap / Solaris

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 heads, 63
sectors/track, 121601 cylinders, total 1953525168 sectors Units =
sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512
bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8a37

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048  1921875967   960936960   fd  Linux raid
autodetect /dev/sdb2      1921875968  1953523711    15823872   82 
Linux swap / Solaris

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes 255 heads, 63
sectors/track, 121601 cylinders, total 1953525168 sectors Units =
sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512
bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e4fef

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *        2048  1921875967   960936960   fd  Linux raid
autodetect /dev/sdc2      1921875968  1953523711    15823872   82 
Linux swap / Solaris

Disk /dev/md0: 1968.0 GB, 1967998763008 bytes 2 heads, 4
sectors/track, 480468448 cylinders, total 3843747584 sectors Units =
sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512
bytes / 512 bytes I/O size (minimum/optimal): 65536 bytes / 131072
bytes Disk identifier: 0x00000000

**Disk /dev/md0 doesn't contain a valid partition table**

Por que está fazendo isso e o que posso fazer para corrigir isso?

    
por MiniMe 31.01.2015 / 01:43

1 resposta

1

Por quê? Os discos individuais são (talvez) bem, mas o super-bloco RAID é muito provavelmente danificado devido a uma falha de combinação de software / hardware.

O que fazer?

  1. Faça backup de tudo!
  2. Instale o smartmontools e um diagnóstico completo de todas as unidades

    sudo apt-get install smartmontools
    sudo smartctl --test=long /dev/sda
    sudo smartctl --test=short /dev/sdb
    sudo smartctl --test=short /dev/sdc
    

    espere até o teste terminar e, em seguida:

    sudo smartctl --all /dev/sda
    sudo smartctl --all /dev/sdb
    sudo smartctl --all /dev/sdc
    
  3. interprete os resultados e veja se algum (s) disco (s) precisa (m) substituir (deixe um comentário se não estiver claro, e mencionei para fazer o backup? )

  4. procure por blocos ruins:

    badblocks -nsv -o /dev/USB-Stick/BadBlocks.sda /dev/sda
    badblocks -nsv -o /dev/USB-Stick/BadBlocks.sdb /dev/sdc
    badblocks -nsv -o /dev/USB-Stick/BadBlocks.sdc /dev/sdc
    
  5. Se você encontrar blocos defeituosos, eles devem ser combinados em um arquivo ( badblocks.all . Não me esqueci de mencionar o backup?) e passado para todas as unidades:

    mkfs.ext4 -l /dev/USB-Stick/BadBlocks.all /dev/sda
    mkfs.ext4 -l /dev/USB-Stick/BadBlocks.all /dev/sdb
    mkfs.ext4 -l /dev/USB-Stick/BadBlocks.all /dev/sdc
    
  6. e recriam seu dispositivo :

    mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
    
  7. Restaurar backup

Notas:

  • Eu definitivamente não faria um mdadm --detail --scan , pois você copiará o erro.
  • Se isso é realmente crítico, você pode acabar com 4 & 5 se os resultados de 3 forem fantásticos, mas eu não em>!
  • Se isso for crítico, você pode acabar com 5 se os resultados de 3 & 4 forem fantásticos, mas eu não !
  • Se você tiver orçamento, elimine o software RAID5 e obtenha um hardware RAID5 (300-500 $)
  • Se você tiver o orçamento, adicione mais 2 discos e vá para RAID6
  • Se você tiver o fim de semana inteiro para fazer isso, faça um -wsv em vez de um -nsv

Ah, e eu não estava brincando sobre o backup!

    
por Fabby 31.01.2015 / 05:04