我的1000元计划——用一块西数4TB红盘的京东售价组装一台容量4TB的NAS。
这可能是最疯狂的捡垃圾NAS方案,关键是它还比很多低端NAS方案稳定。
唯一的劣势就是省电,毕竟功耗与性能总有取舍。
注意,捡垃圾学习思路,不是让你去找同型号的零件!
目录
- 成果展示
- 配置思路
- NAS的性能误区!重要!
- ZFS的和硬RAID探讨
关于硬件和软件的详解会有空了在专栏写
成果展示
装这台NAS的主要性能要求有三个
- 跑ZFS
- 跑SMB
- 挂PT
最后搞出来了个这么玩意,最终花费1100元,虽然贵了100但双故障冗余的可靠性红盘能比?
首先这是个高性能NAS——相对ARM卡片电脑和集成CPU的嵌入式平台而言。4块硬盘组成一个RAIDZ2的ZFS储存池,可以承受最大两块硬盘损毁(真的拔了玩过)。基于Debian的系统功能强大装上docker甚至pve就能为所欲为,但是我的4G内存并不支持我这样做,所以就干脆全都丢给ZFS的ARC用了。
kB reclen write rewrite read reread
8388608 64 183448 43485 245343 259565
8388608 128 198837 165468 241536 245957
8388608 256 201460 163627 246981 211150
8388608 512 201829 166400 242618 244266
8388608 1024 199446 162405 248667 246538
8388608 2048 197599 166600 243693 246366
8388608 4096 195965 163445 248695 247657
8388608 8192 199045 166364 244308 248861
8388608 16384 177223 167274 251068 253064
性能上,使用iozone进行8G大小读写测速,可以达到200MB/s连续写,250MB/s连续读,跑满千兆网线绰绰有余。
配置思路
如何才能做到极限省钱?兼容SAS硬盘是关键。因为普通主板无法直接兼容SAS硬盘,使得这些服务器拆机的宝贝价格可以压进100元每TB,运气足够好甚至可以压到接近50元每TB。足够便宜的价格可以后续再用RAID冗余的方式来补足可靠性的短板。
然后就是如何才能极限控制平台价格了,硬件阵列卡(特指带缓存的硬件阵列卡)想都不要想,要么是SAS1时代的古董,要么远超预算。而且有ZFS这样的文件系统完全用不着上硬阵列。
通道卡也不能太旧,那些看起来便宜的通道卡只支持不超过2TB的硬盘。最后的选择也就只剩下LSI SAS 2008芯片的9211/9210系列,其中8口均价150,4口均价80。
但如果是某型号的专用配件呢?那就会便宜很多了。华硕的PIKE卡,通过专用接口连接到主板上,一头是PCIe x4另一头是PCIe物理形状的SAS接口,最后通过主板上的SATA形式的SAS口连接硬盘。和LSI 9211-8i相同主控的PIKE 2008只需要50元,搭主板一起只花了160,相当于买卡送主板,还是送的服务器主板。
这块主板卖得那么便宜也不是全无道理,一方面它强制使用ECC内存,非ECC直接无法开机。另一方面机智的奸商硕把远程管理模块作为配件销售,所以这块主板空有远程管理接口实际上是不能用的。当然这些都不是问题,支持ECC甚至还成了省钱的优势,大容量的ECC贵可1G的小容量比普通内存反而便宜。
=== START OF INFORMATION SECTION ===
Vendor: SEAGATE
Product: ST2000NM0001
Revision: 0002
Compliance: SPC-4
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Logical block size: 512 bytes
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Logical Unit id: 0x5000c50040a19c4b
Serial number: Z1P0KXFV0000C2101UZ6
Device type: disk
Transport protocol: SAS (SPL-3)
Local Time is: Tue Oct 23 23:41:02 2018 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Temperature Warning: Enabled
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Current Drive Temperature: 46 C
Drive Trip Temperature: 68 C
Manufactured in week 39 of year 2011
Specified cycle count over device lifetime: 10000
Accumulated start-stop cycles: 152
Specified load-unload count over device lifetime: 300000
Accumulated load-unload cycles: 152
Elements in grown defect list: 1
Vendor (Seagate) cache information
Blocks sent to initiator = 2033537357
Blocks received from initiator = 1029365188
Blocks read from cache and sent to initiator = 21113236
Number of read and write commands whose size <= segment size = 3444386
Number of read and write commands whose size > segment size = 0
Vendor (Seagate/Hitachi) factory information
number of hours powered up = 18516.58
number of minutes until next internal SMART test = 13
Error counter log:
Errors Corrected by Total Correction Gigabytes Total
ECC rereads/ errors algorithm processed uncorrected
fast | delayed rewrites corrected invocations [10^9 bytes] errors
read: 2986932142 0 0 2986932142 0 856.020 0
write: 0 0 0 0 0 528.266 0
verify: 627314524 0 0 627314524 0 103.547 0
Non-medium error count: 0
No self-tests have been logged
硬盘很谜,我买的这ST2000NM0001根本没有标准的SMART可以读取和监控,只能利用smartctl看到温度、通电时间、启停循环等基本信息,然后就是一个不知道有什么用的ECC日志表。不管怎么说1W8的通电时间对于服务器硬盘而言离淘汰还远着,而且到手第一时间就已经进行了全盘坏道扫描没有任何问题。就算意外挂了也能通过阵列重建轻松恢复。
最后是CPU,真的是个U都能跑(树莓派还是别指望),直接最便宜的G1610走起。注意上图黄色的Wait-IO其实算是CPU空闲等硬盘的时间,ZFS占用最大30%左右,这还是计算量较大的RAID-Z2,比我的预计低。
系统最后选择的基于Debian的Openmediavault(简称OMV),FreeNAS只允许ZFS做数据盘太反人类了,而且Debian对我而言也熟悉一点。
OMV虽然没有内置ZFS支持,但可以通过安装插件达成。ZFS on Linux并不比FreeBSD的版本差,ZFS功能上完全不用担心。
pool: ZFS_4TB_RAIDZ2_Pool
state: ONLINE
scan: scrub repaired 0B in 0h22m with 0 errors on Mon Oct 8 11:15:42 2018
config:
NAME STATE READ WRITE CKSUM
ZFS_4TB_RAIDZ2_Pool ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
scsi-35000c50040a19c4b ONLINE 0 0 0
scsi-35000c50040a1ba8f ONLINE 0 0 0
scsi-35000c50040a335a3 ONLINE 0 0 0
scsi-35000c50040a33813 ONLINE 0 0 0
errors: No known data errors
因为一共就4G内存而且主要做储存,就放弃折腾PVE、Docker了,把ZFS的ARC最大值手动设置到3G,榨干最后一点自由的内存。
OMV就是个装在Debian上提供WEB界面的超级软件包,抛掉界面这就是个Debian,Linux能怎么用就可以怎么用,搭个Minecraft服务器也是可以的,不过那样的话就要减少给ZFS分配的缓存空间了。
NAS性能误区
奸商(比如VedioTalk)喜欢用Plex编码推流和视频转码来推销新的赛扬J主板,甚至有极端小白给NAS配上了i7 8700。
Plex编码推流和视频转码本身就是个伪需求。Plex重编码推流1080P码率达8Mbps,这是什么概念?高画质的1080P BDrip都只有5Mbps左右的码率!而且硬件编码画质本身就糟糕。也就是对于大部分影视资源Plex重编码推流既劣化画质又增加体积。完全的一无是处。
视频转码,仅对自己手机/摄像机拍摄的视频有意义,因为这些设备为了高画质输出码率往往很高不适合归档保存,因此高参数重编码是有价值的。而对于大部分本身就有压制组转码过的影视资源而言,重新转码就是在费时费力劣化画质,文件大小也难以得到有效压缩。
仅做文件共享用途的NAS,CPU只要能亮机就行,老旧的Atom嵌入式主板是个很好的选择,注意它们是否拥有千兆网卡和足够的硬盘接口就行。需要做软阵列或其它高级用途,按需求选择CPU。如果真的有闲钱,全套都升级成服务器级的配件,比买i7更值得。
ZFS的和硬RAID探讨
首先更正两个ZFS的性能误区,
- ZFS推荐大内存但不强制大内存,8G只是FreeNAS的推荐值,其实低至1G也能运行,Oracle文档中最低要求为2G。
- ZFS没有要求硬盘数量对齐2^n+p的说法,ZFS的动态条带会自动分配校验空间占用。
硬件RAID对个人用户其实是个不实用的东西。无缓存的控制器只跑得动1/0/10几种简单阵列,5/6需要高端阵列卡才能发挥性能。硬盘必须支持ERC/TLER(至少红盘档次才开放该功能),保证硬盘不会因为一点小错误而被踢掉。而且硬件RAID只保硬盘不保数据,即硬盘下线可以重建,数据损坏是不会被修复的。硬件RAID还需要电池或UPS来防止写入漏洞问题,还有迁移的麻烦等等。对于没有全套服务器环境的个人用户而言,硬RAID就是请了个大爷回家,稍有不注意轻则降级重则损毁。
相比之下ZFS对硬件几乎无要求,不仅不需要昂贵的阵列卡,NAS硬盘也完全没有必要,普通硬盘也保3年挂了去售后就行。性能上超出缓存的连续读写表现也很好,追求随机读写和高IOPS就需要加钱大内存ARC和固态硬盘L2ARC/ZIL。
最重要的是ZFS提供了文件完整性保护,文件写入时都生成了相应的校验,定期进行擦洗(scrub)可以检测文件完整性,及时修复损坏。比如今年八月的腾讯云发生的静默损坏,就是硬件RAID无法应对而ZFS可以修复的。
ZFS作为文件系统直接接管多硬盘,重建和擦洗都只针对有数据的部分,而硬RAID就不知道硬盘数据情况了初始化就得全盘跑一遍,重建也只能全盘跑一遍。需要转移的时候导入和导出也十分方便,而硬RAID搬家得连卡带阵列标记清硬盘端口号才敢小心翼翼的搬。而ZFS直接找到另一台装有不低于原ZFS池版本的电脑插进去导入就行。
NAS DIY交流群:954341161
更多回答
我也来说下我的方案,自认为比较完美了,先说效果:
1. 7*24小时开机,小型UPS电源保护,断电可自动让NAS优雅的关机,防止对硬盘造成不良影响,电力恢复后自动开机,意外关机后也可远程开机。
2. 家庭影院服务器,影视剧使用自动化工具下载,只要把想看的添加进去就可以了,如果有了资源,系统会自动下载并分类整理,包括重命名下载字幕等,当然也可以手动添加种子下载,特别适合玩PT。
3. NAS上存储的海量影视等多媒体资源,在家可以在电视上观看,在外可通过手机或电脑客户端在线观看,不需要下载。
4. 文件共享服务,这是最基本的了,可以很方便的开启SMB、FTP等服务。
5. 私有云盘,实现类似Dropbox和OneDrive的自动同步功能,比如今天我在家拿主力机工作,明天拿轻薄本出去,相关数据在后台自动同步,不需要手动来回拷贝;另外手机客户端可实现照片自动上传至NAS服务器,手机小容量的福音。
6. 家里局域网在外随时连接,只要有互联网,可以访问家里任一设备,包括路由器打印机等,和在家访问没有多大区别。其实这个功能是通过另外一个独立的小盒子实现。
7,硬件和软件均为DIY,非成品,系统采用开源方案Openmediavault(OMV),需要较强动手能力,暂时想到这么多,有人感兴趣再补充细节……
======分割线======
2月9日更新:
有人看了今天就来更新一下。
先说硬件,上面说了那么多功能,其实硬件配置很简单,照例先上图:
万由四盘位NAS,华擎Q1900-ITX主板,J1900CPU,4G内存,目前我放置了4块4T硬盘,两两做成RAID1,一个主要用来存储个人及工作文档,另一个主要用来存储多媒体资料,为了不占用硬盘插槽,操作系统装在了从主板扩展出来的SATA接口的固态硬盘上。可能有人会问这点配置够吗?可以做HTPC吗,可以看4K视频吗?我的想法是,NAS就回归NAS的本质,做好网络存储功能,将NAS做HTPC使用完全没有必要,因为:1、把NAS同时作为HTPC使用,需要有较高的硬件配置,成本会更高;2、NAS一般需要24小时开机,HTPC需要放在显示器或电视附近,这时候就得考虑位置、散热、噪音等等问题,这些条件都满足吗?3、如果家里部署了千兆网络,使用高清播放盒即可实现高清播放需求,完全没必要利用NAS。因此,这台NAS对于我来说,完全足够,放在阳台角落的一个机柜里,7*24小时开机,功耗、噪音等问题统统可以忽略,非常省心。
主要的硬件设备介绍完,但是我认为还缺一项非常重要的设备,即UPS不间断电源。为什么?既然使用NAS了,大家一定比较关注设备和数据的安全性,而家里时不时的会有突然停电的可能,万一硬盘正在读写的过程中突然断电,数据丢失怎么办?虽然我还没有遇到过这种情况,但是考虑到整个NAS系统的完备性与稳定性,防止不必要的麻烦,我在很早的时候就购入了一小型UPS电源,该UPS可支撑NAS运行半个小时左右,有了它,停电时就会通知NAS:“现在停电了,我正在给你供电呢,你需要准备关机了,倒计时开始:45秒,44秒,43秒......(倒计时参数可设置)”,倒计时结束后NAS就可以从容不迫以优雅的姿态关机啦,完全不用担心上述突然断电可能会造成的影响,如果这45秒内电力又恢复了,则取消自动关机。关机后等到电力恢复,NAS会自动开机,也可以手动远程唤醒开机。还是上个图吧,UPS就是这货:
好了,硬件部分基本介绍完,软件部分涉及的内容比较多,下次有空再继续更新...
======分割线======
2月12日更新:
大家好,忙完正事了,今天来更新一下,感谢关注。
在更新之前,先申明几点:
1、关于NAS系统的选择,每个人的需求不尽相同,该方案不一定适合所有人,也有一定的难度。如果你在用成熟的商业软件比如群晖,我建议你继续使用,并不断根据自己的需求增加和配置功能,没有必要从头更换另外一个方案,当然这里指的正版商业软件,不建议盗版。
2、关于软件功能实现,有些选择也不是唯一的,这里主要提供思路,不会详细到每个软件的具体配置,我会介绍一下大概方向,感兴趣的伙伴可以自行去谷歌或百度,家里搭建NAS服务器的童鞋动手能力应该都不差,之后若有时间可视情况更新一些软件使用经验。
3、天下没有免费的午餐,该方案里涉及的某些服务也是收费的,但物有所值。
嗯,啰嗦完了,现在正式开始(好像又要开始重新编号了)。
1、系统:前面已经提了,系统采用的是OMV,即openmediavault,我为什么要采用OMV而不是FreeNAS,一是因为FreeNAS需要大内存,我的设备只有4G内存,二是我本人比较熟悉Debian,而OMV正是基于Debian的。OMV官网在此:The open network attached storage solution。
为了不熟悉的童鞋有个直观感受,照例上图:
由于我家NAS是放阳台的,并没有接显示器和键鼠,也没有图形界面,行话就是headless server,一根网线完事,平时管理NAS,除了登录web界面外,就是ssh远程登录啦,画风是这样的:
关于文件共享,我开启了SMB服务,平时使用的画风是这样的,打开我的电脑(不对,WIN10变成了此电脑...),网络位置里多了我映射的网络磁盘即NAS的共享文件夹,双击进入,就和本地硬盘一样。
细心的人可能还发现了OMV管理界面服务(Service)里面有一项UPS,OMV方便之处就是可以安装各种插件来扩充系统功能,这个UPS插件就叫做openmediavault-nut(Network UPS Tools)。好像有人问怎么配置的,我再来个图吧,注意驱动那一块的设置,因为是通过USB连接的;另外注意Shutdown mode和Shutdown timer的设置,意思就是当检测到UPS电池供电后,倒计时45秒,45秒之内如果还没有恢复供电,则自动关机,如果恢复供电,则取消自动关机。
好了,系统部分就先简单介绍到这吧,下一部分是重点,多媒体服务器。
2、多媒体部分:
答主是是个比较喜欢看电影的人,欧美影视居多,这一块其实涉及的软件还是蛮多的,今天先介绍其中之一吧,当然这款软件很多回答都已经提到了,它就是大名鼎鼎的——Plex。
1) Plex:
大名鼎鼎的Plex,服务端叫作Plex Media Server,客户端涵盖网页浏览器、安卓、苹果等全平台。除了自动从imdb等数据库补全影片介绍等meta信息进行索引外,最重要的还能实时转码,解决客户端不支持某些视频格式或是网速慢等问题。不想打字了,继续上效果图吧。
感觉上这两张图把自己收藏的电影电视剧都暴露了......
======分割线======
2月15日更新:
大家好,今天我又来更新了,直接进入正题。
2)自动化工具:
多媒体服务器作为NAS的一项重要功能,如果影视资源能够实现自动化(或半自动化)的下载或整理,无疑将极大提高使用体验,试想一下如果想看一部电影或电视剧,还得满世界寻找资源,好不容易下载到了还需要手动归类整理,下载字幕等等,整个流程十分繁琐,浪费时间不说,兴致可能都减少了一半。
好了,我先直接给出我NAS中使用的软件,这些软件相互配合,配置好以后,几乎完全实现了自动化管理,日常我只需要将想看的电影添加进去就行了,寻找资源、下载、整理、字幕等等,都是由这些软件自动完成的。还有一个好消息是:这些软件均是开源的!不需要付任何费用!
这些软件分别是:
- Sonarr(我个人将它翻译为“声纳”,电视剧自动化管理软件);
- Radarr(暂且叫“雷达”吧,电影自动化管理软件);
- SABnzbd(Usenet下载客户端);
- Transmission(bt下载客户端)。
以上每个软件都有其它的功能类似的软件可以完成相似的功能,这里列出的是目前比较主流或是社区比较活跃的。
Transmission,bt客户端就不做过多介绍。SABnzbd是Usenet下载客户端,什么又是Usenet呢?这里引用一下维基百科的介绍:
Usenet是一种分布式的互联网交流系统,源自通用用途的UUCP网络(名字亦类似),它的发明是在1979年由杜克大学的研究生Tom Truscott与Jim Ellis所设想出来的,Usenet包含众多新闻组,它是新闻组(异于传统,新闻指交流、信息)及其消息的网络集合。Usenet里的消息(帖子)根据所分Usenet层级(新闻组)存储在服务器,多数服务器不断转发其消息给其他服务器,最终新闻组消息被分布式存储于全球大量的计算机中,但它不是万维网。
通过软件用户能够选择订阅感兴趣的新闻组、消息进行阅读、索引、删除过期消息等。Usenet的最初构想是借助网络进行技术信息交流,后来被广泛推广到大众领域,如社会新闻、业余爱好、个人兴趣等主题。现在默认情况下,它使用NNTP协议。Usenet最主要的特色是统一分组、全球转信(转发消息)。一些人认为Usenet一词来自于User Network。
可以看出Usenet是一种非常古老的技术,甚至比万维网还要早。Usenet发展至今,二进制新闻组的数据交流占据了很大一部分,里面的资源非常丰富,这里只简单介绍一下Usenet怎么使用:
- 下载软件:SABnzbd就是其中之一;
- nzb索引网站:通过nzb文件搜索,找到自己需要下载的文件,有免费的索引网站,比如Binsearch,也有收费的,个人建议使用收费的索引网站,索引质量和稳定性较高;
- 购买Usenet服务:有很多Usenet服务提供商,购买后服务商会给你服务器地址和账号,把这些信息配置到下载客户端比如SABnzbd里面。
好了,有了以上的这些,你其实就可以手动下载了:在nzb索引网站找到你想下载资源的nzb文件下载下来,使用SABnzbd等客户端打开,由于下载软件里面已经配置好了服务器,所以你的资源就会从这些服务器上下载了,不是很难是吧?
但是上面的流程还是复杂了,说了半天还是需要手动下载,这时候Sonnar和Radarr就派上用场了。
Sonarr是自动化的电视剧管理软件,用来追剧再合适不过了,软件里面将重命名规则、清晰度要求、nzb索引、bt索引(当然不要忘了bt哦,是个很好的补充)、nzb或bt下载软件等都配置好后,剩下的都交给Sonarr吧,Sonarr里面有保存你的想看列表,并会定期自动在索引网站上寻找是否有这些资源,如果有并且清晰度符合要求,则会自动交给nzb或bt下载软件,下载完成后Sonarr就会根据重命名规则自动完成归类整理。
Radarr其实和Sonnar非常类似,连界面都很像,它其实是Sonnar的一个分支,只不过是用来管理电影罢了,只要你会配置其中任何一个,另外一个应该就会了。
最后还有字幕的自动化,这个其实是可以交给Plex去做的,Plex有个插件叫Sub-Zero,可以很好的完成字幕自动匹配和下载的工作。
再上几个截图说明一下:
3、私有云盘:
私有云盘,文件自动同步,评论里也有人提到,我使用的其实就是Nextcloud,这个东西其实就跟Dropbox,OneDrive一样,类似网盘的功能,非常推荐有多个设备文件自动同步需求的人使用,建立自己的网盘,不再依赖互联网网盘服务。这个安装起来稍微有点麻烦,我装了很多次才成功,服务端装好以后,下载电脑和手机客户端,添加需要同步的文件夹就可以了。手机客户端可以设置照片后台自动上传,不过IOS端的后台自动上传需要依赖GPS定位,有时候需要打开客户端才能上传,安卓版的据说没有问题,由于没有安卓手机,还有待验证~~~
客户端的图就不上了,感兴趣可以自己下载下来看看,设置非常简单。
最后,这些服务Openmediavault都有对应的插件,但是我本人建议最好使用docker安装!(重要的事情说三遍!)给大家推荐linuxserver的docker容器:plex, sonarr, radarr, sabnzbd, transmission, 以及官网的nextcloud容器。
======分割线======
4、内网穿透
网络这部分留到最后,也是最重要的,NAS如果仅仅只能在家里访问也就没有多大意义了,我们需要的是在世界任何一个角落,只要有互联网,就能方便的访问NAS。
要能实现这一点,第一个想到的方案自然是:公网IP+DDNS+端口映射了,可惜,我的宽带服务商并没有提供公网IP,我甚至一度想打运营商电话投诉,但是后来发现了其它方案,也就作罢。
后来目光一度转向了花生壳盒子之类的设备,仔细看了介绍之后,价格贵不说,还有端口和流量限制等等,实在是有点坑啊,果断弃之。
直到我发现了这款神器——Zerotier。
Zerotier的介绍和使用方法大家可以自行上网查查资料,简单来说,Zerotier可以创建一个虚拟局域网,将设备加入这个虚拟局域网后,就能像在一个局域网内那样方便的访问了,如果我们将手机、笔记本电脑、平板电脑等常用的终端和NAS都加入这个虚拟局域网,那么我们无论在哪里都可以访问NAS中的资源了,就像在家一样!经过实际使用测试发现,这玩意速度也出奇的好,在外面ping值通常只有几十,据说使用了点对点技术。
好像一切都很完美,NAS、手机、电脑、ipad等都有对应的Zerotier客户端,安装起来不麻烦,然而问题来了,NAS中装Zerotier虽然可以,但如果NAS意外关机了怎么办,关机了NAS就没法加入虚拟局域网了,还怎么远程访问,怎么远程开机呢?这好像是个鸡生蛋蛋生鸡的问题?另外还有一些设备比如智能家电、网络打印机等,是不可能装Zerotier的,在外面怎么访问这些设备呢?
再想想还有没有解决方案?看来好像还需要一个“跳板”?
直到某一天,我逛Zerotier官网时发现了这货:ZeroTier Edge,一个小盒子,看介绍貌似可以即插即用,不需要什么配置,接在路由器下面应该就可以实现内网穿透了,看起来很神奇,真是良心产品,可是这货貌似还在众筹阶段,国内买起来不太方便,价格也比较感人,这盒子的内核无非还是Zerotier嘛,于是......我若有所思,能不能自己实现一个呢?
最后直接上图吧,我完成的“山寨”盒子长这样的(话说这盒子我不满的地方就是灯太亮了,所以贴了胶带,请无视):
盒子已经配置好了Zerotier并加入了我的虚拟网络,接在路由器下面一个lan口,只要这个盒子保持开机状态且网络正常,就能在外访问家里的网络,这样的好处还有如果NAS意外关机了,可以用手机连上Zerotier虚拟网络,发送一个网络唤醒(wake on lan)请求给NAS就可以远程开机了,完美!给想琢磨的童鞋奉上一张原理图吧:
======分割线======
评论里有人问这个盒子怎么实现的,其实就是刷了OpenWrt,装好Zerotier,加入你的虚拟局域网,然后把虚拟局域网接口和实际lan接口桥接,原理如上图所示,因为这个盒子只干这一件事,可以把一些其他无关的服务关掉,就像官方盒子宣传的一样:Do One Thing and Do It Well,哈哈。
本答案于2018年5月重写,内容维护记录如下(不定时更新):
2018.12.18:更新Plex简介;
2019.1.2:更新Webmin简介;
2019.1.10:更新Linux环境Web面板介绍;
2019.1.14:增补远程控制思路,增补Windows Admin Center截图;
2019.1.18:增补Linux环境NAS搭建思路;
2019.1.25:增加自攒MicroServer方案;
2019.5.22:增补FreeNAS/XigmaNAS/OMV介绍;
2019.9.12:增补FreeNAS官方配置要求;
2019.9.14:增补Jellyfin介绍;
2019.9.29:更新NAS OS介绍;
2019.12.15:更新Proxmox VE方案;
2020.4.4:更新HP Gen 10 Plus介绍;
2020.7.23:更新OpenMediaValut内容;
2020.12.5:增补ESXi内容;
2021.9.14:增补硬盘选择部分内容;
2022.3.18:增补overseerr、Sonarr、Radarr内容;
本答案的核心思路:越简单越好。
这些年软硬件及个人对NAS的认知也在不断更新,期间有一些新的想法方便大家避坑。
折腾NAS的四年中,本人换来换去用过方案很多,黑群晖、Linux、Windows、OS X、各种虚拟机混搭等等,现在感觉搭建家用NAS的目的是简单易用,而不是把自己搞到身心俱疲。
首先 —— 你是否真的需要一台NAS:
- 如果您需要的只是挂机下载、SMB局域网共享文件:PC或路由器+移动硬盘;
- 如果在1的基础上还需要作视频服务器:PC,核显即可;
- 如果你需要手机相册同步、外网调用/分享个人云上的文件,并且要有成熟的APP支持,那么你需要一台NAS。
NAS:私人云相册、异地(外网)分享、各种成熟APP。
注:目前windows/linux上没有完备的私人相册方案(服务器端+客户端app),NextCloud的相册功能比起群晖/威联通来差距较大。
重复一下:私人相册基本只能选成品NAS。
方案选型太长不看版:(以时间成本排序)
- 图省心开箱即用、客户端完备的:群晖/威联通;
- 仅需内网文件共享:Windows(简单,无学习成本),配合Plex/Emby可实现外网视频分享;
- 需要外网文件分享的:OMV / UNRAID,自带基本功能,其他模块Docker安装;
- 超清/原盘影视下载收集狂:UNRAID,可随时添加硬盘扩容;
- 全功能个人云盘:Linux(高定制化,且Nextcloud/Seafile只有linux版);
- 蛋疼非要在小鸡下跑NAS的痴汉:Proxmox VE(家用主板不建议ESXi)。
基本概念
NAS即网络附加存储(Network Attached Storage),通过网络提供数据访问服务。
NAS产品逐渐被大众熟知的今天,相当多的用户会认为此物是个人/家用产品,而实际上这货面向的并不是家庭用户,这也是为什么NAS系统都有RAID模块的原因。
注:本答案面向有外部访问/远程控制需求的用户,如仅做内网备份/文件共享/视频播放的朋友们装个windows最省心,顶多通过docker增加TimeMachine备份功能。
基本需求
- 硬件——NAS硬件需要满足以下几点:
- 稳定性:24x7稳定无故障运行;
- 兼容性:硬件对操作系统兼容性良好(系统电源管理、硬盘控制器兼容性等);
- 体积小巧:占地面积小,便于放置;
- 节能:7x24小时挂机下载的情况下,动辄一两百瓦的家用电脑显然不适合作NAS;
- 静音:做工优秀,廉价机箱的箱体共振等问题不应该存在;
- 性价比:合理价格内兼顾以上6点。
2. 软件——NAS的功能需求:
- 须具备远程控制功能如Web面板,方便配置操作;
- 须有移动端app的支持;
- 挂机下载(PT/BT/电驴/各种云盘同步);
- 媒体服务器(配合机顶盒或本机播放);
- 本地及远程文件共享(个人/家庭云);
- 文件备份(TimeMachine等);
- (附加)办公用途(CardDAV Server / Directory Server / Mail Server);
- (附加)其它用途(DNS Server / 小型网站服务器等)。
3.远程控制:
- 作为一台NAS,远程控制(包括局域网内)应为刚需;
- 远程控制方式包括远程桌面、WebUI两种方式:
- 远程桌面即RemoteDesktop、TeamViewer、JumpDesktop等,WebUI即浏览器面板,如群晖的DSM、Linux下的Cockpit/Webmin、Windows的Windows Admin Center等。当然Plex、Aria2也是WebUI的典型方式;
- 个人建议WebUI方式,浏览器内搞定,无需安装客户端软件,手机/Pad皆可控制NAS。
其他:部分用户希望NAS具备HTPC功能,本答案已充分考虑。
写在前面1:关于DDNS
DDNS是各类远程操作的必需品,简单罗列下本人用过的几种:
- 华硕路由自带asuscomm方案:稳定性尚可,但出现过中断的情况;
- 群晖QuickConnect:仅白群晖用户可用,亮点是自带内网穿透,实属内网用户福音;
- 花生壳/花生棒:尚可,支持各类操作系统平台(路由器/Windows/Linux/群晖);
- 阿里云DDNS:强烈推荐;
- 腾讯云DDNS:推荐,证书验证不如阿里云方便。
写在前面2:关于RAID及备份
- 友情提示:家庭用途不建议配置RAID,孱弱的软RAID机制不要指望稳定性;
- 千兆网络带宽只能跑到单盘速度,家用环境RAID0用途不大;
- RAID5模式下任何文件操作所有盘都参与读写,于家庭用途中甚为蛋疼;
- RAID5模式下磁盘故障后换盘重建的时间非常长,甚至会有坏第二块盘的可能;
- 数据无价。与其折腾RAID不如冷备份。
- 没有BckupPlus或MyBook 8TB不能解决的备份问题,如果不能,那就两块(海淘价格有惊喜)。
写在前面3:关于磁盘的选择
不要神化所谓NAS硬盘,本人两块国行4T红盘在2万小时左右都挂了(非24x7工况、家用环境读写不频繁、未进行PT/BT下载),这货的MTBF可是号称100万小时的。
- “NAS硬盘”这个概念起于WD红盘,因红盘的大卖,Seagate、Toshiba也跟进推出NAS硬盘,但无论是WD的"NAS Ware",还是Seagete的“AgileArray”技术,都是在RAID错误校正、减少RAID重建时间等方面的技术;
- 至于震动补偿等技术,在4盘以上的多盘系统下才能够充分显现作用;
- 与几十上百个客户端同时访问的企业NAS不同,家用环境下磁盘工作强度非常低,日常数据吞吐量极小;
- 既然家用环境下磁盘工作强度低,RAID模式又蛋疼,震动补偿又只算个赠品,所以硬盘选择方面丰俭由人,NAS专用硬盘对于家庭/个人用户并不能算做硬需求。
综上所述,磁盘方面如下考量:
- 24x7开机 --> 紫盘或酷鹰,建议企业盘;
- 非24x7开机 --> 普通磁盘;
- 需要RAID--> 红盘或酷狼,建议企业盘;
- 如果没有冷/热备份的打算,仍然建议企业盘。
(其实我的建议是:要么企业盘,要么桌面盘)
写在前面4:关于磁盘格式
- 功能越强的文件格式速度往往越慢(Btrfs慢,ZFS吃内存);
- 工作文件夹共享、文件内容频繁更新的磁盘可使用支持回滚操作的Btrfs/ZFS;
- 仅作下载/存储用途不需要快照功能,ext4足矣,简单方便速度快。
写在前面5:关于黑群晖
目前黑群晖已无法洗白,即便能通过DDNS解决无QuickConnect远程访问,但个人感觉仍然问题多多。大致总结如下:
A. 软件方面——功能缺失:
- 系统不能更新/迭代,安全漏洞自然也无法修复;
- DS Finder无推送(半洗白无解);
- Chat无消息提醒(半洗白无解);
- DS Video无硬解码(半洗白可解);
- Virtual Machine Manager无法启动虚拟机(提示内存不足)(半洗白无解);
- High Availability Manager无法使用(半洗白无解)。
B. 硬件方面——兼容性问题:
- DSM6.2的bootloader对网卡驱动支持不全,导致无法安装或升级系统(需换网卡);
- 由硬件兼容性导致的硬盘无法休眠(视bootloader);
- 设置定时开机导致BIOS重置(视硬件设备);
- 磁盘性能低下,如Gen10在DSM6.1下磁盘对拷60M/s (DS3617xs);
- J3455-itx DSM6.1磁盘性能极低,DSM6.2无法关机/重启。
C. 虚拟机方面——只能作为玩具用途:
- VMware虚拟网卡不能跑满带宽;
- VMware挂载实体盘会因诸如重装/迁移宿主系统时忘记attribute disk clear readonly等操作导致DSM提示磁盘损毁,好像还无法修复;
- 目前Hyper-V对DSM6及以上黑群晖无解;
- EXSi不能休眠的来着(虽然不是黑群晖的锅,但家庭用途用EXSi干毛);
- 未直通SATA的PVE/EXSi,黑群晖无法读取S.M.A.R.T信息,而直通的话……话说你都直通了干嘛不实体安装;
- 如果用PVE/EXSi的目的是软路由+黑群晖,不如实体黑群晖的VMM中跑软路由。
(如果您一定要用黑群晖,个人建议实体安装)
——虽然黑群晖一张启动优盘搞定安装,但后期的折腾并不比装个Windows少,况且并不是没有群晖的替代方案。
小结:数据无价,远离黑群晖。
写在前面6: VideoStation的替代品
相信许多人折腾黑群晖的起因,仅仅是这个VideoStation:
但实际上PC上有同样的解决方案:
6.1 Emby server:
6.2 Jellyfin:
话说Emby server闭源(硬解码收费)之后,对之不满的开发人员另起炉灶,也就是现在的Jellyfin了,基本框架与Emby server并无二致,但保持免费开源。唯一不足是客户端支持并不像Emby那样广泛,目前没有iOS客户端。
6.3: 老牌的Plex
Plex大名鼎鼎,与新秀EmbyServer相比优势在于UI/UX,唯一的问题是有点小贵(付费订阅模式,880终身订阅,终端app免费)。
写在前面7:Overseerr,一劳永逸的聚合解决方案
这货是把下载器(qBittorrent/Transmission)、资源监控/自动追剧(Radarr/Sonarr)、视频播放管理(Plex)聚合在一起的东西,虽然说配置过程比较繁琐,但这货确实是一劳永逸的方案。
如上图,电影和电视剧我可以放在两个服务器上,通过overseerr进行聚合
额,请注意这货只是一个前端,它起到的作用是资源浏览,播放、管理、搜刮、下载等工作是调用其他工具完成的。
个人建议用docker跑,省时省心。
感觉随手下载的overseerr跟随时加硬盘的unraid真的是绝配,当然群晖、OMV、Linux等方案也没问题
写在前面8:Linux Server的Web面板
群晖DSM的优点在于全图形化Web操作,对于小白用户而言Linux Server的全命令行模式令人望而却步。实际上Linux一样可以有图形化Web面板,个人推荐以下两种:
7.1 Cockpit(超轻量级) 功能简单
7.2 Webmin(轻量级) 较全面
7.3 Kloxo(重量级)不推荐,资源开销较大不太适合NAS使用;
7.4 介于Cockpit与Webmin的其它WebUI不做赘述,有兴趣的同学可自行谷歌后尝试。
正题:NAS硬件平台的大致分类
1. 成品NAS:群晖/威联通方案,购买建议:四颗星
适用对象:不想折腾、动手能力弱,对价格不敏感的用户。
- 优点:一站式方案,套件及app丰富,远程控制及操作方便;
- 缺点:本质上只是阉割掉声显卡后的赛扬解决方案,稳定性也只能称得上尚可,RAID属于软阵列,个人仅建议采用Basic磁盘方式使用;(威联通HTPC机型在硬件上与群晖差别不大,可认为是集成播放功能的群晖)
- 购买意见:建议4盘位起,有较大的腾挪空间 (双盘位用到后期很痛苦)。
2. 成品微型服务器:惠普ProLiant MicroServer,购买建议:五颗星
- 优点1:性价比高(比同等配置的群晖低30-50%);
- 优点2:稳定性强(毕竟隶属Server产品线);
- 优点3:可扩展性强,可根据需求添加硬RAID卡及各类扩展卡;
- 缺点:需要自行安装及配置系统,Linux的话需要一定的动手能力。
- 购买意见A:HPE ProLiant MicroServer Gen10,可做NAS+HTPC使用;
- 购买意见B:无需高清硬解的童鞋可950元购买N54L(目前各类盒子与移动设备的本地解码能力够用)
3. Gen8的继任者:HPE ProLiant MicroServer Gen10 Plus,购买建议:三颗星
扣分原因:这货对标群晖/威联通性价比不咋地
- Intel Xeon 22xx / Pentium G 54xx;
- HPE iLO 5远程管理;
- 最大内存支持32GB x 2 (ECC/Non-ECC);
- 板载四个千兆网口;
- 一个PCI-E x16扩展槽;
- 高度是Gen10的一半,可以水平或垂直放置(11.6 x 24.5 x 24.5 cm);
- 支持Silicon Root of Trust / TPM;
- 180w外接电源,解决电源噪音问题;
- S100i软RAID卡(0,1,5,10)。
HTPC玩家需要注意的几个问题:
- Xeon版本无集显,硬解需上刀卡,但注意电源只有180w;
- S100i貌似目前只支持Windows;
- 价格未进入真香期(某宝奔腾型号售价达4xxx)。
4. 自攒(廉价)NAS,购买建议:一颗星
- 优点:便宜(便宜不等于性价比高);
- 缺点1:没有ECC内存 (虽然群晖也没有);
- 缺点2:稳定性捉急,J3455之类的平台+各类廉价配件;
- 缺点3:噪音(机箱共振等)无法预估;
- 缺点4:兼容性问题无解(如黑群晖磁盘性能低下、部分loader启动问题、网卡不识别等);
- 注意事项:选择电源请慎重。
- 例1:华擎J3455-itx不能上镁光DDR3L 1866内存,开机黑屏,只能在1600下运行;
- 例2:还是华擎J3455-itx,Linux卡顿,据说只支持Win10;
- 例3:依然是华擎J3455-itx,黑群晖(DS918+)无法关机/重启;
- 例4:仍然是华擎J3455-itx,主板随机不识别M6S SSD,需要谜之设置CSM / Secure Boot(Windows Server 2019)。
——你永远都不会知道这种主板会发生什么,而正经的MicroServer都是要经过n多兼容性测试的。
那么就有童鞋不服气了,自己攒NAS就不能选了?
没说不能啊,但既然自攒,咱就考虑个稳定靠谱的方案呗:
5. 自攒MicroServer,购买建议:四颗星(性能过剩减1分)
既然要自攒Microserver,咱就别跟J3455/4205/5005这种东西死磕了,人家的方向是HTPC,不是给24x7作业环境设计的,动不动又是wintel邪恶联盟货,兼容性测试基本嘿嘿嘿。
所以觉得成品microserver速度落伍的童鞋考虑下这货:
- Supermicro X10SDV-TLN4F
简单讲一下配置:
- SoC:Xeon D-1540,8核16线,12M Cache,TDP45W,天梯排名211 (E3-1235L v5排名542作为参考);
- 内存:最高128GB DDR4 ECC RDIMM 或 64GB DDR4 ECC/Non-ECC UDIMM;
- 四网口:万兆电口(SoC) x2 + 千兆网口(i350)x2,第五个网口是IPMI 2.0远程管理;
- 磁盘接口:SATA x 6 (RAID 0,1,5,10) + M.2 x 1;
- 扩展接口:PCI-E(x16) x1。
工作站级的性能,服务器级的稳定性,Supermicro产品背书,爽了没?
价格:全新单主板美亚大约4000,二手16G DDR4 ECC内存+Gen8改装版机箱(因为做工好)大约4500。
EXSi / ProxmoxVE可以搞了是么?(建议加一张硬盘直通卡)
追求“高性能NAS”的痴汉们满足了么!!!开心了么!!!
6. 二手HPE/Dell塔式服务器:别搁家里用
- 开机起飞时间大约2分钟,HP机型插入PCI设备后噪音猛增(Dell没接触过无法评价),家用入手需谨慎考虑。
- 但,server毕竟是server,跑EXSi是真的舒适,家用主板跑那玩意儿各种糟心。
7. 二手1U/2U/刀片服务器:负分滚粗
- 不推荐,太尼玛响了。
OS(操作系统)及软件部分:
- 群晖/威联通方案:
群晖/威联通售价远比同等PC高,很大原因是其丰富的功能套件加持,省却了各种安装、配置的烦恼,且客户端支持广泛(WIndows/Mac/iOS/Android),用户也算是花钱买省心。唯一不足的是想在其上跑虚拟机时效能较低,此点与其硬件配置也有直接关系,顺便吐槽下群晖的Virtual Machine Manager,慢成狗。
2. OS/软件方案A:Windows Server平台
为什么要Server:为了用Windows Admin Center(原Honolulu),是一个功能完备的Web面板。
Windows方案更适合小白用户,软件安装、配置通过远程桌面操作,其它操作基本Web面板搞定。
- 远程控制A (远程桌面方式):Microsoft Remote Desktop (官方) / Jump Desktop (懒人推荐);
- 远程控制B (Web面板方式):Windows Admin Center (官方);
- 私有云:Seafile Server(注:已不再更新);
- 下载方案A:迅雷远程,通过Web页面控制管理;
- 下载方案B:Aria2,Web管理面板:Aria-NG,中文教程;
- 下载方案C:Transmission (web面板)、uTorrent (uTorrent Web);
- 虚拟机方案A:VirtualBox (免费);
- 虚拟机方案B:VMware Workstation ;
- 视频/图片分享、远程播放A:Emby Server ;
- 视频分享、远程播放B:Jellyfin;
- 视频分享、远程播放C:Plex Media Server ;The Free Software Media System视频分享、远程播放B:Plex Media Server ;
- HTPC播放:KODI。
OS/软件方案B:Linux平台
Linux与Windows相比胜在简便,缺点为需要花点时间学一下基础命令,大致如下4个:
- ssh:登录NAS;
- yum/apt-get/dnf:软件包安装/管理(具体命令视你安装的linux发行版);
- vim:各种配置文件的编辑(知道-i、:wq即可);
- git/wget:获取部分文件的常用命令。
大致思路:
- ssh登录进NAS,yum/apt-get/dnf安装cockpit/docker,你的NAS基础系统已构建完毕。
- Nextcloud、迅雷远程、Aria2、Plex等等全部用docker搞定,省却繁复的命令行配置。
为什么推荐docker:linux各发行版间存在差异,以nextcloud为例,CentOS/ubuntu的基础服务配置不同,甚至ubuntu17下用的好好的nextcloud在系统升级至18后要重新配置。系统迭代、重新安装后都需要较繁复的配置工作,这显然是与本文“简单易用别折腾”的思路相悖的。即便系统升级换代,用docker重装nextcloud+mariadb+onlyoffice也仅需30秒。
docker命令较多,但我们有portainer这样的Web面板:
软件方案:
- 远程控制A (远程桌面方式):Jump Desktop ;
- 远程控制B (Web面板方式,简单控制):Cockpit;
- 远程控制C (Web面板方式,功能全面):Webmin;
- 私有云:Seafile、Nextcloud ;
- 下载方案A:迅雷远程(docker);
- 下载方案B:Aria2,Web管理面板:Aria-NG,中文教程;
- 下载方案C:uTorrent (Linux版本略老);
- 视频/图片分享、远程播放A:Emby Server ;
- 视频分享、远程播放B:Jellyfin;
- 视频分享、远程播放C:Plex Media Server ;
- 虚拟机方案A:VirtualBox ;
- 虚拟机方案B:gnome Boxes ;
- HTPC播放:KODI 。
其他:NAS OS:
一句话解释:配置好NAS模块的Linux
NAS功能出厂预装,用户只需增加自己需要的功能部分即可。相较需手动配置的Linux,NAS OS等于是省了一半工作,适合喜欢Linux又手残的半小白党。
另外,既然基于Linux,所以ssh进去增删功能模块、装个docker也是可以天下我有的。
- OpenMediaVault (推荐):
NAS OS中个人最推荐的方案。基于Debian,与FreeNAS相比插件更丰富,硬件需求对家庭用户也相当友好。
可以把这货理解成一个免费版的群晖或者预设好基础NAS功能的Debian,当然,基础功能意味着你需要折腾,只不过比纯Linux少了一些配置工作。
- SMB共享之类可以通过WebUI方便搞定;
- OMV插件里有的,就通过它的WebUI搞定;
- OMV里面搞不定的,ssh进去或docker搞定;
- 文件管理操作通过Filebrowser搞定。
吐槽:希望换一下上古的安装方式和中古的GUI。
2. FreeNAS:非家庭用途
基于FreeBSD。ZFS格式的内存吞噬者称号并非浪得虚名,8G内存起步(且官方强烈建议ECC内存),在此基础上,官方建议如下配置:
- 磁盘容量:每1T磁盘容量再增加1G内存;
- 磁盘容量:如需对ZFS数据去重,每TB数据至少5G内存;
- iSCSI:至少16G内存(低性能),32G内存(良好性能);
- Active Directory:2G内存;
- Jails:1-4G内存;
- 虚拟机:与分配给VM的内存同等内存容量;
- 同时,官方还建议采用高主频的CPU。
也就是说,如果你的NAS存储了8TB数据,官方建议配置16G的内存。如果你的NAS塞了32TB数据,按官方的建议应该是40G内存,这还是没开ZFS数据去重、iSCSI、ActiveDirectory和虚拟机的情况下!
————所以大家应该清楚这货根本不是给家庭用户设计的。
优点:现代化的UI,各项设置及操作一览无余,PT/BT等功能以插件模式安装(然鹅nextcloud版本老的可以),自带虚拟机功能。
缺点:内存需求不适合家庭用户
3. XigmaNAS(原NAS4Free):
FreeNAS一个东家的产品,所以也是ZFS分区格式,所以也要绕回到“下载机配16G以上内存我到底是在图个啥”的究极问题上……
- 其他方案:ESXi / Proxmox VE,折腾党福音
个人其实不推荐这俩货,但确实是折腾爱好者心心念念的玩意儿。对于希望测试一段时间后再实体跑的系统,虚拟环境是不错的选择。
- 优点1:一机多用,维护及子系统安装简便;
- 优点2:快照、还原非常方便,可以放心的折腾小鸡。
- 缺点1:配置要求较高(PVE也并没有好到哪去),赛扬跑个软路由+NAS还OK,大型OS较吃力;
- 缺点2:对小白用户不太友好,需要一定的动手能力。
其实家庭环境下即便要一机多用,宿主机+虚拟机的方式也可以应付(Linux、Win、群晖都有自己的VM程序);
注:PVE比ESXi更适合家用设备,自由度与兼容性更好些。
这些年折腾NAS的心得总结一句话:
不要把简单的事情复杂化
单纯家里用用,群晖/威联通是最佳选择。
写在后面:
为达到更方便的操作与控制,建议搞一台能刷梅林、DD-WRT的路由,各种远程开关机、修改设置。(手残党暂时不要考虑Open-WRT)
以上。
利益相关:
- Synology DS918+ (DSM6.2) : WD40EFRX + WD80EFZX + WD140EMFZ*2;
- Synology DS418Play(DSM6.2) : WD40EJRX+ WD80ZAZ*2 + WD140EMFZ;
- Synology DS620slim(DSM7.2) : CT1000MX500SSD+ST1000LM+ST2000LM*2;
- HP ProLiant MicroServer N54L( Debian10 + Seafile) : ST6000NM*2(RAID1);
- HP ProLiant ML310e Gen8 v2(EXSi7):THNSNJ256GCSU + ST31000528AS + WD1003FBYX*2(P420 RAID1);
- intel NUC7CJYH(Proxmox VE):CT1000MX500;
- Supermicro X10SDV-TLN4F Xeon D-1540 SOC(Proxmox VE) : PX-256M6S + WD40EFRX*2 + WD80EFZX
- Dell T430(EXSi7):PX-256M6S + WD40EFRX*2 + WD1003FBYX*2 + WD140EMFZ*4