Desejo usar badblocks para verificar meus HDDs e gostaria de esclarecer suas operações.
Alguém pode explicar as melhores opções para usar -b
e -c
? Incluí suas definições na página de manual, mas não tenho certeza se tamanhos maiores seriam benéficos para discos modernos com setores de 64 MB de RAM e 4k.
-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 do modo de gravação é mais completo do que o modo não destrutivo de leitura e gravação?
Por fim, quantas realocações do setor SMART são aceitáveis / as unidades com contagens de realocação diferentes de zero devem ser substituídas imediatamente?
linux
hard-drive
bad-blocks
Yoren
fonte
fonte
Respostas:
Questão 1:
No que diz respeito à
-b
opção: isso depende do seu disco. Discos grandes e modernos têm blocos de 4KB, nesse caso, você deve definir-b 4096
. Você pode obter o tamanho do bloco no sistema operacional e também é possível obtê- lo lendo as informações do disco fora do rótulo ou pesquisando no Google o número do modelo do disco. Se-b
for definido como algo maior que o tamanho do seu bloco, a integridade dosbadblocks
resultados poderá ser comprometida (ou seja, você poderá obter falso-negativos: nenhum bloco defeituoso foi encontrado quando ainda existe). Se-b
estiver definido como algo menor que o tamanho do bloco da sua unidade, a velocidade dabadblocks
execução poderá ser comprometida. Não tenho certeza, mas pode haver outros problemas com a configuração-b
para algo menor que o tamanho do seu bloco, já que não está verificando a integridade de um bloco inteiro, ainda será possível obter falso-negativos se ele estiver definido muito pequeno.A
-c
opção corresponde a quantos blocos devem ser verificados ao mesmo tempo. Leitura / escrita em lote, basicamente. Esta opção não afeta a integridade dos seus resultados, mas afeta a velocidade com que asbadblocks
execuções são executadas.badblocks
irá (opcionalmente) escrever, ler, armazenar em buffer, verificar, repetir para todos os N blocos, conforme especificado por-c
. Se-c
estiver definido muito baixo, isso fará com que suasbadblocks
execuções demorem muito mais que o normal, pois o enfileiramento e o processamento de uma solicitação de E / S separada implicam sobrecarga, e o disco também pode impor sobrecarga adicional por solicitação. Se-c
estiver definido muito alto,badblocks
pode ficar sem memória. Se isso acontecer,badblocks
falhará rapidamente após o início. Considerações adicionais aqui incluembadblocks
execuções paralelas : se você estiver executandobadblocks
contra várias partições no mesmo disco (má idéia) ou contra vários discos no mesmo canal de E / S, você provavelmente desejará sintonizar-c
algo sensivelmente alto, dada a memória disponível parabadblocks
que as execuções paralelas não lutem pela largura de banda de E / S e pode paralelizar de uma maneira sã.Questão 2:
Ao contrário do que as outras respostas indicam, o
-w
teste do modo de gravação não é mais ou menos confiável que o teste não destrutivo de leitura e gravação, mas é duas vezes mais rápido, com o custo de ser destrutivo para todos os seus dados. Vou explicar o porquê:No modo não destrutivo,
badblocks
faz o seguinte:-p
opção, embora geralmente não seja necessário) no bloco.No modo destrutivo (
-w
),badblocks
somente 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 estiver incorreto, os dados serão errôneos nos dois modos. Obviamente, se você se importa com os dados armazenados em sua unidade, deve usar o modo não destrutivo, pois-w
obliterará todos os dados e deixarábadblocks
os padrões 'gravados no disco.Ressalva: se um bloco está indo mal, mas ainda não está completamente desaparecido, alguns pares de verificação de leitura / escrita pode funcionar, e alguns não podem. Nesse caso, o modo não destrutivo pode fornecer uma indicação mais confiável da "empolgação" de um bloco, uma vez que ele faz dois conjuntos de verificação de leitura / gravação (talvez - veja o marcador na etapa 4). Mesmo que o modo não destrutivo seja mais confiável dessa maneira, é apenas mais confiável por coincidência . A maneira correta de verificar se há blocos que não são totalmente ruins, mas que não podem suportar várias operações de leitura / gravação, é executada
badblocks
várias vezes nos mesmos dados, usando a-p
opçãoQuestão 3:
Se o SMART estiver realocando setores, você provavelmente deve considerar a substituição da unidade o mais rápido possível. As unidades que perdem alguns setores nem sempre as perdem, mas a causa geralmente é uma unidade muito usada que fica magneticamente mole ou falha de cabeçotes / motores, resultando em leituras / gravações imprecisas ou com falha. A decisão final depende de você, é claro: com base no valor dos dados no inversor e na confiabilidade necessária dos sistemas em que é executado, você pode decidir mantê-lo. Eu tenho algumas unidades com blocos defeituosos conhecidos que rodam com avisos SMART há anos no meu servidor de arquivos, mas eles são salvos em um cronograma para que eu possa lidar com uma falha total sem muita dor.
fonte
-b
padrão é1024
? Isso parece meio estranho para mim. Por que não512
?ext2
. badblocks faz parte do e2fsprogs e foi originalmente planejado para preencher a lista de bad blocks de um sistema de arquivos ext2. Você deve executá-lo com o mesmo tamanho de bloco do FS para obter os números no formato correto para mkfs.ext2. TL; DR: razões históricas com as quais você não deve se preocupar.1) Se o seu disco moderno usa outro tamanho de setor que não seja 512b - é necessário definir esse tamanho com a
-b
opção (ie-b 4096
). Sem essa opção, seu cheque será muito mais lento, pois cada setor real será tentado várias vezes (8 vezes no caso do setor 4k). Também como mencionado Olivier Dulac no 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 tentam ao mesmo tempo. Pode ter alguma implicação no desempenho e o valor desse desempenho pode depender de um modelo de disco específico.2)
write-mode test
- No meu entender, só será verificado se você possui um erro grave ou grave (também conhecido como Degradação silenciosa de dados, podridão de bits, deterioração da 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. Também aqui estão as pesquisas do Google Failure Trends em uma grande população de unidades de disco e aqui estão algumas discussões sobre isso. Aqui é citado a partir de pesquisa:
Com relação a outras menções para substituição de disco - você pode não ter um problema de disco rígido ruim, mas a Degradação silenciosa de dados (rotação de bits, deterioração da 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ê pode ver aqui como isso pode ser resolvido.
Se você tiver um erro grave ou grave, tente reparticionar a unidade da mesma maneira que a área ruim está localizada fora de qualquer partição. Para mim, essa abordagem foi útil e esse disco ruim foi usado por muito tempo sem problemas.
fonte
-b
padrão é 1024. Se o seu disco usa um tamanho de setor diferente de 1024, o que é bastante comum fora dos sistemas de arquivos ext2, você deve especificar isso.Eu deixaria -b e -c como padrão, a menos que você tenha um motivo específico para alterá-los. Você provavelmente pode definir -b como 4096 se o seu disco tiver tamanhos de bloco de 4k.
Eu sugiro que você execute primeiro badblocks com o teste rw não destrutivo. Se encontrar setores defeituosos, o disco está quebrado e deve ser substituído. Se NÃO encontrar nenhum bloco defeituoso no não destrutivo, mas você ainda suspeitar que ele tenha um defeito, execute o teste destrutivo rw.
Eu substituiria a unidade assim que os setores fossem substituídos.
fonte
Isso vai para a diferença entre o modo de leitura de badblocks (não destrutivo) e o modo de gravação (destrutivo):
Uma unidade realocará apenas um setor defeituoso quando uma gravação falhar. Os erros de leitura dos arquivos só são "corrigidos" quando é feita uma tentativa de reescrever o arquivo. De outra forma. o bloco inválido permanece parte do arquivo, supondo que você possa recuperar algo. Os erros de leitura para tabelas de partição só podem ser "corrigidos" executando blocos defeituosos no modo de gravação e recriando a partição
Portanto, o modo de leitura informa onde estão os blocos defeituosos, mas não pode fazer nada sobre eles. O modo de gravação testa a integridade de cada setor e fará com que o disco aloque um bloco inválido, mas às custas da destruição dos dados. Faça sua escolha.
fonte
Para responder sua segunda pergunta sobre setores remapeados, isso depende. Estou falando do contexto de um usuário doméstico que (ocasionalmente) monitora esse tipo de coisa.
Aqui estão duas situações que enfrentei. Eu tinha um RAID5 de 6 unidades de 200 GB. Após uma falha de energia que resultou em luzes piscando, uma unidade mostrou 14 setores remapeados e registrou vários erros. Eu assisti a unidade e não houve mais erros registrados e a contagem do setor remapeado permaneceu estável. Concluí que a unidade sofria devido a um transiente de potência e não estava falhando. Continuei usando-o por anos. O RAID5 original foi retirado, mas eu tenho duas dessas unidades em serviço com cerca de 10 anos de energia em horas. Eles têm um punhado de setores remapeados. Eu uso dois deles espelhados para armazenar despejos de backup incrementais do meu backup principal. Dessa forma, o backup principal está vendo (principalmente) operações de leitura e as gravações estão indo para dispositivos diferentes. Se uma dessas unidades antigas falhar, a outra deve continuar. Se ambos falharem, Substituí-los por outra coisa e executar novamente o script de backup. O impacto se uma dessas unidades falhar é próximo de zero, então não me preocupo com setores remapeados.
Eu tinha um HD de 2 TB que era um de um par de unidades espelhadas e que começou a crescer setores remapeados. No começo, eram dezenas, depois centenas, depois milhares. Isso durou um período de anos. A outra unidade do par permaneceu saudável e, de fato, a derivação que falhou lentamente não foi eliminada da matriz. Eventualmente, substituí as duas unidades por 6 TB e a crescente contagem de setores remapeados se tornou um problema. Eu ainda tenho a unidade e ela ainda "funciona", mesmo com cerca de 4500 setores remapeados. Coloquei unidades como essa em um sistema de teste (como membro do RAID) para ver o que acontece quando alguém realmente morre. Eu tive algumas oportunidades de trabalhar com isso e, em todas as circunstâncias, a substituição ocorreu sem drama.
Eu tive uma falha na unidade no meu servidor de arquivos de backup principal. Não produziu nenhum aviso avançado, apenas parou de responder aos comandos SATA. Era membro de um ZFS RAIDZ2 e o substituí sem nenhum drama. De fato, no meu servidor de teste, substituí as unidades com falha sem desligar ou reiniciar o servidor.
Mais um ponto a ser observado, eu tenho backups no local e fora do local de todos os dados importantes. Se algum sistema for perdido, há duas cópias dos dados em outro lugar.
fonte