APP下载 微博 微信

Hao4K影音


[经验心得] 教你怎么“废物利用”搭建寝室的个人NAS

[复制链接]

发表于 2019年03月20日 14:06 31409 0 来源:媒体存储> 经验心得 |只看大图 回帖奖励 |正序浏览 |

Robin 帖主

2019-3-20 14:06

教你怎么“废物利用”搭建寝室的个人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强得多,虽然功耗高了点,但是也可以接受的。而且最后配出来的价格也是要便宜好多。

5c91c67b1a51d2626.png_.jpg

5c91c67b1a51d2626.png_.jpg

j3455天梯图分数

5c91c67b25ef78317.png_.jpg

5c91c67b25ef78317.png_.jpg

i3-3120M天梯图分数
最终配置如下:CPU:i3-3120M0¥
主板: HM77 ITX 工控板250¥
内存:  精亿DDR3 4G1.35V85¥
硬盘:朗科120G mSATA SSD85¥
散热器:超频三蜂鸟26¥
机箱:e.Mini立人机箱 itx迷你机箱188¥
总计:634¥

5c91c9f67276c2167.jpg_e600.jpg

5c91c9f67276c2167.jpg_e600.jpg

工控板+CPU+内存+固态 测试

5c91d6525d0798532.jpg_e600.jpg

5c91d6525d0798532.jpg_e600.jpg

测试的时候,一堆线我知道这种方案一定不是最具有性价比的方案,其实搞这个东西也没有什么性价比,几百块钱可以买好久的商业云盘用。对我来说这个小主机除了用作NAS外我还希望可以用于程序测试等工作。上一篇中有人问为什么不用一些专用的NAS系统,其实也是因为这个原因,因为我除了希望用于NAS外还想用作其他用途。
二、操作系统选择
我在阿里云上租用的主机时centos的,没有图形界面,所有操作全靠命令行。其实对于专业的服务器系统来说,图形化界面时多余的。然而作为我个人的服务器我还是希望有一个图形化的界面的,这样可用性更高。在一开始我就排除了windows系统(包括windows server),因为我有太多可以运行windows的设备了。因此在选择操作系统的时候选择了Ubuntu mate作为我的小主机的系统。

5c91cd8f780023973.png_.jpg

5c91cd8f780023973.png_.jpg

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

5c91cfee391f27072.png_.jpg

5c91cfee391f27072.png_.jpg

登陆阿里云生成accesskeyaccesskey是阿里云用于授权访问API的凭证,脚本需要通过accesskey访问API。同时阿里云提供了PHP、Nodejs等语言的SDK,可以方便开发脚本。
2、编写脚本
脚本我是使用NodeJS编写的,主要思想就是获取本机外网地址→判断IP地址是否发生变化→根据结果修改DNS解析。在网上有许多获取IP地址的方法,但是大多是借用其他网站的接口。然而这些接口免费的无法保证稳定性,收费的又没有必要。
因此我在我的阿里云主机上部署了一个小PHP程序,用于获取并返回访客的IP地址。

5c91d290517c82269.png_.jpg

5c91d290517c82269.png_.jpg

脚本程序
3、部署脚本
首先在主机上安装nodejs。
1)下载nodejs安装包,选择【Linux Binaries (x64)】版本https://nodejs.org/en/download/

5c91d39175cc7605.png_.jpg

5c91d39175cc7605.png_.jpg

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

5c91d57fdab1d5679.png_.jpg

5c91d57fdab1d5679.png_.jpg

终端显示的log我把脚本检测的周期设置为5分钟一次,dns解析会在10分钟之后生效,因此理论上IP地址改变最多会导致20分钟无法访问。效果还是可以的。
四、总结
这个主机使用nextcloud上传文件的时候最快能达到300Mbs左右。远低于千兆网口的速度。个人猜测原因是多方面的。应该主要是硬盘读写速度的原因。稳定性目前还没有什么问题,已经连续运行了半个多月了。
缺点:
1、风扇噪声有些大,可以选择噪音更小的风扇。
2、功耗不是很低,大概静态功耗在15W左右。
3、目前由于资金以及需求问题,还没有增加两块机械组成磁盘阵列。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则



绑定微信 + 关注公众号,第一时间获得消息通知!
:
发烧刚入门
:
介绍未填写

主题

帖子

积分811

图文推荐

  • 小量的影视、音频存储方案之我见

    最近,一块使用了近十年的4T移动硬盘挂了(曾被摔

  • 极空间挂载阿里云、115、百度、夸克等20个

    理论上使用如下教实现程极空间可以挂载阿里云网盘

  • 红米AC2100刷Padavan固件超全详细教程

    刷机全过程图解 准备工作这部分,网上教程几乎都

  • 科普:什么是硬盘MTBF?那MTTF、MTTD、MTTR

    买固态硬盘,我们会比较关注颗粒寿命,机械硬盘虽

  • 群辉加USB3.0千兆网卡成功,教程分享

    具体安装替换参考此贴https://www.hao4k.cn/threa

  • 机械硬盘该怎么选?教你最全机械硬盘选购指

    机械硬盘该怎么选?教你最全机械硬盘选购指南

  • 搭建私有云—华芸AS6404T NAS+华硕 AC68U体

    帮朋友搭建私有云—华芸AS6404T NAS+华硕 AC68U体

  • 分享蜗牛星际A\B\C\D款机箱和功能分别有

    历经一个月研究:蜗牛星际ABCD款机箱和功能分

  • NAS都有哪些品牌?带你了解几大NAS名牌介绍

    NAS都有哪些品牌?带你了解几大NAS名牌介绍 前

  • 利用NAS建立DNS缓存服务器Pi-hole

    在家用环境中利用NAS建立DNS缓存服务器 1 前

  • Hao4K影音app客户端下载