Guide de validation des disques durs avant mise en production
Première étape : Tests S.M.A.R.T.
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology / Technologie d'auto-surveillance, d'analyse et de rapport) est un système de surveillance intégré aux disques durs qui détecte et signale divers indicateurs de fiabilité dans le but de prévoir les défaillances matérielles.
Nous utiliserons smartmontools pour cette étape afin d'obtenir l'état du disque dur avant de le soumettre au test de stress. Le paquet dont vous aurez besoin d'installer s'appelle smartmontools :
Vous pouvez suivre la progression de n'importe lequel des tests suivants avec cette commande : smartctl -a /dev/sdX
La progression (en pourcentage) du test se trouve sur la ligne Self-test execution status:
La valeur zéro (0) signifie que notre test est terminé ou qu'aucun test n'est en cours d'exécution. Vous pouvez toujours interrompre un test avec smartctl -X /dev/sdX
Remplacez X par la lettre de votre lecteur
Test court
Le test court effectue un diagnostic rapide des composants essentiels du disque (électronique, têtes de lecture, secteurs critiques).
smartctl -t short /dev/sdX

Environ 2 minutes pour un disque dur de 4 To.
Test de transport
Le test de transport détecte les dommages survenus pendant l'expédition (chocs, vibrations). Recommandé pour les disques neufs.
smartctl -t conveyance /dev/sdX

Environ 5 minutes pour un disque dur de 4 To.
Test long
Le test long analyse l'intégralité de la surface du disque, secteur par secteur. C'est le test le plus complet.
smartctl -t long /dev/sdX

Environ 500 minutes pour un disque dur de 4 To. Ce test peut prendre beaucoup de temps, selon la taille de votre disque dur.
Deuxième étape : Mise sous contrainte du disque dur
Préparation
Cette étape doit être effectuée via SSH, en utilisant tmux. Cela permettra de maintenir le test en cours même si la connexion est perdue. Activez le service SSH sur TrueNAS (Paramètres système -> Services -> SSH)
Test de stress du disque dur
sudo badblocks -b 4096 -wvs /dev/sdX
-b définit la taille de bloc -w effectue un test destructif, ce qui signifie qu'il SUPPRIMERA toutes les données présentes sur ce disque -v affiche les informations détaillées -s affiche la progression
badblocks effectue 4 passes :
- Première passe : test avec le motif 0xaa (10101010)
- Puis lecture et comparaison
- Deuxième passe : test avec le motif 0x55 (01010101)
- Puis lecture et comparaison
- Troisième passe : test avec le motif 0xff (11111111)
- Puis lecture et comparaison
- Quatrième passe : test avec le motif 0x00 (00000000)
- Puis lecture et comparaison
Si vous voulez tester en une seule passe :
sudo badblocks -wsv -t random -p 1 /dev/sdX
Pour lancer le test sur d'autres disques durs, appuyez sur Ctrl + B puis sur ", cela divisera l'écran, vous pourrez alors exécuter badblocks sur le disque suivant. Vous pouvez diviser l'écran autant de fois que vous le souhaitez.
Après avoir lancé badblocks pour tous vos disques durs, vous pouvez laisser la connexion SSH ouverte ou la fermer. Pour vous reconnecter plus tard, reconnectez-vous en SSH à TrueNAS et exécutez tmux attach
Exemple de résultat de badblocks pour des disques durs en bon état :
truenas# badblocks -b 4096 -wvs /dev/sda
Checking for bad blocks in read-write mode
From block 0 to 976754645
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: done
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found. (0/0/0 errors)
Troisième étape : Résultats
Une fois le test de stress badblocks terminé, nous devons effectuer un autre test long sur chaque disque dur pour vérifier qu'aucun problème n'est apparu suite au stress intensif.
smartctl -t long /dev/sdX
Une fois le test long terminé, il est temps d'obtenir nos résultats. Nous les obtenons avec cette commande :
smartctl -A /dev/sdX (Notez le A majuscule)
Les champs importants sont les lignes Reallocated_Sector_Ct, Current_Pending_Sector et Offline_Uncorrectable. Toutes ces valeurs doivent avoir une RAW_VALUE de 0, même si le champ VALUE affiche 200. Tout résultat supérieur à 0 devrait être une raison de demander un RMA.
Résultat de smartctl -A /dev/sdX pour des disques durs en bon état :


