Que font les tests SMART et comment fonctionnent-ils?

27

man smartctl États (SNIPPED pour la brièveté):

La première catégorie , appelée tests "en ligne". La deuxième catégorie de tests est appelée test "hors ligne". Normalement, le disque suspend les tests hors ligne pendant les accès au disque, puis le reprend automatiquement lorsque le disque serait autrement inactif. La troisième catégorie de tests (et la seule catégorie pour laquelle le mot «test» est vraiment un choix approprié) est le «self» testing.

Active ou désactive le test hors ligne automatique SMART, qui analyse le lecteur toutes les quatre heures pour détecter les défauts de disque. Cette commande peut être exécutée pendant le fonctionnement normal du système.

Qui exécute le micrologiciel du lecteur de test? Quels types de tests s'agit-il - le micrologiciel lit-il / écrit-il sur disque - que se passe-t-il exactement? Est-il sûr d'invoquer des tests dans le système d'exploitation (Linux) ou peut-on planifier un test pour plus tard - comment cela se produit - lorsque vous redémarrez le système d'exploitation à l'invite du BIOS («test hors ligne»)? Où sont affichés les résultats - les journaux SMART?

Réintégrer Monica - M. Schröder
la source

Réponses:

38
  1. Le micrologiciel du lecteur exécute les tests.

  2. Les détails des tests peuvent être lus par exemple sur www.t13.org/Documents/UploadedDocuments/technical/e01137r0.pdf, qui résume ainsi les éléments des tests courts et longs:

    1. un segment électrique dans lequel le variateur teste sa propre électronique. Les tests particuliers de ce segment sont spécifiques au fournisseur, mais à titre d'exemples: ce segment peut inclure des tests comme un test de mémoire tampon, un test de circuits de lecture / écriture et / ou un test des éléments de tête de lecture / écriture.

    2. un segment de recherche / asservissement dans lequel le variateur teste sa capacité à trouver et asservir sur des pistes de données. La méthodologie particulière utilisée dans ce test est également spécifique au fournisseur.

    3. un segment de lecture / vérification dans lequel le lecteur effectue une lecture de lecture d'une certaine partie de la surface du disque. La quantité et l'emplacement de la surface numérisée dépendent de la contrainte de temps de réalisation et sont spécifiques au fournisseur.

    4. Les critères de l'autotest étendu sont les mêmes que ceux de l'autotest court, à deux exceptions près: le segment (3) de l'autotest étendu doit être une analyse de lecture / vérification de toutes les zones de données utilisateur, et il n'y a pas délai maximum pour que le variateur effectue le test.

  3. Il est sûr d'effectuer des tests non destructifs lorsque le système d'exploitation est en cours d'exécution, bien qu'un certain impact sur les performances soit probable. Comme le smartctldit la page de manuel pour les deux -t shortet -t long,

Cette commande peut être donnée en fonctionnement normal du système (sauf si elle est exécutée en mode captif)

Si vous appelez le mode captif avec -C, smartctlsuppose que le lecteur peut être occupé jusqu'à l'indisponibilité. Cela ne doit pas être effectué sur un lecteur que le système d'exploitation utilise.

Comme le suggère également la page de manuel, les tests hors ligne (ce qui signifie simplement des tests d'arrière-plan périodiques) ne sont pas fiables et n'ont jamais officiellement fait partie des spécifications ATA. Je lance le mien depuis cron, à la place; de cette façon, je sais quand ils devraient se produire, et je peux l'arrêter si j'en ai besoin.

  1. Les résultats peuvent être vus dans la smartctlsortie. En voici un avec un test en cours:
[root @ risby images] # smartctl -a / dev / sdb
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.1.6-201.fc22.x86_64] (version locale)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org
[...]
Numéro 1 de révision de la structure du journal d'auto-test SMART
Num Test_Description Status Remaining LifeTime (heures) LBA_of_first_error
# 1 Extended offline Terminé sans erreur 00% 20567 -
# 2 Extended offline Terminé sans erreur 00% 486 -

Numéro de révision de la structure de données du journal d'auto-test sélectif SMART 0
Remarque: le numéro de révision non 1 implique qu'aucun auto-test sélectif n'a jamais été exécuté
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
   1 0 0 Self_test_in_progress [90% restant] (0-65535)
   2 0 0 Not_testing
   3 0 0 Not_testing
   4 0 0 Not_testing
   5 0 0 Not_testing

Notez deux précédents tests terminés (à 486 et 20567 heures de mise sous tension, respectivement) et le test en cours (terminé à 10%).

MadHatter soutient Monica
la source
1
Notez également que si vous utilisez smartmontools, le démon smartd peut gérer les tests périodiques sans avoir besoin d'un cronjob. Il gérera également le signalement des problèmes de lecteur, bien qu'une surveillance proactive puisse être préférée.
GnP
8

Les implémentations SMART dépendent du fabricant, des journaux parfois assez étendus sont disponibles via la smart -acommande. Voici ce que j'obtiens sur l'un de mes disques à chiffrement automatique d' Hitachi :

SMART Error Log Version: 1
ATA Error Count: 3

Error 3 occurred at disk power-on lifetime: 2543 hours (105 days + 23 hours)
When the command that caused the error occurred, the device was active or idle.

After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
10 51 08 00 08 00 00  Error: IDNF at LBA = 0x00000800 = 2048

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
-- -- -- -- -- -- -- --  ----------------  --------------------
60 08 68 00 08 00 40 00      00:00:06.139  READ FPDMA QUEUED
27 00 00 00 00 00 e0 00      00:00:06.126  READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00      00:00:06.125  IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00      00:00:06.125  SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00      00:00:06.125  READ NATIVE MAX ADDRESS EXT
...

Ce livre blanc éclaire les codes d'erreur apparaissant dans le journal. Les abréviations d'erreur courantes sont:

  • AMNF - Marque d'adresse introuvable
  • TONF - Piste 0 introuvable
  • ABRT - Commande abandonnée
  • IDNF - ID de secteur introuvable
  • UNC - Données non corrigeables
  • BBK - Mauvaise marque de bloc

Dans mon cas, l'erreur IDNF (ID non trouvée) peut être attribuée à un incident lorsque le disque a été branché via un adaptateur USB-à-SATA et s'est avéré être sous-alimenté, ce qui l'a empêché de rechercher correctement.

Dmitry Grigoryev
la source