RAID5 mdadm faulty / blk_update_request: erro de E / S

2

Eu tenho cinco imagens brutas dos discos de um servidor (armazenadas em um disco rígido externo). Cada um desses discos contém duas partições que são "Linux raid autodetect" (fd) e são membros do RAID1 (relacionado à inicialização; 3 dispositivos (2 ativos + 1 sobressalente)) e RAID5 (outros dados; 5 dispositivos). / p>

Tendo mapeado dispositivos usando kpartx (ou losetup , realmente não importa) eu corro mdadm para montar arrays RAID. RAID1 montado com sucesso e eu posso montá-lo de forma regular. O RAID5 está sendo montado (na verdade, "ativo", de acordo com /proc/mdstat ), mas:

  1. Todos os dispositivos são " defeituosos " e " removidos ";
  2. vejo erros adicionais em dmesg ( blk_update_request: I/O error, dev loop4, sector 16 ) após o qual recebo mais erros ( md: super_written gets error=-5 ; md/raid:md0: Disk failure on loop5, disabling device. );
  3. Não consigo montar o array RAID5 (é justo).

Eu tentei todas as sugestões que encontrei na Web:

  1. Use --force key - > não vai funcionar;
  2. Use --create e --assume-clean - > não vai funcionar;
  3. Use --zero-superblock (que é semelhante a 2) - > não vai funcionar.
  4. Se verificar com --examine - todos os dispositivos membros estão no estado clean , a soma de verificação é correta e os números dos eventos são iguais . li>

Como por 2 e 3 - parece que eu não posso escrever para esses dispositivos mapeados. Eu strace 'd --zero-superblock e, em write() syscall, eu tenho EPERM (Operation not permitted) . Não consigo imaginar o que me impede de gravar em dispositivos mapeados (de acordo com o dispositivo lsblk --fpm RAID5 é gravável brw-rw---- ).

Outro detalhe peculiar. Acima eu mencionei que recebo I/O error no setor 16 . Eu verifiquei o que está localizado no setor 16 (offset 8192 bytes) em cada dispositivo RAID5 (mapeado). Apareceu que começa com o número mágico 0x6d746962 (ASCII: " bitm ") - provável bitmap relacionado:

00002000  62 69 74 6d 04 00 00 00  48 a7 15 94 56 79 23 ed  |bitm....H...Vy#.|<br/>
00002010  7d 7b 33 bc b9 f8 71 7a  d0 03 00 00 00 00 00 00  |}{3...qz........|<br/>
00002020  d0 03 00 00 00 00 00 00  00 b0 d8 0d 00 00 00 00  |................|

Não tenho certeza se está relacionado (pelo menos eu não sei como brincar com bitmap enquanto monto array), mas está claro que o sistema não pode ter sucesso com blk_update_request operation (provavelmente ele não tem alguns direitos ou não consegue encontrar o que é necessário).

Eu de propósito não postarei parede de toras - por favor, me avise se for necessário. Vou colocar algumas informações que descrevam melhor a situação.

md0 : active raid5 dm-6[5](F) dm-8[4](F) dm-2[3](F) dm-4[2](F) dm-10[1](F)
      464609280 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/0] [_____]
      bitmap: 0/1 pages [0KB], 65536KB chunk

E aqui está a partir de --detail output:

Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       2       0        0        2      removed
       4       0        0        4      removed
       6       0        0        6      removed
       8       0        0        8      removed

       1     252       10        -      faulty   /dev/dm-10
       2     252        2        -      faulty   /dev/dm-2
       3     252        4        -      faulty   /dev/dm-4
       4     252        8        -      faulty   /dev/dm-8
       5     252        6        -      faulty   /dev/dm-6

Hoje é o terceiro dia consecutivo das minhas "tentativas mais difíceis" ... Gostaria de agradecer a qualquer um dos seus conselhos. Obrigado.

    
por user3388087 19.06.2018 / 23:29

1 resposta

0

Então, finalmente, consegui montar o RAID5. Como apareceu, o problema estava no seguinte (eu não mencionei isso na minha pergunta). As imagens dos discos que eu tinha estavam no formato E01, divididas em várias partes. Partições de mapeamento anteriores Eu usei ewfmount (incluindo -X allow_root ) para "montar" vários E01s em um arquivo. Descobriu que FUSE , apesar de você ver suas imagens montadas como RW , de alguma forma as bloqueia, tornando os dispositivos read-only (mesmo se você editar /etc/fuse.conf ).

Uma das minhas tentativas, durante a solução de problemas, foi exportar vários E01s para cinco imagens formatadas dd / raw e trabalhar diretamente com elas, excluindo ewfmount do 'esquema'.

Após a conclusão da exportação, mapeei os discos brutos usando kpartx e consegui montar o RAID5 de maneira regular, sem problemas.

Múltiplos problemas Operation not permitted ou I/O error eram óbvios e tinham que dar uma dica, mas eu, devido a razões desconhecidas, neguei-os (até que tentei modificar alguns setores em dispositivos mapeados com dd diretamente e falhei).

É isso aí.

    
por 24.06.2018 / 22:10