Tan*_*n六四 36 hardware ssd hard-disk smartctl
我们都知道 SSD 的预定寿命是有限的。如何在 Linux 中检查 SSD 的当前健康状态?
大多数谷歌搜索结果会要求您查找名为 Media_Wearout_Indicator 的百分比字段的 SMART 信息,或其他术语指标,如长期数据耐力——不存在——是的,我确实检查了两个 SSD,都没有这些字段。我可以继续寻找第三个 SSD,但我觉得这些字段没有标准化。
为了演示这里的问题,我们举了两个例子。
对于第一个 SSD,不清楚哪个字段表示磨损级别。然而,只有一个 Unknown_Attribute 的 RAW VALUE 介于 1 和 100 之间,因此我只能假设这就是我们正在寻找的:
$ sudo smartctl -A /dev/sda
smartctl 6.2 2013-04-20 r3812 [x86_64-linux-3.11.0-14-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0002 100 100 000 Old_age Always - 0
9 Power_On_Hours 0x0002 100 100 000 Old_age Always - 6568
12 Power_Cycle_Count 0x0002 100 100 000 Old_age Always - 1555
171 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 0
172 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 0
173 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 57
174 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 296
187 Reported_Uncorrect 0x0002 100 100 000 Old_age Always - 0
230 Unknown_SSD_Attribute 0x0002 100 100 000 Old_age Always - 190
232 Available_Reservd_Space 0x0003 100 100 005 Pre-fail Always - 0
234 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 350
241 Total_LBAs_Written 0x0002 100 100 000 Old_age Always - 742687258
242 Total_LBAs_Read 0x0002 100 100 000 Old_age Always - 1240775277
Run Code Online (Sandbox Code Playgroud)
所以这个 SSD 已经使用了 57% 的重写寿命,对吗?
对于另一个磁盘,SSD_Life_Left ATTRIBUTE 很突出,但它的 Raw 值为 0,表示剩余寿命为 0%,对于表面上健康的 SSD 来说不太可能,除非它碰巧处于危险之中(我们将在几天内看到),并且如果显示“已使用 0% 寿命”,对于磨损的硬盘也是不可能的(磨损 = 使用了一年以上)。
> sudo /usr/sbin/smartctl -A /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.11.6-4-desktop] (SUSE RPM)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== 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
1 Raw_Read_Error_Rate 0x000f 104 100 050 Pre-fail Always - 0/8415644
5 Retired_Block_Count 0x0033 100 100 003 Pre-fail Always - 0
9 Power_On_Hours_and_Msec 0x0032 100 100 000 Old_age Always - 4757h+02m+17.130s
12 Power_Cycle_Count 0x0032 099 099 000 Old_age Always - 1371
171 Program_Fail_Count 0x0032 000 000 000 Old_age Always - 0
172 Erase_Fail_Count 0x0032 000 000 000 Old_age Always - 0
174 Unexpect_Power_Loss_Ct 0x0030 000 000 000 Old_age Offline - 52
177 Wear_Range_Delta 0x0000 000 000 000 Old_age Offline - 2
181 Program_Fail_Count 0x0032 000 000 000 Old_age Always - 0
182 Erase_Fail_Count 0x0032 000 000 000 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
194 Temperature_Celsius 0x0022 030 030 000 Old_age Always - 30 (Min/Max 30/30)
195 ECC_Uncorr_Error_Count 0x001c 104 100 000 Old_age Offline - 0/8415644
196 Reallocated_Event_Count 0x0033 100 100 000 Pre-fail Always - 0
231 SSD_Life_Left 0x0013 100 100 010 Pre-fail Always - 0
233 SandForce_Internal 0x0000 000 000 000 Old_age Offline - 3712
234 SandForce_Internal 0x0032 000 000 000 Old_age Always - 1152
241 Lifetime_Writes_GiB 0x0032 000 000 000 Old_age Always - 1152
242 Lifetime_Reads_GiB 0x0032 000 000 000 Old_age Always - 3072
Run Code Online (Sandbox Code Playgroud)
Aar*_*nce 23
在您的第一个示例中,我认为您指的是英特尔驱动器上的“媒体磨损指示器”,它是属性 233。是的,它的范围是 0-100,其中 100 是一个全新的、未使用的驱动器,并且0 完全磨损。根据您的输出,该字段似乎不存在。
在您的第二个示例中,请阅读有关 SSD_Life_Left的官方文档。每页:
该属性的 RAW 值始终为 0,没有任何意义。改为检查标准化的 VALUE。它从 100 开始,指示剩余 SDD 寿命的大致百分比。当 Flash 块被标记为坏时,它通常会减少,请参阅 Retired_Block_Count 的 RAW 值
完全理解 smartctl(8) 所说的是非常重要的,而不是做出假设。不幸的是,SMART 工具并不总是与最新的 SSD 及其属性保持同步。因此,并不总是有一种干净的方法来判断芯片被写入了多少次。你能做的最好的事情是查看“Power_On_Hours”,在你的情况下是“6568”,确定你的平均磁盘利用率,然后平均。
您应该能够查找驱动器规格,并确定用于制造芯片的过程。32nm 工艺芯片将比 24nm 工艺芯片具有更长的写入寿命。但是,似乎“平均”,您可能会期望大约 3,000 到 4,000 次写入,最少 1,000 次,最多 6,000 次。因此,如果您有 64GB SSD,那么假设磨损均衡,您应该期望写入 SSD 的总容量约为 192TB 到 256TB。
例如,如果您的驱动器的利用率为 11 KBps,那么您可能会看到每小时写入约 40 MB。在 6568 小时通电时,您已将大约 260 GB 写入磁盘。知道您可能会维持大约 200 TB 的总写入量,在出现故障之前,您有大约 600 年的时间因芯片磨损而出现故障。您的磁盘可能会由于磨损的电容器或电压调节而出现故障。
小智 17
对于三星 SSD,请检查 SMART 属性 177(磨损均衡计数)。
ID # 177 磨损均衡计数
该属性表示媒体编程和擦除操作的次数(块已被擦除的次数)。该值与 SSD 的使用寿命直接相关。此属性的原始值显示 P/E 周期的总数。
来源:http : //www.samsung.com/global/business/semiconductor/minisite/SSD/M2M/download/07_Communicating_With_Your_SSD.pdf
磨损水平指示器从 100 开始,并根据我的判断线性下降到 1。在 1 时,驱动器将超过其所有额定 p/e 循环,但实际上,驱动器的总耐用性可能显着超过该值。
资料来源:http : //www.anandtech.com/show/7173/samsung-ssd-840-evo-review-120gb-250gb-500gb-750gb-1tb-models-tested/3
我建议你采取最后一个关于用一粒盐超过该值的声明。
小智 7
如果您没有英特尔品牌 SSD:请小心!我有一块三星 SSD,我完全被 smartmontools /smartctl 错误的属性标签误导了。如果您有除英特尔以外的其他产品,您可能会发现我在https://askubuntu.com/a/460463/65722上讲述的(愚蠢的)痛苦故事 很有帮助。
愿你的信息质量与挖掘时间的比率比我更好!
| 归档时间: |
|
| 查看次数: |
108726 次 |
| 最近记录: |