Jak określić liczbę cykli zapisu lub oczekiwaną żywotność dysku SSD w systemie Linux?

10

Od jakiegoś czasu korzystamy z dysku SSD (Intel X25-M) na serwerze z systemem Linux (RHEL 5), ale nigdy nie staraliśmy się zorientować, ile było obciążenia na zapis w ciągu ostatniego roku. Czy pod Linuksem jest jakieś narzędzie, które mówi nam w przybliżeniu, ile czasu zostało zapisane na dysku lub (a nawet lepiej), ile się zgromadziło? Po prostu szukam podpowiedzi, aby zobaczyć, czy jest bliski śmierci, czy nie ...

JZeta
źródło

Odpowiedzi:

13

Dyski SSD firmy Intel przechowują statystyki dotyczące całkowitej liczby zapisów i długości możliwego okresu użytkowania.

Poniższe dane pochodzą z procesora 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

Surowa wartość Host_Writes_32MIB pokazuje, ile jednostek 32MiB danych zapisano na tym dysku.

Wartość Media_Wearout_Indicator pokazuje znormalizowany procent tego, jak daleko jest jego użyteczna żywotność napędu. Zaczyna się od 100 (lub 099, zapominam, które) i przechodzi do 001, w którym to momencie Intel uważa, że ​​dysk przekroczył swój okres użytkowania. Intel wykorzystuje MWI również w ramach roszczeń gwarancyjnych - gdy MWI osiągnie 001, gwarancja wygasa.

Osiągnięcie MWI na poziomie 001 nie oznacza jednak, że dysk natychmiast ulegnie awarii! Intel będzie miał wbudowaną tolerancję, aby radzić sobie z odchyleniami w lampach błyskowych. Widziałem dyski, które przetrwały znacznie dłużej niż ten punkt, i aktywnie testuję zużycie niektórych dysków SSD z serii Intel 320, aby zobaczyć, jak długo trwają.

Ponieważ jednak wygasa gwarancja, gdy MWI osiągnie wartość 001, w tym momencie wymienię wszystkie dyski.

Daniel Lawson
źródło
Dla przyszłego odniesienia, Media_Wearout_Indicatorzaczyna się od 100 dla mojego dysku SSD Intel serii 520.
pableu
Warto zauważyć, że nawet jeśli dysk nie „zepsuje się”, gdy osiągnie 001, w pewnym momencie później (być może na dłuższą metę), zdolność niektórych dysków do zatrzymywania danych po zaniku zasilania spada do alarmująco krótkiego czasu . Myślę, że w Internecie opublikowano kilka testów wytrzymałościowych, które to zmierzyły.
sa289,
6

Napędy Corsair również eksportują podobny wskaźnik pozostałej żywotności. W ich przypadku jest to atrybut 231:

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

(Pamiętaj, że jeśli smartctl wyświetla to jako temperaturę, musisz zaktualizować bazę danych urządzeń. W moim systemie Debian oznacza to, że działa /usr/sbin/update-smart-drivedb)

Corsair blogu wydaje się wskazywać, że wartość nigdy nie spada poniżej 10%, więc przypuszczam, należy go wymienić na poziomie 10%.

Mam również napęd OCZ z tym samym kontrolerem Sandforce, który również eksportuje tę samą wartość SSD_Life_Left.

Graham
źródło
3

Media_Wearout_Indicator jest tym, czego szukasz. Dla 100 oznacza, że ​​twoje ssd ma 100% życia, niższa liczba oznacza mniej życia.

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

Wyjście z mojego laptopa

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

Jeśli chcesz zobaczyć więcej szczegółów i pełne atrybuty z dysku, możesz uruchomić

# smartctl -data -A /dev/sda

i wynik

# 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
źródło
Warto wspomnieć, że w tym przypadku należy użyć wartości znormalizowanej.
Falcon Momot
1

Nie całkiem. Jeśli dysk nie przechowuje statystyk, nie byłbyś tego pewien. Nawet wtedy dysk wyodrębniałby algorytmy poziomowania zapisu i takie próby, aby zoptymalizować rzeczy pod maską, z dala od wywołań systemowych i interfejsów. Innymi słowy, dysk może łatwo cię okłamać na temat tego, gdzie dane są faktycznie zapisane na „nośniku”, abyś nie wiedział, jakie komórki uzyskują aktywność.

To wciąż nie gwarantuje, kiedy / jeśli zobaczysz awarie lub błędy. Dysk może zawieść jutro, może zawieść za trzy lata.

Najlepiej jest zachować go w konfiguracji RAID i mieć plan, aby go zastąpić, gdy ulegnie awarii (zanim nastąpi awaria drugiego dysku) i upewnić się, że kopie zapasowe są aktualne.

Bart Silverstrim
źródło