Ubuntu中Load/Unload Cycle Count问题及解决方案
过多有可能造成硬盘挂掉的时候,我想无论再有人辟谣,你也不会高枕无忧了.毕竟相对于硬盘本身来说,上面的数据可是要重要的多.
1.3 LCC为啥会那么高? 简单来说,可能有下面几个原因: 1) 硬盘厂商在固件中制定的节能策略过于苛刻,以至于为了节能,硬盘频繁地Load/Unload 1.4 其他的发行版有没有这个问题?Windows呢,MAC OS呢? 各大linux发行版好像就Ubuntu被报告有这个问题,但这实际上并不是Ubuntu的电源策略太变态,恰恰相反,默认情况下Ubuntu会直接沿用硬件固件里面的设定.其他的发行版中SUSE也有类似的电源管理的BUG,初次之外的发行版似乎默认会忽略硬盘的这个节能功能,不会有类似的问题. 至于Windows,也会出现类似的现象,比如说我宿舍的Acrest童鞋,但我的没有.MAC OS也有报告出现类似的问题. 总体来说这个并不是个别现象,也并不应该算是操作系统的问题.感觉Windows下硬盘几乎会一直不停地运作,硬件厂商不太重视硬盘固件中的初始设定,比如说我的日立硬盘,电源管理级别被设置为128,结果Linux并不像Windows那样频繁读盘,磁头为了节能会频繁地做 Load/Unload操作.
2. 如何修复这个问题? 2.1 硬件修改法 (***推荐使用***) 正如上面所说,如果你的硬盘在Ubuntu下有这个问题,那么有可能是硬件本身的节能策略太激进了.最简单也是最根本的方法,就是用厂商提供的固件修改工具对出厂的默认设置进行修改,比如说日立的Feature Tools. 在Feature Tools中,有一项"Change Advanced Power Mode",默认是128,可以选择从1到254不同的数值. 简单来说,数字越小越节能,数字越大性能越好.Feature Tools中将1-254分成三段并分别做了简单的说明,一般来说,设置到192-254则表示不允许Load/Unload操作,而255则表示禁用APM().这个数字也就是后文提到的APM级别. 2.2 软件修改法 修改硬盘固件是最根本的解决方案,除此之外,关于在Ubuntu中修改相关策略,网上有很多种不同的解法,有兴趣的童鞋可以看关于这个Bug的讨论, Ubuntu Wiki上关于这个Bug的介绍,起因分析以及解决方案的总结等.基本上流传的方法有这么两种: 2.2.1 启用laptop-mode,通过修改laptop-mode.conf中的相关设置达到控制Load/Unload的目的 2.2.2 直接在/etc/acpi/start.d, resume.d等目录下放置脚本,通过hdparm命令修改APM级别和spin down time. 具体内容见文后附注.归根结底,这两种方法都是利用hdparm工具,通过-B参数修改高级电源管理(APM)级别,通过-S参数修改旋转超时时间 (Spin Down Timeout),从而控制硬盘的Load/Unload次数.所谓APM级别就是我们上面介绍过的1~255,而Spin-down Timeout就是指硬盘空闲(或者旋转?这个拿不准)多久后才会Spin Down,也就是停转,做Unload操作.相对应的,有一个Spin up Time,这是指硬盘重新启动到正常运转所需要的时间. Windows下也有一款HDDScan软件可以很方便地做到这一点.这样的软件改法确实有效,但hdparm不会将设置写入固件,因此在关机、休眠以及待机之后,硬盘掉电,这些通过软件的设置会失效,需要重新启用一次.目前这两种方法在我的机器上的测试结果是待机唤醒之后参数不会重新启用.实际上,laptop-mode只会在开机的时候才会应用我们设定的参数,而 acpi的resume.d目录下放置的脚本并不会被执行,不知道这是不是个别现象. 如果大家非要用软件的修改方法时,推荐下面这一种. 2.2.3 pm.utils大法 (推荐使用) 除了这两种修改方法之外,还有另外一种通过pm.utils来调用hdparm的方法.这实际上是Suse的一个解决方案.pm.utils全称是 Power Management Utilities,与acpi类似,它可以通过加入Hook脚本的方法在待机、休眠和唤醒的时 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |