Como os selftests SMART estão relacionados a badblocks?

14

A ferramenta smartctl permite iniciar um longo auto-teste ( smartctl -t long /dev/sda ). No entanto, há também badblocks que posso executar em uma unidade. Como estão os dois relacionados? Se os badblocks detectarem blocos defeituosos, a unidade atualizará automaticamente seus valores SMART (por exemplo, atualizando sua contagem de setores realocados)? Os badblocks podem substituir smartctl -t long ou vice-versa?

    
por Hongli Lai 09.05.2013 / 09:45

4 respostas

4

Eu tenho que discordar de voretaq7 - o SMART não é mágico. Quando você tem uma unidade e um dos seus setores fica ruim, você não poderá mais ler os dados dela. Portanto, é perfeitamente possível ter um arquivo ilegível em uma unidade de disco moderna. A SMART marcaria esse setor ilegível como "Atual pendente" e "Off-line incorrigível" quando seria acessado pela primeira vez após uma falha.

Mas quando este setor seria gravado novamente, ele seria remapeado para remapeamento de espaço, não marcado e um contador "Reallocated_Sector_Ct" aumentaria. Então uma unidade inteira seria legível novamente.

smartctl -t long test é útil - ele testará todo o espaço da unidade para setores ilegíveis e registrará e marcará como "Current Pending" e "Offline Uncorrectable" o primeiro setor defeituoso encontrado durante a execução. Estou configurando meus servidores para executar esse longo teste uma vez por semana em cada unidade. Isso não afeta muito as funções normais do drive, já que as solicitações do sistema operacional sempre têm prioridade sobre as verificações SMART.

Como em um servidor, sempre executo discos em espelhos RAID1, portanto, quando um teste longo encontra um setor defeituoso, posso reescrever seu conteúdo usando dados de outra unidade em um espelho, forçando a realocação.

badblocks também é útil às vezes - por exemplo, ele testará a unidade inteira e não será interrompido no primeiro erro. Pode testar uma única partição ou qualquer outra parte de uma unidade. Você pode usá-lo para verificar rapidamente se um bloco defeituoso foi realocado com sucesso.

    
por 27.09.2013 / 21:37
10

Como apontei na minha outra resposta , todos os discos rígidos modernos tem espaço de remapeamento disponível (porque especialmente em densidades de disco de hoje, nenhuma bandeja de unidade será perfeita - sempre haverá alguns defeitos que a unidade tem que remapear ao redor, até mesmo em novíssimo - nunca foi usado - veio-fora- as unidades assembly-line-into-my-hands).

Por causa disso, teoricamente, você deve ter uma falha SMART informada antes de algo como badblocks notifica (setores visíveis ao usuário final) em uma unidade.
Nos discos rígidos modernos, qualquer setor defeituoso visível ao usuário final (como pode ser reportado por badblocks ou detectado automaticamente pelo sistema operacional) é um suspiro final e um tremor de um disco que está morrendo.

Por fim, o SMART e o badblocks testam duas coisas diferentes, mas relacionadas:

O SMART é uma ferramenta de automonitoramento:

O disco rígido conhece algumas informações sobre seus parâmetros operacionais e tem algum conhecimento sobre o que é "normal" para alguns e "aceitável" para outros.
Se a unidade perceber que certos parâmetros são "anormais" ou "inaceitáveis", ela relatará uma condição de pré-falha - em outras palavras, a unidade ainda está funcionando, mas pode falhar em breve.

Por exemplo: o motor do fuso normalmente desenha 0,10 amperes, mas agora está atraindo 0,50 amps - um consumo anormalmente alto que pode indicar que o eixo está emperrando ou que o lubrificante permanente nos rolamentos se foi. Com o tempo, o motor não conseguirá superar a resistência e o inversor ficará emperrado.

Outro exemplo: a unidade tem 1000 blocos "remapear" para lidar com setores defeituosos. Ele utilizou 750 deles, e os engenheiros que construíram o drive determinaram que o número de remapeados indica algo internamente errado (mau travamento, falha de velhice, cabeça danificada) - o inversor reportará uma condição de pré-falha permitindo que você tenha tempo seus dados antes que o espaço de remapeamento acabe e setores defeituosos se tornem visíveis.

A SMART está procurando mais do que setores defeituosos - é uma avaliação mais abrangente da saúde da unidade. Você poderia ter um aviso de pré-falha SMART em uma unidade sem setores defeituosos e sem erros de leitura / gravação (por exemplo, o problema no motor do fuso que descrevi acima).

badblocks é uma ferramenta com um propósito específico (desatualizado): encontrar setores defeituosos.

badblocks vem de um tempo antes do remapeamento SMART e do setor defeituoso. Naquela época, sabíamos que os discos tinham imperfeições, mas a única maneira de mapeá-los para evitar o armazenamento acidental de dados era testar o disco com estressor, causar uma falha e depois lembrar de nunca mais colocar dados lá.

O motivo pelo qual eu digo que está desatualizado é porque a eletrônica nos drives modernos já faz o que o badblocks faz, internamente e algumas milhares de vezes mais rápido. badblocks basicamente permite que unidades antigas que não possuem eletrônica sofisticada mapeiam (ou ignorem) setores que falharam, mas os discos rígidos modernos já detectam setores com falha e os remapeiam para você.

Teoricamente, você poderia usar badblocks data para ter as falhas de remapeamento do sistema operacional (visível) como se seu disco moderno fosse um antigo disco Winchester, mas isso é contraproducente - Como eu disse anteriormente QUALQUER setores defeituosos detectados com badblocks em uma unidade moderna são uma causa para descartar a unidade inteira como defeituosa (ou prestes a falhar).

Os setores defeituosos visíveis indicam que a unidade está fora do espaço de remapeamento, o que é relativamente raro para os discos modernos, a menos que sejam antigos (próximos ao fim da vida útil) ou defeituosos (discos / cabeçotes ruins da fábrica).

Então, basicamente, se rodar badblocks em um disco antes de implementá-lo na produção faz você se sentir melhor, vá em frente e faça, mas se seu disco foi fabricado neste século e mostra um setor ruim visível, você deve descartá-lo o lixo (ou ligue para a garantia). Por meu dinheiro, o status SMART e defesa em profundidade é uma melhor utilização do meu tempo do que verificar manualmente os discos.

    
por 13.05.2013 / 19:35
5

Boas respostas a esta pergunta são

link

link

Ao contrário de outras respostas, acho que os badblocks não estão desatualizados, mas uma ferramenta muito útil. Uma vez eu atualizei meu pc com um novo disco rígido e ele começou a ficar instável. Levei um bom tempo para perceber, graças aos badblocks, que a superfície do disco tinha defeitos. Desde então, eu executo badblocks full-mode (destrutíveis!) Para cada novo disco rígido que eu comecei a usar e nunca tive esse problema novamente. Eu recomendo altamente um

tempo sudo badblocks -swvo sdX.log / sev / sdX

para cada novo disco rígido. Ele testará cada bit do disco algumas vezes para escrever e ler e, assim, poderá evitar muitos problemas posteriormente.

Durante este teste, os blocos defeituosos serão mapeados pela unidade. Portanto, a "Contagem do setor realocado" deve ser anotada antes e depois do teste e comparada com o limite SMART, pois ele informará sobre a integridade da unidade.

    
por 05.01.2016 / 17:26
2

badblocks é uma relíquia dos tempos antigos e não é estritamente útil, pode encontrar um setor atualmente ilegível, mas a coisa certa a fazer com um setor ruim é recuperar os dados do backup. O que pode ser feito se os dados não forem críticos para você é excluir o arquivo associado e escrever qualquer coisa nesse local, isso permitirá que o disco realoque o setor se achar necessário e continue trabalhando.

O auto-teste do disco também irá testar toda a mídia em busca de vários defeitos, deve usar limites mais baixos em comparação com o que é usado na operação normal para ver se o disco tem muitos pontos fracos e baseado na lógica do fornecedor pode decidir que o disco passou da sua vida útil e declarar que o teste falhou. Nesse ponto, você deve retirar todos os seus dados ou recuperá-los do backup e substituir o disco.

Se uma ação de disco (por badblocks ou operação normal) atingir um erro de leitura irrecuperável, o disco atualizará automaticamente seu contador de realocação pendente e quando a realocação for executada, ele atualizará a realocação pendente e os contadores realocados. Um dd simples também fará isso acontecer.

Se você precisar escolher entre os dois, use smartctl -t long, pois ele teria uma análise melhor do disco.

Eu também posso sugerir o uso do meu utilitário link do diskscan, ele funciona mais como badblocks, mas tenta avaliar se existem setores que estão indo mal, mais ou menos como um setor de audição que leva muito mais tempo para ler. Isso é indicativo de um problema de mídia em desenvolvimento e, em versões futuras, também pode oferecer uma tentativa automática de ajudar o disco a corrigir esse problema.

    
por 27.09.2013 / 20:00