Usando 'badblocks' em discos modernos.

18

Eu quero usar badblocks para verificar meus HDDs e gostaria de receber esclarecimentos sobre sua operação.

Alguém pode explicar as melhores opções para usar com -b e -c ? Eu incluí suas definições da página man, mas não tenho certeza se tamanhos maiores seriam benéficos para discos modernos com 64MB de RAM e 4k setores.

-b block-size       Specify the size of blocks in bytes. The default is 1024. 
-c number of blocks the number of blocks which are tested at a time. The default is 64

Em segundo lugar, gostaria de saber se o teste em modo de gravação é mais completo do que o modo não-destrutivo de leitura-gravação?

Por fim, quantas reatribuições setoriais do SMART são aceitáveis / os drives com contagens de realocação diferentes de zero devem ser imediatamente substituídos?

    
por Yoren 04.01.2013 / 17:44

3 respostas

17

Pergunta 1:

Com relação à opção -b : isso depende do seu disco. Os discos modernos e grandes têm blocos de 4 KB, caso em que você deve definir -b 4096 . Você pode obter o tamanho do bloco a partir do sistema operacional , e também é normalmente obtida lendo as informações do disco fora da etiqueta, ou pesquisando o número do modelo do disco. Se -b estiver definido como algo maior que o tamanho do bloco, a integridade dos resultados badblocks poderá ser comprometida (ou seja, você poderá obter falso-negativos: nenhum bloco defeituoso encontrado quando ainda existir). Se -b estiver definido como algo menor que o tamanho de bloco da sua unidade, a velocidade da execução de badblocks poderá ser comprometida. Não tenho certeza, mas pode haver outros problemas com a configuração de -b para algo menor que seu tamanho de bloco, já que não está verificando a integridade de um bloco inteiro, pode ainda ser possível obter falso-negativos se for definido muito pequeno.

A opção -c corresponde a quantos blocos devem ser verificados de uma só vez. Lote de leitura / escrita, basicamente. Essa opção não afeta a integridade de seus resultados, mas afeta a velocidade na qual badblocks é executado. badblocks irá (opcionalmente) gravar, ler, armazenar em buffer, verificar, repetir para cada N blocos, conforme especificado por -c . Se -c for definido como muito baixo, isso fará com que as execuções de badblocks demorem muito mais do que o normal, pois o enfileiramento e o processamento de uma solicitação de I / O incorrem em sobrecarga eo disco também pode impor sobrecarga adicional por solicitação. Se -c estiver definido como muito alto, badblocks poderá ficar sem memória. Se isso acontecer, badblocks falhará rapidamente depois de iniciado. Considerações adicionais aqui incluem badblocks runs paralelas: se você estiver executando badblocks em várias partições no mesmo disco (má ideia) ou em vários discos no mesmo canal de IO, provavelmente você vai querer ajustar -c para algo sensivelmente alto, dada a memória disponível para badblocks , para que as execuções paralelas não lutem por largura de banda IO e possam paralelizar de uma maneira sã.

Pergunta 2:

Ao contrário do que outras respostas indicam, o teste -w do modo de gravação não é mais ou menos confiável do que o teste não destrutivo de leitura-gravação, mas é duas vezes mais rápido, ao custo de ser destrutivo para todos os seus dados. Vou explicar porquê:

No modo não destrutivo, badblocks faz o seguinte:

  1. Leia os dados existentes, soma-os (leia novamente, se necessário) e armazene-os na memória.
  2. Escreva um padrão predeterminado (substituível com a opção -p , embora geralmente não seja necessário) para o bloco.
  3. Leia o bloco de volta, verificando se os dados lidos são iguais aos do padrão.
  4. Grave os dados originais de volta no disco.
    • Não tenho certeza sobre isso, mas também provavelmente relê e verifica se os dados originais foram gravados com êxito e ainda as somas de verificação para a mesma coisa.

No modo destrutivo ( -w ), badblocks apenas executa as etapas 2 e 3 acima. Isso significa que o número de operações de leitura / gravação necessárias para verificar a integridade dos dados é reduzido pela metade. Se um bloco é ruim, os dados estarão errados em qualquer um dos modos. É claro que, se você se preocupa com os dados armazenados em sua unidade, deve usar o modo não destrutivo, pois -w apagará todos os dados e deixará os padrões badblocks 'gravados no disco.

Ressalva: se um bloco está indo ruim, mas ainda não foi completamente eliminado, alguns pares de verificação de leitura / gravação podem funcionar, e outros não. Nesse caso, o modo não destrutivo pode fornecer uma indicação mais confiável da "instabilidade" de um bloco, já que ele realiza dois conjuntos de verificação de leitura / gravação (talvez - veja o tópico na etapa 4). Mesmo que o modo não destrutivo seja mais confiável dessa forma, é apenas mais confiável por coincidência . A maneira correta de verificar se há blocos que não são totalmente ruins, mas não podem sustentar várias operações de leitura / gravação, é executar badblocks várias vezes sobre os mesmos dados, usando a opção -p .

Pergunta 3:

Se a SMART estiver realocando setores, você provavelmente deve considerar a substituição da unidade o mais rápido possível. Drives que perdem alguns setores não sempre continuam a perdê-los, mas a causa geralmente é um drive muito usado que fica magneticamente fraco ou cabeças / motores defeituosos resultando em leituras / gravações imprecisas ou com falha. A decisão final depende de você, é claro: com base no valor dos dados na unidade e na confiabilidade necessária dos sistemas executados, você pode decidir mantê-la ativa. Eu tenho alguns drives com blocos ruins conhecidos que estão girando com avisos SMART há anos no meu servidor de arquivos, mas eles são armazenados em um cronograma tal que eu poderia lidar com uma falha total sem muita dor.

    
por 28.11.2013 / 17:30
1

1) Se o seu disco moderno usa tamanho de setor diferente de 512b - então você precisa definir esse tamanho com a opção -b (ou seja, -b 4096 ). Sem essa opção, seu cheque será executado muito mais lentamente, pois cada setor real será testado várias vezes (8 vezes no caso do setor 4k). Também como mencionado Olivier Dulac em comentário à pergunta - block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.

A opção -c implica em quantos setores são tentados de uma só vez. Pode ter alguma implicação no desempenho e o valor desse desempenho pode depender do modelo de disco específico.

2) write-mode test - No meu entender, ele só verificará se você tem um erro ruim ou um erro ruim (também conhecido como Degradação de Dados Silenciosos, put-rot, decaimento de mídia de armazenamento, setores UNC)

3) Eu não confiaria no relatório SMART no momento. É mais importante como os valores mudam com o tempo. Veja também uma pesquisa das Tendências de falha em uma população de grandes unidades de disco do Google e aqui estão algumas discussão dele. Aqui está uma citação da pesquisa:

Despite this high correlation, we conclude that models based on SMART parameters alone are unlikely to be useful for predicting individual drive failures.

Em relação a menções por outros para substituição de disco - você pode ter um problema de disco não ruim, mas Degradação de Dados Silenciosos (podridão de bits, decaimento de mídia de armazenamento, setores UNC). Nesse caso, não faz sentido substituir o disco, mas é útil executar a leitura / gravação dos mesmos dados no disco. Você poderia procurar aqui como poderia ser resolvido.

Se você tem um erro muito ruim, você pode tentar reparticionar a unidade da mesma forma que a área ruim está localizada em qualquer partição. Para mim, essa abordagem foi útil e esse disco ruim foi usado por muito tempo sem problemas.

    
por 19.09.2013 / 12:12
0

Eu deixaria -b e -c como padrão, a menos que você tenha um motivo específico para alterá-los. Você provavelmente poderia definir -b para 4096 se o seu disco tiver 4k de tamanho de bloco.

Sugiro que você execute primeiro os badblocks com o teste rw não destrutivo. Se encontrar algum setor defeituoso, o disco está quebrado e deve ser substituído. Se ele não encontrar nenhum bloco ruim no não-destrutivo, mas você ainda suspeitar que ele tenha badblocks, então execute o teste rw destrutivo.

Lastly how many SMART sector re-allocations are acceptable / should drives with non-zero reallocation counts be immediately replaced?

Eu substituiria a unidade assim que os setores fossem substituídos.

    
por 24.05.2013 / 15:35