我们在Linux(RHEL 5)服务器上运行SSD(英特尔X25-M)已经有一段时间了,但是从来没有努力去弄清楚过去一年的写入负载是多less。 在Linux下有没有什么工具可以告诉我们大概多less时间已经写入磁盘,或者(甚至更好)多less累积了什么? 只是寻找一个提示,看看它是否接近死亡或…
英特尔固态硬盘确实logging了整个写入的统计数据,以及可能的使用寿命。
以下是来自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原始值显示已将多less个32MiB数据单元写入此驱动器。
Media_Wearout_Indicator值显示了驱动器有效磨损寿命有多远的标准化百分比。 这从100开始(或099,我忘记了),然后下降到001,在这一点上,英特尔认为驱动已经超过了它的使用寿命。 英特尔也使用MWI作为保修索赔的一部分 – 一旦MWI达到001,保修即告失效。
MWI达到001并不意味着驱动器将立即失败! 英特尔将有宽容内置来处理闪存单位的差异。 我已经看到驱动器超过这个点,我正在积极磨损一些英特尔320系列固态硬盘,看看他们的持续时间。
但是,当MWI达到001时保修期限届满,那么我将在此时更换任何驱动器。
海盗船驱动器也出口一个类似的百分比生命左指标。 在他们的情况下,它是属性231:
231 SSD_Life_Left 0x0013 100 100 010 Pre-fail Always - 0
(请注意,如果smartctl将其显示为温度,则需要更新设备数据库。在我的Debian系统上,这意味着运行/usr/sbin/update-smart-drivedb )
海盗船的博客似乎表明,价值永远不会低于10%,所以我认为它应该被取代10%。
我也有一个相同的Sandforce控制器,也导出相同的SSD_Life_Left值的OCZ驱动器。
Media_Wearout_Indicator是你正在寻找的。 对于100意味着你的SSD有100%的生命,数字越低意味着剩下的生命越less。
# 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
不是真的。 如果驱动器没有保存统计信息,那么您肯定不会知道。 即使这样,驱动器也会抽象写入均衡algorithm,以便在系统调用和接口之外尝试优化事物。 换句话说,驱动器很容易让你知道数据实际写在“媒体”上的位置,所以你不知道哪些单元格正在运行。
这仍然不能保证何时/如果你会看到失败或错误。 明天驾车可能会失败,三年后可能会失败。
最好的select是将其保存在RAIDconfiguration中,并制定计划以在发生故障时(在其他驱动器出现故障之前)将其更换,并确保备份是最新的。