原文作者:AlphaTheta

教你怎么“废物利用”搭建寝室的个人NAS

在大概一个月以前,我分享了“在学生宿舍用树莓派做个NAS存储”的经验。

在学生宿舍用树莓派做个NAS存储,前两天用百度搜自己的IP地址的时候我发现我的外网IP地址和路由器上的一样。这说明什么?说明我的宽带的IP是公网IP啊!!!紧接着为了验证一下,我在电脑上装了个XAMPP,在电脑上开了一个小网站,然后试着用我的手机通过数据流量能不能打开这个网站。bingo~可以打开,这样就验证了我的IP确实是一个公网AlphaTheta

后来经过测试,觉得树莓派的性能实在是太弱鸡了。这个性能的体现不仅是网口速度的问题,主要体现在树莓派处理器太弱,导致操作很不顺畅。举个栗子:上传一个大文件时,数据传输完毕之后树莓派需要处理好久才能完成文件的组织。再加上我因为个人专业的原因,希望可以有一个个人服务器用于完成程序调试等工作。所以综合考虑,还是配一个小主机替换掉树莓派。

所以首先明确一下目标:

1、尽可能省钱!(这是最重要的!)

2、性能要高于我在阿里云租用的一核2G内存的服务器(这是必须的)

3、体积要小(寝室地方小)

一、硬件准备

对我来说,比较划算的方案有两种:

1、使用比较流行的J3455M主板 DDR3内存 机械硬盘 NAS专用机箱;

2、利用手上的旧笔记本CPU 笔记本内存 MINI-SATA固态 ITX小机箱。

最后仔细考虑了一下还是选择了第二种方案。我手上的CPU时之前帮老爸升级笔记本电脑时替换下来的i3 3120M 。35W的TDP功耗。我查了一下CPU天梯表,发现i3 3120M要比J3455强得多,虽然功耗高了点,但是也可以接受的。而且最后配出来的价格也是要便宜好多。

废弃笔记本做nas(教你怎么废物利用)(1)

j3455天梯图分数

废弃笔记本做nas(教你怎么废物利用)(2)

i3-3120M天梯图分数

最终配置如下:CPU:i3-3120M0¥

主板: HM77 ITX 工控板250¥

内存: 精亿DDR3 4G1.35V85¥

硬盘:朗科120G mSATA SSD85¥

散热器:超频三蜂鸟26¥

机箱:e.Mini立人机箱 itx迷你机箱188¥

总计:634¥

废弃笔记本做nas(教你怎么废物利用)(3)

工控板 CPU 内存 固态 测试

废弃笔记本做nas(教你怎么废物利用)(4)

测试的时候,一堆线我知道这种方案一定不是最具有性价比的方案,其实搞这个东西也没有什么性价比,几百块钱可以买好久的商业云盘用。对我来说这个小主机除了用作NAS外我还希望可以用于程序测试等工作。上一篇中有人问为什么不用一些专用的NAS系统,其实也是因为这个原因,因为我除了希望用于NAS外还想用作其他用途。

二、操作系统选择

我在阿里云上租用的主机时centos的,没有图形界面,所有操作全靠命令行。其实对于专业的服务器系统来说,图形化界面时多余的。然而作为我个人的服务器我还是希望有一个图形化的界面的,这样可用性更高。在一开始我就排除了windows系统(包括windows server),因为我有太多可以运行windows的设备了。因此在选择操作系统的时候选择了Ubuntu mate作为我的小主机的系统。

废弃笔记本做nas(教你怎么废物利用)(5)

系统信息截图

三、动态域名设置

在上一篇中遗留了一个问题,那就是虽然我的的IP地址时公网IP。但是这个IP地址并不是固定的,大概两天会重新分配一次IP地址。这导致我需要经常登陆阿里云更换我的域名解析地址。后来我看到阿里云提供DNS解析的API。这样我可以通过一个脚本检测我的IP地址是否发生改变,当检测到IP地址变动时,通过API自动修改DNS的解析。接下来简单介绍一下。

1、获取阿里云accesskey

废弃笔记本做nas(教你怎么废物利用)(6)

登陆阿里云生成accesskeyaccesskey是阿里云用于授权访问API的凭证,脚本需要通过accesskey访问API。同时阿里云提供了PHP、Nodejs等语言的SDK,可以方便开发脚本。

2、编写脚本

脚本我是使用NodeJS编写的,主要思想就是获取本机外网地址→判断IP地址是否发生变化→根据结果修改DNS解析。在网上有许多获取IP地址的方法,但是大多是借用其他网站的接口。然而这些接口免费的无法保证稳定性,收费的又没有必要。

因此我在我的阿里云主机上部署了一个小PHP程序,用于获取并返回访客的IP地址。

废弃笔记本做nas(教你怎么废物利用)(7)

脚本程序

3、部署脚本

首先在主机上安装nodejs。

1)下载nodejs安装包,选择【Linux Binaries (x64)】版本https://nodejs.org/en/download/

废弃笔记本做nas(教你怎么废物利用)(8)

选择Linux版本的Nodejs安装包

2)解压、安装将node 、npm设置软链接,可全局调用通过npm安装pm2,用于守护nodejs脚本进程而后设置软连接使pm2可全局调用而后通过pm2启动脚本这样pm2可以守护进程,当脚本异常退出时,会自动重启脚本。

废弃笔记本做nas(教你怎么废物利用)(9)

终端显示的log我把脚本检测的周期设置为5分钟一次,dns解析会在10分钟之后生效,因此理论上IP地址改变最多会导致20分钟无法访问。效果还是可以的。

四、总结

这个主机使用nextcloud上传文件的时候最快能达到300Mbs左右。远低于千兆网口的速度。个人猜测原因是多方面的。应该主要是硬盘读写速度的原因。稳定性目前还没有什么问题,已经连续运行了半个多月了。

缺点:

1、风扇噪声有些大,可以选择噪音更小的风扇。

2、功耗不是很低,大概静态功耗在15W左右。

3、目前由于资金以及需求问题,还没有增加两块机械组成磁盘阵列。

,