分类
NAS专区 综合技术

我是如何搭建NAS私有云服务器的

(在苹果系统下,如果文章中的图片不能正常显示,请升级Safari浏览器到最新版本,或者使用Chrome、Firefox浏览器打开。)

       熟悉AI柠檬博主的可能会知道,博主除了有搭建在公有云(阿里云和腾讯云等)上的博客和ASRT语音识别项目相关的网站等服务外,还在自己的局域网里搭建了一个物理的私有云服务器,用于个人数据文件的存储,以及一些计算的需求。并且,私有云上的部分服务也是可以通过公网访问的,而且部分公网上的服务也依赖于我的私有云,这样解决了数据存储安全性、数据访问便捷性和综合成本的节约的问题。或许你也需要一套这样的混合云解决方案!

具体需求

       博主的个人数据以及相关工作用到的数据大小比较大,以TB级计算,如果完全采用公有云存储,容量、带宽、时间延迟和数据安全等各项的成本较高。博主平时生活在学校里面(有校园网,校内大局域网,规模可以称为城域网),经常宿舍、教学楼、实验室以及食堂等地到处跑,不过有时还会离开学校到校外去,需要在所有情况下都能确保访问。还有一些其他需求,比如个人计算机和手机的数据文件备份,有时还需要几个人能够相互之间分享一些数据和文件,以及项目代码的托管和多人团队协作等。尤其是之前疫情期间大家都不在一起,微信这方面功能很难用,便捷地互传数据文件、合作开发、交流代码等很多事情也成了问题。所以,我们需要一个成本低廉、存储容量大、能够随时随地访问到数据、带宽大、延迟低的解决方案。

选择一款最合适的物理服务器

       私有云的前期成本较高,运行时主要是电费、网费和人工成本,而基本没有后期的业务持续增长和爆发问题。所以作为穷人党,太贵的服务器不考虑,声音和功耗较大的机架式服务器、塔式工作站也不考虑,一个完美的个人级私有云服务器应该是硬件便宜、功耗低并且噪声小的。综合考虑,在朋友的推荐下,选择了华擎的装有因特尔赛扬J3455四核处理器的主板(J3455-ITX),加装2条DDR3内存,并且装入了DIY ITX迷你服务器机箱,然后连接好硬件线路,成本合计1000元左右。

其他物理硬件选配

       为了确保能够在近距离高速访问数据,我购买了一款5口千兆有线网交换机,上下行全双工双千兆网络,以及一大堆长度1米到5米不等的六类千兆网线。为了我的计算机和其他移动设备能够以千兆网速访问,还购买了一台华为的千兆无线路由器,我的所有设备都可以通过路由器接入网络。千兆交换机其中一个插槽用于接入校园网,华为路由器插在交换机的另一个槽上,我的物理私有云服务器也通过网线连接到这台交换机上。这些硬件成本合计约200元。

操作系统和软件的选配

       由于个人比较追新,在操作系统的选择上,使用了比较激进的Fedora Server系统,能够使用到很多比较新的软件,有时候甚至新到部分软件没有适应的发行版本,比如就遇到过Docker无法在最新版的系统上安装使用。对于追求稳定和新版平衡的同学可以考虑Ubuntu Server系列,如果对于稳定性和可靠性以及资料健全性要求非常高而不追求新的话,那就CentOS吧。Fedora自带系统管理面板,在上面可以很方便地查看系统资源监控状态,配置网络防火墙规则,以及挂载硬盘和建立Raid等。

       应用软件上则使用Samba、Nginx、PHP、NextCloud、Gogs和MariaDB等。由于我对基于网络挂载硬盘(固态硬盘容量是真的不够!)的需要,我开启了Samba服务,并对校园网全段开放,需要用户名密码登陆认证,不过基于安全考虑,不开放到公网。为了弥补公网访问的需求,又安装了基于Web的NextCloud服务器,可以如同OneDrive和百度网盘一样使用,还可以分享文件给其他用户,以及如同微软谷歌文档、腾讯文档一样多人协作在线写Word、PPT文档。Gogs则是一个类似GitHub和Gitee的私有代码仓库服务器软件,满足了我们项目代码托管、团队多人合作进行开发的需求。关于具体的安装过程可以参考我博客上其他相关的文章教程。

       并且AI柠檬部分网站用到的ASRT语音识别API服务也运行在我的物理私有云服务器上,由于内存够用,我可以运行很多道服务程序,并通过Nginx进行负载均衡。

服务器硬盘的选择

       私有云服务器最重要的硬件还有硬盘!一定不要为了贪便宜买二手机械硬盘!很容易出问题!翻新的硬盘也是应该尽量避免的,除非对于数据的可靠性要求不高,或者有其他的备份容灾手段。另外移动硬盘是绝对不要考虑的,它本身是为长期低频访问的离线存储场景设计的,不适合长时间联机运行,否则硬盘很快就会坏掉,博主之前曾仅仅是连续好几天联机,在移动硬盘上解压了一个150GB大小的压缩文件(大约包含有几百万个小文件),就损坏了这块移动硬盘,之后还遇到过仅仅是复制粘贴了几百个GB的文件到其他设备了一次,就使得移动硬盘快速老化,性能下降了很多。

       系统盘可以选择固态硬盘,但别选容量太小的,比如120GB这种,不是怕不够用,而是怕寿命不够用。众所周知,固态硬盘的寿命跟擦写次数有关,比如同样300次擦写寿命,120GB硬盘只能写入约35TB的数据,之后硬盘就可能很快坏掉,而240GB硬盘就可以写入约70TB数据,同样情况下后者的使用寿命是前者两倍。每款硬盘的擦写次数可以在对应品牌官网的产品说明上找到。

       机械硬盘的选择则比较“玄学”,主要是我们很难预测硬盘什么时候会坏,可能是下一秒,也可能是很多年后,一般情况下是概率性损坏的,而长时间高负荷地读写也仅仅是会增大这个概率而已。为了数据的高可靠性,可以使用RAID,不过可惜的是这款主板不支持,那么剩下的最省事的办法是购买可靠的硬盘。对于个人私用,普通消费级硬盘就可以,只要自己能够定期备份数据和更换硬盘就行,NAS专用硬盘也行,而企业级硬盘成本偏高。普通消费级硬盘按一周8*5的使用场景,根据硬盘说明中的平均无故障时间(一般为80万小时)和质保年限(三年)可以推算出可以大概率无故障使用约3万小时,大约是3-4年时间。而企业级硬盘(7*24小时运行,100-120万小时,质保5年)推算出来理论上可以大概率使用5-6年。据说云计算厂商他们一般也是用3-5年,过了质保就会淘汰并换新。只使用3-5年是为了保证95%以上的可用性,使用时间超过了这个值后,故障概率会大于5%,从统计学上讲硬盘出现故障将不再是小概率事件。我至少有两块机械硬盘就是在故障概率刚刚超过5%的时间节点后那段时间出现故障以致彻底损坏的。

       如果选购普通的2TB西数蓝盘,用于数据盘的3块机械硬盘成本约1100元,用于系统盘的固态硬盘200多元,硬盘总成本约1400元,使用寿命预计3年。

让私有云能够随时随地访问!

       校园网使用的网段是10.0.0.0,A类私有地址,只要是在校内,不论是插上网线接入有线网,还是连接WiFi网络,通过认证后,就可以访问到这一网段中的所有设备,这为我们能够自己搭建私有云服务器并有效地使用起到了决定性的作用!

       但是我们还需要能够在校外通过公网访问,众所周知,学校是不可能给个人分配公网固定IP地址的,我也不可能把到手的服务器再放到学校的机房去,况且学校的公网IP还会屏蔽来自其他区域公网IP的访问的,甚至有公网IP的服务器自身也不允许访问其他区域的公网。那么解决办法就是自己进行内网穿透!

       自己进行内网穿透就需要一台公网服务器,博主选择从公有云购买,比如阿里云和腾讯云,或者华为云。为了尽可能减小自己私有服务器和穿透后的公网服务器之间的延迟,我最终选择位于北京的服务器,其他配置不需要太高,只需要保证带宽够用就行。然后在两边的服务器上都运行内网穿透用的软件,比如Frp什么的。这里不建议直接穿透到公网服务器的80端口或443端口,而是其他某个端口,比如使用10000端口,再在公网服务器上用Nginx监听80端口或443端口来反向代理10000端口,这样就可以同时穿透很多服务到公网,并使用多个不同的域名,而不是只有一个。

运维注意事项

       一定要注意网络防火墙的配置和SeLinux的配置,SeLinux如果实在不会配置直接关闭也行,但为了安全,网络防火墙的规则一定要配置好,而且这并不难。需要暴露的端口设为允许,很多人辛辛苦苦配置完却沮丧地发现服务不能用,其实就是忘了配置防火墙规则,而对于不需要直接访问的端口全部过滤,以减少攻击面。

       自己维护一台物理服务器需要尽可能确保电力供应以及网络连接的稳定性。不能放在自己的宿舍这种一欠费就会停电的地方,有些大学宿舍还会半夜熄灯停电的。网络的稳定性则需要根据自己所处的环境下网络接入方式进行配置,博主这里根据校园网的认证登陆方式编写了自动化登陆认证脚本,并设置开机自启动。还编写了其他一些开机自启动的脚本,用于一开机就自动恢复运行所部署的相关服务,免去了意外断电或者其他原因关机重启后的麻烦。

令人兴奋的实测

       在整个系统全部安装配置完毕后,实测到来。我们连接路由器,内网下向NAS里写入或者读出数据,速度可达100MB/s,也就是千兆带宽,1Gbps呢!当我们回到宿舍,接入校园网,由于学校机房路由器节点单用户限速,网络带宽速度变慢了很多,只剩下5MB/s,即上下行50Mbps带宽。当我们连上学校随处遍布的校园WiFi无线网络后,网络带宽和延迟变得非常得不稳定!带宽和延迟时大时小,有时倒还挺快,连上自己的私有云传数据速度还不错,但也连5MB/s都达不到,有时还能姑且聊聊QQ微信,有时网络却慢到连百度都打不开……

       不过在公网服务器上的访问表现得跟使用有线网络一样很稳定,延迟是固定的,基本无感,只是网络带宽(或者流量)大小取决于自己的“钞能力”,5Mbps公网服务器带宽单价已经贵得要死了,然而下载速度也就500-600KB/s的样子,只能这样凑合用吧。时间久了习惯后好像觉得速度也不算很慢?至少在全世界任何角落只要有网就都可以访问了。因为绝大部分情况下还是接入自己的路由器后访问的,所以其他时候速度慢点就慢点吧。

版权声明
本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。
本文地址: https://blog.ailemon.net/2020/10/22/how-i-setup-private-nas-server/
All articles are under Attribution-NonCommercial-ShareAlike 4.0

关注“AI柠檬博客”微信公众号,及时获取你最需要的干货。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

11 − 3 =

如果您是第一次在本站发布评论,内容将在博主审核后显示,请耐心等待