2008年7月2日

笔记本硬盘到底能 unload 多少次?

之前写的文章(警惕 laptop-mode-tools 的 HD_IDLE_TIMEOUT 参数archlinux 下的 load/unload 问题还是那个硬盘 load/unload 的 bug ),都是基于“硬盘的设计 unload 次数有限,对此不加控制会影响硬盘寿命”这样一个前提。但对于这个前提自身是否靠得住没作过多关注。这次就拿着硬盘的 spec 来说一说这个事情。

我的本用的硬盘是 FUJITSU MHY2120BH,这里是其详细的规格说明书(PDF)。

1.10 节关于 Load/Unload Function 原文如下

The product supports a minimum of 600,000 Load/Unload cycles.
Unload is a normal head unloading operation and the commands listed below are
executed.

也就是说,这块硬盘的设计 Unload 次数不小于 60 万次。这是一个相当大的数字了。

1.11 节关于 Advanced Powermanagement (APM) 提及

SC = C0h - FEh : Mode-0 Active Idle → Low Power Idle
SC = 80h - BFh : Mode-1 Active Idle → Low Power Idle (Default)
SC = 01h - 7Fh : Mode-2 Active Idle → Low Power Idle → Standby

这个应该就是和 hdparm -B 所设置的值了。与 hdparm 的 manpage 略为不同的是,这块硬盘的 apm 有三个值段,默认是 128(这个和旧文的测试结果是相同的),也就是 Mode 1。

注意这段,只要进入了 Low Power Idle 状态,硬盘就会进行 unload 动作。

Active Idle: The head is in a position of extreme inner in disk medium. (VCM Lock)
Low Power Idle: The head is unloaded from disk. The spindle motor rotates.
Standby: The spindle motor stops.

这里应该注意一下两个容易混淆的概念,unload 和 spin-down。前者指磁头归位,后者指马达停转。

那么,Mode 1 下硬盘的具体行为是怎样的呢?还在这一节,看 Table 1.7(画表截图都够费力,这里就只贴文字了)

Mode-0: Mode shifts from Active condition to Active Idle in 0.2-1.2, and to Low Power Idle in 15 minutes.
Mode-1: Mode shifts from Active condition to Active Idle in 0.1-0.2 seconds and to Low Power Idle in 10.0-27.5 seconds.
Mode-2: Mode shifts from Active condition to Active Idle in 0.1-0.2 seconds and to Low Power Idle in 10.0-27.5 seconds. After 10.0-40.0 seconds in Low Power Idle, the mode shifts to standby.

也就是说,默认设置下(即使不用 linux),当硬盘在空闲了 10~27.5 秒之后就会进入 Low Power Idle 模式,也就是 unload 一次。

通常,我们应该认为出厂的默认设置应该是安全的。究竟有多安全呢?来算一下,按 18.75 秒 unload 一次(10~27.5 的平均值,其实这也是相当相当坏的情况了),60 万次的设计寿命可以支撑 11,250,000 秒,即 3125小时,即 130 天。这个数字看起来不那么乐观。但是能得到这么坏的结果,前提是你足够有耐心,每天 24 小时不间断地每 18.75 秒就激活一次硬盘,而且你的运气足够坏,硬盘恰巧在 18.75 秒之内就进行了 unload 操作而且恰巧 unload 60 万次就寿终正寝了。如果按每 1 分钟激活硬盘一次,每天 12 小时计算,结果会变成 833 天。而实际使用的场合,两次激活硬盘之间的间隔可能会很大。

出厂默认既然如此,还有什么可担心的呢。就算我这个人非常胆小,这块硬盘的 Mode 0 也足够用了(15 分钟 unload)一次,只是此时需要手动指定一下 hdparm -B 192。

当然,以上只是以我自己这块硬盘为准作出的结论,还不放心的朋友可以自己搜一下自己硬盘的型号、对应的 specification,自己给自己找个定心丸吃。
发表评论