Pourquoi ce disque SSD échoue-t-il avec de mauvais secteurs et était-il prévisible?

15

Remarque: cette question a été précédemment fermée comme hors sujet. Vous pouvez lire la discussion . Mes raisons de le demander ici sont:

  • Ce lecteur se trouve dans un serveur de cache de contenu hors ligne pour les écoles de la Zambie rurale.
  • Les serveurs sont créés à partir d'images de disque et tout le contenu est remplaçable.
  • Cela doit être bon marché parce que les écoles zambiennes ont un budget limité et il y en aura beaucoup.
  • Il doit également être fiable car il pourrait être de 8 heures dans chaque sens sur de mauvaises routes à remplacer.
  • Je ne suis pas autorisé à demander ici quels disques ne sont pas des "merdes ultra-bon marché".
  • Nous effectuons donc nos propres recherches et expérimentations sur des disques répondant à ces critères.
  • Mon incapacité à réparer les secteurs défectueux en les écrasant (réallocation automatique) a défié mes hypothèses et je voulais savoir pourquoi.
  • Je pensais que peut-être un EFFACEMENT DE SÉCURITÉ pourrait réparer les mauvais secteurs, mais je voulais l'avis des autres avant de jeter le disque.
  • J'ai pensé que j'avais peut-être manqué quelque chose dans les données SMART qui aurait pu prédire l'échec.

Il s'agit d'un disque SSD Kingston de 240 Go qui fonctionnait bien sur site depuis environ 3 mois et qui a soudainement développé de mauvais secteurs:

smartctl 5.41 2011-06-09 r3365 [i686-linux-3.2.20-net6501-121115-1cw] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     KINGSTON SVP200S3240G
Serial Number:    50026B7228010E5C
LU WWN Device Id: 5 0026b7 228010e5c
Firmware Version: 502ABBF0
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ACS-2 revision 3
Local Time is:    Tue Mar  5 17:10:24 2013 CAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x02) Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    (  48) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x0021) SCT Status supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   084   084   050    Pre-fail  Always       -       10965286670575
  5 Reallocated_Sector_Ct   0x0033   100   100   003    Pre-fail  Always       -       16
  9 Power_On_Hours          0x0032   000   000   000    Old_age   Always       -       46823733462185
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       127
171 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
174 Unknown_Attribute       0x0030   000   000   000    Old_age   Offline      -       131
177 Wear_Leveling_Count     0x0000   000   000   000    Old_age   Offline      -       1
181 Program_Fail_Cnt_Total  0x0032   000   000   000    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   000   000   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   000   000   000    Old_age   Always       -       49900
194 Temperature_Celsius     0x0022   033   078   000    Old_age   Always       -       33 (Min/Max 21/78)
195 Hardware_ECC_Recovered  0x001c   120   120   000    Old_age   Offline      -       235163887
196 Reallocated_Event_Count 0x0033   100   100   003    Pre-fail  Always       -       16
201 Soft_Read_Error_Rate    0x001c   120   120   000    Old_age   Offline      -       235163887
204 Soft_ECC_Correction     0x001c   120   120   000    Old_age   Offline      -       235163887
230 Head_Amplitude          0x0013   100   100   000    Pre-fail  Always       -       100
231 Temperature_Celsius     0x0013   100   100   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0000   000   000   000    Old_age   Offline      -       363
234 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       208
241 Total_LBAs_Written      0x0032   000   000   000    Old_age   Always       -       208
242 Total_LBAs_Read         0x0032   000   000   000    Old_age   Always       -       1001

SMART Error Log not supported
SMART Self-test Log not supported
SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Maintenant, j'obtiens de mauvais blocs à certains endroits du disque:

root@iPad2:~# badblocks /dev/sda -v
Checking blocks 0 to 234431063
Checking for bad blocks (read-only test): 8394752 done, 1:15 elapsed
8394756 done, 1:21 elapsed
8394757 done, 1:23 elapsed
8394758 done, 1:24 elapsed
8394759 done, 1:27 elapsed
...
190882871one, 29:49 elapsed
190882888one, 29:53 elapsed
190882889one, 29:54 elapsed
190882890one, 29:56 elapsed
190882891one, 29:58 elapsed
done                                
Pass completed, 80 bad blocks found.

Ils semblent être reproductibles et la réallocation automatique échoue, ils ne peuvent donc pas être corrigés en leur écrivant:

root@iPad2:~# badblocks /dev/sda -wvf 8394756 8394756
/dev/sda is apparently in use by the system; badblocks forced anyway.
Checking for bad blocks in read-write mode
From block 8394756 to 8394756
Testing with pattern 0xaa: 8394756
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, 1 bad blocks found.

Et je reçois des erreurs comme celle-ci dans les journaux système:

ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
ata1.00: irq_stat 0x40000000
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/08:00:08:30:00/00:00:01:00:00/40 tag 0 ncq 4096 in
         res 51/40:08:08:30:00/00:00:01:00:00/40 Emask 0x409 (media error) <F>
ata1.00: status: { DRDY ERR }
ata1.00: error: { UNC }
ata1.00: configured for UDMA/133
sd 0:0:0:0: [sda] Unhandled sense code
sd 0:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:0:0: [sda]  Sense Key : Medium Error [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
        72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
        01 00 30 08 
sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
sd 0:0:0:0: [sda] CDB: Read(10): 28 00 01 00 30 08 00 00 08 00
end_request: I/O error, dev sda, sector 16789512
Buffer I/O error on device sda, logical block 2098689
ata1: EH complete

Maintenant, je ne comprends pas pourquoi la réallocation automatique échoue sur ce disque. La smartctlsortie me semble très bien. Seuls 16 secteurs ont été réaffectés, ce n'est pas beaucoup du tout. Je ne vois aucune raison légitime pour laquelle ce lecteur refuse de réaffecter des secteurs. Ce modèle de SSD est-il juste cassé ou mal conçu?

Remarques:

  • l'attribut 174 est "une perte de puissance inattendue" selon les documents de Kingston.
  • 131 pertes de puissance inattendues sont assez graves.
  • l'attribut 187 (Reported_Uncorrect) est 49900 sur un maximum possible de 65535
  • la température la plus élevée jamais atteinte est assez élevée à 78 ° C

Les compteurs SMART les plus intéressants sont cachés par Kingston sur ce lecteur. Mais nous pouvons déduire le nombre de secteurs de secours à partir de l'attribut 196. Reallocated_Event_Count, qui a la formule suivante pour la valeur normalisée:

100 -(100* RBC / MRC)
RBC = Retired Block Count (Grown)
MRE = Maximum reallocation count

Étant donné que la valeur normalisée est 100, cela implique que RBC << MRE, nous sommes donc loin d'avoir épuisé tous les secteurs disponibles pour la réaffectation.

qris
la source
3
Vos données SMART n'indiquent aucun problème significatif. Avez-vous testé ce disque sur un contrôleur différent avec un câble différent pour éliminer les autres possibilités de problèmes matériels?
Michael Hampton
1
Je n'ai pas encore essayé un autre contrôleur / câble, car certains secteurs lisent correctement de manière répétitive et d'autres se reproduisent de manière répétée. J'en déduis que le défaut est dans le lecteur, pas avec le contrôleur ou le câble.
qris
1
Votre déduction est erronée car la même chose pourrait se produire avec un mauvais contrôleur ou câble (bien que le câble devrait être un peu plus erratique, mais ça vaut quand même la peine d'essayer).
gparent
3
@gparent La déduction n'est pas nécessairement fausse; juste la logique qui a amené la conclusion. Le lecteur est peut-être le coupable, mais ses raisons de penser sont donc peu fondées. Dans tous les cas, il doit tester sur un autre contrôleur / câble comme suggéré.
Chris S
Oui, c'est ce que je pensais que je venais de dire. Je pense que vous pouvez considérer en toute sécurité toute différence comme faisant partie d'une barrière linguistique, car je suis entièrement d'accord avec votre commentaire.
gparent

Réponses:

2

Les SSD bon marché semblent avoir de sérieux problèmes de qualité. Vous trouverez de nombreux utilisateurs qui ont des problèmes avec votre lecteur particulier. Cependant, je pense que les vendeurs vendent également différents disques (par exemple avec d'autres puces / contrôleurs NAND) sous la même étiquette. Ainsi, chaque lecteur peut se comporter différemment.

Les valeurs SMART ne donnent aucune indication que le disque tomberait en panne bientôt. D'après mon expérience, c'est la même chose: des erreurs de lecteur se produisent soudainement, puis le disque tombe en panne.

Quelles sont vos raisons pour lesquelles vous utilisez des SSD? Je vois les avantages des SSD car il n'y a pas de pièces mécaniques et comme ils sont étanches à la poussière et produisent moins de chaleur. Mais je vois aussi beaucoup d'inconvénients.

Par exemple, le nombre d'écritures dans une seule cellule de mémoire qui, même avec un niveau d'usure, peut être atteint rapidement sur un volume occupé, par exemple lorsque vous utilisez un système de fichiers avec journalisation.

Et l'électronique est également affectée par une humidité élevée ou des températures élevées - les mêmes que pour les disques durs conventionnels.

Pourquoi ne pas utiliser des disques durs conventionnels moins chers à la place et (si le raid n'est pas requis) expédier le serveur avec des disques de rechange qui ne sont pas connectés jusqu'à ce qu'ils soient nécessaires en remplacement (déjà présents dans le boîtier du serveur ou montés dans une cage remplaçable à chaud de sorte que le disque peut être utilisé sur différents serveurs). Ensuite, ils pourraient se préparer par un script sur le terrain ou à distance (si possible).

Tant que les disques durs conventionnels ne sont pas sous tension, le transport vers leur destination peut être difficile ...

S'il existe plusieurs serveurs scolaires / clients permanents et un réseau fiable / redondant, peut-être qu'un système de fichiers distribué pourrait également aider à créer un serveur de cache à sécurité intégrée (par exemple en utilisant glusterfs).

Reiner Rottmann
la source
Merci Brian, j'accepte cette réponse car je n'ai pas de meilleure réponse. D'après mon expérience avec les disques durs, les secteurs peuvent être réaffectés et donc la récupération est possible. Vous avez raison sur les raisons d'utiliser des SSD. L'étanchéité à la poussière est un gros problème pour la Zambie. Les disques ne seront pas écrits souvent, la plupart du contenu est statique. L'électronique à l'état solide est moins affectée par la chaleur et l'humidité que la rouille en rotation. Les disques durs RAIDing nous étaient venus à l'esprit, mais nous espérions que les SSD seraient plus fiables et permettraient ainsi d'économiser de l'argent. Peut-être que nous avions tort. Et les écoles ont une connectivité très médiocre, donc glusterfs est sorti.
qris