之前的NAS一直是用虚拟机跑的,因为想用ZFS,所以在虚拟机里运行了一个TrueNAS Scale。电脑CPU的功耗区间很宽,待机时能降到10w以下,满载时能上到120W左右,因为是笔记本电脑有电池,相当于自带一个UPS不用担心意外断电。再加上是现成的设备,除了硬盘和内存以外,完全不用额外花钱,我使用起来一直很满意。

然后不出意外的话,就要出意外了。都说现在的电脑很皮实耐操,长时间不关机也影响不大。但是我这个笔记本呐,就偏偏不争气地坏了。现象是电脑上电1分钟左右就会卡死,一开始还以为是系统bug,想着重新安装一下系统应该就好了。
然后重装系统的时候发现就算在bios里也会卡死,我突然就有点慌了。后面我无意间发现电脑在死机后整机功耗会陡然降低,然后定到25W左右,无论怎么点鼠标键盘,都没有一丝波动(正常应该在30-60W之间波动)。
我第一感觉是CPU卡死了。因为之前大致测量过CPU Package功耗和整机功耗的差值,推算出来外围功耗大约在18-20W附近。然后我就反复重启进bios,趁着卡死之前不停调整CPU各种配置。意外发现重新开启CPU超线程之后,问题奇怪地消失了,就和从来没发生过一样。虽然电脑暂时恢复正常了,但我的NAS肯定不能继续在这台电脑上跑了,要换个其它地方。
首先想到的就是买个x86小主机,因为TrueNAS Scale只有x86版本,没有ARM的。但我估计TrueNAS可能会缺失wifi驱动。我这边受环境限制,只能连接wifi不能连有线,就算我搞到了网卡的linux驱动,TrueNAS也不一定让我安装,因为这个系统为了极致的数据安全,对shell访问做了特别严格的限制。
也想过使用PVE套一层TrueNAS,但是PVE的文档我确实看不进去,放弃了。
之所以想用TrueNAS,主要是它的ZFS文件系统,不仅有COW机制让快照只记录差异部分,还有校验和机制+数据巡检机制能够定期发现文件静默损坏。另外就是TrueNas几乎所有操作都是在WebUI里进行的,整个操作逻辑都是可视化的,非常直观不用敲任何命令行,很合我心意。

操作繁琐一点是没问题的,但是没有ZFS我不能接受。然后我就把目光放到了OpenMediaVault上,这个系统虽然整体体验没有TrueNAS好,甚至ZFS还要靠装插件才能支持。但是它支持ARM啊,它可以在现成的Debian系统上安装,就凭这一点它就是香饽饽啊。但当我真的咬下去的时候又发现不太对劲。
首先就是安装,ZFS默认没有集成到OMV里,需要自己下载插件去安装。安装时第一个遇到的就是网络问题,我明明在系统设置里添加了代理地址,但是安装ZFS插件时,就是甜蜜的不生效。原来它自己走了一个脚本去下载一堆依赖,我还是通过翻源码知道它偷摸着跑去调用wget下载文件,我又给wget设置配置文件,最终才把zfs装好。
OVM给我的感觉就是把命令行直接硬搬到WebUI上来,很多按钮点击后,显示的数据直接就是CLI那套文字排版,感觉还不如用CLI。最麻烦的是ZFS Pool创建不了,它的可用磁盘列表一直是空的,查文档说是因为盘的数据没有清,我清了好几遍还是这样。而且它那个文档,写了和没写一样,完全没有TrueNAS那么详尽。

最后还是我亲自用命令行去创建的ZPool。请问我都能命令行创建了,我还要你OMV干嘛?最头疼的当属于安装OMV后,我的香橙派开机时间直接从20秒变成3分钟,而且随便在OMV里改点什么东西,它Apply一下,又是2分钟转圈圈。
最后我气不过把OMV删了,我直接换原厂系统,打算自己从头定制一个NAS。
考虑到后期可能还会部署一些轻服务到NAS上,我专门买了一个4GB内存版本的香橙派Zero3,拿到手后第一时间刷系统,然后装zfs,因为zfs需要工作在内核空间里,所以它需要linux头文件来编译,这里官方手册里有提到,头文件默认没有安装,而是在/opt目录下有个deb包,需要自己install一下。我花了好久才再官方手册里找到正确方法。
zfs装好后就是接硬盘了,我选择的是PCIE4.0的硬盘通过一个USB硬盘盒连接到香橙派的USB接口上。然后这里就踩坑了,我用的致态的TiPro7000,这个硬盘貌似对电源功率要求比较高,需要峰值2A以上的供电,否则硬盘不识别。但USB 2.0接口规范中最大也就500mA啊喂,远远不及需要的2A电流。我感觉天塌了,怎么都没想到会卡到供电这里。
我突然发现我的充电器可以输出5V 3A的电流,但是硬盘却只能卡到1A附近,那么肯定是限流了。我用万用表打了一下,果然USB的VCC和充电器的VCC是断路的。那多半是有隔离芯片。我直接打开香橙派官网,找Zero3的原理图,找到了一个叫SY6280的电源管理芯片,其中ISET引脚就是用来限制电流。具体的电流是根据I=6800/ISET(欧姆)计算出来的,这里Zero3连接了一个6.8k电阻,也就是限流到1A。


正好前几天改装UVK6对讲机时我买了新的电烙铁,而且手边正好有剩下5.1k电阻(对没错,我只有5.1k的贴片电阻)。然后就是飞线的活,这比UVk6的那个16pin typec座子飞线要容易多了,两下就搞定了,然后用表打一下确定电阻降低到原来的一半。直接插电~ 开机~

烙铁是刚买的,正点原子的T90B,正好我的充电宝可以输出PD 140W功率,加热到350度只需要几秒,确实非常快。



这下硬盘终于能正确识别了,我迫不及待地导入ZFS存储池,然后天又塌了,原来TrueNAS的ZFS是定制过的,使用了一个什么特性。现在换到香橙派上它不支持这个特性了,无法挂载了。我傻眼了,无奈只好把数据备份到别的硬盘后,再将硬盘重新格式化,然后又把数据复制回来,这回终于能挂载了,系统也能正常识别了。
还没高兴几秒,又踩坑了。这回是zfs的权限问题。我的samba服务怎么都访问不了硬盘里的文件了,提示权限不足,我又去调整zfs的权限。不得不说TrueNAS确实很牛逼,它那个WebUI十分简单易用,有啥事点两下就完事了,都不用跟shell打交道。也正是太好用了,我是一点都没有接触过命令行版本的zfs,调起权限来只能两眼一抹黑,一遍调一遍查官方文档。
然后我发现Linux上的ZFS是不支持nfsv4身份验证的,这个只有BSD系统上的ZFS才支持,而恰巧我所有的文件夹都被设置成了nfsv4模式。我就很纳闷为啥TrueNAS Scale是基于debian的,它怎么就能支持?一查我才知道TrueNAS对内核进行专门定制过以支持nfsv4。好吧我认了,换回posix模式就是了。
最后总算是把NAS给搭建起来了,过程中我曾不止一次想打退堂鼓放弃这个ARM方案,想着就买一个小主机然后PVE+Truenas完事了,方便又省事。好在最后还是坚持下来了,NAS也正常工作没有一点问题,最后设置一下每天+每周+每月的定时快照,方便回退版本。得益于COW(写时复制)机制,创建快照几乎不会增加硬盘空间占用,而且速度飞快就几秒钟。
可能这个系统中唯一的短板,就是香橙派只有USB 2.0的接口,和它旁边那块PCIE4.0x4的固态硬盘比速度确实不太匹配。但我并不是很在意这个事情,因为我的预期里速度只要有5Mb/s就足够平常看一些视频或者其它文件下载上传使用了,遇到再大点的文件无非就是多等一等。就算能跑到更高的速度,硬盘功耗也会飙升,我的USB根本输出不了这么大的电流。前面给硬盘导入数据时,我使用的是USB连接的我的电脑,按理说我电脑是不会有供电问题的。但是一旦当硬盘写入速度上来之后,比如上到200Mb/s左右时,硬盘就会掉电,然后复制进程就卡死了。所以用USB 2.0也算是恰好避开了这个问题吧。
另一个遗憾是香橙派的wifi,虽然写着支持2.4G和5G双频wifi,但是5G频段的带宽只有100Mbps左右,使用上就是传送速度被锁死在了10Mb/s出头。要知道usb 2.0接口的速度都能跑到30Mb/s呢。

此外这也余下了不少预算,一块香橙派才200出头,而一个x86小主机动则800到1000的,而且功耗啊,噪音啊,都没有ARM这么好。这个香橙派体积还小,如果有需要的话可以随身带着,用最普通的充电宝就能开机,随时随地都可以访问文件。
其实在过程中我还留意到了OEC(T)这个盒子。它有2.5寸SATA硬盘接口,但是我买不到M.2 PCIE转2.5寸SATA的硬盘转接盒,另外OEC(T)它不支持WIFI,只有1个千兆网口。再加上体积稍微大了一点,最后没有选择这个。
其它瑞芯微的盒子我也都看过,单论性能总体肯定都是比H618要强不少的。但是我NAS的使用习惯是读多写少,读写的时间比例大约是9比1。zfs也开启了数据压缩,我用的是lz4算法。lz4算是一个比较注重速度的算法,压缩率和速度之间会更偏向速度,这一定程度上也减轻了CPU的计算压力。
我也有专门在香橙派上做过lz4benchmark的测试,纯内存速度大约1.1Gb/s左右还不错,即使是从SD卡上读取文件进行压缩,也能有个40Mb/s的速度。况且lz4本身是一个速度不对称的算法,也就是解压速度远远大于压缩速度,这又进一步减小了CPU压力。平时下载文件10Mb/s左右的速度时,CPU也就是10-20%的占用,很低。

最后我把这个NAS放在在桌子底下了,这里既不显眼,也不会有散热压力,而且离市电插头更近,我可以使用更短的typec线来减少供电损耗,因为这块硬盘本身就对供电要求比较高。
接下来我会试用一段时间,看看这个NAS的综合体验到底怎么样,然后再向大家分享一下具体的使用体验。

另附上之前给对讲机改绿色背光和加USB转串口的飞线,type 16pin接口真的太小了,相比之下香橙派这个飞线可以说是入门级别了(

