Perché questa unità SSD si guasta con settori danneggiati ed era prevedibile?


15

Nota: questa domanda era stata precedentemente chiusa come fuori tema. Puoi leggere la discussione . Le mie ragioni per chiederlo qui sono:

  • Questa unità si trova in un server di cache dei contenuti offline per le scuole nelle zone rurali dello Zambia.
  • I server vengono creati dalle immagini del disco e tutto il contenuto è sostituibile.
  • Deve essere economico perché le scuole dello Zambia hanno un budget limitato e ce ne saranno molte.
  • Deve anche essere affidabile perché potrebbe essere di 8 ore a tratta su strade dissestate da sostituire.
  • Non sono autorizzato a chiedere qui quali unità non sono "schifezze ultra-economiche".
  • Quindi stiamo facendo la nostra ricerca e sperimentazione su unità che soddisfano questi criteri.
  • La mia incapacità di riparare i settori danneggiati sovrascrivendoli (riallocazione automatica) ha sfidato i miei presupposti e volevo sapere perché.
  • Ho pensato che forse un CANCELLAZIONE DI SICUREZZA potrebbe risolvere i settori danneggiati, ma volevo opinioni degli altri prima di distruggere l'unità.
  • Pensavo di aver perso qualcosa nei dati SMART che avrebbe potuto prevedere l'errore.

Questo è un disco SSD Kingston da 240 GB che funzionava bene sul sito per circa 3 mesi e ha improvvisamente sviluppato settori danneggiati:

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.

Ora ottengo blocchi danneggiati in alcuni punti del disco:

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.

Sembrano ripetibili e la riallocazione automatica non riesce, quindi non possono essere riparati scrivendo a loro:

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.

E ottengo errori come questo nei registri di sistema:

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

Ora non capisco perché la riallocazione automatica non riesca su questo disco. L' smartctloutput mi sembra tutto a posto. Sono stati riallocati solo 16 settori, non molti. Non riesco a vedere alcun motivo legittimo per cui questa unità si rifiuta di riallocare settori. Questo modello di SSD è solo rotto o mal progettato?

Appunti:

  • l'attributo 174 è "Perdita di potenza imprevista" secondo i documenti di Kingston.
  • 131 inattese perdite di potenza sono piuttosto cattive.
  • l'attributo 187 (Reported_Uncorrect) è 49900 su un massimo possibile di 65535
  • la temperatura più alta di sempre è abbastanza alta a 78 ° C

I contatori SMART più interessanti sono nascosti da Kingston su questa unità. Ma possiamo dedurre il numero di settori di riserva dall'attributo 196. Reallocated_Event_Count, che ha la seguente formula per il valore normalizzato:

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

Poiché il valore normalizzato è 100, ciò implica che RBC << MRE, quindi non siamo in alcun modo vicini ad aver esaurito tutti i settori disponibili per la riallocazione.


3
I tuoi dati SMART non indicano alcun problema significativo. Hai testato questo disco su un controller diverso con un cavo diverso per eliminare le altre possibilità di problemi hardware?
Michael Hampton

1
Non ho ancora provato un altro controller / cavo, perché alcuni settori leggono ripetutamente bene e altri si ripetono in modo errato. Ne sto deducendo che l'errore è nell'unità, non nel controller o nel cavo.
Qris

1
La tua deduzione è errata perché la stessa cosa potrebbe accadere con un controller o un cavo difettoso (anche se il cavo dovrebbe essere un po 'più irregolare, ma vale la pena provare comunque).
gparent

3
@gparent La detrazione non è necessariamente errata; solo la logica che ha portato alla conclusione. L'unità potrebbe essere il colpevole, ma le sue ragioni per pensare hanno così poche basi. In ogni caso, dovrebbe provare su un altro controller / cavo come suggerito.
Chris S

Sì, è quello che pensavo di aver appena detto. Penso che tu possa considerare tutte le differenze in modo sicuro come parte di una barriera linguistica perché sono completamente d'accordo con il tuo commento.
gparent

Risposte:


2

Gli SSD economici sembrano avere seri problemi di qualità. Troverai molti utenti che hanno problemi con il tuo disco particolare. Tuttavia, penso che i venditori vendano anche unità diverse (ad es. Con altri chip / controller NAND) con la stessa etichetta. Quindi ogni unità può comportarsi diversamente.

I valori SMART non indicano che l'unità si guasterà presto. Nella mia esperienza è lo stesso: improvvisamente si verificano errori di unità e quindi il disco si guasta.

Quali sono i motivi per cui usi SSD? Vedo i vantaggi degli SSD in quanto non vi sono parti meccaniche e sono resistenti alla polvere e producono meno calore. Tuttavia vedo anche molti svantaggi.

ad es. il numero di scritture su una singola cella di memoria che anche con il livellamento dell'usura può essere raggiunto rapidamente su un volume occupato, ad es. quando si utilizza un filesystem con journaling.

E l'elettronica è anche influenzata dall'umidità elevata o dalle alte temperature, lo stesso dei dischi rigidi convenzionali.

Perché non utilizzare invece dischi rigidi convenzionali più economici e (se non è richiesto un raid) spedire al server unità di riserva che non sono collegate fino a quando non sono necessarie come sostituzione (già presenti nella custodia del server o montate in una gabbia hot-swap in modo che il disco può essere utilizzato in diversi server). Quindi potrebbero essere preparati da uno script sul campo o da remoto (se possibile).

Finché i dischi rigidi convenzionali non sono alimentati, il trasporto verso la destinazione può essere difficile ...

Se ci sono più server scolastici / client permanenti e una rete affidabile / ridondante, forse un filesystem distribuito potrebbe anche aiutare a creare un server cache fail-safe (ad es. Usando glusterfs).


Grazie Brian, accetto questa risposta perché non ne ho di migliori. La mia esperienza con i dischi rigidi è che i settori possono essere riallocati e quindi il recupero è possibile. Hai ragione sui motivi dell'utilizzo di SSD. L'impermeabilità alla polvere è un grosso problema per lo Zambia. Le unità non verranno scritte spesso, la maggior parte del contenuto è statico. L'elettronica a stato solido è meno influenzata dal calore e dall'umidità rispetto alla ruggine che gira. Ci erano venuti in mente dischi rigidi RAID, ma speravamo che gli SSD fossero più affidabili e quindi risparmiassero denaro. Forse abbiamo sbagliato. E le scuole hanno una connettività molto scarsa, quindi i glusterfs sono fuori.
Qris
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.