这篇文章是记录折腾过程中出现的各种问题和解决方法。
目录
一、硬件Failure记录
1. 主机ATX电源故障
主机平台PSU是酷冷至尊的MWE系列750W全模组电源,京东双十一期间入手的。
第一次故障是装机后约数月。在将近2个月没有开机,也没有拔掉电源线完全断电后,无法开机了。短接电源没有反应,寄返京东,免费换新后可以开机。
第二次故障是换新的电源使用了约1年后。正常关机后无法再次开机,必须完全断电后,凭运气开机。寄返京东,免费换新后可以开机。这次换新的电源是同型号新款,模组线材有点不一样,可以一根线解决CPU 8+4供电,另外模组插座比之前两个电源松了很多,接线轻松不少。
2. 内存故障
Cache方面,采用了两块500G固态硬盘,组建btrfs raid 1。但是,在使用过程中,cache经常性出现csum和corrupt错误,导致存入cache的文件无法通过mover转移至data array(提示IO错误)。奇怪的是,通过smb共享却正常访问并且通过网络复制这些出错的文件。然而,在unRAID终端,使用mv、cp命令,一定会出现“Input/output error”导致文件操作失败。另外发现,体积越大的文件,越容易出事。
没有办法修复相关错误,并且只要往cache写入文件,csum错误一定会不断上升,直到btrfs文件系统出现问题直接挂掉。这个时候只能转移数据后格式化并重新建立cache,然后很快再次发生上述错误。
趁着电源换新,跑了一次memtest86+,发现其中一条内存的某些固定地址出现1个bit的错误,重新插拔、清洁、更换插槽均复现故障,拔掉,寄返京东,全额退款。自此再也没有遇到csum错误,使劲用cache后隔三岔五scrub都没有任何错误。
经验教训就是:一定做好硬件检测,日后再次攒机一定得上服务器平台+带ECC的内存,并且运行服务前一定先做好硬件检测工作。
二、软件异常记录
1. UPS状态异常?
APC BK650M2通过USB连接unRAID,可以正常检测并识别,但是UPS电源充满的情况下,不管市电是否正常供电,unRAID里永远显示为“On battery”,不过倒是不影响市电停电后保护以及自动开关机功能。
目前UPS上接入了unRAID主机、一台显示屏以及几乎所有的网络设备(软路由一台、交换机两台、光猫一台),根据UPS检测结果: 最低基础功率 - 89~97W(硬盘全停转) NAS状态 - 105~117W(硬盘全转、空闲) 典型办公情景 - 140~160W(开启一台直通显卡的win10虚拟机,刷刷网页、写写文档) 通过FurMark单烤GPU - 230~270W 通过FurMark烤GPU+14线程的CPU - 约400W
2. docker虚拟磁盘报错
docker和libvirt的虚拟磁盘,默认是放置在system文件夹里面的。默认情况下,system文件夹是关闭了CoW的(unRAID建议存放虚拟磁盘的文件夹不要开启CoW)。如果跟别的普通共享文件夹一样,开启了CoW功能,在docker设置页面将会有警告,提示可能会发生数据损毁。具体底层原理没有去探究。
改回去就可以了,当然unRAID只允许建立新的共享文件夹的时候才可以修改CoW功能,所以配合终端命令行下的mv命令,重新建立禁用CoW的system文件夹并且转移数据回来即可。