我在nasyun2019年写过一篇关于让威联通硬盘独立休眠的文章,从反馈来看,解决了很多人的休眠问题。有些人看了这篇文章,结合自己的操作,又重新发表了文章,但是他们的文章或多或少有些不完整或错误。我自己也想对那篇旧文再补充一下,在原理方面解释得在更清楚一点,所以就有了这篇文章。

硬盘休眠一直有争论,我的看法是根据根据自己情况而定,如果你非常频繁的访问硬盘,那就关闭休眠,休眠会不会影响寿命,根据情况而定,如果硬盘频繁休眠和唤醒,反而会缩短硬盘寿命。如果你和我一样,访问硬盘较少或者大多数时间只访问一块硬盘或者不喜欢硬盘噪音,可以考虑我的方法。

威联通和群晖都是在没有程序访问硬盘,硬盘闲置一段时间,所有硬盘整体休眠,也就是说要不同时运转,要不同时休眠。让NAS所有硬盘休眠很麻烦,考虑的因素有很多,即使好不容易休眠了,不知道什么系统程序又将硬盘唤醒。网上大部分是讨论这种情况。比如检查cloudlink 、病毒防护 、NTP伺服器是否启用等等。

我自己很希望硬盘能独立休眠,和windows电脑一样,现在非常热门的Unraid系统,一个很大的优点就是硬盘可以无访问独立休眠。我把系统装在SSD固态硬盘上,而空闲的机械硬盘处于休眠状态。我如果只访问一块机械硬盘,其它两块机械硬盘处于休眠状态。比如我pt下载,只访问一块硬盘。

在威联通国外论坛的一篇文章解决了我的问题,并且方法是安全的。文章出处:Advanced guide to how I completely silenced my TS-453A

一、原理:

先从硬盘分区说起:
系统分区:此分区存储 QTS 操作系统、用户设置(例如,帐户凭据、网络设置和控制面板设置)和系统日志。默认情况下,系统使用 RAID 1 的镜像功能,并将一组相同的系统分区数据保存到 NAS 的每个硬盘上。当系统检测到NAS 中的硬盘损坏或发生故障时,仍可使用状态良好的硬盘中的系统数据来启动系统。如果有多个状态良好的硬盘可供系统启动,则将先使用硬盘编号较小的硬盘。例如,如果硬盘 1 和硬盘 4 都处于良好状态,则硬盘 1 将用于系统启动。
SWAP 分区:当 RAM 已满且系统需要更多内存资源时,此分区可用作临时内存资源。 默认情况下,系统使用 RAID 1 的镜像功能并将一组相同的 SWAP 分区数据保存到 NAS 的每个硬盘上。
数据分区:此分区由存储池和存储空间组成。所有数据和安装的套件都存储在此处。


威联通创建了2个内部 RAID-1 系统分区,该分区跨越所有驱动器并不断访问该分区。所以硬盘不能独立休眠。

原因找到了,系统分区组成RAID 1造成了硬盘不能独立休眠。那么怎么做呢,那么就要非系统盘暂时脱离系统分区RAID 1。我们就设置一个定时任务,每天或每周定期让非系统盘“加入”这个分区,过15分钟后,然后再脱离系统分区RAID 1,硬盘又能独立休眠,同时保证系统安全。

如何让非系统盘暂时脱离系统分区RAID 1。事实上,威联通的系统分区RAID 1有两个,对于4盘位nas来说,硬盘第1分区sda1、sdb1、sdc1、sdd1组成一个系统分区RAID 1(路径/dev/md9),硬盘第4分区sda4、sdb4、sdc4、sdd4组成一个系统分区RAID 1(路径/dev/md13)
,这两个分区是操作的重点。验证过程有点复杂,与后面操作也没多大关系,就略过了。感兴趣的可以看我原来那个帖子或者国外那篇文章。

原理有点复杂,但是操作很简单,操作的主角是mdadm,它是Linux下的一款标准的软件 RAID 管理工具。

对于硬盘sdb来说,执行下面这两个命令,硬盘“脱离”系统raid1分开,硬盘可以独立休眠:
mdadm /dev/md9 --fail /dev/sdb1
mdadm /dev/md13 --fail /dev/sdb4

执行下面这两个命令,硬盘重新加入系统raid1,恢复原设置:
mdadm /dev/md9 --re-add /dev/sdb1
mdadm /dev/md13 --re-add /dev/sdb4

二、添加定时任务

下面操作以4盘nas为例,第二块、第三块和第四块硬盘脱离系统RAID1。

1 首先在威联通上设置ssh允许访问,硬盘设置允许休眠

控制台 ->网络和文件服务->telnet/ssh,允许ssh连接。应用保存。

控制台 ->系统->硬件->常规,开启磁盘待机模式。应用保存。

2 创建”脱离“系统RAID1的可执行脚本

ssh客户端登录推荐下shell,个人版免费。

touch命令创建空文件:

touch /share/homes/admin/disconnect_internal_raid.sh

修改脚本文件为执行文件:

chmod +x /share/homes/admin/disconnect_internal_raid.sh

用vi命令或者winscp编辑脚本disconnect_internal_raid.sh,脚本内容如下:

#!/bin/bash
echo "Disconnecting md9"
mdadm /dev/md9 --fail /dev/sdb1
mdadm /dev/md9 --fail /dev/sdc1
mdadm /dev/md9 --fail /dev/sdd1echo "Disconnecting md13"
mdadm /dev/md13 --fail /dev/sdb4
mdadm /dev/md13 --fail /dev/sdc4
mdadm /dev/md13 --fail /dev/sdd4

3 创建“加入"系统分区的可执行脚本

touch /share/homes/admin/rebuild_internal_raid.sh

chmod +x /share/homes/admin/rebuild_internal_raid.sh

编辑脚本rebuild_internal_raid.sh,脚本内容如下:


#!/bin/bash
echo "Re-adding md9"
mdadm /dev/md9 --re-add /dev/sdb1
mdadm /dev/md9 --re-add /dev/sdc1
mdadm /dev/md9 --re-add /dev/sdd1echo "Re-adding md13"
mdadm /dev/md13 --re-add /dev/sdb4
mdadm /dev/md13 --re-add /dev/sdc4
mdadm /dev/md13 --re-add /dev/sdd4

4 每天3:00和3:15执行脚本同步系统raid一次,添加定时任务:

echo "00 03 * * * /share/homes/admin/rebuild_internal_raid.sh" >> /etc/config/crontab
echo "15 03 * * * /share/homes/admin/disconnect_internal_raid.sh" >> /etc/config/crontab

可用命令crontab -l 查看定时任务,应该看到已经添加的2个任务。

执行下面命令,可不必重启系统就使定时任务立即生效。

crontab /etc/config/crontab && /etc/init.d/crond.sh restart

三 、开机自动运行(autorun.sh)

关机后,再启动nas会重新建立raid-1,所以为了避免每次手动操作,需要设置开机自动运行”脱离“系统raid1的脚本

我查看了威联通的帮助文档,威联通 的nas型号不同,设置autorun.sh也不同,原文链接https://wiki.qnap.com/wiki/Running_Your_Own_Application_at_Startup。

具体操作如下:

控制台 ->硬件->常规:启动时运行用户自定义的进程前面打勾启用。(见下图)

ssh登录nas,对于x86机型来说,执行下面命令:

mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config (型号不同,这条命令也不同

touch /tmp/config/autorun.sh

chmod +x /tmp/config/autorun.sh

vi或winscp编辑脚本autorun.sh

#!/bin/bash
/share/homes/admin/disconnect_internal_raid.sh

最后一定要执行下面命令,很重要,不然重启后脚本丢失。(有人写的文章这步漏掉了)
umount /tmp/config

四 关闭swap分区(可选)

原作者认为swap分区组成 RAID 1也会导致硬盘不能独立休眠,关闭了swap分区,用1号盘的swap文件替代。但我没改swap分区也能独立休眠。如果运行程序很多,系统使用swap分区,可能会导致硬盘不能独立休眠。 如果有人想关闭swap分区,可按以下操作。

创建swap文件(8G)

# dd if=/dev/zero of=/share/homes/admin/swapfile bs=1024 count=8388608

按上面方法创建可执行脚本(move_swap_to_file.sh),详细步骤略过。

cat move_swap_to_file.sh

#!/bin/bashecho "Turning SWAP off"
swapoff -aecho "Initializing file swap"
mkswap /share/homes/admin/swapfile
swapon /share/homes/admin/swapfile

按上面方法将脚本加入到自启动脚本(autorun.sh)

#!/bin/bash
/share/homes/admin/disconnect_internal_raid.sh
/share/homes/admin/move_swap_to_file.sh

至此,我们的工作完成,nas开机就能脱离系统raid1,并且在每天在规定时间系统raid1同步一次。

五、 恢复原设置

改了这些内容后,有人想恢复原设置,也很容易。

1 删除2个脚本

2 编辑/etc/config/crontab文件,将添加的两条定时任务删除

3 编辑autorun.sh,步骤与第三步相同,只不过autorun.sh内容为空。

六、结论

假如你想检查你的硬盘sdc是否处于休眠状态,可用命令检查:  hdparm -C /dev/sdc。如果显示idle/active, 硬盘没有休眠。 如果显示standby, 那么说明硬盘处于休眠状态。但是这条命令有的硬盘可能不准。

另外,我把nas电源插头插在功率测定仪上,用功率检测硬盘是否休眠。我的nas接1个ssd和3个机械硬盘。休眠后,平常nas功耗12-14瓦之间波动,硬盘运行时,功率30瓦左右。如果我用电脑访问其中一个hdd,功耗马上跳到20瓦左右,机械硬盘的功耗6瓦左右。我停止访问硬盘。空闲5分钟(我设了5分钟休眠)后,功耗又变为15瓦,证明这个hdd独立休眠了。

raid也可用这个方法的,我没有试过。原作者使用的nas是4盘位的,一个用装ssd,2个机械硬盘组了一对raid1,一个硬盘设为静态卷,作者把三个机械硬盘从系统raid-1分开,让三个机械硬盘处于独立休眠也是可行的。

错误难免,欢迎指正。

在威联通NAS上实现硬盘独立休眠相关推荐

  1. 威联通(QNAP)硬盘不休眠(待机)的解决方法

    背景 好奇观察了下 453Bmini 硬盘的休眠(待机)情况,发现在已有 SSD 作为系统和软件安装区域后,HDD 仍不进入休眠状态,或进入休眠短时间被唤醒. 我的 1 号硬盘位是SSD,所以以 2 ...

  2. 群晖、威联通NAS硬盘本地化,使用RaiDrive通过WebDAV实现内网挂载

    先看效果 NAS磁盘映射到电脑本地的方法有很多,但好用流畅不卡顿的还得是WebDAV+RaiDrive将磁盘挂载到本地使用,而新版的RaiDrive必须连接互联网才能使用,完全物理隔离的内网中无法正常 ...

  3. 8T磁盘阵列文件存储服务器 威联通,NAS私有云老司机折腾体验记 篇八:QNAP 威联通TR-004磁盘阵列外接盒使用教程...

    NAS私有云老司机折腾体验记 篇八:QNAP 威联通TR-004磁盘阵列外接盒使用教程 2019-03-19 11:38:24 25点赞 232收藏 28评论 之前,为了追求极佳的笔记本使用体验,笔者 ...

  4. 威联通建立文件服务器的方法,如何管理你的威联通nas文件?这四款神应用让你效率up!up!...

    如何管理你的威联通nas文件?这四款神应用让你效率up!up! 2020-06-08 22:11:04 51点赞 452收藏 25评论 2000出头购入万兆NAS!威联通TS-532X 新手体验及配置 ...

  5. QNAP威联通NAS搭建SFTP服务,并内网穿透实现公网远程访问

    文章目录 1. 威联通NAS启用SFTP 2. 测试局域网访问 3. 内网穿透 3.1 威联通安装cpolar内网穿透 3.2 创建隧道 3.3 测试公网远程访问 4. 配置固定公网TCP端口地址 4 ...

  6. 威联通NAS搭建jellyfin影音库:docker环境一行脚本部署(支持硬件解码、海报刮削)

    使用docker在威联通nas上一键部署jellyfin 直接命令行启动jellyfin,减少前台配置 开启硬件解码,支持自动从TMDB刮削 环境 威联通451D(CPU为J4025,支持硬解) do ...

  7. 威联通nas怎么更换大硬盘_扩充存储池:威联通NAS添加硬盘的扩容设置教程

    扩充存储池:威联通NAS添加硬盘的扩容设置教程 2020-11-14 14:08:02 38点赞 261收藏 40评论 你是AMD Yes党?还是intel和NVIDIA的忠实簇拥呢?最新一届#装机大 ...

  8. 威联通nas怎么更换大硬盘_换新机器啦?威联通NAS数据迁移教程送给你

    原标题:换新机器啦?威联通NAS数据迁移教程送给你 创作说明: 在和一位玩NAS的朋友聊天的时候,她说她最近换了一个纯SSD的NAS TBS-453DX用来做工作室存储数据用,她之前的用NAS也是威联 ...

  9. 威联通nas怎么更换大硬盘_手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini...

    手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini 2019-12-15 11:00:00 51点赞 694收藏 72评论 你是AMD Yes党?还是intel和NVIDI ...

最新文章

  1. docker logstash_用于监视Kubernetes和Docker的六大开源工具
  2. 《排序算法系列一、简单选择排序》
  3. “Can’t be opened because Apple cannot check it for malicious software“ 解决方案
  4. linux下搭建lua开发环境
  5. jio文件 久其_功能强大的Windows文件管理器工具
  6. 力扣面试题 01.07. 旋转矩阵
  7. Http报头Accept与Content-Type的区别
  8. linux命令halt之后怎么开启,Linux中halt命令起什么作用呢?
  9. indesign打开黑屏 mac_看完这篇文章,90%的电脑黑屏问题都可以解决了!
  10. 基于matlab的捷联惯导算法编程(二)
  11. js如何判断字符串是否为空
  12. UVa 10141 - Request for Proposal
  13. SLC NAND FLASH的物理结构
  14. mysqldump命令备份数据 mysql备份数据
  15. 半路出家的菜鸡程序员,北漂五年,给刚入行朋友的一些忠告,发自肺腑
  16. 一个等号(=)和三个等号和两个等号的区别(“===”和“==”)
  17. 将字符串中的每一个字母变成其下一个字母
  18. 提交github的一些糟心
  19. 波斯顿房价 paddlepaddle 深度学习
  20. HTML+CSS页面练习——legend第五部分

热门文章

  1. 微信小程序如何加密?
  2. 苹果手机在哪里清理内存_iphone苹果手机内存不足之清理大法
  3. 常用快递API(顺丰、EMS、申通、圆通等)及快递在线下单API分享
  4. PID调谐方法:根据开环响应特性调谐(一)
  5. OSChina 周二乱弹 ——室友开始买假发女装了
  6. Bitwise Operators
  7. HttpException: 503: Server Error for url:http://cic-1:9696/v2.0/security-groups, Service Unavailable
  8. 自建数据库与云数据库RDS性能比较
  9. pdf中添加声音 java_PDF怎么添加音频?你不能错过的PDF编辑器办公软件
  10. 2021年安徽省大数据与人工智能应用竞赛 大数据-本科组赛题(省赛)