Existe-t-il un bon outil de test de torture en voiture?

17

J'ai eu récemment une corruption de système de fichiers étrange et rare que je soupçonne être la faute de mon SSD. Je recherche un bon outil de test de torture en voiture. Quelque chose qui peut écrire sur le disque entier, puis revenir en arrière et le lire à la recherche d'écritures volantes, de blocs corrompus, de blocs retournés à des révisions plus anciennes et d'autres erreurs. Ce serait bien plus que ce qui badblocksfait. Existe-t-il un tel outil?

Remarque Je ne recherche pas de référence de performances et j'ai déjà vérifié l'état SMART; dit sain et aucun mauvais bloc signalé.

psusi
la source
1
As-tu essayé? iozone.org
positron
1
Btw, vous n'avez pas indiqué quel matériel OS / système vous utilisez. Il a été signalé que les disques SSD subissent la corruption dont vous parlez sur certains box Mac OS X lorsqu'ils sont configurés pour éteindre le disque dur souvent pour économiser de l'énergie. Cela entraînera la corruption. J'imagine que la même chose est probable dans d'autres combos OS / matériel, si le lecteur est forcé de dormir via une mise hors tension du disque dur délivrée à un SSD. Je voudrais vérifier la configuration de votre système avant de graver votre SSD avec test de lecteur.
Wing Tang Wong
1
@WingTangWong, wow. Je suis prêt à ce que de nombreux disques SSD bousillent lorsqu'ils perdent de l'énergie, mais lorsqu'on leur demande de s'endormir? C'est un lecteur de buggy. Je garderai un œil sur cela. J'utilise Linux et je ne le fais pas dormir sauf peut-être quand je suspends le système ...
psusi

Réponses:

10

Peut-être exagéré, mais il y a Phoronix Test Suite . Il y a aussi bonnie++, ainsi que hdparm.

J'utilise habituellement hdparm, par exemple:

% 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

Je n'appellerais pas hdparmun test de torture, mais cela vous donne une idée approximative des performances globales du lecteur.

Déterminer la santé d'un disque

Après avoir torturé le lecteur, vous pouvez utiliser cette commande pour vérifier l'état général du lecteur:

% 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 

Outils de maintenance / de santé des disques

Nous avons eu beaucoup de succès en utilisant les 2 outils suivants où je travaille. HDAT2 et Spinrite . Ce dernier est un outil commercial mais le premier, HDAT2, est un projet open source.

Voici quelques captures d'écran de HDAT2:

SS # 1 HDAT2

SS # 2 HDAT2

Vous devez redémarrer votre système dans les deux afin qu'il soit hors ligne pendant que vous effectuez ces opérations, mais ils ont tous deux récupéré des disques qui étaient en panne ou commençaient à présenter des défaillances. L'interface utilisateur dans HDAT2 est un peu difficile à naviguer, nous avons généralement utilisé les choix par défaut pour la plupart et avons essayé de ne pas trop nous éloigner de là.

slm
la source
Les trois premiers que vous mentionnez sont des références de performance. J'ai déjà vérifié l'état SMART et il est bon sans mauvais secteurs, il semble donc que HDAT2 ne soit pas ce que je recherche non plus.
psusi
Je ne rejetterais pas HDAT2, nous exécutions des chkdsks et ils étaient également propres, mais le disque n'était toujours pas amorçable, l'exécution de HDAT2 a pu trouver des problèmes de surface avec le disque qu'il a pu réparer suffisamment pour rendre le lecteur amorçable.
slm
Un commentaire tardif, mais j'essaie de trouver le code source de HDAT2, sans succès. Y a-t-il eu un récent changement de licence?
i336_
4

bonnie ++ me vient à l'esprit:

Donc, selon la configuration matérielle de votre box:

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

Exemple:

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

Cela devrait donner à votre appareil un bon test de résistance. Vous pouvez également le personnaliser.

Notez qu'avec un SSD, lorsqu'un mauvais bloc se produit, il peut être remappé automatiquement par le matériel du lecteur, selon le lecteur avec lequel vous travaillez. En outre, un test de torture ronge la durée de vie en écriture de votre SSD. Donc, utilisez à votre discrétion.

ÉDITER:

Ajout d'une note sur les échecs SSD, car il a été souligné que Bonnie ++ teste les stress, mais ne suit pas les erreurs. La façon dont les disques SSD «remappent les mauvais blocs» est différente de la façon dont les disques durs effectuent le remappage. La façon dont cela fonctionne dépend entièrement de la marque / marque / modèle de SSD que vous avez:

  • Les disques SSD bon marché échouent simplement, car ils n'ont pas de capacité disponible pour le remappage ou parce qu'ils n'ont aucun moyen de séparer les blocs flash défaillants. Ils se bloqueront ou se déconnecteront et ne reviendront pas en ligne.
  • Les disques SSD de milieu de gamme sans capacité de réserve peuvent générer des alertes Smartd ou peut-être même générer des erreurs de périphérique de bloc au niveau du système d'exploitation lorsqu'un bloc défaillant est détecté. Cependant, lorsque l'échec se produit, la taille enregistrée du SSD change. Cela peut entraîner une erreur et la mise hors ligne de l'appareil par le système d'exploitation ou entraîner le blocage de l'appareil lui-même et son retrait et sa réinsertion pour qu'il soit à nouveau reconnu. Lors de la réinscription, la taille de bloc disponible de l'appareil sera diminuée.
  • Les SSD haut de gamme avec une capacité de réserve remapperont les blocs défectueux en arrière-plan et peuvent générer des alertes / avertissements au niveau du système d'exploitation. Lorsque la capacité de réserve est épuisée, le périphérique échouera probablement le long des lignes des SSD de milieu de gamme.

Lorsque le SSD se redimensionne en raison de l'isolement de blocs défectueux, vous devrez peut-être procéder comme suit pour réactiver le lecteur, si le micrologiciel du lecteur ne fait pas automatiquement les mises à jour appropriées automatiquement:

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

À moins que l'outil de test de stress et de journalisation des erreurs ne soit spécifiquement conçu pour les SSD, vous n'utilisez que la durée de vie de l'appareil.

ÉDITER:

Sur la base des informations des réponses ci-dessus, suggérez de remplacer le câble par un meilleur ou de remplacer le lecteur (remplacement RMA / Warrantee), car ce type d'erreur au niveau du système de fichiers du système d'exploitation n'est pas normal.

De plus, si votre lecteur le prend en charge, vous pouvez augmenter la quantité d'espace réservé pour la gestion des erreurs:

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

Wing Tang Wong
la source
C'est une référence de performance. Cela peut donner au lecteur un entraînement, mais je ne pense pas qu'il détecte les erreurs.
psusi
La façon dont les SSD fonctionnent, la détection des erreurs se présente sous plusieurs formes, selon la marque / le modèle du SSD: erreur Smartd si un bloc est remappé et qu'une capacité de réserve est utilisée (pas de défaut), la capacité de l'appareil est réduit car une section du stockage flash est défectueuse (peut provoquer des erreurs smartd, peut provoquer des erreurs de système de fichiers, peut entraîner le périphérique à bloquer le bus en se déconnectant. Lors de la traction / réinsertion, le lecteur est à nouveau disponible, mais peut avoir besoin d'être reformaté ), et le SSD peut simplement sembler se bloquer sans remappage (l'appareil ne répond plus même après réinsertion). Le chemin de l'échec n'est pas équivalent à HD
Wing Tang Wong
1
les erreurs ne sont pas détectées par le lecteur, d'où la nécessité d'un outil de test. Il se manifeste par le remontage du système de fichiers, et e2fsck recherche et corrige de nombreuses erreurs dans les métadonnées. J'ai également eu certains de mes fichiers de pack de référentiel git corrompus. C'est une corruption silencieuse qui se produit peut-être une fois par mois ou deux. Au début, je pensais que ce pourrait être un bogue impliquant TRIM car je ne me souviens pas de ce qui s'est passé avant de l'avoir activé, alors je l'ai désactivé et cela se produit toujours.
psusi
Quelques problèmes potentiels: mauvais câble de lecteur ou mauvais lecteur. Vous pouvez tester le mauvais câble de lecteur en remplaçant le câble par un autre. J'ai eu cela dans le passé et je l'ai remplacé par un câble de meilleure qualité. Dans le cas d'un mauvais disque, RMA ou envoyez-le pour réparation.
Wing Tang Wong du
1
le problème est de prouver qu'il s'agit d'un mauvais lecteur (ou vraiment, d'un bug dans le firmware) et non pas d'un bug dans le noyau. S'il s'agissait d'un mauvais câble, il se manifesterait par des erreurs ecc sata plutôt que par une corruption silencieuse aléatoire.
psusi
3

Je comprends que cela fait plus d'un an, mais pour le bénéfice de quiconque lira le fil à l'avenir, je m'attends à ce que le logiciel dont vous avez besoin (d) n'existe pas encore en dehors de HP Labs:

"Comprendre la robustesse des SSD sous Power Fault" https://www.usenix.org/system/files/conference/fast13/fast13-final80.pdf

Remplacer l'injection de panne de courant par un événement de choix (ou rien, dans le cas de la détection de bugs de firmware intermittents), et il semble que ce logiciel le détecterait. Malheureusement, je ne pense pas qu'il existe une alternative, sinon HP n'aurait probablement pas écrit quelque chose en interne.

C'est dommage, car j'ai également eu besoin de quelque chose comme ça pour prouver les problèmes dans l'environnement virtuel; où je soupçonne que les écritures validées n'ont pas réellement fait leur chemin vers le disque physique. Ce serait formidable de pouvoir tester la pile de stockage comme ceci, pas seulement les SSD. Je n'ai pas encore trouvé quelque chose de convenable.

Chris Murray
la source
2
(à partir d'un commentaire anonyme) Alors que le côté matériel devrait être répliqué, je ne vois aucune raison pour laquelle la partie de vérification logicielle de ce document ne pourrait pas être reproduite à l'aide de fio en mode client / serveur avec des déclencheurs. Voir github.com/axboe/fio/blob/master/HOWTO (10.0 Vérification et déclencheurs) pour plus de détails. fio peut être fait pour utiliser des E / S sans tampon ou synchroniser périodiquement dans une variété de modèles utiles qui peuvent ensuite être vérifiés (il est même possible d'enregistrer un fichier d'état afin que la vérification puisse avoir lieu après différentes invocations de fio).
Archemar
1

Utilisez l'outil de test du fabricant, c'est le meilleur moyen de tester un disque dur, car il peut accéder aux tests de bas niveau, remapper les mauvais secteurs, tester tout l'état de santé intelligent (spécialement pour un SSD, il existe de nombreux registres inconnus pour la plupart d'entre nous mais peut aider le fabricant à voir l'état du disque dur)

hirensCD possède de nombreux outils de test, mais je pense qu'il n'a pas été mis à jour vers ceux compatibles SSD, alors consultez directement le site Web du fabricant. Certains prennent en charge Linux, d'autres peuvent nécessiter un liveCD Windows (vérifier à nouveau le hirenCd) ou démarrer à partir d'une clé USB (FreeDos, OS spécial, etc.)

La plupart des outils HD plus anciens ne sont pas bons pour tester les SSD, car un secteur n'est jamais au même endroit, est mappé dynamiquement par le micrologiciel pour répartir les écritures sur tout le lecteur. Donc, s'ils écrivent des tests, vous gravez simplement des cycles d'écriture au lieu de vraiment tester le disque.

Les tests de lecture ne brûlent pas le SSD mais peuvent également ne pas vraiment tester tous les secteurs du SSD, encore une fois en raison du micrologiciel masquant la disposition réelle.

higuita
la source