2024 年的自建 NAS 不专业不完全手册

0X00 你需要一台 NAS 吗

不知怎么的,在移动互联网疯狂发展的今天,反而慢慢开始兴起了自建网络服务这种复古风潮。最近这些年身边的朋友同事越来越多聊到 NAS 了,甚至 B 站上出现了一小撮 NAS 区 UP 主(没错,你知道我说的是谁)。就更不说现在淘宝咸鱼上大量的 NAS 专用机箱,甚至是 3D 打印的定制化版本了。

你真的需要一台 NAS 吗?NAS 说白了就是一块连着网的硬盘,速度比直接插电脑上还慢一些,如果你平日里需要访问数据的设备并不多,且拥有一个台式电脑,那不如先买两块硬盘插上去。通过文件共享功能将台式机转换成一个带有存储功能的兼职 NAS。

如果你家里的多个手机、平板、电脑、电视都需要访问存储,或者你没有台式机可以扩容,那确实可以考虑搞一台 NAS。

我自己的需求是这样的:

  • 平时喜欢摄影,每次拍摄回来的照片少则 10G 多则 50G,日积月累已经有大几百 G 了,需要备份
  • 也喜欢拍一些视频,相机拍摄的码率都很高,随随便便 50G 100G 的,需要备份
  • 患有仓鼠症,喜欢囤一些高清电影电视剧来看,总共搞了有差不多 8T 了
  • 手机、平板、电视、电脑都需要访问上面的影视资源

什么,你说你就是想要,不管需求?那就买呀,挑着贵的和好玩的买~

0X01 我的 NAS 之路

最早的一台 NAS 是 2018 年买的 Synology DS118 性能烂到家了,也只有一个盘位,配了一块 4T 红盘,不过还是老老实实用了差不多 3 年。

DS118 存储告急之后打算升级 NAS,觉得自己很少用得上群晖引以为豪的软件,再加上对自己的技术实力有一捏捏🤏的信心,所以开始尝试自组 NAS。硬件选择了奔腾 G6400 + 16G 内存,第一次使用了 OMV ,觉得它对 Linux 的改动很少,所以相对来说更玩得惯。不过用了没多久还是换成了 TrueNAS Core,这套平台就稳定运行了很久。

当时买了 8T 的 HC320,买了没几天奇亚币就上天了,我的硬盘价格也跟着上天了。时隔一周,我 899 买的硬盘店家就卖 1899 了 🤷‍♂️

因为 TrueNAS Core 是基于 BSD 的系统,后来看 TrueNAS SCALE(基于 Linux 的)稳定了之后就切到了 SCALE 版本,也顺势将 G6400 升级成了 i3-10100,内存也加到了 32G。

升级之后的 NAS 一直稳定运行到了今年,突然有一天我觉得家里另外一台用作 homelab 的服务器开机时间太少了,然后我看着身边的一台性能「强劲」的 homelab 和一台性能「羸弱」的 NAS 陷入了沉思。沉思过后,从兜里掏出了一张「融合」:

0X02 有点强的硬件配置

说是融合,其实就是选用了 homelab 的 CPU内存主板和原 NAS 的机箱硬盘,大概配置如下

Name Model
CPU AMD Epyc 7551P 32C64T
主板 SuperMicro H11SSL-i
内存 DDR4 16G ECC * 4
HDD HC320 8T * 3
HDD 红盘 4T * 1
HDD 银河 4T * 1
SSD Intel 1.6T
网卡 Intel 2.5G

试问哪个程序员不想要一台 32 核 64 线程 64G 内存 近 30T 存储容量的 NAS 呢 🤣

配置单疑点:

  1. 真有必要上这种 CPU 吗?没有,完全没有,事实上是之前 i3-10100 应付我的需求也完全没有任何问题。我只是正好有这个,卖也不怎么值钱,不如装上。
  2. 真有必要上 64G 内存吗?没有,完全没有,事实上之前 32G 内存 应付我的需求也完全没有任何问题。我只是…有点上头,所以上了 64G。
  3. 真有必要搞这么多存储吗?没有,完全没有,事实上🤦‍♂️这个还是有的,或者说因人而异,毕竟我确实要存好多照片、视频和电影电视剧。
  4. 听说 HC320 很拉?其实我没觉得,所谓炒豆子声确实存在一些,不过也只存在于读写的时候,但是 NAS 其实大多数时候磁盘是可以休眠的。另外我放在桌子下面使用完全不会在意,只要别放卧室就没有问题。
  5. 你那个 1.6T 是不是有点扎眼?这是我在咸鱼上收的二手,当时放在 homelab 上用的,现在拿过来做缓存(缓存意味着丢了也问题不大),正经自己配置缓存的话一般 250G 就妥妥够用了。

0X03 硬件选择

我这个硬件配置其实也就图一乐,对大多数朋友的选购并不能起到多大的帮助作用。这一节来简单帮大家分析一下需求,选择自己需要的配置。

CPU

如果没有万兆传输需求,那 300 块钱买一个 G6400 或者同等水平的 CPU 就可以了,如果有万兆需求的话可能 CPU 性能上需要再上一档。

另外挑选 CPU 的时候可以注意一下它的编解码性能,如果性能达标的话在 NAS 上做视频转码就舒服多了。

内存

内存主要就是看大小,如果你不打算用 TrueNAS 且不打算跑好多个服务在 NAS 上的话,4G 或者 8G 内存就是够用的。如果打算用 TrueNAS 的话可以在预算范围内多购置一些内存,有关系统选择的内容我写在下面了。

有必要 ECC 吗?可以,但没必要。随便买几根内存插上就行了,真想讲究的话就买同品牌同频率同型号的内存。

主板

主板要在预算范围内选靠谱一些的,劣质主板的供电可能会有问题,这对于我们这种 7*24 运行的机器来说是很大的问题了。

另外如果计划加的硬盘多的话要先看一下硬盘供电和 SATA 接口是不是够用,不够的话还要买 PCIE 转接卡。

电源

电源更好选,我们选一个转换率达标的大牌就好了,功率反而是最不重要的。另外我建议各位选购全模组电源,因为我们大概率是不会给 NAS 装显卡的,用上全模组电源就可以让机箱里少很大一坨线。

现在我用的就是非模组电源,机箱里一大坨一大坨的供电线闲着用不上,徒增散热难度。

硬盘

硬盘就在淘宝上找那几个口碑好的店去买就好了,既然组 NAS 了我建议还是 4T 起步,8T 10T 16T 最好。

如果需要缓存盘的话,要考虑自己是否会上万兆,如果是万兆内网的话一定要上 nvme 的盘,否则 SATA 的 SSD 就可以用作缓存了。因为 SATA 3.0 的速度是 6 Gbps 要高于常见的千兆、2.5G 和 5G,但是不到万兆的 10G。

网络

网络基本上有四个选择,大家可以根据自己的需求进行选择:

  • Wi-Fi 愚蠢之选:速度慢且不稳定,NAS 系统对 Wi-Fi 的支持也不好,没有任何理由选择为 NAS 配置 Wi-Fi;
  • 千兆 新手之选:不改动网络,不新增设备,125mb/s 的速度能满足几乎所有功能性需求;
  • 2.5G 实用之选:2.5G 的网卡和交换机都不算贵,能将内网速度提升一倍不止,性价比很高;
  • 万兆 高玩之选:如果经常有大量数据传输的需求,那可以咬咬牙上万兆,100G 的数据也能一分多钟搞定,不过一般玩家就不太建议这么搞了,太贵;

你说还有 40G ?散了散了,买不起了 🤷‍♂️

0X04 系统选择

自组 NAS 的话基本上就下面这几种系统方案:

  • TrueNAS Core 稳如老狗:企业级的 NAS 系统,基于 BSD,原生 ZFS,稳如老狗。不过没什么可玩性,如果是用作纯 NAS 的话可以考虑;
  • TrueNAS SCALE 稳中带皮:同样的企业级 NAS 系统,基于 Linux,也很稳定,比 Core 版的可玩性强一些,带 Docker;
  • OMV 简单粗暴:一个相对简单的系统,基于 Debian,没有深度用过,不过用户量也不是很大;
  • WIndows Server 熟悉的地方:有些用户对 Windows 很熟悉,对 Linux 则一窍不通,那其实装个 Windows 开启文件共享也挺好的,还免了后续的折腾;
  • Linux 硬核之选:如果你对自己的 Linux 技术有信心,是可以直接装 Linux 然后自己配置文件共享的,这样还更自由,只是 web 面板的缺失会导致修改配置和部署服务的麻烦程度直线提升;
  • Unraid 玩家之选:Unraid 是除了 Windows 以外唯一一个付费系统,可以方便的配置 Docker 和虚拟机,也有应用商店可以快速安装一些诸如 Plex、qbittorrent 之类的应用;

按个人使用经验来说,比较推荐 TrueNAS SCALEUnraid 两个。

TrueNAS SCALE

优势:

  1. 开源且免费
  2. ZFS 很屌
  3. 带有插件市场,方便安装插件
  4. 支持在 NAS 上部署虚拟机

劣势:

  1. 上手难度较高
  2. ZFS 并不适合所有人
  3. ZFS 对内存要求较大
  4. 插件市场并不很完善

Unraid

优势:

  1. 阵列系统自由度高
  2. 上手门槛低
  3. 插件市场相比 TrueNAS 更完善
  4. 中文化做的更好
  5. 管理界面更加直观
  6. 也能部署虚拟机

劣势:

  1. 要钱,现在还改成了订阅制(可以去咸鱼收老的激活码)
  2. 对 ZFS 支持不佳
  3. 在使用校验盘且没有缓存的情况下写入速度慢

0X05 阵列介绍(Unraid Only)

这里简单介绍一下 Unraid 的阵列,严格来说不叫阵列,应该是 Array。

我们以 3 块 8T 的硬盘为例,如果组成无校验的 Array,可用空间就是 3*8=24T。向其中存储的文件会以文件为尺度分散在所有硬盘中,这种方式的特点就是:读写的速度都是单盘的速度。并且数据安全性上也比较特别,由于都是以文件为尺度进行分盘的,所以即使 3 块盘坏了 2 块,那活着的盘里的数据也还能都取出来,极端点说 100 快盘坏了 99 个,最后那个活着的也能读数据出来。这就是 Unraid 的特性。

还是 3 块 8T 的盘,如果将其中一个用作校验盘,那可用空间就是 2*8=16T。存储的文件依旧以文件为尺度分散在硬盘中,但是每次写入数据到「数据盘」时,都会同时计算校验值写入「校验盘」。我们假设数据盘 A 存储了[01010101]的数据,数据盘 B 存储了 [01100110] 的数据,那经过计算我们校验盘就会存储 [00110011](通过计算对应位置的二进制得到的)。这样一来 2 块数据盘无论坏掉哪一个,都可以根据另一个好的和校验盘进行计算将其数据恢复出来;如果校验盘坏了,那数据本身就没有丢,再替换一块校验盘上去即可。带校验的模式也有一点风险,就是「如果只有校验盘活下来」的情况,这种情况虽然校验盘活下来了,但是数据还是全都丢完了。

一般来说你都用 NAS 了,想必是对数据安全有一定要求的,所以建议 Unraid 配合校验盘一起使用,担心性能问题大不了再加一个缓存盘就是了。

0X06 阵列介绍(TrueNAS Only)

选择 TrueNAS 肯定是要用 ZFS 的,我们一般用 ZFS 也就这几种用法:strpe, mirror, raid-z, raid-z2。严格来说这些阵列方案和常见的 RAID 是不一样的,但也大差不差,所以我还是写了这个简易的对照表,方便各位理解。

ZFS Name RAID Name
strpe raid-0
mirror raid-1
raid-z raid-5
raid-z2 raid-6

还是那句话,你都用 NAS 了,想必是对数据安全有一定要求的,所以直接抛弃 strpe 这种一损俱损的疯狂模式,我们从 mirror 开始介绍。

mirror 是最简单的,就是纯镜像。我们依旧假设你有 3 个 8T 盘,现在将他们组成 ZFS mirror 之后可用空间就只有 8T,但是安全性暴涨。mirror 模式会将写入阵列的数据同时写入到所有磁盘,也就是说每个盘里都有完整的数据,这样一来 3 块盘只要没有一起挂掉,那数据就全部还在,是数据安全性最高的。

raid-z 则是带校验的,但是与 Unraid 不同,raid-z 不存在校验盘的概念。三块盘的身份是相同的,功能也是一样的,你写入的数据会分散在两块盘中,再将校验数据写入另一块盘。这种方式乍一看和 Unraid 上使用单个校验盘是一样的,但其实大相径庭。由于数据分散在三块盘中,校验数据也分散在三块盘中,这就意味着读写都是三块盘一起工作的,所以性能比带校验的 3 盘 Unraid 强好多。但是当同时坏掉两块盘的时候,不能像 Unraid 一样有概率恢复一半数据。

raid-z2 则是带两个校验的,通常只有硬盘数更多时(例如 5 块)才会考虑,原理同上。带两个校验盘就意味着整个阵列中可以坏掉随意两块盘。

0X07 装都装了 跑个服务吧

如果你的 NAS 性能比较强,有多余的性能可以跑一些服务的话,我可以推荐一下我部署的服务:

  • Plex 影音中枢,可以将自己下载好的电影电视剧做成海报墙,并且在多个设备上无间断播放,需要在电视电脑平板手机等多设备上观看的话还是很好用的;
  • FileBrowser 文件管理器,虽然可以通过 SMB 协议挂载目录到手机电脑上,但偶尔不方便挂载的时候可以用它管理文件;
  • cailbre-web 电子书管理器,类似于 Plex,不过它是针对电子书的,可以在线看书、管理、收藏;
  • firefox 有点离谱,但是 Firefox 可以跑在浏览器里,我把 Firefox 通过 frp 做了内网透传,这样人在外面只需要访问这个 Firefox 服务就能间接访问家里部署的所有 web 服务了;
  • frp 内网穿透,允许你通过自建的服务器转发流量到家中,实现远程访问家里 NAS 的功能;
  • homeassistant 智能家居,还没深度使用,不过多介绍;
  • netdata 性能监控,说实话没什么用,但是看着帅;
  • qbittorrent BT 下载神器,没有介绍的必要;
  • SpeedTest 测速工具,用来测试内网速度是否达标

0X08 冷静消费

一波分析后蠢蠢欲动?冷静,冷静,冷静

开搞之前先问自己几个问题:

  1. 真的有那么多的文件要存储吗?
  2. 真的有那么多的数据要备份吗?
  3. 真的有那么多的设备要访问吗?
  4. 电脑加硬盘的方案真的不行吗?

如果真的都考虑清楚了,那就开搞吧~

最后提醒一句数据无价,做好备份