0%

记一次NAS死机的问题排查

导语

最近NAS频繁出现了几次死机。

大致情况是,机器仍有上电,但服务都死了,ssh也进不去,但重启之后都一切恢复正常。前几天一直没空处理,今天有空就排查了一下。

NAS的大致情况:

1
2
3
4
CPU: N5095
SSD: SK hynix PC401 256GB(HFS256GD9TNG)
HDD: Seagate EXOS x18 12TB
OS : Ubuntu server 22.04

确认硬件没坏吧?

因为几次死机都是出现在下载PT大包的时候,所以怀疑是硬盘出问题了。而且,最近电脑的硬盘出现了0e,也有导致电脑死机,所以第一反应是这个。

但是查了查硬盘的smart信息,基本都是正常的。

image-20230702200539332

image-20230702201302406

问问ChatGPT怎么说

排除了硬件故障,我有点无从下手。于是去请教学校LUG的大佬,大佬给了个ChatGPT的方案,对啊,我怎么把ChatGPT给忘了呢。

image-20230702200912205

ChatGPT给的很详细,也比较专业。内存问题、网络问题和磁盘健康问题应该都已经排查过了。于是从系统日志入手开始检查。

Jellyfin出问题了?

首先翻看了系统日志/var/log/syslog,确定了死机出现的时间在前一天晚上23:28前后。在死机前确实出现了两条异常日志。

image-20230702203416055

该日志指向一个docker容器,通过docker ps -a确定该容器运行的是jellyfin。于是我又通过docker logs jellyfin调取了jellyfin的日志。

但事实上,在死机前的一段时间,我根本没有使用jellyfin。因此在死机前的很长一段时间,jellyfin的日志没有记录,当然,更没有任何异常信息。

看看内核日志

LUG的另外一位群友给出了建议,看看内核日志。

通过journalctl -k -b -1 --lines=1000 --reverse看到了上次死机前的内核日志。在日志里果然得到了重要信息。

1
2
3
4
5
Jul 01 23:28:29 n5095nas kernel: watchdog: BUG: soft lockup - CPU#2 stuck for 49s! [thermald:3766]
Jul 01 23:28:29 n5095nas kernel: watchdog: BUG: soft lockup - CPU#1 stuck for 52s! [qbittorrent-nox:6957]
Jul 01 23:28:01 n5095nas kernel: watchdog: BUG: soft lockup - CPU#2 stuck for 23s! [thermald:3766]
Jul 01 23:28:01 n5095nas kernel: watchdog: BUG: soft lockup - CPU#1 stuck for 26s! [qbittorrent-nox:6957]
Jul 01 23:28:01 n5095nas kernel: NMI watchdog: Watchdog detected hard LOCKUP on cpu 0

上述是一部分标红日志,可以看到CPU出现了中断锁定。

qbittorrent是挂着下载PT大包下载任务的软件。那thermald是什么?

image-20230702200609353

好家伙,原来是热监控守护程序。

答案浮出水面

看到热监控守护程序那刻,答案已然悄悄浮现在脑海。

这种小机箱确实散热捉急,而且碍于噪音我还把5510的机箱散热风扇给拆掉了。本来考虑到整机的功耗不高,而且当时正常使用一段时间的温度还算能接受,但事实证明还是我大意了。

那就验证一下是不是过热问题。还原了一下之前死机之前的任务场景,尽可能给到系统一定的压力。然后监控一下问题。

image-20230702202652154

好家伙,固态硬盘来到了恐怖的91.8°C,那也难怪会死机了。

结语

这一块固态硬盘是我之前的笔记本拆机下来的。型号为SK hynix PC401,主控是马牌88SS1093,海力士自家的颗粒。可喜也可悲的是,这块盘还有1GB的Dram缓存。

众所周知,有缓盘普遍比无缓盘温度高一大截。看来为了温度,这种小机箱包括笔记本还是搞个无缓盘比较合适。

至于我这个要如何处理,估计要等有时间换一块硬盘或者重新考虑在加一个机箱风扇了。

PS:机箱只能加装5010的风扇。小扇普遍声音大就算了,机箱孔位还比较小。风扇贴机箱壁近了风切声比较大,离远了散热效果差。除非加大转速,但转速上去噪声也上去了。哎难搞。