为什么我的硬盘循环次数增加得如此之快?

为什么我的硬盘循环次数增加得如此之快?

我想了解为什么 SMART 报告我的 HGST 硬盘的负载循环计数原始值在增加,以及我应该采取什么措施来尽量减少这种情况以延长硬盘的使用寿命。

我在笔记本电脑上运行 Debian Jessie,过去几个小时一直插着交流电。我安装了 smartctl:

# apt-get install smartmontools

我的硬盘是HGST Travelstar:

$ sudo smartctl -a /dev/sda
...
Model Family:     HGST Travelstar 7K1000
Device Model:     HGST HTS721010A9E630
...

我有一个脚本定期捕获一些感兴趣的统计数据:

  9 Power_On_Hours          0x0012   089   089   000    Old_age   Always       -       5236
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       1598
193 Load_Cycle_Count        0x0012   070   070   000    Old_age   Always       -       305107

我的脚本正在抓取这些值并将它们存储在一个文件中,以便我可以使用 gnuplot 绘制它们随时间的变化图:

Timestamp,PowerOnHoursValue,PowerOnHoursRawValue,PowerOnHoursWorst,PowerOnHoursThreshold,PowerCycleCountValue,PowerCycleCountRawValue,PowerCycleCountWorst,PowerCycleCountThreshold,LoadCycleCountValue,LoadCycleCountRawValue,LoadCycleCountWorst,LoadCycleCountThreshold
2017-06-10T11:02:18,089,5235,089,000,099,1598,099,000,070,304747,070,000
2017-06-10T11:17:01,089,5235,089,000,099,1598,099,000,070,304795,070,000
2017-06-10T12:17:01,089,5236,089,000,099,1598,099,000,070,305195,070,000
2017-06-10T12:27:03,089,5236,089,000,099,1598,099,000,070,305304,070,000

我的文件中没有cmd_line设置用于配置旋转停机时间的选项;我的文件中也没有设置任何选项。/etc/hdparm.confhdparm-e apm/etc/smartd.conf

我正在运行 MATE,但我不确定它是否有任何配置选项来设置降速时间,除了尽可能降低硬盘转速下的复选框系统 > 首选项 > 电源管理。(顺便说一下,目前未选中使用交流电源并检查何时使用电池电源

从上午 11:05 左右到中午 12:00 左右,我没有碰我的笔记本电脑,但没有将其置于待机或睡眠状态;它仍然开着,屏幕也锁着。

中午 12 点我又开始使用它,一直坐在键盘前直到 12:27

以下是我当前的 APM 设置:

$ sudo smartctl --get=apm /dev/sda
...
APM level is:     128 (minimum power consumption without standby)

$ sudo hdparm -I /dev/sda | grep level
    Advanced power management level: 128

$ sudo hdparm -B /dev/sda

/dev/sda:
 APM_level  = 128

-S根据选项的描述hdparm,128 表示驱动器的待机(旋转)超时为 128*5=640 秒,或者刚好超过 10 分钟,如果我理解正确的话。

更新:/etc/smartd.conf我通过编辑我的并更改-e apm,241-e apm,off,然后重新启动smartmontools来禁用驱动器上的APM 。

这看起来有助于阻止增长:

Timestamp,PowerOnHoursValue,PowerOnHoursRawValue,PowerOnHoursWorst,PowerOnHoursThreshold,PowerCycleCountValue,PowerCycleCountRawValue,PowerCycleCountWorst,PowerCycleCountThreshold,LoadCycleCountValue,LoadCycleCountRawValue,LoadCycleCountWorst,LoadCycleCountThreshold
2017-06-10T11:02:18,089,5235,089,000,099,1598,099,000,070,304747,070,000
2017-06-10T11:17:01,089,5235,089,000,099,1598,099,000,070,304795,070,000
2017-06-10T12:17:01,089,5236,089,000,099,1598,099,000,070,305195,070,000
2017-06-10T12:27:03,089,5236,089,000,099,1598,099,000,070,305304,070,000
2017-06-10T13:17:01,089,5237,089,000,099,1598,099,000,070,305585,070,000
2017-06-10T14:17:01,089,5238,089,000,099,1599,099,000,070,305864,070,000
2017-06-10T14:59:17,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T14:59:24,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:00:05,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:01:06,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:02:08,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:03:09,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:04:10,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:05:11,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:05:26,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:15:27,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:17:01,089,5238,089,000,099,1600,099,000,070,305868,070,000

如果没有人有更好的想法,我接下来可以尝试使用 241 这个值来查看它会产生什么影响。根据手册hdparm页:

  • 0:已禁用超时
  • 1..240:5 秒的倍数,超时时间为 5 秒至 20 分钟
  • 241..251:1..11 个 30 分钟单位,超时时间为 30 分钟至 5.5 小时
  • 252:21分钟暂停
  • 253:供应商定义的超时时间 8h..12h
  • 254: 预订的
  • 255:21 分钟加 15 秒

我希望我的笔记本电脑的 30 分钟超时设置为 241,因此我希望加载周期计数每 30 分钟至少增加 1;但是,在我禁用 APM 之前,我看到计数每小时增加 300-400 次,平均每分钟 5-7 次,或每 8-12 秒一次。

如果我的解释不正确,请纠正我。

更新:我刚刚拿起笔记本电脑并将其从挂起状态中唤醒。在上次更新中,我从未检查过重启后的 APM 级别smartmontools。这次我会这样做。

自从退出挂起模式以来,我注意到我的循环次数仅增加了 1,因为我的笔记本电脑进入挂起模式并现在退出挂起模式:

...
2017-06-10T15:17:01,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:25:28,089,5238,089,000,099,1600,099,000,070,305868,070,000
2017-06-10T15:35:29,089,5239,089,000,099,1600,099,000,070,305868,070,000
2017-06-11T00:56:09,089,5239,089,000,099,1601,099,000,070,305869,070,000
2017-06-11T01:04:24,089,5239,089,000,099,1601,099,000,070,305869,070,000
...

有趣的是,现在它又开始增加:

...
2017-06-11T01:04:24,089,5239,089,000,099,1601,099,000,070,305869,070,000
2017-06-11T01:14:25,089,5239,089,000,099,1601,099,000,070,305918,070,000
2017-06-11T01:17:01,089,5239,089,000,099,1601,099,000,070,305918,070,000
2017-06-11T01:21:35,089,5239,089,000,099,1601,099,000,070,305918,070,000
2017-06-11T01:24:26,089,5239,089,000,099,1601,099,000,070,305918,070,000
2017-06-11T01:33:48,089,5239,089,000,099,1601,099,000,070,305963,070,000

我检查了 APM 级别并且它回到了 128:

$ sudo hdparm -I /dev/sda | grep level
    Advanced power management level: 128
$ sudo smartctl --get=apm /dev/sda
...
APM level is:     128 (minimum power consumption without standby)
$ sudo hdparm -B /dev/sda

/dev/sda:
 APM_level  = 128

我的/etc/smartd.conf设置仍然指定-e apm,off,因此我只是重新启动smartmontools,然后再次检查 APM 级别:

$ sudo service smartmontools restart
$ sudo smartctl --get=apm /dev/sda
...
APM feature is:   Disabled
$ sudo hdparm -I /dev/sda | grep level
    Advanced power management level: disabled
$ sudo hdparm -B /dev/sda

/dev/sda:
 APM_level  = off

我故意将笔记本再次置于挂起状态,然后再取出。我检查了 APM 级别,它再次像上面一样为 128;当我重新启动时smartmontools,APM 级别再次像上面一样被禁用。

禁用 APM 后,我的循环计数再次保持不变:

...
2017-06-11T01:33:48,089,5239,089,000,099,1601,099,000,070,305963,070,000
2017-06-11T01:34:27,089,5239,089,000,099,1601,099,000,070,305971,070,000
2017-06-11T01:42:06,089,5239,089,000,099,1601,099,000,070,306048,070,000
2017-06-11T01:42:58,089,5239,089,000,099,1602,099,000,070,306050,070,000
2017-06-11T01:43:24,089,5239,089,000,099,1602,099,000,070,306050,070,000
2017-06-11T01:44:32,089,5239,089,000,099,1602,099,000,070,306050,070,000
2017-06-11T01:45:00,089,5239,089,000,099,1602,099,000,070,306050,070,000

下列信息错误 #1248012,我尝试启用 APM 选项/etc/hdparm.conf

...
# -B apm setting
#apm = 255
apm = 255
# -B apm setting when on battery
#apm_battery = 127
apm_battery = 255
...

我重新启动了hdparm

$ sudo /etc/init.d/hdparm restart

将硬盘置于挂起状态并重新开启后,我注意到 APM 级别已回到 128。

我打开了问题 #1218107为了这。

答案1

您从中获得的这些值man hdparm适用于-S选项 - 旋转减速,使盘片停止旋转。

我的快速研究表明,它Load_Cycle_Count与停车头有关,而且似乎-B选项(高级电源管理,APM)是正确的。手册页中的描述对我来说并不完全清楚,但您的值128最具攻击性不允许减速的。我猜它最常停下磁头。

128您使用 的描述根据的值计算出旋转减速时间-S,我认为这是错误的。此计算混淆了-B-S。将 APM 设置为 时也会出现同样的混淆241

我见过索赔hdparm -B 255 /dev/sdX很有帮助。不过它禁用了高级电源管理。我的磁盘设置为254,我认为它具有适中的容量:分别Load_Cycle_CountPower_On_Hours200k 和 20k,因此该比例比您的要好得多。

我的建议是使用以下的:

hdparm -B 127 /dev/sdX
hdparm -B 254 /dev/sdX
hdparm -B 255 /dev/sdX

我猜如果你设置了-B一个允许旋转停止的值(即127或更少),那么你还应该调整-S选项以获得不太短的旋转停止时间。这是因为每次旋转停止都需要磁头停下。

虽然man hdparm警告了各种危险选项,但-B并不在其中。即使我完全错了,尝试一下也应该是安全的。

相关内容