如何确定Linux下SSD的写周期数或预期寿命?


10

我们已经在Linux(RHEL 5)服务器中运行SSD(Intel X25-M)已有一段时间了,但从未做出任何努力来弄清楚它在过去一年中承受了多少写负载。Linux下是否有任何工具可以告诉我们随着时间的推移已向磁盘写入了多少磁盘(或者甚至更好),从而累积了多少磨损?只是寻找提示,看它是否快要死了...

Answers:


13

英特尔固态硬盘确实保留有关总写入量以及其使用寿命的统计数据。

以下来自Intel X25-M G2 160GB(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

Host_Writes_32MIB原始值显示已将多少32MiB数据单位写入此驱动器。

Media_Wearout_Indicator值向您显示驱动器经过有效使用寿命的标准化百分比。它从100(或者我忘了099)开始,一直下降到001,此时Intel认为该驱动器已经超过了其使用寿命。英特尔也将MWI用作保修索赔的一部分-一旦MWI达到001,保修就到期了。

MWI达到001并不意味着驱动器将立即失效!英特尔将内置公差来处理闪存单元中的差异。我已经看到驱动器的使用寿命已经超过了这一点,并且我正在积极进行一些英特尔320系列SSD的磨损测试,以了解它们可以使用多长时间。

但是,由于保修在MWI达到001时到期,因此我将在此时更换所有驱动器。


为了将来参考,Media_Wearout_Indicator我的Intel 520系列SSD从100开始。
pableu 2013年

值得注意的是,即使驱动器到达001后也没有“发生故障”,此后的某个时候(也许在很长一段时间后),某些驱动器在断电时保留数据的能力下降到惊人的短时间。我认为网上已经发布了一些耐久测试来衡量这一点。
2015年

6

海盗船驱动器还可以输出类似的剩余寿命百分比指示器。在他们的情况下是属性231:

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

(请注意,如果smartctl将其显示为温度,则需要更新设备数据库。在我的Debian系统上,这意味着运行/usr/sbin/update-smart-drivedb

一个海盗船博客文章似乎表明该值永远不会低于10%,所以我相信它应该在10%的更换。

我还有一个具有相同Sandforce控制器的OCZ驱动器,该控制器还导出了相同的SSD_Life_Left值。


3

您正在寻找Media_Wearout_Indicator。100表示​​您的ssd具有100%寿命,数字越小表示剩余寿命越短。

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

我的笔记本电脑的输出

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

如果要查看驱动器的更多详细信息和完整属性,可以运行

# smartctl -data -A /dev/sda

和输出

# 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


值得一提的是,在这种情况下,应使用标准化值。
Falcon Momot

1

并不是的。如果驱动器不保存统计信息,您将无法确定。即使这样,驱动器也会抽象化写均衡算法,从而尝试在幕后优化事物,而远离系统调用和接口。换句话说,驱动器可以很容易地向您说谎有关数据实际写入“媒体”的位置,因此您将不知道哪些单元正在活动。

这仍然不能保证何时/是否会出现故障或错误。驱动器明天可能会失败,三年后可能会失败。

最好的选择是将其保留在RAID配置中,并制定计划在它确实发生故障时(在其他驱动器发生故障之前)更换它,并确保您的备份是最新的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.