前段时间把服役了n年的x58平台卖掉了,只出了板和u,其他配件都留下了。x58主板卖掉之后,剩下的这些配件成了大问题,6条内存和5块硬盘无法充分利用,只得闲置在抽屉里。前段时间看到有博主自己DIY的NAS,很羡慕也很喜欢,正巧多出来这么多硬件,何不利用手头多余的配件,自己也搞一个玩一玩呢。

说到存储器,真正开始意识到它并且用到它还是上大学的时候,手头几个小小的u盘,上大一的时候买了个2G的高兴好几天。又过了两年喜欢上了移动硬盘,学生党没什么钱,买了个小小的20G移动硬盘,不过学生时代也没太多东西需要存储,这20G还真够用了。再后来手机拍的照片都变得好大了,博主爱保留照片,存储空间慢慢的就不够用了。离开校园之后数据就更多了,好几年的照片就有几十GB,视频更是上百GB。手机空间不够了就备份到电脑中,时间长了自己也不记得要找的东西备份在哪个地方的哪台电脑上的哪个硬盘中,导致现在想找点东西还真不确定能不能找得到。NAS确实可以解决这些问题,集中存储,集中管理的优势就显现出来了。

NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。

网络存储为什么不用网盘呢?现在主要的网盘就那两家,都是视钱如命的主,服务却不好好搞。其中一家需要办30元的超级会员才能不限速,另一家即使办了会员也还是有每日上传流量限制。要钱也就罢了,服务还搞不好,博主上传的一个大文件死活下不回来了,每次下载到一个固定的位置就会出错,换什么电脑换什么网络也没用,博主怀疑是文件损坏了。硬盘有价,数据无价,资料还是放自己手里可靠。这台NAS博主断断续续的折腾了有一周的时间了,下面记录一下博主初次组建NAS的经历。

【本文导航】
第一部分 需求分析
第二部分 硬件方案
第三部分 开始装机
第四部分 终端玩法
第五部分 发现问题
第六部分 初步解决问题
第七部分 进一步优化
第八部分 又一次极限压榨
第九部分 半年后的更新:接近完美的改进
第十部分 有可能继续优化的方向

第一部分 需求分析

NAS作为网络存储器,首先网络是必须有保证的,现在机械硬盘的读取速度已经超过100MB/s,这就相当于800MBps,所以博主认为千兆网卡是最基本的。其次要存储,必须能存的下海量数据,多硬盘必须支持的,这就要求有足够多的硬盘位和接口

NAS作为专用的数据存储服务器,时间方面也是必须有保证的,即便不能做到24x365开机,至少也得做到睁着眼睛的时候是必须在线的。

功耗必须降到足够低,否则如此长的开机时间,电费累计起来会是相当可怕的。

扩展性也是有一定要求的,除了做好最基本的存储工作,一台低功耗的服务器还是可以实现很多附加功能的,比如远程下载、DLNA、视频监控、小型网站、软路由、甚至是HTPC等。

第二部分 硬件方案

硬件的重点在于低功耗平台,所以可选的方案可能会有很多,众多的ARM方案也许都可行,比如树莓派可能就是一个不错的选择。x86架构的平台就比较费电了,可选的只有ATOM系列和一些家用的低端平台。

考虑到足够的硬盘位和接口呢,很多低功耗平台就不适合了,x86平台低功耗的ATOM系列和家用的低端平台也许更合适一些,因为他们有相对来说比较多的SATA接口,如果再不够用还有PCI-E插槽可以使用扩展卡增加SATA接口,硬盘更多依然不能满足要求还有USB接口可以应付。总之在硬盘接口方面,家用低端和ATOM平台更有优势一些。

博主折腾NAS更多的是考虑利用手头闲置硬件,所以在平台选择上只有家用低端平台这一种选择了。闲置的两块主板分别是H81和B85,由于B85有千兆网卡和HDMI输出这两个重要特性而被选中。而CPU只有一块赛扬G1820可以匹配,好在这块CPU是标准的家用级低端u了,也算符合条件。内存从闲置的6条中选出两条4GB DDR3 1333的,因为G1820只能支持1333频率,选1600的有点浪费。作为存储核心功能的重中之重,硬盘的选择也是没得可选,闲置的5块硬盘中有4块机械硬盘可以使用,总容量4TB。至于固态硬盘就免了,占用一个SATA接口又不能提供多少容量,罢了罢了。经测试,固态硬盘在待机时功耗极低,大约0.3w左右的样子,和RAMOS目前还没看出太明显的差别。对于功耗及其敏感的NAS应该拥有一个高效的电源,可惜博主手中都是些百元300w左右的垃圾电源,选来选去只有一个75%效率的低端电源(注:半年后更新,更换为DC-ATX模块)勉强拿得出手,就选它了。机箱找了个很小的小箱子,面子工程还是比较重要的嘛,不想搞成一个巨丑的大铁箱。

另外,网线也很关键,测试发现超五类网线距离稍长一些就会掉到百兆网速,偶尔能识别为千兆但不是很稳定,为此博主添置了一条六类网线,实测复制文件可以跑到100MB/s以上。无线网若要跑到千兆是比较困难的,因为所谓的千兆无线路由器不是全双工的,待博主的新路由器到位再具体测试。(注:半年后更新,千兆无线网非常弱的,跟有线网完全不在一个级别,甚至很难跑到百兆有线网的水平,放弃吧)

最终,博主的方案是:尽可能地使用闲置硬件

CPU:Intel Celeron G1820(2核心、2线程、2.7GHz、核心显卡、54W TDP)

主板:Intel B85(看中了板载千兆网卡、HDMI、4xSATA接口、2xPCI-E插槽、8xUSB接口)

内存:8GB DDR3 1333(2x4GB)

硬盘:128GB SSD + 4TB机械硬盘(4x1TB)

电源:220v AC->12v DC转换器、DC-ATX模块

键盘、鼠标、音箱、显示器等均无

总费用:50元(除了电源外全部使用闲置硬件)

如果没有配件需要购买的话,除去硬盘以外的硬件全加起来估计需要500-600元

装好之后外观是这个样子,看起来还行。

第三部分 开始装机

装机包括硬件安装和软件安装,硬件安装没什么好说的,按部就班一步一步地把配件装到机箱上。

软件安装,博主先后选择了几款系统,黑群辉担心稳定性没有采用,FreeNAS不太熟悉也不想花时间研究终被放弃,其他Linux系太折腾博主没耐心放弃了,Windows 2003一直没折腾好DLNA这部分也放弃了,最终的选择居然是Windows 7。嘿,还别说,现在Win7越用越顺手了。

系统装好后开始对软件的配置,内网的共享是必须开启的,这点在Windows环境中非常简单,选中文件夹右键属性共享,简单几步就搞定了。DLNA可以通过Windows Media Player实现,把硬盘上的照片视频音乐等添加到WMP的库中并在网络和共享中心中开启媒体流共享就可以了。大量数据的快速搜索博主选择了Everything这个小程序,除了搜索快速之外,还可以开启一个HTTP服务方便远程通过网页搜索。外网的访问其实有很多种方式,比如花生壳动态域名加内网穿透是一个可选方案,博主选择了TeamViewer,除了远程“科学上网”之外,还可以进行文件传送、远程控制和远程打印等操作。有了公网IP后,已放弃TeamViewer,毕竟少一个软件就能减少一些硬盘唤醒和CPU占用。当然3389远程桌面服务也是打开的,方便博主维护。另外还装了一些轻量级的浏览器和输入法等,以备不时之需。

软、硬件都搞好之后,连接到主路由器上开始享受DIY的乐趣。

第四部分 终端玩法

家中的计算机,同处一个内网,网络共享现在小学生都会用。网络中找到NAS点进去,分享的内容一目了然。还有TeamViewer和3389远程桌面可以控制NAS,方便维护。家里的设备,有线尽量使用千兆网络,无线尽量使用5G频段的AC网络,速度有保证。

电视,以前没玩过,首次试用还是很容易上手的。不同品牌电视用法可能不完全一样,操作上基本都是大同小异。所谓的SMB共享就相当于电脑上的文件共享,DLNA就是图片视频音乐那些了。电视支持直接播放的用SMB就好,不支持还有DLNA,总之NAS中全部多媒体文件都可以很方便地在电视上播放了。(注:半年后更新,近期发现电视可以硬件解码各种格式的4K级别视频,无需DLNA的辅助,去掉DLNA视频更清晰也更节能)

手机的玩法最多了,通过支持SMB的文件管理软件可以查看修改NAS分享的文件,可以把NAS中的文件当做手机上的文件一样使用了,这里推荐ES文件浏览器。自动备份的软件推荐快图浏览APP,软件设置好之后,它可以自动备份手机中的新照片和视频到NAS中。手机端也有TeamViewer,手机端有微软官方的远程桌面软件,通过它连接到NAS可以远程使用,最基本的维护是可以做的。

手机端在外网也可以通过“科学上网”与NAS连接,连接之后玩法与内网相同。另外博主还为“科学上网”分享了网络,联通手机与NAS连接后IP变电信,同时还可以享受NAS带来的广告过滤功能。

外网的设备,比如带出去的笔记本电脑、老爸家的电脑、工作用的电脑、老爸单位的电脑、各种机房的电脑等等所有不在家里的设备都可以通过TeamViewer与NAS建立“科学上网”(这三个字母真的不让说),“科学上网”之后呢就和内网一样了,搜索文件、共享文件、远程控制、DLNA,所有这一切内网可以做的,在外网也都可以做了。有了公网IP就不需要TeamViewer啦,而且速度更上一层楼。

有了公网IP之后玩法很多很灵活,比如Everything的HTTP服务使得随时随地快速查找并传送文件成为可能。IIS+PHP+MySQL也已经配置完毕,各位看官应该知道目的是啥了。FTP同样配置好了,方便在外网传送文件。

第五部分 发现问题

第一天用的很新鲜,以前存在硬盘里的电影、照片、旅游的视频等等都可以在电视上播放了。这以前都是要在电脑上选好了,复制到u盘上才能在电视上看的。随时随地想找数据不再是很困难的事情,甚至博主还找到了很多平时想找却怎么也找不到的文件。手机里的照片视频自动备份到NAS上,博主可以腾出空间继续拍照了,这可真是手机存储空间紧张“患者”的福音。

虽然用着很新鲜,可是一些很明显的问题很快就浮现了。最让人受不了的就是噪音问题,4个机械硬盘与机箱的共振闹得博主耳朵嗡嗡响,除了那呲呲啦啦的硬盘声,家里处处都充斥着一种低频的躁动,弄得家里好像有一万只苍蝇走到哪也甩不开。看到一位网友组装NAS使用了9块机械硬盘,据说运转的噪音如同飞机起飞,博主深表同情的同时也在想办法解决问题。

另外一个问题是功耗问题,博主用电表测了一下NAS的实际功耗,大约在50w左右,对比市面上的普遍功耗在15w左右的NAS产品,这功耗已经是高的离谱了。虽说x86架构的家用机平台本身功耗就高,跟ARM那些方案比确实不占优势,也许这样的功耗表现已经算是家用机中比较节能的了,不过博主还是接受不了。

第六部分 初步解决问题

噪音问题来自于共振,震动源带动机箱以及桌面等家具产生共振。产生震动的主要来源是机械硬盘和各种各样的风扇,博主要做的就是把震动源与机箱接触的位置做上隔离以达到减震的目的。所有配件全部从机箱上拆下来,螺丝加胶垫、硬盘加胶垫、风扇和机箱接触的位置加胶垫、电源和机箱接触的地方加胶垫,机箱下方加泡沫,总之就是对震动源做全面的隔离。最终达到的效果是很理想的,如果没有电源灯亮着,即使从机箱旁边走过也不容易察觉到它处于运转状态。

功耗问题主要从CPU方面下手,之前的一些文章中博主提到过如何通过降低CPU电压的方法,在不损失性能的前提下大幅降低功耗。第四代IU,也就是Haswell平台CPU加入的FIVR模块可以很方便的调节电压,即使是不支持超频的H81主板也可以通过软件进行调节。博主使用之前已经玩的很熟练的Throttlestop对G1820进行降压,经历了多次失败和各种稳定性测试之后,最终锁定0.825v的可以稳定工作的电压,相比默认的1.05v足足降低了20%。除了CPU,还可以在硬盘上做点文章继续压榨功耗的极限,将硬盘休眠时间修改为3分钟,这样可以尽快的让硬盘休眠节省功耗又可避免平时使用中频繁的启动。做好调整之后之后再次用电表进行功耗测量,整机平均功耗稳定在了30w左右,应该说进步不小,但比起市面上成熟的NAS设备还是要高出一倍左右。

第七部分 进一步优化

噪音问题解决的还算不错,不是特别注意的话确实听不见动静了,但是如果注意的话还是能听到的不是。功耗问题就更不用说了,在家用机中已经是低功耗,可现在它作为NAS还是挺高的。本着要做就做好的精神,博主开始了进一步优化。

第一步是拿掉风扇,在0.825v超低电压下CPU发热量已经非常小了,据一位网友说i3级别的CPU忘了装散热风扇也是可以正常运行的,这给博主一个重要提示。拆掉CPU风扇仅保留散热片,经过半个多小时的拷机测试证实,这确实没有任何问题,半个小时后CPU温度依然没有突破40°C。拆掉机箱风扇又会如何呢,又一次拷机测试CPU始终在40°C上下徘徊,这个温度很安全。完全没有风扇的机箱内部可能会聚集热量,长时间开机难保不出问题,博主将电源反装令有风扇一侧对着机箱内部,一来解决风扇对机箱外产生的噪音,二来机箱内多少有点空气对流,消除安全隐患。两个风扇拿掉降低4-5w应该不是问题,这部分功率被博主抠掉了!

第二步是做RAMOS,RAMOS是运行在内存上的操作系统。操作系统运行在硬盘上,系统盘就无法休眠。如果刻意降低硬盘休眠时间只会适得其反,系统盘会反复的休眠、唤醒,这对硬盘本身就不好,也达不到省电的目的。4块硬盘中有3块是可以休眠的,唯独系统盘无解。所以要想解决最后一块硬盘的休眠问题,只能做RAMOS,系统要运行在内存中才能完全摆脱对硬盘的依赖。RAMOS让最后一块硬盘休眠,这样又可以降低1-3w左右的功率。RAMOS的原理是在内存中映射一部分空间,将制作好的镜像全部一次性读入,通过Ramdisk技术将这部分空间识别为磁盘,进而在这个不存在的磁盘上(或者说内存中)启动镜像中的系统。由于磁盘是由内存虚拟而来,其性能远非硬盘可比,即使是NVMe SSD也无法比拟。博主这样做的目的不是为了提高性能,最重要的还是为了节能,必须让最后一块硬盘休眠。

最后的效果和博主预期的差不多,降低了6w左右,最终稳定在22w左右。

注:一年后更新,RAMOS性能得到进一步挖掘,目前已经快到了令人发指的地步,DDR3平台上系统盘连续读写可以达到10-20GB/s、4K可超过1GB/s的彪悍性能,超过NVMe SSD一个数量级,详见:大内存的利用

第八部分 又一次极限压榨

经过反复对比,博主发现这22w的功耗中大约有一半是CPU产生的。CPU的功耗有三部分,核心、核显和uncore。待机时核心功耗只有1-2w,应该说还算可以;核显由于不接显示器基本也没什么功耗,一直在1w以内;uncore部分也就是除了核心外的部分,主要是二三级缓存和PCIE控制器等等这些东西,它的功耗大约在8w左右,无论拷机还是待机,uncore都是铁打不动的8w+。而博主的笔记本电脑使用的4710MQ也是Haswell平台CPU,uncore却只有1-2w,这让博主看到了新的突破点,似乎解决了uncore又能降低不少功耗。

网上相关的介绍不多,博主查阅了能找到的所有资源,最终对这个问题还是一知半解。博主发现G1820从来不会进入Package C6节能状态,它一直在C1和C3之间切换,导致uncore功率居高不下,贴吧等地也有不少网友提及C6却始终无法找到让CPU进入C6状态的方法。一次博主在无意的调整BIOS设置后意外的发现CPU可以进入Package C6状态了,回忆了一下只是关闭了虚拟化技术和CPU防病毒技术。

不出意外的,CPU功耗又一次下降,但是没有下降到笔记本上4710MQ那么低的程度,博主目前依然很困惑。

进一步降低CPU电压,这次降低的是CPU外部电压,选项是在BIOS中找到的。不过降低外围电压的效果没有核心电压那么明显,能降一点算一点,不过这点小优化确实没有太明显的效果。

外部供电电压默认是1700mv,降低到1250mv依然可以通过半小时的拷机稳定运行,功耗进一步降低,终于可以做到和市面上的NAS产品一样的低功耗了。

最近一次优化几乎使用了第九部分除了换电源以外的全部方案,增加的SSD用于写入缓存,尽量减少机械硬盘的启动。博主最初的想法是用U盘做缓存,U盘毕竟用不了多少电,后来想到SSD和U盘没有本质的区别,用电应该差不多。经过实际测试也证实了这一猜测,用SSD启动系统的功耗与RAMOS不相上下,原因可能是SSD待机状态和内存功耗差不多。另外,分配512MB内存做读取缓存,读取重复文件时不必再次唤醒硬盘,也是从另一个方面降低功耗。

总之,经过多项优化后,功耗进一步降低。目前待机功耗16w左右,正常使用的情况大约在20w左右,除了拷机测试外很少有能到30w的时候,博主已经很满意了。同时,定时开关机设置的也比较合理,每天运行16小时休息8小时,相当于变相降低33%电费。刚刚算了下电费,一个月大概需要4块钱左右的样子,和一台智能路由器用电差不多了。

第九部分 半年后的更新:接近完美的改进

成果:功耗降低至待机7w+,全天运转平均功耗不足10w,每月电费降到2元以内,支持用充电宝等移动电源供电。

软件方面取消DLNA、取消TeamViewer

已记录在新的博文中:NAS进化了

第十部分 有可能继续优化的方向

电源的效率(已解决),由于目前使用的电源只有70%的效率,总功耗是18.5w的话,损耗大约有5.5w。如果换成效率是90%的电源,可以在此基础上进一步节省3.7w,总功率将降低到15w以内。然而一个90%的80Plus金牌电源的价格远远超过节省的3.7w的电费(全年开机节省不到18元),博主认为为此更换电源划不来,最终放弃了这个想法。

注:半年后更新,博主刚刚注意到效率很高的DC-ATX电源。这种电源的特点是功率较小、效率较高、绝对价格较低,它非常适合低功耗电脑的使用。实测DC-ATX电源可以明显的降低NAS的功耗,在低功耗方面比普通ATX开关电源节能很多。

增加缓存(已解决),博主做的ramos启动好之后大约占用4GB左右的内存,还剩下4GB左右可以利用。博主目前有个想法,给每个硬盘分配512MB缓存,并且设置好写入间隔时间(如60分钟目前设置5分钟,防止意外掉电丢失没有及时写入的数据),这样在反复读取相同文件和向NAS写入文件时可以很大程度减少硬盘唤醒的次数和时间,进一步降低功耗。

定时开关机(已解决),这个容易实现,每天22:30定时关机,6:30定时开机,应该可以进一步降低33%能耗。为了避免夜间需要使用时不方便,可以在21:30启用1小时后关机(目前设置是18:00开始计时5小时后关机,这样如果不在家且夜间需要使用NAS的话,有充足的时间取消自动关机)。

远程下载(已解决),这个功能博主打算自己做,写一段php放在博客上提供管理下载列表的接口,想来想去还是php简单好用,手机电脑等各种终端都可以操作了;再写一段小程序运行在NAS上定时查询下载列表并执行下载功能。

半年后更新:已做好远程下载功能,使用现成的Aria2制作,更新至博文《为NAS添加远程下载功能》

网络电话(待解决),前段时间iedon小朋友搞的SIP网关貌似不错,交流后发现如果做对外呼叫手机号的功能还是比较难的。虽然是个美好愿望吧,估计不容易实现。

外网访问网速(已解决),这个问题是由Hadwin发现,最终按照老何在评论中提到的方法解决的,感谢两位博主的支持

这是目前很头疼的一个问题,家庭宽带上传速度可以达到2MB/s,然而苦于没有公网IP,外网连NAS只能通过中转的方法连接。中转的几个方案都被限速1MBps,也就是在外网使用NAS只有128KB/s,这令外网使用效率大大降低。

具体方法是打10000按照语音提示找到人工服务,跟话务员说家里安装视频监控需要公网IP,话务员记录后大约2小时时间会有电信技术人员来电话确认,其实说了这些理由感觉只是走了个过场,没有刁难博主的意思,技术人员很爽快的给了公网IP。又过了几个小时,有电信的客服人员来电回访使用效果是否满意,给中国电信一个大大的赞。

有了公网IP,很多问题都不是问题了。为了安全起见博主还是把NAS放在内网,通过路由器的端口映射开放了几个服务,就比如“科学上网”方便外网使用。NAS使用的是电信网络,博主用自己的联通手机网络测试外网速度,延迟大约60ms,下载速度大约1.5MB/s,上传速度可以达到5MB/s以上,这应该是由宽带的带宽决定的。如果是电信对电信,相信延迟更低,上传更快。

由于每次拨号(包括路由器重启)IP地址都会发生变化,为了方便的找到自己的IP,动态域名解析是可以有的,免费的动态域名加一个自己域名的CNAME解析就完美了。

有了公网IP似乎还可以做很多事情,不过80端口被封了,在NAS上建博客可能还得另外想办法。

=============================================

后续NAS相关博文更新:

RAMOS:《大内存的利用

功耗优化:《NAS进化了

远程下载:《为NAS添加远程下载功能》

=============================================

目前折腾到这里了,各位大神路过的时候不要吝啬自己的才华,多提提可以改进的建议,帮助博主把NAS做到极致。

标签: none

已有 77 条评论

  1. 找通信公司要,说家里有监控,需要公网IP,不出意外能够拿到的。

    1. FROYO

      这真是太好了,找电信试试去,实在不行工信部投诉它

  2. 外网下载NAS中的文件速度?

    1. FROYO

      这是个很头疼的问题,没有公网IP,找不到好办法提高速度。目前用的TeamViewer的vpn方案,免费版似乎限速1m,实际只能达到128KB/s。这也是未来的一个改进方向了。

  3. 如果单纯做NAS,直接来块J9100之类的主板吧~

    1. FROYO

      前段时间关注过J1900方案,不少网友用J1900做过NAS,最终做好跑起来的功耗大多在20w左右,并不比G1820省电,至于性能应该比G1820+B85差不少吧,暂时不考虑J1900了

      1. 哦哦~还以为J1900更低些

        1. FROYO

          J1900在默认情况下大概20w,G1820极限优化之后和J1900比有一点点功耗上的优势,如果也是默认的跑,比J1900功耗高不少。手头毕竟没有J1900,不然也可以降降电压看看能有多低。相同优化程度的话,肯定是J1900省电,性能是G1820好。

  4. 牛逼牛逼,玩的这么高科技。

    1. FROYO

      这木有什么高科技,都是些垃圾佬玩烂的了的东西^_^

  5. 牛逼,自己组建NAS啊。

  6. 态度xiaomi

    厉害啦

  7. 连风扇都拿掉了,强。很好奇 RAMOS 怎么做呢

    1. FROYO

      风扇确实可以拿掉,只要有个散热片就行,就22元包邮的散热器的那个散热片足够用了
      现阶段的ramos用grub4dos引导,win系统里面内置ramdisk驱动,还有几处注册表需要修改。一般先装好系统,然后装好驱动和常用软件,装ramdisk并且修改好注册表,将整个系统备份成镜像,在bcd中添加引导项,基本上就差不多了。
      最近网上有一波人研究ramos已经到了炉火纯青的程度,我见过的方案就有十几种,奇思妙想让人大开眼界。最省空间的方案在3g内存上都能跑win7x64,性能最好的方案在i7 3770上系统盘能跑到12000mb/s以上的速度。
      内存够大的话,ramos非常好用,流畅度比ssd高出很多,用惯了ramos再用ssd就会有种用惯了ssd换机械硬盘的感觉

  8. 一个字:服

    1. FROYO

      别这样,快想想办法,还有降低功耗提升可玩性的思路吗

评论已关闭