猫盘折腾记:WD笔记本蓝盘的待机问题

猫盘折腾记:WD笔记本蓝盘的待机问题,第1张

既然把猫盘定位为一个使用频率很低的轻量级NAS,那自然做就做到极致,把硬盘工作时待机作为必须目标来实现。不为省电,只为延长硬盘使用寿命、降低设备工作温度、降低噪音、延长风扇寿命。

猫盘的刷机是照葫芦画瓢,完全按照 猫盘 (ARMADA A3720) 刷机教程 进行的,非常顺利,在此再次感谢原作者精准而周到的文字记录!!!

刷机成功后,从废笔记本上拆下硬盘,西数320G,WD Scorpio Blue蓝盘,具体型号是WD3200BPVT。安装进猫盘后,按照教程末尾提到的方法,修改了待机时间为10分钟,即把 /etc/udev/rules.d/99-hdparm.rules 里面的 hdparm -S 后面的参数改成120。

在没有精确计时的情况下 ,猫盘一直放置着,过了一段时间后硬盘的确是停止了工作,检测方法是用手触摸,感觉不到硬盘的转动。也可以用命令行 hdparm -C /dev/sda ,输出为standby表示已经待机,如果是active/idle则表示还在工作状态。

既然硬盘待机没问题,那么就开始编写我的控制脚本。第一次写Linux Shell,边学边写,大概半天时间也就搞定了。 另外,为了检测硬盘温度,安装了smartmontools 。脚本一开始运行的效果似乎不错,但经过仔细测试,发现在硬盘待机上存在问题:

这两个现象的并存,让我几乎人格分裂。(1)会让你觉得脚本有问题,导致没有待机,(2)则证明脚本并不会 *** 作硬盘,不会触发唤醒。

进一步搜索资料,发现有人说使用 hdparm -S 设置待机等待时间的命令,必须要先使用 hdparm -B 数字 来设置APM节能级别,数字大于127时不会待机。通过 hdparm -B /dev/sda 我能看到当前APM数值为254,可之前硬盘明明是能待机的... 还是试试吧,于是在 /etc/udev/rules.d/99-hdparm.rules 中的命令中增加了 -B127 ,但结果是没有看到任何变化。

在种种现象的相互矛盾、各种参数设置无法达到预计效果的情况下,不由的开始怀疑硬盘并没有按照软件预想进行工作。在搜了很多资料后,发现 这一篇文章

提到,hdparm的-B、-S参数可能在西数的某些硬盘上不能按设计工作,甚至有人遇到问题的硬盘型号跟我的一模一样:

又经过几天零零碎碎的调查、测试,得出以下结论(此处省略描写辛酸的1万字):

在我的这块硬盘上,使用 hdparm -B127 -S120 /dev/sda ,并且不安装smartmontools,可以按照预期,在硬盘无 *** 作10分钟后进入待机状态。如果需要调整为等待15分钟,则-S参数设置为180,以此类推。

在上面提到的那篇帖子中,提到了终极解决方法, 使用 hd-idle 来控制硬盘待机。其原理好像是监控 /proc/diskstats 中的硬盘读写计数器,当持续不变的时间达到预设值时,就发送指令让硬盘待机。这样相当于利用 *** 作系统的监控能力,避开了硬盘厂商五花八门的电源管理机制,理论上在任何硬盘上都能工作,的确是一个好办法。不过因为我已经把这块硬盘的待机工作机制基本研究清楚,就没有再试了。

待机和休眠如果在desktop版本中,都是用gnome实现的,而且我搭建的测试环境也是ubuntu,没有出现过过一段时间就断网的情况,server版没有gnome,应该是你的机器的问题。或者是网络环境的问题


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8610413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存