web-dev-qa-db-fra.com

À quoi servent les tests SMART et comment cela fonctionne-t-il?

man smartctl indique (SNIPPED pour plus de concision):

Le première catégorie, appelé test "en ligne". Le deuxième catégorie des tests est appelé 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 SMART test hors ligne automatique, qui analyse le lecteur toutes les quatre heures pour 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-il - lorsque vous redémarrez le système d'exploitation à l'invite du BIOS ("test hors ligne")? Où sont les résultats affichés - SMART?

28
user176193
  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 tels qu'un tampon RAM, un test de circuit de lecture/écriture et/ou un test de lecture/écrire des éléments de tête.

    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 pendant que le système d'exploitation est en cours d'exécution, bien qu'un impact sur les performances soit probable. Comme le dit la page de manuel smartctl pour les deux -t short et -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, smartctl suppose que le disque peut être occupé jusqu'à l'indisponibilité. Cela devrait 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 cela devrait arriver, et je peux l'arrêter si j'en ai besoin.

  1. Les résultats peuvent être vus dans la sortie smartctl. En voici un avec un test en cours:
 [root @ risby images] # smartctl -a /dev/sdb[.____. depositedsmartctl 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 
 [...] 
 SMART Self-test log structure revision number 1 
 Num Test_Description Statut Durée de vie restante (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'autotest sélectif SMART 0 
 Remarque: le numéro de révision non 1 implique qu'aucun autotest sélectif n'a jamais été exécuté 
 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 
 1 0 0 Self_test_in_progress [90% restants] (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%).

39
MadHatter

Les implémentations SMART dépendent du fabricant, des journaux parfois assez volumineux sont disponibles via smart -a commande. Voici ce que j'obtiens sur l'un de mes disques à chiffrement automatique de 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 lecteur 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.

8
Dmitry Grigoryev