前言

​ 由于存放在网盘的文件经常被和谐,所以产生了组一台NAS的想法,方便存储文件,当个人网站服务器用。

一、确定需求

基本需求
  • 能运行虚拟机
  • 具有一定的硬件解码能力
  • 低功耗。
Ups功能

​ ups的的主要作用是防止突然间停电影响nas的工作导致硬盘损坏,为了nas的数据安全,一台ups肯定是必不可少的,目前市面上的ups基本上都是交流电UPS,缺点有很多,体积大、空载的功耗高转化率低,市面上又基本上找不到适合nas用的大功率直流UPS,所以我打算自己DIY。

电量统计功能

​ nas是365天不间断运行的,对于它的耗电量,我心里也是充满了好奇。所以我觉得有必要加上电量统计功能,方便知道用了多少电。

二、方案制定

基本功能
  • nas的主要硬件方面我选择了映泰j4125+8G内存的组合,加一根16G的傲腾ssd做缓存,J4125在黑群晖920+下可以免打驱动使用核显,功耗TPD10W。

  • 因为Nas还要实现ups功能,所以机箱除了要塞下基本硬件外,还要塞下ups的电池组,所以机箱的内部空间必须得大,在我的精挑细选下,最终选择了这款机箱:

因为这款机箱的配色我不太喜欢,所以我对机箱重新进行了喷漆

喷完漆后的效果:

ups功能
ups模块

​ 市面上基本上找不到大功率直流ups模块,逛淘宝的时候只找到了一款给路由器用的Ups模块,最大功率支持12V 4A

但是12X4=48w 功率还是不够高怎么办? 那就把两块ups模块并联起来呗,并联之后功率叠加 12*8=96w

电池组

​ 电池在这里的作用是储存电能,当停电的时候由电池给nas供电,在这里我用了3颗21700电池进行串联,单颗电池容量18.5wh 18.5*3=55.5,也就是说能够支持55.5w的电器使用一个小时,由于没有点焊机,所以我自己用亚克力板做了一个电池盒,将电池串联起来。

电源

想要低功那就只能选择DC-ATX方案,市面上的dc电源质量参差不齐,在多多比较后我选择了微软xbox电源。

电量统计

​ 由于技术不够,不会设计电路,在电量统计功能方面,我用智能插座来统计电量,选用了小米智能插座3。

三、组装环节

把智能插座和电源的外壳拆除后,把所有的元器件焊接在一起。

方框里的元器件分别是: ①拆除了外壳的小米智能插座3 ②风扇调速模块;电源在运行的时候温度是很烫的,所以我加装了一个风扇给电源降温,模块带温控功能,能根据机箱环境温度进行调节转速速或者停止工作。 ③拆除了外壳的xbox电源。 ④两块并联的UPS模块。 ⑤电池组

接线图:

最终效果:

支持电量信息统计:

停电后自动关机功能

​ ups理论上能支持nas使用一个小时左右,但是万一停电时间比较长,ups的电量也会有耗尽的时候,怎么才能让nas在停电的时候自动关机呢?

​ 我的思路是写一个脚本,每隔2分钟ping一下路由器,如果停电了路由器是不会回应的,如果路由器没有回应,就执行关机命令,具体做法如下:

  1. 首先ssh 连接nas,在/mnt目录下创建一个名为autoshutdown.sh的文件,并设置文件的权限为755:
mkdir autoshutdown.sh /mnt
chmod -r 755 /mnt/autoshutdown.sh

2.用vi编辑器编辑autoshutdown.sh,在文件里输入下面的脚本:

#!/bin/sh
MonitorIP=192.168.1.1
DelayTime=120s
ping -c 1 $MonitorIP > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
echo ‘ AC Power OK ! ‘
else
synologset1 sys warn 0x11600036
echo ‘ AC Power maybe off, checking again after 1 minutes ! ‘
sleep $DelayTime
ping -c 1 $MonitorIP > /dev/null
ret=$?
if [ $ret -eq 0 ]
then
synologset1 sys warn 0x11600037
echo ‘ Checkagain, AC Power OK ! ‘
else
synologset1 sys warn 0x11600035
poweroff
fi
fi

3.设置定时运行,用vi修改/etc/目录下的系统定时文件crontab,添加如下内容后重启nas

root        /mnt/autoshutdown.sh