又到了618,每年一到618的前夕,各个论坛社区里总有人会提到NAS这个东西。NAS,故名思意就是个存储,只是人们越来越让它干非存储的事,All in One有它的优势也有它的不足,每个人有每个人的需求,但是请记住,不要给自己创造需求,希望这篇博客可以让你拔草/种草。

需求

就如标题那样,其实我第一次萌生需要一个NAS已经是7年前的事了,没错群晖的DS916+发布后我就种草了,但是当时我对存储的需求是什么,下载和存储影视。其实我一直都有下柯南来看的习惯,即便我拥有柯南的正版流媒体账户。柯南我从13年重新开始追,我一直都是观看的某字幕组压制的版本,为什么我不选择官方正版的字幕呢?因为官方字幕曾经出现过剧透的翻译问题,并且还是在剧场版里。随便说下,剧场版送审时提交的版本为该字幕组翻译的版本,而上映时却采用的八一厂的翻译。
这就是我7年前的需求,很简单,于是我采用我2013年时的方案,USB挂载硬盘进行冷备,并且这个方案实施了七年。
而我现在的需求发生了哪些变化?

  • 需求的存储空间越来越大
  • 我购买了一个性能非常强劲的Android TV盒子
  • Google drive的存储规则修改 免费的云空间不够我未来使用

而相当于七年前,我软硬件环境又有了哪些变化?

  • 宽带100M/10M 升级为 1G/50M
  • 公网IPV4,DDNS,OpenVPN
  • 全屋WiFi6覆盖,老旧2.4G设备全部更新淘汰

于是我决定我需要购置一款NAS,但是选NAS时,我遇到了一些问题。

  • 群晖等国际大厂的家用NAS,硬件不够卷,即便不考虑“智商税”的部分,其硬件规格真的只是满足当年设备需求。
  • 国产NAS,硬件够卷,用户入口侧的APP也卷,但是因为隐私性,对不起我用不起。
  • DIY NAS,我有能力和精力维护。

自己DIY NAS有个最大问题,箱子。DIY的NAS并没有像成品NAS那样拥有紧凑的机身,大、贵是很多箱子的特征,选来选去,我选中了一套3D打印的方案QNAS4,4盘位的机箱(内部可额外加装两块2.5寸的硬盘)

组装

该项目有提供BOE表,自行购买即可,说几个注意点吧

  • 该开发板使用的是J4125,根据Intel Ark上的说法,最大内存为8G,因为该开发板为单根内存槽,如果插入单颗粒大小2G的内存,可能无法点亮,建议采用单颗粒1G,8G 2400的内存条
  • 虽然板子有自带PWM风扇的转接线,但是我并没有在BIOS里找到风扇曲线调整,并且在DSM7里也提示不支持PWM风扇。
  • 关于jmb585转接卡,建议购买大厂,并且安装后尽量不要再去插拔,易损坏。
  • 集成硬盘背板有个安装教程,可以找卖家索取,其余的部分真的很简单,基本上你拆过笔记本清灰那么你就有能力装它。

安装系统

DIY NAS除了高度可定制硬件规格,还有就是可自行安装各种操作系统。我这里选择的系统为群晖DSM7.2,选择黑群晖很简单,一是我的设备的硬件规格不配玩truenas,二是其规格和群晖的DS920+高度接近,群晖多两个M.2硬盘位,我的NAS则是两个2.5G的网卡。
有的人可能会说,你这个NAS并没有比成品NAS强在哪啊,新的成品NAS已经开始采用12代处理器了,你这个还是10代处理器了,除了双2.5G网卡没有任何强势点。是的,这套配置其实就是CPU是我觉得毕竟拉跨的地方,但是想想,作为存储J4125的不够他跑满2.5G网卡吗?8G的内存也足够DSM7.2+Jellyfin+qBittorrent运行了。最重要的是我花了950得到了一个拥有的猫扇的小体积NAS,这个NAS其实就是为了机箱的妥协。如果不是机箱的束缚,谁不想用N100/N305做NAS呢。
群晖我这用的引导项目是arpl-i18n,注意该项目截至2023年5月30日并没有集成J4125集显驱动,如果你需要用集显,请自行下载集显驱动。

部署Docker

在DSM7.2中docker已经升级更名为Container Manager,支持了Docker Compose。如果你的访问访问国际互联网存在问题,请使用微软的https://dockerhub.azk8s.com镜像服务。
关于Jellyfin的docker镜像,可以选择nyanmisaka打包分发的版本,或者选择jellyfin的官方分发,一个拥有良好社区环境的支持的版本才是值得信赖并使用的版本。

长时间使用报告

2024/03/15更新

问题

硬件部分

  • M2转SATA的转接卡JMB585可能因为机箱的打印精度的问题,导致可能会因为重力、外部震动等关系,导致整个JMB585接触不良,硬盘全部脱机,Raid降级等问题,需认真考虑NAS的摆放。
  • JMB585发热量不低,NAS存放环境风道不好的话,建议安装被动散热器,且考虑3D打印机箱的精度问题。
  • J4125发热量不大,无需额外安装被动散热,可能摸着温度不是很低,但是请放心,它不会得新冠。
  • 开发板的BIOS里面的风扇调整比较简单,手动固定某个值百分比即可,我是选择固定了一个800转的猫扇,手放在硬盘仓前,即便装满4块盘也可以感觉到很明显的吸力(我的选择是风扇排风,直接将硬盘的废热排出机箱)。

软件部分

软件部分里提到的BUG,非常主观性,且不一定在所有类似的场景里都能复现,但在我所拥有的这套软硬件环境个体里是可复现的

  • 我安装DSM时为2023年5月,当时DSM的正式通道还是DSM7.1.1,7.2为RC版本,我从7.1.1,升级到7.2 RC后,因模拟的机型为DS920+,其使用了新的特性WriteOnce,而我的设备上出现了什么bug呢?创建共享文件夹这个功能不正常,选加密的时候有且仅有在选择WriteOnce时才能创建成功,其余都不行,若选择跳过也自动创建的是WriteOnce文件夹。于是当时我选择回滚到7.1.1。而到了11月份我重新烧录新的引导,且升级安装7.2的正式版本时,这个BUG依旧存在。甚至我改机型为DS918+且格盘安装后创建非加密的共享文件夹也会报WriteOnce的错,但是再次创建就可以创建成功。此案例我没有在社区找到任何类似的案例
  • Docker下的Jellyfin,J4125的GPU为UHD 630,虽然J4125的CPU部分架构为Gemini Lake Refresh,大家爱称呼它为第十代CPU,但是它的iGPU其实是Gen9.5,而10代CPU里面既有9.5代,例如i9-10980HK,也有11代,例如i7-1065G7。按照社区查到资料,Linux下内核添加i915.enable_guc=2后可以使用Low-Power H.264,但是我开启失败了。
  • Jellyfin里的刮削时候,我刮削了詹子萱这位演员在豆瓣的数据后,无法在web界面编辑其信息,且点击她查看详细信息时Jellyfin一直转圈,Jellyfin打印的日志也报错,删除library.db后重新刮削也有这个问题。

非NAS部分

我使用的非大陆地区销售的类原生Android Phone和TV以及Windows PC,使用Android TV观看海外正版影视作品时,各种特性均能正常工作(论花钱认证的重要性)。然而我使用它们在Jellyfin观影时灾难就来了。

  • Android上的ExoPlayer可以正常的播放HDR、杜比等影片,但是Exoplayer对于字幕的支持极差。
  • 在Android上使用MPV播放时,虽然对于字幕有了更完善的支持,但是HDR、杜比等均不支持。
  • Android下的Kodi硬解杜比仅支持部分格式(注:硬解需要设备过认证)。
  • B站的ijkplayer放国产剧的时兼容性更好,但是设备功耗会更高,至于HDR、杜比等特效没测试。

希望Android这部分的生态能加强吧,能早日推出Infuse这种级别的APP吧。