Warum versagt dieses SSD-Laufwerk mit fehlerhaften Sektoren und war dies vorhersehbar?

15

Hinweis: Diese Frage wurde zuvor als "Off-Topic" geschlossen. Sie können die Diskussion lesen . Meine Gründe, es hier zu fragen, sind:

  • Dieses Laufwerk befindet sich in einem Offline-Content-Cache-Server für Schulen im ländlichen Sambia.
  • Die Server werden aus Datenträgerabbildern erstellt und der gesamte Inhalt kann ersetzt werden.
  • Es muss billig sein, weil die sambischen Schulen nur über begrenzte Mittel verfügen und es viele davon geben wird.
  • Es muss auch zuverlässig sein, da es möglicherweise 8 Stunden dauern kann, jede Strecke auf schlechten Straßen zu ersetzen.
  • Ich darf hier nicht fragen, welche Laufwerke kein "ultra-billiger Mist" sind.
  • Wir forschen und experimentieren selbst an Laufwerken, die diese Kriterien erfüllen.
  • Meine Unfähigkeit, die fehlerhaften Sektoren durch Überschreiben zu reparieren (automatische Neuzuweisung), widersprach meinen Annahmen und ich wollte wissen, warum.
  • Ich dachte, vielleicht könnte eine SICHERHEITSLÖSCHUNG die fehlerhaften Sektoren reparieren, wollte aber die Meinung anderer einholen, bevor ich das Laufwerk verwerfe.
  • Ich dachte, ich hätte möglicherweise etwas in den SMART-Daten verpasst, das den Fehler hätte vorhersagen können.

Dies ist eine SSD-Festplatte mit 240 GB von Kingston, die vor Ort etwa drei Monate lang einwandfrei funktioniert hat und plötzlich fehlerhafte Sektoren entwickelt hat:

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.

Jetzt erhalte ich an bestimmten Stellen der Festplatte fehlerhafte Blöcke:

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.

Sie scheinen wiederholbar zu sein, und die automatische Neuzuweisung schlägt fehl. Sie können daher nicht durch Schreiben behoben werden:

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.

Und ich bekomme solche Fehler in den Systemprotokollen:

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

Jetzt verstehe ich nicht, warum die automatische Neuzuweisung auf dieser Festplatte fehlschlägt. Die smartctlAusgabe sieht für mich gut aus. Nur 16 Sektoren wurden neu zugeordnet, das sind überhaupt nicht viele. Ich kann keinen legitimen Grund dafür erkennen, warum sich dieses Laufwerk weigert, Sektoren neu zuzuweisen. Ist dieses SSD-Modell kaputt oder schlecht designt?

Anmerkungen:

  • Attribut 174 ist nach Kingstons Angaben "Unerwarteter Stromausfall".
  • 131 unerwartete Leistungsverluste sind ziemlich schlimm.
  • Attribut 187 (Reported_Uncorrect) ist 49900 von einem möglichen Maximum von 65535
  • Die höchste Temperatur aller Zeiten liegt bei 78 ° C

Die interessantesten SMART-Zähler werden von Kingston auf diesem Laufwerk ausgeblendet. Die Anzahl der Ersatzsektoren können wir jedoch dem Attribut 196 entnehmen. Reallocated_Event_Count, das die folgende Formel für den normalisierten Wert hat:

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

Da der normalisierte Wert 100 ist, impliziert dies, dass RBC << MRE, so dass wir weit davon entfernt sind, alle verfügbaren Sektoren für eine Neuzuweisung ausgeschöpft zu haben.

qris
quelle
3
Ihre SMART-Daten weisen nicht auf signifikante Probleme hin. Haben Sie diese Festplatte auf einem anderen Controller mit einem anderen Kabel getestet , um die anderen Möglichkeiten von Hardwareproblemen auszuschließen?
Michael Hampton
1
Ich habe noch keinen anderen Controller / Kabel ausprobiert, da einige Sektoren gut und andere Fehler wiederholbar lesen. Daraus schließe ich, dass der Fehler im Laufwerk liegt, nicht am Controller oder am Kabel.
Qris
1
Ihr Abzug ist falsch, weil genau dasselbe mit einem fehlerhaften Controller oder Kabel passieren kann (obwohl das Kabel etwas unregelmäßiger sein sollte, aber es lohnt sich trotzdem, es zu versuchen).
Eltern
3
@gparent Der Abzug ist nicht unbedingt falsch; nur die Logik, die den Abschluss brachte. Der Antrieb mag der Schuldige sein, aber seine Gründe für diese Überlegung haben wenig Grundlage. In jedem Fall sollte er, wie empfohlen, an einem anderen Controller / Kabel testen.
Chris S
Ja, das habe ich gerade gesagt. Ich denke, Sie können Unterschiede als Teil einer Sprachbarriere bedenken, da ich mit Ihrem Kommentar völlig einverstanden bin.
Eltern

Antworten:

2

Billige SSDs scheinen ernsthafte Qualitätsprobleme zu haben. Sie werden viele Benutzer finden, die Probleme mit Ihrem Laufwerk haben. Ich denke jedoch, dass die Anbieter auch andere Laufwerke (z. B. mit anderen NAND-Chips / Controllern) unter dem gleichen Label verkaufen. Daher kann sich jedes Laufwerk anders verhalten.

Die SMART-Werte geben keinen Hinweis darauf, dass das Laufwerk bald ausfallen würde. Nach meiner Erfahrung ist es dasselbe: Plötzlich treten Laufwerksfehler auf und dann fällt die Festplatte aus.

Was sind Ihre Gründe, warum Sie SSDs verwenden? Ich sehe die Vorteile von SSDs darin, dass es keine mechanischen Teile gibt und dass sie staubdicht sind und weniger Wärme produzieren. Allerdings sehe ich auch viele Nachteile.

ZB die Anzahl der Schreibvorgänge in eine einzelne Speicherzelle, die selbst mit einem Abnutzungsgrad schnell auf einem ausgelasteten Datenträger erreicht werden können, z. B. wenn Sie ein Dateisystem mit Journal verwenden.

Auch die Elektronik ist - wie bei herkömmlichen Festplatten - von hoher Luftfeuchtigkeit oder hohen Temperaturen betroffen.

Verwenden Sie stattdessen günstigere konventionelle Festplatten und (falls kein RAID erforderlich ist) schicken Sie den Server mit Ersatzlaufwerken, die erst verbunden werden, wenn sie als Ersatz benötigt werden (bereits im Servergehäuse vorhanden oder in einem Hot-Swap-Käfig montiert) Die Festplatte kann auf verschiedenen Servern verwendet werden. Dann könnten sie sich durch ein Skript vor Ort oder (wenn möglich) von einem entfernten Standort aus vorbereiten lassen.

Solange herkömmliche Festplatten nicht eingeschaltet sind, kann der Transport zum Zielort schwierig sein ...

Wenn es mehrere Schulserver / permanente Clients und ein zuverlässiges / redundantes Netzwerk gibt, kann möglicherweise auch ein verteiltes Dateisystem helfen, einen ausfallsicheren Cache-Server zu erstellen (z. B. mithilfe von glusterfs).

Reiner Rottmann
quelle
Danke Brian, ich akzeptiere diese Antwort, da ich keine besseren habe. Meine Erfahrung mit Festplatten ist, dass Sektoren neu zugeordnet werden können und daher eine Wiederherstellung möglich ist. Sie haben Recht mit den Gründen für die Verwendung von SSDs. Staubschutz ist für Sambia ein großes Thema. Die Laufwerke werden nicht oft beschrieben, der größte Teil des Inhalts ist statisch. Festkörperelektronik ist weniger von Hitze und Feuchtigkeit betroffen als wirbelnder Rost. RAIDing Festplatten waren uns eingefallen, aber wir hofften, dass SSDs zuverlässiger sind und somit Geld sparen. Vielleicht haben wir uns geirrt. Und Schulen haben eine sehr schlechte Konnektivität, so dass glusterfs aus ist.
Qris