自定义希捷机械硬盘PowerChoice电源管理配置
28283844972_bili
编辑于 2023年10月02日 20:49

免责声明:内容仅供学习参考,备份好数据,因操作不当导致的任何损失自行承担!

在开始之前强烈推荐先去阅读一下这篇专栏:

本专栏是对上述资料的补充说明。个人能力有限,针对不同的使用场景,请自行验证并改良方法。


希捷把自家扩展电源管理(EPC)的实现称之为 PowerChoice,目的自然是降低产品能耗,在部分新款消费级硬盘中也默认开启了这项功能。更多细节请见官方说明文档(选中链接右键转到,避免b站专栏选中复制在末尾自动添加版权信息的笨比机制,下同):

https://www.seagate.com/files/docs/pdf/zh-CN/whitepaper/tp608-powerchoice-tech-provides-cn.pdf

希捷官方描述 PowerChoice 各项节能模式指标如下:

Idle_A • 禁用多数伺服系统,减少处理器和通道功耗 • 磁盘全速 (7200RPM) 转动 Idle_B • 禁用多数伺服系统,减少处理器和通道功耗 • 磁头卸载到硬盘斜坡 • 磁盘全速 (7200RPM) 转动 Idle_C/Standby_Y(仅 SAS) • 禁用多数伺服系统,减少处理器和通道功耗 • 磁头卸载到硬盘斜坡。 • 硬盘速度降至较低 RPM (降低的 RPM) Standby_Z • 磁头卸载到硬盘斜坡 • 硬盘马达停转 • 硬盘仍可对非磁碟访问主机命令作出响应

以 ST4000VX015 为例,其中“进入该状态的默认时间”与实际情况无异,ST4000VX015 默认启用了 Idle_A 和 Idle_B 这两种节能设置,因为 Idle_B 涉及到磁头卸载到斜坡(缩回起停架),后续恢复磁头至盘片需要花费400ms,表现到使用体验上就是至少会有400ms的卡顿,而我在实际使用中感受到的卡顿时长可能会接近1s

其实希捷这么做倒也无可厚非,Idle_B 默认10分钟的闲置时长阈值足以应对一般的家用场景。一方面是为了省电;另一方面将长期闲置磁头卸载回斜坡比悬浮在盘片上相对会更安全些,降低因盘体剧烈震动导致磁头划伤盘面的风险。

反复缩回磁头会导致硬盘 S.M.A.R.T. 信息中的磁头加载/卸载循环计数(C1)增加,如果不存在心理负担和计数焦虑的话,这其实不影响正常使用;因此磁头恢复造成的延时卡顿确实会影响使用体验,但如果是用作仓库盘等对及时响应要求不高的场景倒也不是问题;另外,过度频繁地加载/缩回可能会加速磁头、磁臂等机械运动结构的老化,减少硬盘的使用寿命。

自行决定是否开启 PowerChoice 功能/自定义管理策略,或许能够让用户针对自身的使用场景找到一个平衡点。


希捷官方提供了一系列的硬盘维护工具供高级用户使用:

https://www.seagate.com/cn/zh/support/software/seachest/

建议下载和使用工具前都去看一下用户指南,只需阅读 SeaChest_PowerControl,About PowerChoice 这两个章节的内容即可:

http://support.seagate.com/seachest/SeaChest_Combo_UserGuides.html

获取上述维护工具集,下载完成后选择对应平台的工具即可。Windows用户可以选择Setup安装包或者便携版:

https://www.seagate.com/content/dam/seagate/migrated-assets/old-support-files/seachest/SeaChestUtilities.zip


有了理论知识的铺垫,实战环节均以 ST4000VX015 为例。

查询当前已识别到的硬盘句柄,句柄编号取决于当前环境请灵活变通:

代码块
JavaScript
自动换行
复制代码
SeaChest_PowerControl_x64_windows.exe -s
...(banner)...
Vendor		Handle	Model Number	Serial Number	FwRev
NVMe		PD0		NVMe Disk		0000			0
ST4000VX	PD1		015-xxxxxx		xxxxxxxxxxx		0
复制成功

选中指定的硬盘句柄,查看默认的 EPC 设置信息:

代码块
JavaScript
自动换行
复制代码
SeaChest_PowerControl_x64_windows.exe -d PD1 --showEPCSettings
...(banner)...

\\.\PhysicalDrive1 - 015-xxxxxx - xxxxxxxxxxx - 0 - ATA

===EPC Settings===
        * = timer is enabled
        C column = Changeable
        S column = Savable
        All times are in 100 milliseconds

Name		Current Timer	Default Timer	Saved Timer	Recovery Time	C S
Idle A		*10				*10				*10			1				Y Y
Idle B		*6000			*6000			*6000		4				Y Y
Idle C		0				18000			18000		25				Y Y
Standby Z	0				0				0			55				Y Y
复制成功

带 * 表示已启用对应节电模式的定时器,CS分别表示寄存器可被更改/保存的状态,只有当CS同时为Y(es)状态才支持自定义修改,所有定时器显示的时间单位为100ms。以 Idle A 为例,它的输出行信息可以被解释为:当前定时器触发时间 10 * 100ms,默认触发时长为 1000ms,当前保存的设置是 1000ms,恢复时间为 100ms,寄存器状态可被修改/保存。依此类推,Idle B 模式默认的触发时长为 600000ms,也就是 10 min。

修改指定 EPC 策略的设置,可以禁用/启用/调节触发阈值:

代码块
JavaScript
自动换行
复制代码
SeaChest_PowerControl_x64_windows.exe -d PD1 --idle_a/idle_b disable/enable/default/x_ms
复制成功

注意,希捷某些型号的硬盘不支持禁用 PowerChoice 的节能模式,所以我个人推荐是依据自己的使用习惯适当调节定时器的触发时长,而不是不假思索地关闭这项功能。另外通过命令行设置的时长单位不再是100ms而是以ms为单位,这与命令行输出的时间单位截然不同。

如果想要将 Idle B 当前触发时长设置为 20 min,具体设置如下,其中默认时长始终不变:

代码块
JavaScript
自动换行
复制代码
SeaChest_PowerControl_x64_windows.exe -d PD1 --idle_b 1200000
...

SeaChest_PowerControl_x64_windows.exe -d PD1 --showEPCSettings
...(banner)...

\\.\PhysicalDrive1 - 015-xxxxxx - xxxxxxxxxxx - 0 - ATA

===EPC Settings===
        * = timer is enabled
        C column = Changeable
        S column = Savable
        All times are in 100 milliseconds

Name		Current Timer	Default Timer	Saved Timer	Recovery Time	C S
Idle A		*10				*10				*10			1				Y Y
Idle B		*12000			*6000			*12000		4				Y Y
Idle C		0				18000			18000		25				Y Y
Standby Z	0				0				0			55				Y Y
复制成功

一般只要设置合理都是可以永久保存且生效的。另外,在自定义触发时长前请务必确保当前模式已处于启用状态,特别是手动禁用后想再次启用的情况;某些外接硬盘盒固件自带的休眠功能也会干扰硬盘自身的电源管理。


参考资料:

  • 网页链接​

  • https://www.seagate.com/files/docs/pdf/zh-CN/whitepaper/tp608-powerchoice-tech-provides-cn.pdf

  • https://www.seagate.com/cn/zh/support/software/seachest/

  • http://support.seagate.com/seachest/SeaChest_Combo_UserGuides.html