Existe uma boa ferramenta de teste de tortura de disco?

17

Ultimamente, tenho tido uma corrupção de sistema de arquivos estranha e rara, que suspeito ser culpa do meu SSD. Estou procurando uma boa ferramenta de teste de tortura de disco. Algo que pode gravar em todo o disco, depois voltar e lê-lo procurando gravações voadoras, blocos corrompidos, blocos revertidos para revisões mais antigas e outros erros. Isso seria muito mais do que aquilo que badblocksfaz. Existe tal ferramenta?

Nota: não estou procurando uma referência de desempenho e já verifiquei o status SMART; diz saudável e sem bloqueios relatados.

psusi
fonte
11
Você tentou? iozone.org
positron
11
Aliás, você não indicou qual hardware de sistema operacional / sistema está usando. Foi relatado que os SSDs sofrem a corrupção de que você está falando em alguns computadores Mac OS X quando configurados para desligar o disco rígido com freqüência para economizar energia. Isso causará corrupção. Eu imagino que o mesmo seja provável em outros combos OS / Hardware, se a unidade for forçada a dormir por meio de um desligamento do disco rígido emitido para um SSD. Eu verificaria a configuração do seu sistema antes de gravar seu SSD com o teste de unidade.
Ala Tang Wong
11
@WingTangWong, uau. Já preparei que muitos SSDs estragam quando perdem energia, mas quando solicitados a dormir? Essa é uma unidade de buggy. Vou ficar de olho nisso. Estou usando Linux e não tê-lo dormir, exceto talvez quando eu suspender o sistema ...
psusi

Respostas:

10

Pode ser um exagero, mas há o Phoronix Test Suite . Há também bonnie++, assim como hdparm.

Eu costumo usar hdparm, por exemplo:

% hdparm -Tt /dev/hdb
/dev/hdb:
 Timing buffer-cache reads:   128 MB in  1.25 seconds =102.40 MB/sec
 Timing buffered disk reads:  64 MB in 16.70 seconds =  3.83 MB/sec

Eu não chamaria hdparmum teste de tortura, mas isso lhe dá uma idéia aproximada do desempenho geral da unidade.

Determinando uma integridade de unidades

Depois de torturar a unidade, você pode usar este comando para verificar a saúde geral da unidade:

% sudo udisks --dump | grep -A 24 Updates
 Attribute       Current|Worst|Threshold  Status   Value       Type     Updates
===============================================================================
 raw-read-error-rate         103| 99| 34   good    5854752     Pre-fail Online 
 spin-up-time                100| 99|  0    n/a    0           Pre-fail Online 
 start-stop-count             98| 98| 20   good    2785        Old-age  Online 
 reallocated-sector-count    100|100| 36   good    0 sectors   Pre-fail Online 
 seek-error-rate              72| 60| 30   good    25872884688 Pre-fail Online 
 power-on-hours               89| 89|  0    n/a    424.4 days  Old-age  Online 
 spin-retry-count            100|100| 97   good    0           Pre-fail Online 
 power-cycle-count            98| 98| 20   good    2753        Old-age  Online 
 attribute-184               100|100| 99   good    0           Old-age  Online 
 reported-uncorrect          100|100|  0    n/a    0 sectors   Old-age  Online 
 attribute-188               100| 96|  0    n/a    0           Old-age  Online 
 high-fly-writes             100|100|  0    n/a    0           Old-age  Online 
 airflow-temperature-celsius  58| 42| 45 FAIL_PAST 42C / 108F  Old-age  Online 
 g-sense-error-rate          100|100|  0    n/a    124         Old-age  Online 
 power-off-retract-count     100|100|  0    n/a    15          Old-age  Online 
 load-cycle-count              1|  1|  0    n/a    248327      Old-age  Online 
 temperature-celsius-2        42| 58|  0    n/a    42C / 108F  Old-age  Online 
 hardware-ecc-recovered       45| 38|  0    n/a    5854752     Old-age  Online 
 reallocated-event-count      89| 89| 30   good    14877766723263 Pre-fail Online 
 current-pending-sector      100|100|  0    n/a    0 sectors   Old-age  Online 
 offline-uncorrectable       100|100|  0    n/a    0 sectors   Old-age  Offline
 udma-crc-error-count        200|200|  0    n/a    0           Old-age  Online 
 attribute-254               100|100|  0    n/a    0           Old-age  Online 

Ferramentas de integridade / manutenção do disco

Tivemos um bom sucesso ao usar as 2 ferramentas a seguir, onde trabalho. HDAT2 e Spinrite . O último é uma ferramenta comercial, mas o primeiro, HDAT2, é um projeto de código aberto.

Aqui estão algumas capturas de tela do HDAT2:

ss # 1 HDAT2

ss # 2 HDAT2

Você precisa reiniciar o sistema em ambos, para que fique offline enquanto você executa essas operações, mas ambos recuperaram unidades que falharam ou estavam começando a exibir falhas. A interface do usuário no HDAT2 é um pouco difícil de navegar, geralmente usamos as opções padrão em sua maior parte e tentamos não nos afastar muito.

slm
fonte
Os três primeiros mencionados são indicadores de desempenho. Já verifiquei o status SMART e é bom sem setores defeituosos, portanto parece que HDAT2 também não é o que estou procurando.
Psusi
Eu não descartaria o HDAT2, estávamos executando chkdsks e eles também estavam limpos, mas o disco ainda não era inicializável; a execução do HDAT2 foi capaz de encontrar problemas de superfície com o disco, que foi capaz de reparar o suficiente para tornar a unidade inicializável.
Slm
Um comentário tardio, mas estou tentando encontrar o código fonte do HDAT2, sem sucesso. Houve uma alteração recente no licenciamento?
i336_
4

Bonnie ++ vem à mente:

Portanto, dependendo da configuração de hardware da sua caixa:

bonnie++ -d /path/to/mounted/ssd -r your-system-ram-size-in-MB

Exemplo:

# For a 32GB system with the SSD formatted and mounted at /mnt/mounted-ssd-001
bonnie++ -d /mnt/mounted-ssd-001 -r 32000

Deve dar ao seu dispositivo um bom teste de estresse. Você pode personalizá-lo também.

Observe que, com um SSD, quando um bloco defeituoso pode ser remapeado automaticamente pelo hardware da unidade, dependendo da unidade com a qual você está trabalhando. Além disso, um teste de tortura diminui a vida útil de gravação do seu SSD. Portanto, use a seu próprio critério.

EDITAR:

Adicionando uma observação sobre falhas de SSD, já que foi apontado que o Bonnie ++ estresse testa, mas não rastreia erros. A maneira como os SSDs "remapearam blocos defeituosos" é diferente da maneira como os discos rígidos fazem o remapeamento. O modo como isso depende depende inteiramente de qual marca / marca / modelo de SSD você possui:

  • Os SSDs baratos simplesmente falham, porque eles não têm capacidade de remapear ou porque não têm como separar os blocos flash com falha. Eles ficam suspensos ou ficam offline e não voltam a ficar online.
  • SSD (s) de médio porte sem capacidade disponível pode gerar alertas Smartd ou talvez até gerar erros de dispositivo de bloco no nível do SO quando um bloco com falha é detectado. No entanto, quando a falha ocorrer, o tamanho registrado do SSD mudará. Isso pode resultar em um erro e o dispositivo ficar offline pelo sistema operacional ou pode resultar na suspensão do dispositivo e na necessidade de ser puxado e reinserido para que seja reconhecido novamente. Ao registrar novamente, o tamanho do bloco disponível no dispositivo será diminuído.
  • Os SSDs de ponta com capacidade disponível remapearão os blocos ruins nos bastidores e poderão gerar alertas / avisos no nível do sistema operacional. Quando a capacidade disponível acabar, o dispositivo provavelmente falhará ao longo das linhas do (s) SSD (s) de médio porte.

Quando o SSD se redimensiona devido ao isolamento de blocos defeituosos, pode ser necessário fazer o seguinte para reviver a unidade, se o firmware da unidade não fizer automaticamente as atualizações apropriadas automaticamente:

http://communities.intel.com/message/145676

A menos que a ferramenta de teste de estresse e registro de erros seja projetada especificamente com SSD (s), você está apenas gastando a vida útil do dispositivo.

EDITAR:

Com base nas informações das respostas acima, sugira substituir o cabo por um melhor ou substituir a unidade (substituição da RMA / garantia), pois esse tipo de erro no nível do sistema de arquivos do sistema operacional não é normal.

Além disso, se sua unidade suportar, você poderá aumentar a quantidade de espaço reservada para o tratamento de erros:

http://www.thomas-krenn.com/en/wiki/SSD_Over-provisioning_using_hdparm

Wing Tang Wong
fonte
Essa é uma referência de desempenho. Pode dar à unidade um treino, mas acho que não detecta erros.
psusi
A maneira como os SSDs funcionam, a detecção de erros ocorre em uma de várias formas, dependendo da marca / modelo do SSD: Erro Smartd se um bloco for remapeado e a capacidade sobressalente for usada (sem falhas), a capacidade do dispositivo será reduzido porque uma seção do armazenamento flash está com falha (pode causar erros inteligentes, erros de sistema de arquivos, dispositivo pode travar o barramento ao ficar offline. Ao puxar / reinserir, a unidade está disponível novamente, mas pode ser reformatada ) e o SSD pode simplesmente parecer travar sem remapear (o dispositivo deixa de responder mesmo após a reinserção). O caminho falha não equiv é HD
Ala Tang Wong
11
os erros não são detectados pela unidade, daí a necessidade de uma ferramenta de teste. Ele se manifesta pelo sistema de arquivos sendo remontado ro e pelo e2fsck encontrando e corrigindo muitos erros nos metadados. Também tive alguns dos meus arquivos de pacote de repositório git corrompidos. É uma corrupção silenciosa que acontece talvez uma vez por mês ou dois. No começo, pensei que fosse um bug envolvendo o TRIM, já que não me lembro disso antes de ativá-lo, então desliguei-o e ainda está acontecendo.
Psusi
Alguns problemas em potencial: cabo com defeito ou disco com defeito. Você pode testar o cabo defeituoso da unidade substituindo o cabo por outro. Eu tive isso no passado e substituí-lo por um cabo com melhor especificação funcionou. No caso de uma unidade defeituosa, faça o RMA ou envie para reparo de garantia.
Wing Tang Wong
11
o problema é provar que é um disco ruim (ou realmente, um bug no firmware) e não dizer, um bug no kernel. Se fosse um cabo ruim, ele se manifestaria como erros sata ecc em vez de corrupção silenciosa aleatória.
Psusi
3

Entendo que isso tenha mais de um ano, mas para o benefício de qualquer pessoa que leia o encadeamento no futuro, espero que o software necessário (d) ainda não exista fora do HP Labs:

"Entendendo a robustez dos SSDs sob falha de energia" https://www.usenix.org/system/files/conference/fast13/fast13-final80.pdf

Substituindo a injeção de falha de energia por um evento de escolha (ou nada, no caso de detectar erros intermitentes de firmware), e parece que este software a detectaria. Infelizmente, não acho que exista uma alternativa, senão a HP provavelmente não teria escrito algo internamente.

É uma pena, já que eu também precisei de algo assim para provar problemas no ambiente virtual; onde eu suspeito que as gravações confirmadas não chegaram ao disco físico. Seria ótimo poder testar a pilha de armazenamento assim, não apenas necessariamente SSDs. Ainda não encontrei algo adequado.

Chris Murray
fonte
2
(de comentário anônimo) Embora o lado do hardware precise ser replicado, não vejo razão para que a parte de verificação de software desse documento não possa ser reproduzida usando fio no modo cliente / servidor com gatilhos. Veja github.com/axboe/fio/blob/master/HOWTO (10.0 Verificação e gatilhos) para obter detalhes. O fio pode ser feito para usar E / S sem buffer ou periodicamente em uma variedade de padrões úteis que podem ser verificados posteriormente (é até possível salvar um arquivo de estado para que a verificação possa ocorrer após diferentes invocações de fio).
Archemar
1

Use a ferramenta de teste do fabricante, é a melhor maneira de testar um HD, pois ele pode acessar os testes de baixo nível, remapear setores defeituosos, testar todo o status de integridade inteligente (especialmente para um SSD, existem muitos registros desconhecidos para a maioria de nós). mas pode ajudar o fabricante a ver o status do disco rígido)

O hirensCD tem muitas ferramentas de teste, mas acho que não foi atualizado para as habilitadas para SSD; portanto, verifique diretamente o site do fabricante. Alguns suportam linux, outros podem exigir um liveCD do Windows (verifique o hirenCd novamente) ou a inicialização a partir de um pendrive (freedos, SO especial, etc.)

A maioria das ferramentas HD antigas não é boa para testar SSD, como um setor nunca está nos mesmos lugares, é mapeado dinamicamente pelo firmware para espalhar as gravações por toda a unidade. Portanto, se eles escrevem testes, você está apenas gravando ciclos de gravação em vez de realmente testar o disco.

Os testes de leitura não queimam o SSD, mas também podem realmente não testar todos os setores do SSD, novamente devido ao firmware ocultar o layout real.

higuita
fonte