群晖硬盘不断唤醒(无法休眠)的一些折腾

Linux, Windows, 折腾 2019/12/18

写在最前面:

其实在折腾群晖硬盘休眠前,我查阅了一些资料,在 通电但不读写是否对硬盘寿命有影响 的问题上,绝大多数的回答还是 有,但微乎其微

但毕竟是作为仓储盘,日常读写频率并不高的情况下,我还是想让它安静一些,又或许休眠了,才能给人一种安全感……所以才有了下面的折腾过程。

黑群(星际蜗牛)还可以参考这篇:黑群晖(星际蜗牛)硬盘不断唤醒\无法休眠的一些折腾

开始

最近群晖硬盘总是隔一段时间就被唤醒,日志中心间隔记录到 Internal disks woke up from hibernation

找了很多教程,不过都没有适用的,于是就自己折腾。

以上的图就是我目前遇到的情况,每隔2~3分钟硬盘就被唤醒

并且除了File Station等无法卸载的套件而外,我没有安装任何套件,可以排除套件唤醒的因素。

一、开启休眠日志

技术支持中心 - 技术支持服务 - 系统日志工具 开启日志记录

开启之后就等一段时间,间隔太短分析的日志没意义。

更新:即使开着日志记录,该休眠的时候,群晖也会休眠。

另外,官方的说明有提到开启这个功能也可能会导致无法休眠,所以每次记录完日志后也需要及时关闭。

二、分析日志

以root身份SSH登陆群晖,查看休眠日志

tail -f /var/log/hibernationFull.log

好吧,对于我这样一个刚入门群晖的新手来说,看不懂啊~咱也不好说啊~

上面的日志,每行的大概意思就是,几点几分某个程序在某一个存储器上进行了某项操作,举例来说:

[ 1842.213806] syno_hibernatio(11591): dirtied inode 30101 (hibernationFull.log) on md0

1842.213806(貌似是是相对时间),syno_hibernatio程序(PID为11591),dirtied inode 30101(操作块?),hibernationFull.log(休眠的日志文件),on md0(md0存储器)

唉,读一遍就通了,明白了日志文件是怎么记录的。

于是乎就针对上述查看休眠日志的命令改造一下,去除在内存上的读写日志

tail -f /var/log/hibernationFull.log | grep -v 'proc\|tmpfs'

结合上面的图,剔除掉内存读写的相关条目,基本上日志里来来回回硬盘的都是以下几个程序,逐行分析,分析日志里记录的都是哪些程序在操作硬盘。

md0_raid1

也可能是md1_raid1\md2_raid1\md3_raid1,因为群晖的系统是有几块盘就在几块盘上写系统,类似RAID,所以需要隔一段时间同步系统数据,据我的观察,此操作只有在系统唤醒的状态下才会进行

jdb

也是记录日志的,原文:The JBD is the journaling block device that sits between the file system and the block device driver.

syno_hibernatio

应为syno_hibernation_debug,因为开启了技术支持中心的休眠日志记录功能,所以系统在唤醒的时候,会调用该程序记录日志

嗯,所以按照这个来分析,我的日志没问题啊,也没异常程序读写啊……陷入尴尬 :笑哭:

三、继续分析

排除套件的原因,我按其他教程以及 官方的指导 里提到的

关闭了一些开关,比如Bonjour、SSDP等等,仅保留了samba(SMB)

过了几个小时,再次观察日志,硬盘的唤醒间隔变大了,而且又有点眉目了

16:55:07 记录到被唤醒

这次的日志记录到一条奇怪的东西

smbd(5624): dirtied inode 24478 (smbXsrv_client_global.tdb) on md0

看名称就知道和samba(SMB)有关……局域网的其他设备唤醒的?

好吧,与其一个设备一个设备的排查,不如直接关闭群晖的SAMBA开关,继续记录日志

四、还是分析

关闭了Samba,过了一晚上,再次查看日志

硬盘被唤醒的时间终于变长了,不错不错~

所以结合上面的操作,应该就是Samba的锅??? 不过我没有具体排查到底是局域网内哪个设备在扫描Samba共享文件夹,从而激活了群晖,从休眠中唤醒。

但是正常使用,我也要用Samba啊,要不然买NAS干嘛~索性就暴力一点,祭出防火墙大法

控制面板 - 安全性 - 防火墙

选择局域网标签,添加允许的设备访问Samba,其他保持拒绝访问。

继续收集日志……

五、依然是分析

接上一步,已经处于深度休眠很久了(差不多4~5个小时),下班回家打开电脑,意外发现这时NAS也被同时唤醒了!!!

不过既然知道是Samba的锅,所以很快就找到这次被唤醒的原因

因为我在Windows的文件管理器中挂载了NAS的硬盘,盲猜一下,就是当打开 此电脑 ,也就是Windows资源管理器的时候,不管你有没有访问这个已挂载的盘符或者其内容,会发送一些数据包给NAS,从而唤醒

任何 SMB/CIFS 广播数据包都可能会阻止 Synology NAS 进入系统休眠,包括网络中运行的任何 Windows 文件浏览器。如果想要在进入系统休眠时忽略 CIFS 广播数据包,请选择 忽略来自 Windows 资源管理器的广播数据包 请注意选择此选项后,SMB/CIFS 将无法使用数据包来退出系统休眠。

这样就好理解了……不过……我特么找遍NAS里所有的设置都没发现“忽略来自 Windows 资源管理器的广播数据包”这一选项

一番搜索……在 https://geoexpat.com/forum/119/thread328657-12.html 找到了相关的图。

虽然是英文版,但在我的NAS设置对应位置,却没有该选项,所以是砍掉了?还是不同的NAS型号功能上有所阉割?

到这里,就暂时没下文了,关于这个选项,我还在继续搜索相关的资料

于是我就把Windows下挂载的samba文件夹断开,需要的时候直接在地址栏输入samba地址进入共享文件夹

断开挂载的NAS盘符之后,到目前为止并没有出现异常唤醒的情况,所以基本可以断定就是就是这个的锅了。

六、先将就着

现在回过头来,发现以上的折腾真是蛋疼,而我暂时也没找到如何解决这个问题的方法,只能先不挂载盘符了……

阶段性的小结一下:在排除套件、日志、不必要的开关的情况下,群晖休眠状态下硬盘被不断唤醒的原因大概率是samba或者其他共享服务引起的

先匿了…… :害羞:

本文标签:


2条评论

  • Jack 评论于

    感谢解答,已按你说的进行设定。
    但这个rrshare,会重复的自动下载。这个是bug吗?

  • jevin 评论于

    换成Mac可破,访达不会出现这种情况

  • 评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)