一次曲折的NAS搭建小记

By | 2020/11/01

离上一次博客已经不知多久了,偶尔老文翻看有一种“这个博主是不是已经翘辫子了”的错觉…… 最大的原因其实不是没有心得和收获,而是步入中年零零碎碎磨磨蹭蹭不知道该写点什么,譬如最近在用Kotlin,最近试了试Flutter,最近玩了魔兽世界(公测时玩过,后来再也没玩,现在20级前反正免费),最近女儿很不省心,最近午饭都在13块钱左右,最近装了台NAS……

就说说这个寒酸NAS吧……

自打B站开了大会员,我已经成了沉迷用户,手机上没有抖音快手没有头条,没有朋友圈没有微博,甚至B乎也卸载了,这个Bilibili成了我维系“年轻状态”的唯一途径。

App各有各的好,推荐算法都是类似的。

自打看了几次捡垃圾、组NAS的视频,整天给我推送这个类型的,越看越有需求,越看越觉得不动手人生不完整,怎么办?勤俭持家废物利用呗。

CPU

很多年前咸鱼收了个华擎J1900-ITX,主板直接焊了CPU,被动散热运行,配了个不错的小机箱,一直放家里运行Ubuntu,因为跑了frp和zero-tier,可以在很多地方连进来(公网IP太稀有了)。我瞅着这个CPU虽然弱但是省电啊可以利用,要不就继续用吧,只是只有两个SATA口,太寒酸了,没事儿,可以解决。

机箱电源

现有的立人机箱全铝合金的 ,虽然好看但是太小只能装一个2.5一个3.5根本不够,然后各种查, 从星际蜗牛到银鑫,从HP Gen7到Dell R720,都看过了一遍,有贵的有便宜的,甚至总觉得鞋盒也不错。

后来拍脑袋一想,我不是还有一个淘汰了的塔式机箱吗?搬家的时候差点丢了,最后不知咋想的还是留着扔杂物间了,虽然体积大了点,放墙边应该可以吧,于是找出来一看,哇高级!我居然不知道自己有这么高级的东西,质量过硬,硬盘位还是插拔式的,还有充足的光驱位可以加硬盘笼,甚至我还在硬盘位里找到了一个未知的袋子,里面是全新的说明书和一包螺丝轧带什么的(我说我这个机箱已经过了好多年然后淘汰了不知道有没有人信……)

虽然不够小巧,但是免费的还有啥好说的呢?

电源是淘宝买的二手的,80Plus,大牌电源,我知道电源不能省,所以没有买便宜货,但是感觉又用不着全新的有点贵,于是选了这个。到手后发现这个电源岁数不小啊,拆开还有一个猫尿味…… 你问我我咋知道猫尿味道难道专门闻过?你猜~

硬盘

我在淘宝上看到一些SAS硬盘,超级便宜,最有性价比的是日立的3T硬盘,只要150左右,折合下来1T50块,约等于不要钱啊。阿里云上最最便宜的归档型OSS,一个月1T也要34元,还不算取回的时间和流量(取回一次流量要250~500块Σ(っ °Д °;)っ)。就算只用1年坏了(SAS硬盘一般质量很好,但是这么便宜肯定已经服役多年了),这价格也香的掉牙了好吧。

不过SAS硬盘一般家用主板都不识别,于是我斥巨资购买了一个 9211-8i 的通道卡,还有两根1-4的SAS线(兼容SATA硬盘),一下子用掉了3T硬盘的钱。不过没事儿,有SAS硬盘在,我相信会回本的。

内存

这个主板上用的是笔记本内存,两个插槽,本来是一个4G,后来我又买个4G,用的不错。

我自己手头用的笔记本是8G内存,感觉有点小有买了根8G,买回拆开一看笔记本只有一个插槽(软件看是两个插槽),简直……于是想这个8G就用NAS上吧,4+8=12G也不错。

而这,是一切的灾难从这里开始……

折腾开始

PCIE改造

有个小问题是,这个ITX主板上只有一个PCIE-1X的端插槽,装个网卡啥的可以,但是这个通道卡是8X的太长了它进不去啊(???跟B站UP主们学坏了)……

没事,通过学习我们可以知道,PCIE是全系兼容的,最重要的部分1X就已经完全具备了,后面加长的都是为了加速而出现的。所以,我只要把PCIE插槽后面割开,就可以强行插入更长的板卡了,虽然降速,但是我对速度要求不高,更何况机械硬盘也快不到哪里去。其中艰辛不表,反正最后割开了,还修了半天被我弄歪的针脚,扩展卡插入后尝试可以正常使用,啧,这个NICE!

做好unRaid的系统盘,插上开机,完美识别,组个array,直接能用,太棒了。然后我要把原来硬盘上的IMDB 250硬盘拷到新的阵列里,unRaid里装一个Ubuntu的虚拟机(因为要运行zero-tier和公司机器组网),直接rsync走起,60M/s的速度虽然很慢,不过可以让它自己慢慢拷贝,就这样吧。

死机了

rsync运行了几个小时,机器挂了

再试,十几个小时后,机器挂了

再试,情况依旧……

1.6T的电影数据,拷了三天没拷贝完成,期间电脑短则几小时,多则十几小时,必然会失去响应。狂躁中……

内存的锅

本来插上12G内存后,原来装着的系统开始各种报错,运行Memtest 发现检查到多少G以后全是错,内存交换插也没用,最后甚至怀疑是不是插槽坏了啊,算了,就插一条8G吧,勉强够用……

是内存问题?我在查询相关数据是,猛然发现J1900最大只支持8G内存,所以明白了为啥12G内存总是上不去。然后又分析,既然只支持8G内存,但是它有两个内存插槽,是不是意味着一个插槽只能用4G,超了以后它访问4G以外的数据会产生问题?越想越觉得有道理,感觉自己真是个奇才,于是换回两根4G,继续运行,一夜过后,还是死了。

unRaid的锅

是unRaid 最新版不稳定吗?于是我从6.8.3换回了6.8.2老版本,情况依旧。而且如果这么糟糕网上肯定很多人会爆料这个系统不行,所以unRaid问题初步排除。

通道卡的锅

是通道卡问题?我摸着上面的散热片超级烫,怀疑是过热了,服务器里有暴力风扇所以只有被动散热,我这里恐怕不行,于是装一个风扇专门对着它吹,温度下来了情况依旧。所以这个原因也基本排除。

纠结中

我感觉自己陷入了泥潭中,每次运行差不多要一天一夜才能看到结果而且结果肯定是死,我总不见定时重启NAS吧,这个虚拟机还有问题,Ubuntu启动后拿不到ip,我还得手动执行dhcpclient 网卡名 才可以,虽然可以写个开机脚本,但是每天定时重启的NAS叫什么NAS啊。期间还出差了好几天,搞了三周都没啥结果。

电源的锅

在我第N次面对ssh突然连不上的境地时,我灵光一闪,难道是电源不行?这个电源确实很老了,面对老化电源时,确实有可能因为电压不稳导致主板出现问题然后死机,有道理有道理,于是我痛下杀手,把家里台式机拆了,拿出里面的金牌电源给装上,运行起来。

一夜无事

本来跑十来个小时正常的情况也有,我应该继续观察的,但是我感觉自己心灵福至找到了问题的根本原因,于是我迫不及待地找到商家,拿出证据要求退货或者换货,商家直接建议退货,好吧,退就退,虽然有退货险,但是因为超重还是多付了两元,为了良好的体验,我认了。退完货,我拿起咸鱼找了个EVGA的成色很新的电源下手了,基本可以买新的了,但是我还是觉得二手便宜划算些(就是这么勤俭持家!)。好嘞,心里想着等新电源到手,换上就完美了·~

原来是你!

退货当天晚上我在操作unraid里的ubuntu的时候,突然,终端失去了响应,屏幕显示:

Message from xishui@ur-unbuntu at xxxxx … kernel:NMI watchdog: BUG: soft lockup – CPU#11 stuck for 22s! [qemu-kvm:1547] [Error logs]2

然后NAS失去了响应,就和之前无数次一样,一看时间,靠谱电源换上差不多24小时,超过了以前任何一次,但是,很明显,即使用了自家的电源,死机依然发生了。

一瞬间,我对淘宝商家产生了无数的抱歉,也对额外付的额外两块邮费钱产生了无比的怀念,我甚至觉得那个猫骚味儿电源也很可爱,可惜,它已经不属于我了。

和往常死机不同,我这次连着vm干活,看到了错误提示代码,这是一个KVM的问题,应该是bug,它导致了我unraid中的VM死机,从而影响了整台NAS,导致unRaid不可用。

在网上查询后,这个bug算不上常见也算不上罕见,可以通过设置虚拟机中的/proc/sys/kernel/watchdog_thresh 来临时规避,不过我感觉既然是bug,也许在kvm中设置比较好,于是我把kvm的cpu模式设置为不直通而是使用虚拟cpu,意外发现这么设置以后,网卡ip也可以自动获得了,很好很好。

现在NAS还在运行中,希望我再也别看到死机了。

** 11月08 更新 **

没用,还是死机了,即便可以撑久一点,也熬不过48小时,不管watchdog_thresh 设置多大都是会死机。又一顿研究,最终,最终(真是念念不忘必有回响)找到了这个问题的根源,linux的核心报告里有人发现了这个问题 https://bugzilla.kernel.org/show_bug.cgi?id=109051 。原来是和我的J1900 CPU有关系,不过很奇怪我裸机安装并没有发生过这个问题。估计是CPU + KVM + Linux多重因素下,这个bug显露的彻底了吧。

通过设置核心参数 intel.max_cstate=1 processor.max_cstate=1 可以完全避免这个问题了,已经成功运行了 72 小时,相信这是最后一次了!

** 12月08 更新 **

充满了曲折的1个月过去了,为什么说曲折,因为死机还是存在,虽然通过设置 max_cstate 降低了死机频率,但是依然会发生,每周可能会有两三此,每次发生我都无能为力,因为主板的设置的来电自动启动无效,用了智能插座也没辙,每次我都要晚上回去强制重启才行……

我设置在BIOS降低了Cstate设置(完全关闭会导致unraid无法启动,原因不明),然后也关闭了unraid的虚拟机功能只用docker来完成各种工作,依然不行。

折磨了一个月后,我毅然决然抛弃了unraid,重新装回ubuntu,我觉得是不是unraid的内核哪里不行就是在我机器上跑不稳定。至于数据盘,我可以用mergerfs/snapraid继续使用,问题不大。

在成功安装ubuntu后,正在开开心心配置各种软件服务的时候,soft lockup - CPU# stuck for 23s不期而至……

为什么??!!难道还是电源不行,或者是新安装了LSI卡的关系?路漫漫其修远兮,吾将上下而求索……

** 1月1日更新 **

这应该是我最后一次更新了,我发现BIOS调整后安装ubuntu虽然极大增加了稳定性,基本不再出现锁死,但是mergerfs让我痛不欲生,它管理的文件有极大概率出现问题,尤其是下载大文件,基本99%可能会出现损坏,即使开启了cache 依然如此,视频还好,但是程序文件或者iso文件损坏根本无法使用。

所以,我又买了一套硬件,与J1900说再见(也许它可以用在别的什么地方吧),使用H81 + G3220 的配置再次运行起了unRaid,终于,我期望的宁静来到了身边……

10 thoughts on “一次曲折的NAS搭建小记

  1. zbw

    找pygame进入的博主的博客,没想到这么多年了还在更新?恒心太强了

    Reply
  2. vigiles

    其实儿子才更不省心,甚于自搭NAS

    Reply
  3. wyf

    是啊,这一年来我一直在想“这博客怎么翘辫子了”…
    不过,我能问一问,NAS 具体可以干什么呢?

    Reply

发表评论

您的电子邮箱地址不会被公开。