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

JZe*_*eta 12 linux ssd

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

Dan*_*son 15

英特尔 SSD 确实会记录总写入次数以及它可能的使用寿命的统计数据。

以下来自 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
Run Code Online (Sandbox Code Playgroud)

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

Media_Wearout_Indicator 值向您显示驱动器在其有用磨损寿命中的标准化百分比。这从 100(或 099,我忘记是哪个)开始,一直到 001,此时英特尔认为驱动器已超过其使用寿命。英特尔也将 MWI 用作保修索赔的一部分 - 一旦 MWI 达到 001,保修将过期。

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

但是,由于保修期在 MWI 达到 001 时到期,我会在那时更换任何驱动器。


小智 6

Corsair 驱动器还导出类似的剩余寿命百分比指示器。在他们的情况下,它是属性 231:

231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0
Run Code Online (Sandbox Code Playgroud)

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

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

我还有一个带有相同 Sandforce 控制器的 OCZ 驱动器,它也导出相同的 SSD_Life_Left 值。