本帖最后由 dandelion 于 2019-9-5 19:01 编辑
NAS因为要长时间开机,对于我们这些使用不是那么频繁的家庭用户,硬盘休眠问题就变得很重要,硬盘休眠不仅可以降低功耗静音,而且还能延长硬盘寿命。我们说的硬盘休眠实际有两种情况。
第一种情况是硬盘整体休眠模式。也就是说要不同时运行,要不同时休眠。好像现在的威联通和群晖只能硬盘整体休眠。
第二种情况是单独休眠模式,只有数据访问某个硬盘硬盘的时候,这个硬盘才被唤醒,其它时间处于休眠状态。
第一种情况让NAS所有硬盘休眠很麻烦,考虑的因素有很多,即使好不容易休眠了,不知道什么系统程序又将硬盘唤醒。如果硬盘频繁地休眠和唤醒,反而缩短硬盘寿命。有时关闭太多服务和程序还影响我们的正常使用nas,以至于有些人关闭了硬盘休眠。
实际上我更希望在我的NAS实现第二种情况的休眠,我把系统装在SSD固态硬盘上,固态硬盘功耗很低,基本可以忽略,现在大容量ssd硬盘越来越便宜,完全可以把很多程序运行在ssd上,而空闲的机械硬盘处于休眠状态。如果只访问一块机械硬盘,其它机械硬盘也处于休眠状态。
我用的是TS-551,两个ssd硬盘盘位和三个普通硬盘盘位。5个盘我都设成独立的静态卷,ssd硬盘也没做高速缓存,也没做raid。我通过功率测定仪来检测机械硬盘是否处于休眠状态。在两块固态硬盘运行过程中,我的机械硬盘确实可以单独休眠,问题是几分钟后又被唤醒,我在网上查了很多种方法,都不能解决休眠问题。最后在qnap的论坛上发现了一篇文章,完美解决了我的机械硬盘单独休眠问题。文章的链接https://forum.qnap.com/viewtopic.php?f=55&t=130788。
文章说既然所有硬盘休眠非常困难,那不如让程序运行在SSD硬盘上,让其它空闲的机械硬盘休眠。硬盘不断唤醒是因为威联通创建了一个内部的RAID-1系统分区,这个系统分区横跨了所有硬盘(span all the drives),并不断访问所有硬盘的这个分区。所以说这个同步的RAID1分区是造成威联通的NAS不能单独休眠的原因,即使休眠,一会也会唤醒。所以要想空闲的硬盘休眠,可以让这块硬盘设成faulty状态,临时和这个系统RAID-1分开 ,因为系统不会再访问这个硬盘,硬盘就不会再唤醒。如果一直脱离RAID-1卷,nas可能会出问题,每天一次把分开的硬盘重新加入这个raiid-1,15分钟后再次分开,硬盘又可以单独休眠。作者分别做了两个脚本来实现硬盘和系统raid1的分开和加入。
一 准备工作:
putty登录NAS,运行命令:
mdadm -D /dev/md9
证实所有硬盘都是系统RAID md9的一部分
mdadm -D /dev/md13
证实所有硬盘都是系统RAID md13的一部分。
parted /dev/sdc print
查看我的机械硬盘sdc的所有分区,其它两个机械硬盘也是一样的。注意第一分区sdc1和其它硬盘组成了raid md9,第四分区sdc4和其它硬盘组成了raid md13。这两个分区是我们要系统raid-1分开的两个分区。
对于硬盘sdc来说,执行下面这两个命令,sdc硬盘和系统raid分开,硬盘可以独立休眠:
mdadm /dev/md9 --fail /dev/sdc1
mdadm /dev/md13 --fail /dev/sdc4
执行完上面两个命令,再用mdadm -D /dev/md9检查,注意/dev/sdc1显示已经移除(removed)。。
执行mdadm -D /dev/md13,是一样的,不再上图。
执行下面这两个命令,硬盘加入系统raid,恢复原设置:
mdadm /dev/md9 --re-add /dev/sdc1
mdadm /dev/md13 --re-add /dev/sdc4
补充内容 (2019-9-14 18:18):
假如你想检查你的硬盘sdc是否处于休眠状态,可用命令检查: hdparm -C /dev/sdc。如果显示idle/active, 硬盘没有休眠。 如果显示standby, 那么说明硬盘处于休眠状态。
补充内容 (2019-10-21 12:11):
对于4盘的NAS,假如你的第一个硬盘是固态硬盘, 如果想照搬我的教程,请将我教程里面的sdc, sdd, sde分别改为sdb, sdc, sdd.
补充内容 (2019-10-22 21:55):
如何恢复默认设置:
1 控制台 ->硬件->一般设置:启动时运行用户自定义的进程前面的勾取消,然后点下面的应用。
2 用vi或其它工具编辑 /etc/config/crontab,删除增加的两行计划任务。
15 08 * * * /share/homes/admin/rebuild_internal_raid.sh
30 08 * * * /share/homes/admin/disconnect_internal_raid.sh
3 重启。
补充内容 (2019-12-12 11:03):
原文也将硬盘的交换区关闭,重新建立了交换文件,使用交换文件做缓存,我没有改变交换区硬盘也能独立休眠,所以我认为这一步不是特别有必要。如果有人想改变交换区,请查看原文自行修改。
补充内容 (2020-2-4 08:19):
如果对分区不明白的网友,可以参考这篇文章。https://post.smzdm.com/p/301806/
补充内容 (2020-2-19 23:13):
vi 编辑命令的简单说明:
先输入i,进入编辑模式,在编辑模式可以将我的内容复制粘贴,按ESC,退出输入模式,切换到命令模式,然后按 :wq , 保存退出。
当然也可以有其它工具编辑 |