Come determinare il numero di cicli di scrittura o la durata prevista per SSD su Linux?


10

Abbiamo eseguito un SSD (Intel X25-M) in un server Linux (RHEL 5) per un po ', ma non abbiamo mai fatto nessuno sforzo per capire quanto carico di scrittura fosse sotto durante l'anno scorso. Esiste uno strumento sotto Linux per dirci approssimativamente quanto è stato scritto sul disco nel tempo o (ancora meglio) quanta usura ha accumulato? Sto solo cercando un suggerimento per vedere se è vicino alla morte o no ...

Risposte:


13

Gli SSD Intel mantengono le statistiche sulle scritture totali e sulla durata della sua vita probabilmente.

Quanto segue proviene da un Intel X25-M G2 da 160 GB (SSDSA2M160G2GC)

# smartctl -data -A /dev/sda
smartctl 5.40 2010-10-16 r3189 [x86_64-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  3 Spin_Up_Time            0x0020   100   100   000    Old_age   Offline      -       0
  4 Start_Stop_Count        0x0030   100   100   000    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       1
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       6855
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       68
192 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       30
225 Host_Writes_32MiB       0x0030   200   200   000    Old_age   Offline      -       148487
226 Workld_Media_Wear_Indic 0x0032   100   100   000    Old_age   Always       -       3168
227 Workld_Host_Reads_Perc  0x0032   100   100   000    Old_age   Always       -       1
228 Workload_Minutes        0x0032   100   100   000    Old_age   Always       -       1950295543
232 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   098   098   000    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   099    Pre-fail  Always       -       0

Il valore non elaborato Host_Writes_32MIB mostra quante unità di dati 32MiB sono state scritte su questa unità.

Il valore Media_Wearout_Indicator mostra una percentuale normalizzata di quanto è lunga la sua vita utile all'usura. Questo inizia a 100 (o 099, dimentico quale), e procede fino a 001, a quel punto Intel ritiene che l'unità abbia superato la sua vita utile. Intel utilizza l'MWI anche come parte dei reclami in garanzia: una volta che l'MWI raggiunge 001, la garanzia è scaduta.

Il MWI che raggiunge 001 non significa che l'azionamento si guasterà immediatamente! Intel avrà tolleranza integrata per gestire le variazioni nelle unità flash. Ho visto le unità durare ben oltre questo punto e sto attivamente testando l'usura di alcuni SSD Intel serie 320 per vedere quanto durano più a lungo.

Tuttavia, poiché la garanzia scade quando l'MDI raggiunge lo 001, sostituirò qualsiasi unità a quel punto.


Per riferimento futuro, Media_Wearout_Indicatorinizia a 100 per il mio SSD Intel serie 520.
pableu,

Vale la pena notare che anche se l'unità non "si guasta" una volta raggiunta 001, ad un certo punto in seguito (forse molto dopo), la capacità di alcune unità di conservare i dati in caso di interruzione dell'alimentazione si riduce a periodi di tempo sorprendentemente brevi . Penso che ci siano stati alcuni test di resistenza pubblicati online che hanno misurato questo.
sa289,

6

Le unità Corsair esportano anche un analogo indicatore percentuale di vita sinistra. Nel loro caso è l'attributo 231:

231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0

(Si noti che se smartctl lo sta visualizzando come temperatura, è necessario aggiornare il database del dispositivo. Sul mio sistema Debian ciò significa che è in esecuzione /usr/sbin/update-smart-drivedb)

Un post sul blog Corsair sembra mostrare che il valore non scende mai al di sotto del 10%, quindi presumo che dovrebbe essere sostituito al 10%.

Ho anche un'unità OCZ con lo stesso controller Sandforce che esporta anche lo stesso valore SSD_Life_Left.


3

Media_Wearout_Indicator è ciò che stai cercando. Per 100 significa che il tuo SSD ha una vita del 100%, il numero più basso significa meno vita rimasta.

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

Uscita dal mio laptop

233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0

Se vuoi vedere maggiori dettagli e attributi completi dal tuo disco, puoi eseguirlo

# smartctl -data -A /dev/sda

e l'uscita

# smartctl -data -A /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-49-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
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
5 Reallocated_Sector_Ct 0×0032 100 100 000 Old_age Always – 0
9 Power_On_Hours 0×0032 000 000 000 Old_age Always – 232959027031342
12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always – 279
170 Unknown_Attribute 0×0033 100 100 010 Pre-fail Always – 0
171 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
172 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
174 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 278
184 End-to-End_Error 0×0033 100 100 090 Pre-fail Always – 0
187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0
192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always – 278
225 Load_Cycle_Count 0×0032 100 100 000 Old_age Always – 10752
226 Load-in_Time 0×0032 100 100 000 Old_age Always – 65535
227 Torq-amp_Count 0×0032 100 100 000 Old_age Always – 66
228 Power-off_Retract_Count 0×0032 100 100 000 Old_age Always – 65535
232 Available_Reservd_Space 0×0033 100 100 010 Pre-fail Always – 0
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
241 Total_LBAs_Written 0×0032 100 100 000 Old_age Always – 10752
242 Total_LBAs_Read 0×0032 100 100 000 Old_age Always – 21803
249 Unknown_Attribute 0×0013 100 100 000 Pre-fail Always – 357

http://namhuy.net/1024/how-to-check-ssd-life-left.html


È utile menzionare che in questo caso dovrebbe essere usato il valore normalizzato.
Falcon Momot,

1

Non proprio. Se l'unità non mantiene le statistiche, non lo sapresti per certo. Anche in questo caso il disco avrebbe estratto gli algoritmi di livellamento della scrittura e simili per cercare di ottimizzare le cose sotto il cofano, lontano dalle chiamate di sistema e dalle interfacce. In altre parole, l'unità potrebbe facilmente mentire su dove i dati sono effettivamente scritti sul "supporto" in modo da non sapere quali celle stanno ricevendo attività.

Ciò non garantisce ancora quando / se vedrai guasti o errori. L'unità potrebbe fallire domani, potrebbe fallire in tre anni.

La soluzione migliore è mantenerlo in una configurazione RAID e disporre di un piano per sostituirlo quando si guasta (prima che l'altra unità si guasta) e assicurarsi che i backup siano aggiornati.

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.