Wie kann man die Anzahl der Schreibzyklen oder die erwartete Lebensdauer der SSD unter Linux bestimmen?

10

Wir haben eine Zeit lang eine SSD (Intel X25-M) auf einem Linux-Server (RHEL 5) ausgeführt, aber nie versucht, herauszufinden, unter wie viel Schreiblast sie im letzten Jahr war. Gibt es unter Linux ein Tool, das uns ungefähr sagt, wie viel im Laufe der Zeit auf die Festplatte geschrieben wurde oder (noch besser) wie viel Verschleiß sich angesammelt hat? Ich suche nur nach einem Hinweis, um zu sehen, ob es dem Tod nahe ist oder nicht ...

JZeta
quelle

Antworten:

13

Intel SSDs führen Statistiken über die Gesamtzahl der Schreibvorgänge und die voraussichtliche Lebensdauer.

Das Folgende ist von einem Intel X25-M G2 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

Der Rohwert Host_Writes_32MIB zeigt an, wie viele 32-MB-Dateneinheiten auf dieses Laufwerk geschrieben wurden.

Der Media_Wearout_Indicator-Wert zeigt Ihnen einen normalisierten Prozentsatz an, wie weit das Laufwerk über seine Nutzungsdauer reicht. Dies beginnt bei 100 (oder 099, ich vergesse welche) und geht bis 001 zurück. Zu diesem Zeitpunkt geht Intel davon aus, dass das Laufwerk seine Nutzungsdauer überschritten hat. Intel verwendet den MWI auch als Teil von Garantieansprüchen. Sobald der MWI 001 erreicht, ist die Garantie abgelaufen.

Der MWI, der 001 erreicht, bedeutet jedoch nicht, dass der Antrieb sofort ausfällt! Intel verfügt über eine integrierte Toleranz, um Abweichungen bei Flash-Geräten auszugleichen. Ich habe Laufwerke gesehen, die weit über diesen Punkt hinaus halten, und ich teste aktiv einige SSDs der Intel 320-Serie, um festzustellen, wie lange sie noch halten.

Da die Garantie jedoch abläuft, wenn der MWI 001 erreicht, würde ich zu diesem Zeitpunkt alle Laufwerke ersetzen.

Daniel Lawson
quelle
Zum späteren Nachschlagen Media_Wearout_Indicatorbeginnt der Wert bei 100 für meine Intel 520 Series SSD.
Pableu
Es ist erwähnenswert, dass die Fähigkeit einiger Laufwerke, Daten bei Stromausfall zu speichern, auf alarmierend kurze Zeit sinkt, selbst wenn das Laufwerk nach Erreichen von 001 nicht "ausfällt", irgendwann danach (möglicherweise lange danach) . Ich denke, es wurden einige Ausdauertests online veröffentlicht, die dies gemessen haben.
Sa289
6

Corsair-Laufwerke exportieren auch einen ähnlichen Indikator für die verbleibende prozentuale Lebensdauer. In ihrem Fall ist es Attribut 231:

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

(Beachten Sie, dass Sie Ihre Gerätedatenbank aktualisieren müssen, wenn smartctl dies als Temperatur anzeigt. Auf meinem Debian-System bedeutet dies, dass es ausgeführt wird. /usr/sbin/update-smart-drivedb)

Ein Corsair-Blogbeitrag scheint zu zeigen, dass der Wert niemals unter 10% fällt, daher gehe ich davon aus, dass er bei 10% ersetzt werden sollte.

Ich habe auch ein OCZ-Laufwerk mit demselben Sandforce-Controller, der auch denselben SSD_Life_Left-Wert exportiert.

Graham
quelle
3

Der Media_Wearout_Indicator ist genau das, wonach Sie suchen. Für 100 bedeutet, dass Ihre SSD 100% Lebensdauer hat, die niedrigere Zahl bedeutet weniger verbleibende Lebensdauer.

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

Ausgabe von meinem Laptop

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

Wenn Sie weitere Details und vollständige Attribute von Ihrem Laufwerk anzeigen möchten, können Sie ausführen

# smartctl -data -A /dev/sda

und die Ausgabe

# 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

Alison Salazar
quelle
Es ist nützlich zu erwähnen, dass in diesem Fall der normalisierte Wert verwendet werden sollte.
Falcon Momot
1

Nicht wirklich. Wenn das Laufwerk keine Statistiken enthält, wissen Sie es nicht genau. Selbst dann würde das Laufwerk die Algorithmen für die Schreibstufe und dergleichen abstrahieren, um zu versuchen, die Dinge unter der Haube zu optimieren, weg von den Systemaufrufen und Schnittstellen. Mit anderen Worten, das Laufwerk könnte Sie leicht belügen, wo die Daten tatsächlich auf den "Medien" geschrieben sind, sodass Sie nicht wissen, welche Zellen aktiv werden.

Das garantiert immer noch nicht, wann / ob Sie Fehler oder Irrtümer sehen. Der Antrieb könnte morgen ausfallen, könnte in drei Jahren ausfallen.

Am besten behalten Sie es in einer RAID-Konfiguration bei und haben einen Plan, um es zu ersetzen, wenn es ausfällt (bevor das andere Laufwerk ausfällt) und sicherzustellen, dass Ihre Backups aktuell sind.

Bart Silverstrim
quelle