Encontre arquivos afetados por blocos ruins com md-raid5 e LVM

8

Eu tenho feito muita pesquisa sobre esse assunto nas últimas semanas - e acho que estou perto de completar minha recuperação, tanto quanto possível, pelo menos. Para encurtar a história, vou descrever o problema sem preencher todos os minúsculos detalhes técnicos.

Suponha que você tenha vários arrays RAID-5, cada um com 8 discos, e então os agrupe em um único volume lógico do LVM. Um dos discos, em seguida, morre em um dos arrays e durante a reconstrução, você encontra um erro de leitura irrecuperável em um segundo disco nesse array. E, claro, não há backups.

Eu já gravei os dados da unidade com o URE em uma nova unidade, apenas 5 K de dados estão danificados, todos agrupados em uma área muito pequena do disco. Eu também estou assumindo que uma vez que eu remontar aquele dispositivo MD usando a cópia ddrescue, multiplicarei o tamanho da minha perda de dados pelo número de unidades sem paridade em minha matriz (então 35K de perda de dados), como a paridade cálculos para as faixas usando esses blocos serão incorretos.

Li e entendi o procedimento no link para determinar quais arquivos seriam corrompidos por uma situação como essa, mas meu problema é descobrir exatamente quais blocos serão corrompidos após a reconstrução do md para usar como entrada para o debugfs. Descobrir todos os deslocamentos em que os metadados da loja md e lvm também não serão divertidos, mas acho que posso lidar com essa parte.

Posso simplesmente multiplicar todos os meus números de bad-block por 7 e depois presumir que os seguintes 6 blocos após cada um deles também serão ruins, e então seguir as instruções do LVM no guia linkado acima?

E, para deixar claro - não estou preocupado em reparar ou mapear novamente os blocos defeituosos, como descreve o guia, substituí o disco e deixarei que o md lide com esse tipo de coisa. Eu só quero saber quais arquivos do sistema de arquivos ext4 foram afetados.

    
por Rob 27.11.2012 / 01:10

1 resposta

2

Você ainda está procurando ajuda sobre isso? Uma maneira de encontrar arquivos afetados é colocar o sistema de arquivos em / dev / null. Qualquer arquivo contendo um erro será reclamado pelo tar. Algo como:

tar cf / dev / null / arquivo / system / to / check

pode fazer isso por você.

    
por 15.01.2013 / 06:15