自己DIY NAS—TrueNAS Scale使用体验分享

2024-03-01 16:15:20 28点赞 157收藏 17评论

写在前面

(阅读顺序:图片在对应文字的下方)

前排预警 万字长文

近几年NAS在各路博主的宣传之下已经进入大众视野,各个品牌积极推出成品型号,顺带着周边的工作室也做了不少相关配件,整个市场可以说非常热闹。

几年前,我经常在论坛看到大佬晒自己的NAS,机器里面插了一堆硬盘,运行着自己听都没听过的服务,看上去十分羡慕。但是自己一直沉迷于电脑装机,存储还不是刚需,又用不到这么多功能,加上各种服务的配置过程有点复杂,所以NAS的计划就被搁置了。(最主要是没有钱)

在搭建NAS之前,我的存储主力是电脑里的固态,以及一块在亚马逊海淘的WD Element Desktop 10T。

这块WD Element Desktop 10T含税和运费到手价格将近100元/1T,不仅有硬盘还附带硬盘盒+电源,个人认为还是比较划算的。可惜以前海淘的西数产品能直接转国行保修,但是等我入手的时候有网友反馈不能如此操作了,只能出现故障之后再尝试联系官方进行转保。

自己DIY NAS—TrueNAS Scale使用体验分享

这块硬盘入手之后用得非常舒服,毕竟可用容量一下大涨。常用的文件放固态,不常用的或者占用空间大的,比如电影电视剧、文档照片和程序安装包,就存在这块硬盘里。当时我估算了一下,10T自己要用满怎么也得三五年,等空间满了再搞NAS也不迟。没想到三年不到,这块盘就已经只剩200G了,清理了一些个人认为不必要留存的文件之后,可用空间也就只有1T不到。

同时电脑外接单盘有几个问题:

  • 硬盘休眠不受系统设置控制

    电源管理中将休眠时间改为0,硬盘盒内的硬盘仍然会自动休眠。WD Element Desktop出厂设置的休眠时间又特别短,对于机械硬盘来说,如此频繁的休眠唤醒对硬盘的损耗是非常大的。

    有一个解决办法就是借助CrystalDiskInfo,将扫面间隔设置为最短的1分钟,然后保持后台进程,设置开机自启,通过软件的读取使硬盘保持唤醒。

  • 后期扩容困难

    这是单盘存储的一大痛点,想要扩容就只能再插一块,那么文件的分布就是个问题,要靠自己记住什么文件存在哪个盘里面。

  • 数据可用性低

    不重新拔插的话,外置硬盘只能一个设备使用。比如硬盘接在台机上,台机又没有开机,笔记本想要打开其中的某个文件,就比较麻烦。电脑还可以通过重新拔插解决,但是如果平板和手机要打开硬盘里的视频,只有借助于文件共享,此时电脑需要保持开机,很不方便。而且有的时候Windows系统弹出设备会抽风,哪怕关闭了所有相关的软件,仍然提示设备在使用,机械硬盘又不敢硬拔,求稳妥只能关机再拔。

  • 文件没有冗余

    所有文件都存在一个盘里面,如果这块盘挂了,数据一锅端,很好理解。虽然说电影电视剧不是什么重要的数据,但是我还是想尽量保存下来,有些喜欢的作品由于年代久远,BT又没多少人保种,再去下载比较困难,国内的BT环境什么样大家都知道。

  • 占据空间大

    我的主力机是ITX,机箱内部没有空间再加3.5寸机械,想加盘只有外置,算上硬盘盒与硬盘本身的体积,杵桌子上还是比较占用空间的。

    到了夏天,硬盘还得另外加散热。我用了一个DC升压板,将USB的5V电压升至12V,驱动闲置的12025风扇,搭在硬盘盒顶部的通风口上实现散热。如果不加风扇,硬盘冲上五六十度轻轻松松。以前我从来不在意这块硬盘的温度,后来为了防止自动休眠,CrystalDiskInfo后台常驻,就总是因为过热报警,想想这么用了一年多,感觉有些后怕。

以上这些问题,NAS都可以解决——多个硬盘组建RAID,既提供一定的冗余,也能整合空间;整个机器长期在线,通过局域网文件共享,能够满足多设备同时访问的需求;后期扩容,虽然也不是无脑直接添加新硬盘,但是相较于单盘来说,扩容还是更方便的。

方案选择

方案的选择整体分为两部分,一个是系统的选择,一个是硬件的选择,两部分相互影响,在搭建之前就需要完整地规划好。

因为自己本身就喜欢折腾,成品对我不太有吸引力,DIY的自由度更高。况且成品的价格和与之对应的硬件规格让我难以下手,所以一开始就打算DIY。

系统选择

既然要DIY NAS,自然就需要选择一个专门的NAS系统。系统的选择至关重要,一定程度上决定了整个NAS的用途。同样的功能,不同的系统实现起来难度也不一样。

最开始我对OpenMediaVault比较感兴趣。这是一个轻量级NAS系统,主要面向家庭用户和小型企业,配置和使用都比较简单。国外不少人喜欢拿这个系统搭小型服务器,用一个树莓派+2.5寸SATA固态就能完美运行,对性能的要求并不高。缺点就是功能比较简单,如果后续有更多需求,可能折腾的空间并不大。

自己DIY NAS—TrueNAS Scale使用体验分享

后来考虑到自己还有BT下载的需求,在容器里配置qbittorrent肯定不如Windows直接安装方便,Windows下qbittorrent开个WebUI就能远程操作。所以我又转向了Win Server方案,想借助Windows的存储空间来组件RAID,甚至一度准备踩ReFS的坑。随着了解的深入,我发现ReFS文件系统目前还不成熟,而且存储空间的奇偶校验速度很慢,是个硬伤,于是放弃此方案。

自己DIY NAS—TrueNAS Scale使用体验分享

黑群晖我没怎么了解过,既然要DIY了成品的系统对我也不是太有吸引力,群晖最近也搞了一些莫名其妙的操作,所以直接放弃。其他系统比如Unraid,正版要花钱,也没有什么特别刚需的功能,不想为此去琢磨开心版,还是用免费开源的系统好了。

自己DIY NAS—TrueNAS Scale使用体验分享

看来看去最后选择了TrueNAS,同样是基于Linux的开源系统,能够满足企业级的应用,支持ZFS文件系统,该有的快照和巡检功能都有,容器支持也还可以,配置上是麻烦了点,但是一旦折腾好了功能非常强大。在前两种方案都有些许缺陷的情况下,TrueNAS或许是我最好的选择,折腾就折腾吧。开发TrueNAS系统的iX Systems也是一家很有实力的公司,为不少知名企业提供商用解决方案,索尼、微软、苹果等都是其客户。

自己DIY NAS—TrueNAS Scale使用体验分享

硬件选择

个人认为NAS硬件最关键的其实是是主板。CPU不难买,选择并不少,就算是二手也不容易坏。而主板需要考虑网卡型号、芯片组、SATA口数量、板型,种种限制加起来,就不是那么好选了。如果不知道如何下手,可以借助PCpartpicker网站,筛选功能非常好用。

国内有一些小厂做了几款集成CPU的主板,针对NAS需求做了魔改,价格非常便宜,让人心动。但是看了看评论区,还是有些小毛病的,我对其产品质量和售后并不是很放心,于是排除此选项。

既然是DIY,能把手上闲置起来的硬件利用起来是最好的。我看着自己的B550M Mortar MAX WiFi陷入沉思——国行全新在保,MATX板型,6个SATA口,2个M2口,甚至还带WiFi插槽,怎么看都非常合适。于是出掉了5800X3D,正好主力机要换回ITX,暂时转投Intel,不过那就是另外一个故事了。

AM4平台的CPU非常好选,刚开始想着自己性能需求不高,找一个4C8T的U即可,结果看中的5350GE一直都缺货,而前代3400G的能耗比和5000系还有差距,所以最终加钱上了5600G。已经上市这么长时间,5600G的价格也是降了不少,拿来组NAS还不算太奢侈。顺带安慰一下自己,软RAID比较消耗CPU性能,选个6C12T的CPU,多留一些性能的余地(事实证明没有必要)

自己DIY NAS—TrueNAS Scale使用体验分享

CPU我能接受散片,不太想买二手。虽然说散片默认二手,但是仍然有一些店铺出售全新散片,只是需要耐下心来仔细找一找。这颗5600G是在多多入手的,看了评论区普遍反映全新,店家也在详情页承诺全新。我收到快递之后录了开箱视频,顶盖没有任何痕迹,反面电容处也没有猪肉章或者牛皮癣,确实是全新,还是比较开心的。不过CPU上没有任何痕迹,我倒是好奇店家怎么记录自己出的货,难道是一个个拍照记序列号么。

顺带说一下,有些人对CPU的功耗存在误解,好像TDP 65W的桌面级CPU就一定费电,其实完全不是这样。近两年发布的新型号处理器,在待机状态下还是比较省电的,而NAS也不是一直都有高负载,就那点服务其实大部分时候负载都非常低,我是完全能接受其功耗表现的。

以前5600X盒装的Wraith Stealth散热器还留着,正好派上用场。本来是打算买AXP90的,后来想想原装散热估计够用了,Wraith Stealth本身也静音,何况AXP90并不便宜。虽然我个人装机为了静音喜欢散热过剩,但是在NAS上完全没有这个必要,待机状态下什么散热器也不会吵。

AMD原装散热器的水泥硅脂是出了名的,拆散热器把CPU粘下来就是它的功劳。由于摆放时间比较久,预涂的硅脂已经出现了些许变色。本来我也不打算用它,先铲了保平安。

自己DIY NAS—TrueNAS Scale使用体验分享

Wraith Stealth作为AM4最丐的原装散热器,与CPU接触的部分并没有铜,整体全铝。摆放时间确实比较长了,散热器底座也有变色,感觉像是硅脂渗进去了,拿酒精都擦不掉。

自己DIY NAS—TrueNAS Scale使用体验分享

内存选择了阿斯嘉特弗雷16G×2,银色的马甲和迫击炮的配色还挺搭。反正NAS又不超内存,频率3200够用了,容量更加重要。NAS别作死超内存,任何的不稳定都很可能导致文件损坏。之前看到一个NAS内存超频的勇士,就是文件出问题了。D4 3200的XMP频率,严格来讲也是超频得到,但是读过SPD信息的都知道,出厂参数给得相当保守,本身频率也不高,开XMP还不至于带来稳定性问题。

自己DIY NAS—TrueNAS Scale使用体验分享

由于所采用的ZFS文件系统的特性,TrueNAS比较吃内存容量。有一种流传的说法是1T硬盘容量就需要配1G RAM,这种估算不完全准确,实际内存占用没有这么夸张。内存到底要多大因人而异,官方文档里也有比较详细的建议。如果系统用户比较多,或者需要跑很多插件,就酌情增加内存。现在D4内存也便宜,我暂时选择了32G,个人认为是一个比较好的平衡点。而且主板有4个插槽,真不够用了可以后续再增加2条16G。

  • 关于ECC内存

    虽然说B550支持ECC内存,但是遗憾的是,微星并没有在自家主板上提供支持,且非Pro系APU也不支持Reg ECC。偏偏又一直有TrueNAS需要ECC内存的说法,为此我查看了官方的Hardware Guide,里面对于ECC内存的解释是这样的——

    Most users strongly recommend ECC RAM as another data integrity defense.

    However:

    • Some CPUs or motherboards support ECC RAM but not all

    • Many TrueNAS systems operate every day without ECC RAM

    • RAM of any type or grade can fail and cause data loss

    • RAM failures usually occur in the first three months, so test all RAM before deployment.

    也就是说iX Systems官方对于ECC内存作用的说法是模棱两可的,并没有明确说明TrueNAS必须要使用ECC内存,否则发生错误导致文件损坏之类。而对于ECC重要性的某些说法也有些夸大其词,具体参考这个视频。对于TrueNAS系统,或者说家用的NAS系统,ECC并不是必需。当然,主板和CPU本身不支持ECC,想用也用不了。

    我觉得reddit上一个老哥说的挺好——

    Are you building an enterprise storage sever and your business depends on it? It would be silly not to buy ECC ram. It’s not a panacea, memory flips can still happen to fool ECC but it reduces probability of failure, so why not.

    Are you shopping for home nas parts you build from scratch? Absolutely, get ECC: because like that dude said, non-ECC is a cost saving measure and for home pet project it feels good to do it right.

    Do you already have parts from old PC that you want to repurpose for nas and avoid them going to landfill but dang it it’s DDR3 non-ECC? Don’t go out of your way to get ECC. Even if the motherboard supported it I would not bother spending a cent on ram.

    ECC adds some protection but zfs and FreeBSD don’t somehow magically benefit from or need it more than any other OS and filesystem.

    大概意思就是企业使用或者生产环境请上ECC。对于家用NAS,如果是全新搭建就上ECC,如果是利用旧硬件组NAS,而这些硬件不支持ECC,也完全没问题。

自己DIY NAS—TrueNAS Scale使用体验分享

因为主板是MATX板型,我也希望机箱的盘位多一些,方便后续扩容操作,所以最后选择了拓扑龙8盘位机箱,上下分仓设计,1U电源,体积也不是很大。之前也看过樊隆的8盘位机箱,星之海的御夫座天箭座,乔斯伯的N2/N3,最后都因为结构上的某些设计被放弃。比如电源风扇和CPU风扇对吸我个人是接受不了,我觉得这样就失去选择ATX电源的意义了,不是所有下压散热器都能把风扇反装。

自己DIY NAS—TrueNAS Scale使用体验分享

拓扑龙机箱该有的东西都有,只是做工实在不敢恭维,尤其是边缘的处理不到位,已经发生过多起滴血认主的案例,安装时必须戴上手套操作。官方也知道这个问题,并决定采取最朴实无华的解决办法——随机箱附赠一副手套。

自己DIY NAS—TrueNAS Scale使用体验分享

这种边缘的细小瑕疵稍不在意很容易划到手。

自己DIY NAS—TrueNAS Scale使用体验分享

由于我是在第三方店铺购买的裸机箱版本,所以没有附赠的SATA线和手套,只有机箱本体和螺丝附件。我一直希望厂家能够给螺丝分个类,或者给一张螺丝规格的图片,这么一坨混在一起,实在很难分清每个螺丝是干什么的。

自己DIY NAS—TrueNAS Scale使用体验分享

电源支架

自己DIY NAS—TrueNAS Scale使用体验分享

附件里包含2个9cm风扇的防护网,这一点好评。尽管硬盘笼背后有较大的空间,实际走线过程中仍然难免有线要从这里过,有罩子罩起来还是更加稳妥。

自己DIY NAS—TrueNAS Scale使用体验分享

拓扑龙家自带的硬盘背板在买机箱之前就发现很多人说丐,我也不是很了解这个东西,还在想到底能丐成什么样,到手之后看了两眼发现确实有点丐。PCB上给的元件比较少,看上去光溜溜的,而且4个盘位共用一个大4D供电。虽然说单个大4D的承载能力足够,但是1个接口带2个硬盘还是更稳妥。樊隆机箱的某些设计与拓扑龙差不多,贵出来的价格个人猜测就在背板上,甚至有顺序启动的升级版本可选。

自己DIY NAS—TrueNAS Scale使用体验分享

其实这个绿色的背板已经是拓扑龙的改良版本,初版是红色PCB,拓扑龙官方已经确认后续不会再改进背板。要求高的用户可以去咸鱼上找别人定制的背板,价格挺贵的,8盘位要两张背板,加起来两百多,接近机箱价格的一半。蜗牛星际的背板比较好买,拓扑龙的背板就总是缺货,由于是定制产品补货时间也不确定。我是觉得背板再好,供电还是从电源出来的,暂时先不折腾这个东西。

这里要吐槽一下拓扑龙的上盖设计,侧边和底部的卡扣不是很好扣,有时候感觉卡上了,但是装完一看侧板还翘着,只能拆下来再对卡扣的位置。上盖的漆面比较薄,蹭一下就会变成下图中的样子。

自己DIY NAS—TrueNAS Scale使用体验分享

拓扑龙这款机箱要注意的一点就是,主板和CPU的供电线大概率不够长。我买的电源默认模组线尺寸是24pin 30cm,8pin 35cm,实测24pin差一点点,8pin则短一截。后续又自己买了2根延长线,本着宁长不短的原则,长度分别选择0.2m和0.3m,仅供参考。

除了供电需要延长线以外,USB3.0前面板接针也需要90度转接头,机箱自带的线比较硬,不转接根本插不进去,而且这种数据线本身也要避免大角度的弯折。

自己DIY NAS—TrueNAS Scale使用体验分享

侧边的SATA本来以为不需要转接,后来发现没办法在不大力弯折的情况下插进去,而且主板原装90度SATA线全部是向下弯折的,只好另外购买90度SATA线。按照B550迫击炮的布局,侧边4个SATA口一共需要2个向上弯折、1个向左弯折和1个向右弯折。

电源选择了益衡7030B,这个品牌电源的口碑非常不错,入手的店铺也提供改全模组和压纹线的版本。一开始我还担心8盘位使用300W是不是余量不太够,毕竟机械硬盘的启动功耗比较大,按20W算光8个硬盘就已经占了160W,CPU留60W,剩下80W留给其他设备,似乎有些捉襟见肘。店家的说法是8盘位NAS用300W够了。本来我寄希望于选择大功率电源,保证静音效果,毕竟小1U电源用过的普遍反映声音不小。结果做了一些功课,发现大功率的1U电源,风扇策略可能更激进,也不见得会更静音,所以最终还是选择了300W版本。

自己DIY NAS—TrueNAS Scale使用体验分享

店铺见标签,提供了直接改模组和换风扇的服务,不影响保修。

我也不知道益衡原厂用的什么风扇,店铺换成了建准的磁悬浮型号。

自己DIY NAS—TrueNAS Scale使用体验分享

由于改装全模组占用了电源尾部的空间,所以机箱给的电源支架是装不上的。我当时找了半天,没找到电源上对应的支架孔位在哪里,仔细一看发现被全模组的插头挡住了。不用支架的话,电源装好之后会有明显的下垂,我撕了几块电源包装里的珍珠棉垫在下面。垫了东西之后其实还是有点下垂,但是没办法了,最稳的支架装不上,就这样凑合用吧。

自己DIY NAS—TrueNAS Scale使用体验分享

这块电源到手的时候简单看了下外观没问题,但是上电的时候发现尾部的插座是歪的......不影响使用,就不找卖家扯皮了,不知道是不是改装全模组的时候碰歪了。

自己DIY NAS—TrueNAS Scale使用体验分享

尾部的风扇选择了Arctic F9 PST CO。CO表示双滚珠轴承,NAS长时间开机,论寿命还是滚珠要更好一些。PST表示风扇可以串接,不需要额外的1分2转接线,更加方便。

自己DIY NAS—TrueNAS Scale使用体验分享

选择Arctic,主要还是想尝试一下这个品牌的产品。9025规格的风扇选择并不多,除了公模套壳之外,猫头鹰太贵,利民的风扇我买了一些,体验也并不好。

搞笑的是,Arctic在更新P系列的时候,先推出了P8规格的服务器风扇,9cm的扇子还没有消息,官方运营人员推测可能要等到24年底,显然我等不了那么久。不知道Arctic在国内经历了什么,听说是和代理谈崩了,京东自营没了,淘宝上的授权店铺也不知道是真是假,反正这个十年质保我不抱太大希望。国外的小众品牌就是这个不好,一旦国内的代理出问题,购买和售后都麻烦很多。

自己DIY NAS—TrueNAS Scale使用体验分享

这两把风扇专门给NAS用,再加上要装防护罩,就直接上了自攻螺丝,电脑上的风扇我是舍不得这么装的。上机之后试了一下,风力感觉还可以,吹硬盘是够用了。Arctic的风扇静音是完全没问题的,至于轴噪,双滚珠难免有一点,但不是温柔台风那种尖锐的嗡嗡声,而是凑着耳朵才能听见的轻微沙沙声。

数据硬盘选择了希捷银河ST8000NM017B 8T。如果不介意噪音和发热,西数HC320的性价比要更高。不过我的NAS放在书房,平时会看书写字,如果硬盘太吵肯定是不行的,希捷售后的口碑似乎也比西数的乡村慢车要好一些。

目前我还用不到8盘位8T的空间,于是先用4个8T组Raid Z1,等空间不够了再添加4盘组Raid Z1。由于TrueNAS系统的处理方式,两个data vdev之间会以Stripe方式组成一个存储池。这个方案能够提供2盘的冗余,前提是故障的2块硬盘不在同一个vdev里面,而Raid Z2是可以提供存储池内任意两块硬盘的冗余的。

选择这样组建Raid,是为了后续扩容考虑。有了先前的教训,我意识到这个空间迟早得用完,只是时间长短罢了。而一旦组建Raid,想带着数据再扩容就是一件麻烦事,所以必须在导入数据之前就考虑好以后怎么扩容。如果不能接受这种方案,那就只有用容量更大的单盘一块一块替换重建,浪费时间不说,风险也更大。

曾经也考虑过用8块4T硬盘组Raid Z2,不论是可用空间还是入手价格都和现在的方案差不多,最终放弃是因为被坛友一句话点醒:你的电费不要钱吗?

今年各种存储都在涨价,翻了翻淘宝评论,发现自己已经错过了前段时间的好价,现在刚需又不得不买了,只能说有时候做等等党等到最后一无所有。

自己DIY NAS—TrueNAS Scale使用体验分享

为了节约预算,选择了2块国行+2块白标OEM的购买方式,找了两家口碑不错也经常被推荐的店铺,各买1块OEM1块国行,希望能降低一些风险。其中一家店铺比较奇怪,买的是OEM白标,发的是彩标,甚至还带原装盒子,上希捷官网查SN确实是OEM版本。发顺丰的差价各个店铺不同,如果差价比较高,发中通也不是不能接受。卖家给硬盘的保护都是非常到位的,我这里中通的服务还行,就没有全部选择加钱上顺丰。

自己DIY NAS—TrueNAS Scale使用体验分享

这里提醒一下,国行5年联保,要是不开发票,希捷公众号注册的保修是按出厂日期算的,没有发票想按购买日期算的话需要通过店铺走售后。希捷的账号比较迷,微信公众号的账号和官网不通用。

到手的硬盘一定要去官网对一下SN,前几天在论坛上看到有卖家用水货冒充国行,赌买家不查序列号,结果暴露。平台是多多,店铺名称还和我在淘宝买的这家一样,不知道是不是一家......

自己DIY NAS—TrueNAS Scale使用体验分享
  • 关于软RAID

    TrueNAS官方文档是这样写的——

    There are countless warnings against using hardware RAID cards with TrueNAS. ZFS and TrueNAS provide a built-in RAID that protects your data better than any hardware RAID card. You can use a hardware RAID card if it is all you have, but there are limitations. First and most importantly, do not use their RAID facility if your hardware RAID card supports HBA mode, also known as passthrough or JBOD mode (there is one caveat in the bullets below). When used, it allows it to perform indistinguishably from a standard HBA. If your RAID card does not have this mode, you can configure a RAID0 for every disk in your system. While not the ideal setup, it works in a pinch. If repurposing hardware RAID cards with TrueNAS, be aware that some hardware RAID cards:

    • Could mask disk serial number and S.M.A.R.T. health information

    • Could perform slower than their HBA equivalents

    • Could cause data loss if using a write cache with a dead battery backup unit (BBU)

    我也参考了一些视频,作者不建议使用硬RAID。经过了这么长时间的发展,软RAID的功能已经完全可用而且够用,使用硬RAID反而会带来一些麻烦。之前提到过,我暂时只上6个硬盘,主板自身的SATA口是刚好够用的,没必要再买HBA卡。等后续添加硬盘的时候,从M2或者PCIe都可以转接SATA口出来,留下升级空间。

系统盘使用了两块西数蓝盘2.5寸固态,TrueNAS支持把系统装在多个硬盘里,提供一些冗余性。这两块固态是从家里很久不用的老电脑上拆下来的,之前整理硬盘数据看到了订单截图,当年256G的SATA固态京东自营要400多,现在确实难以想象了。

由于拓扑龙8盘位机箱只有1个2.5寸硬盘位,所以安装2个2.5寸SATA固态需要借助这种堆叠支架。只要空间足够,多少个固态一起叠叠乐都可以。

自己DIY NAS—TrueNAS Scale使用体验分享

出乎意料的是,这种全铝合金的支架,不仅价格非常便宜,而且做工很好,倒角、沉孔,该有的处理都有。

自己DIY NAS—TrueNAS Scale使用体验分享

然而由于机箱内部做了折边的设计,正好挡住了堆叠支架,所以需要额外配备延长铜柱,使底部的固态向外偏移一些,给支架留出空间。

自己DIY NAS—TrueNAS Scale使用体验分享

铜柱的螺纹规格为M3,外牙长度要尽量短,我选择了4mm,正好能安装,再短一些更好,但是大部分店铺卖的外牙最短也就是4mm了。为了尽量避开机箱的折边,铜柱长度选择了8mm,实际安装之后发现8mm也有点长,可能5mm就够了。

自己DIY NAS—TrueNAS Scale使用体验分享

下载盘使用了梵想S500Pro 1T,京东自营入手价格300出头。下载盘么,性能之类的就不在意了。用固态是为了减少对机械硬盘的损耗,挂机下载的时候噪音也小很多。我的下载量并不大,消费级固态的寿命完全够用。本来想捡个洋垃圾当下载盘的,结果洋垃圾也跟着涨价,无语。刚开始系统并没有认到这块盘,搞得我非常慌张,以为出了兼容性问题,后来重新拔插了一下,发现是没插到底,虚惊一场。

UPS本来没打算配,但是想了想,这个东西也不是很贵,甚至是整套系统最便宜的配件,还是配一个保险一点。我所在的地区供电非常稳定,除了二十多年前老房子的保险丝烧掉跳闸以外,我印象中就没停过电,但这不代表NAS没有断电的风险,比如家里跳闸、家人误触总控开关之类(强行解释)

刚开始看的型号是山特TG BOX 850,500W功率似乎只有这个品牌的价格低一些。后来我并没有选择500W的1U电源,那么UPS自然也不需要这么高的功率,最终买了老牌厂商施耐德的BK650,也是久经考验的型号了。

这个包装风格就非常有年代感

自己DIY NAS—TrueNAS Scale使用体验分享

内部保护得还可以,京东物流的包装是指望不上的,还得靠厂家原包。

自己DIY NAS—TrueNAS Scale使用体验分享

正面插座比较多,甚至还带有2个USB口,平时可以客串一下充电头给小设备充充电。

自己DIY NAS—TrueNAS Scale使用体验分享

背面标准配置,不知为何这个表面比较粘手印。

自己DIY NAS—TrueNAS Scale使用体验分享

先上电试一下,听听声音大不大。

自己DIY NAS—TrueNAS Scale使用体验分享

刚开机会嗡嗡响一会儿,默认状态下没什么声音,只有凑得很近的情况下才能听到轻微电流声。

系统配置

前排预警:请提前准备好网络环境,这一点对于TrueNAS是必须的,有些基本功能(比如容器部署)网络不畅无法正常使用,各位应该能明白我什么意思。

在安装TrueNAS之前,我先装了一个Windows系统,用来烤机和扫描硬盘。我也建议各位在NAS上机之前,用Windows系统先测试一遍,比NAS装好之后再排查问题要方便多了。

跑30分钟R23测试一下散热。默认电压给得非常保守,大部分时间温度稳定在84℃,后期会慢慢升到90℃出头。单烤FPU也烤过了,但是我发现温度还没有30分钟的R23高,所以后续的测试都以R23为基准。

自己DIY NAS—TrueNAS Scale使用体验分享

经过定压定频摸索一段时间后,受Wraith Stealth羸弱的散热能力限制,1.25V连4.5G都稳不住,我个人能接受的设置是1.15V锁4.2G。跑了一段时间的测试感觉这么搞也没什么意义,干脆改成PBO2,曲线全核-20。后来在Reddit上看到一个歪门邪道,把PBO2的PPT功耗限制在30W,TDC和EDC全auto,主要损失全核性能,但是NAS很少会全核满载,这样设置能稍微限制一下功耗。

TrueNAS系统本体的安装配置参考了B站Up司波图的教程,TrueNAS的教程他做了很多期,有些视频比较老了,对新版的TrueNAS并不适用,看的时候要注意一下视频的发布日期。应用安装配置参考的是Sagit的教程,他的博客也有图文版,值得一看。

这两位的视频都没解决的问题,就只能靠自己摸索了,评论区的建议最好扫两眼,有时候能提供视频里缺少的关键信息。系统配置方面切忌照抄,之前在贴吧看到一个新手求助帖,存储池的名字叫testpool,有点难绷。

TrueNAS也有自己的官方论坛,个人感觉没什么用,上面的问题千奇百怪,毕竟这种功能强大的系统,要复杂起来可以很复杂。论坛虽然有中文板块,但是非常冷清,最新的帖子都是几个月前发布的。

安装系统首先需要将镜像写入U盘,这个我就不赘述了。推荐国产工具Ventoy,可以同时在U盘里保存多个镜像,甚至存储其他文件也可以,与启动分区互不影响,对于同时使用多个镜像的用户非常方便,避免启动盘反复写入的麻烦。

这么说起来其实很久以前我也有这样的设想,就是把U盘分成2个分区,一个作启动分区,一个作存储分区,用来放镜像和其他文件。可惜自己没这个技术写软件,常见的镜像写入工具一格式化U盘,2个分区就又合并成1个了。

Ventoy实现了这个功能,不过有一个小缺陷,就是安全启动。第一次从Ventoy启动可能会蓝屏报错,提示security violation。

自己DIY NAS—TrueNAS Scale使用体验分享

官网也给出了解决方案,只需按给出的步骤设置一次即可,以后都能正常启动。如果嫌麻烦不想设置,也可以直接把安全启动关了。

我这张主板比较奇怪,从BIOS里boot override会黑屏卡死,必须按F11手动选择启动盘,才能看到上图中蓝屏报错的界面。解决了蓝屏问题,就可以正常打开镜像安装系统了。

自己DIY NAS—TrueNAS Scale使用体验分享

具体安装过程略下不表,根据提示选择就行,每一个步骤是干什么的,安装界面都已经写得非常清楚。

对于只有一个显示器的用户,可以把TrueNAS机器的视频输出接到采集卡上,然后在电脑上用OBS看画面,就不用反复切换显示器的信源了。我比较懒,没有全程接采集卡,所以就没有完整的安装截图。机器就位后的维护倒是可以采取这种办法。

自己DIY NAS—TrueNAS Scale使用体验分享

注意TrueNAS Scale 23.10.1的安装过程已经与司波图视频里的不太一样,一些选择更智能化,比如第一次安装,不会再让用户选择是全新安装还是升级,因为本来就是全新安装。UEFI和BIOS legacy启动的选择也没有了,不知道是不是因为我的主板没开CSM support。

选择系统盘时按空格选中,Enter继续,TrueNAS支持同时选择多个硬盘。可以看到希捷银河因为是全新的硬盘,没有建立分区,所以只显示容量。而两个西数蓝盘固态,之前使用过,格式化之后仍然是NTFS分区。那个SN550是装在固态硬盘盒里的,忘记拔下来了,安装镜像也能正确识别,兼容性还是可以的。当然,长期使用的NAS机器,不建议把系统装在U盘上。

自己DIY NAS—TrueNAS Scale使用体验分享

装完之后我才想起来,其实装系统的时候,完全可以不装数据盘,只留2个系统盘就行了,这个过程中本身也用不到数据盘,没必要整个机器带着机械硬盘反复启动。等安装程序走完,界面开始滚代码启动系统。启动好之后会进入命令行,显示本机的IP地址,此时IP是DHCP自动分配的,对于NAS来说最好是固定一个IP。

固定IP既可以在命令行里操作,也可以在管理页面操作。我是建议直接在管理页面更改IP,没必要头铁敲代码,麻烦而且出错之后难以恢复。TrueNAS每更改一次网络配置,都需要测试更改,一旦测试不成功就回滚配置,非常人性化,这也是为什么大家都推荐在管理页面改IP的原因。具体如何固定IP,各个教程里写的都很清楚,我也不再重复。

网络设置完,到这一步,系统的初步配置就算完成了。

自己DIY NAS—TrueNAS Scale使用体验分享

存储方面的配置并不复杂,我自己是把4个机械硬盘组Raid Z1,建立一个存储池。在这个存储池下面,建立2个数据集,分别存储影视文件和常用的文档图片。1T的M2固态单独建立一个存储池,下面建立3个数据集,1个用作BT下载的临时存储目录,1个用作Aria2下载目录,1个用来存放应用配置文件。

自己DIY NAS—TrueNAS Scale使用体验分享

如果暂时用不到机械硬盘,可以先将对应的存储池断开,等该折腾的折腾完了再将存储池导入。TrueNAS可以识别以前创建过的存储池,这也是一个成熟的NAS系统必须具备的基本功能。

自己DIY NAS—TrueNAS Scale使用体验分享

硬盘休眠

一开始我设想的是NAS里的硬盘长期在线,方便文件的读写。经过两三天的运行之后,我发现这样实在是太费电了,一天两度电,甚至超过了冰箱,而我的文件使用频率并没有想象中高,所以对我来说硬盘停转是更好的选择。

我知道很多人反对NAS设置硬盘休眠,但是这要看实际使用情况,不是每个人都会不停地用到NAS里的文件。我自己对文件的访问比较集中,可能连续使用一两个小时,往后几个小时就不会再有读写,硬盘即便进入休眠也不会频繁唤醒。经过一段时间的观察,以我的使用场景,设置一个小时比较合适。

自己DIY NAS—TrueNAS Scale使用体验分享

advanced power management的选项不必纠结。根据米家智能插座3显示的功率,硬盘处于level3状态下甚至比level1还省电,所以选什么其实都无所谓。TrueNAS的论坛上也说明了,现在硬盘的功耗更多的是取决于硬盘本身的控制器,不受系统设置影响。

说明一下,我的NAS和交换机都接在UPS上,然后UPS接智能插座,所以软件显示的功率是NAS+交换机的功率。我使用的是磊科GS6 2.5G交换机,待机功率在7W左右。

硬盘运行状态下,整体功耗在60-70W之间。

自己DIY NAS—TrueNAS Scale使用体验分享

正常的文件读写,会上升到70-80W左右。

自己DIY NAS—TrueNAS Scale使用体验分享

硬盘进入休眠后,整体功耗36W,这个表现24小时开机就完全可以接受了。

自己DIY NAS—TrueNAS Scale使用体验分享

快照

快照和备份都是保护文件的方式,区别在于快照并不是数据的副本,而是记录了数据的状态变化,便于对数据进行回滚或恢复。家用环境下,除非是经常更改的文件,不然我认为1个小时1次快照不是很有必要。最关键的一点是,如果设置了硬盘休眠,那么快照会唤醒硬盘,过于频繁的快照有时候反而起到负面作用。

自己DIY NAS—TrueNAS Scale使用体验分享

巡检

即便是NAS里长期在线的数据,阵列巡检也是必不可少的任务,能够有效检查数据是否发生静默损坏。我在整理硬盘的时候,就发现了几张损坏的照片,时间甚至并不久远,但是这个损坏自己是很难发现的。如果巡检过程中发现数据损坏,系统会尝试修复,就算无法修复,也会及时通知系统管理员。

自己DIY NAS—TrueNAS Scale使用体验分享

还好损坏的文件不是什么重要的照片,是我在金工实习的时候做的3D打印。

巡检的频率,我设置的是一周两次。巡检会影响硬盘的正常读写,所以最好挑个不用的时间段运行任务。

自己DIY NAS—TrueNAS Scale使用体验分享

SMTP

我们不可能时时刻刻盯着NAS的管理页面看,所以设置一个邮箱提醒是很有必要的,比如硬盘故障、应用无法更新等问题,都可以通过邮件通知到系统管理员。

邮箱是可以自己给自己发邮件的,不过我自己有多个邮箱,所以使用了163的SMTP服务,往Outlook里发。为什么不是反过来,是因为国内的邮箱有时候会出于莫名其妙的原因,拦截国外邮箱发送的邮件。上大学时我就用Outlook给辅导员发过重要的邮件,结果被126邮箱拦截了,险些造成重大问题,后来再也不敢用国外邮箱干正事。

设置SMTP需要知道以下3个东西:邮箱的SMTP服务器地址、用户名和授权密码。

SMTP服务器地址一般来说就是smtp.邮箱名称.com,比如我用的163邮箱,其SMTP服务器地址就是smtp.163.com,不知道的可以自己去邮箱主页查。

用户名就是自己的邮箱地址。

授权密码稍微麻烦一些,需要进自己邮箱里生成。163邮箱的授权密码获取方式是登录邮箱,点击设置——POP3/SMTP/IMAP,根据页面提示,用绑定的手机给特定号码发送一串数字,后台就会生成SMTP授权密码,这个密码只会显示一次,所以一定要保存好,不然就只能重新生成。

自己DIY NAS—TrueNAS Scale使用体验分享

系统的邮件服务在System Settings——General——Email——Settings里设置,填上邮箱地址、SMTP服务器地址、用户名(就是邮箱地址)和密码(之前获取的授权码)TrueNAS的邮件提醒服务就配置好了。

自己DIY NAS—TrueNAS Scale使用体验分享

TrueNAS可以发送测试邮件,确认SMTP是否配置成功,邮箱收到这封邮件就说明配置没有问题。

自己DIY NAS—TrueNAS Scale使用体验分享

如果系统有报警,收到的邮件是这样的——

自己DIY NAS—TrueNAS Scale使用体验分享

基本的服务设置完之后,就是漫长的文件导入。将近10T的文件,从拷贝到校验,大概花了我两天时间,中间出了点小问题耽误了。大量数据的拷贝,我还是建议使用软件,比如fast copy和tera copy,校验步骤非常有必要。fast copy对网络驱动器的支持似乎不是很好,提权模式提示找不到驱动器,于是改用tera copy。tera copy有优势的一点在于,能够保存拷贝记录,还能看到速度的波动,界面比fast copy好看多了。

自己DIY NAS—TrueNAS Scale使用体验分享

中间因为Windows Defender报毒误杀了几个文件,所以前几个任务提示校验出错。整体拷贝速度还是可以接受的,4盘Raid Z1的顺序读写速度已经超过2.5G网络的上限。

自己DIY NAS—TrueNAS Scale使用体验分享

UPS

前面提到,对于我的家庭环境,UPS其实并不必要,只是配一个保险一些。TrueNAS系统无法自动识别所有型号的UPS,所以需要进入System Settings——Services——UPS页面手动配置。

TrueNAS原生支持的UPS并不多,Driver选一个型号相近的就行了,不影响识别。

自己DIY NAS—TrueNAS Scale使用体验分享

Shutdown Mode我选择了UPS goes on battery,也就是UPS转到电池供电时启动关机程序,倒计时180秒后关机。

设置好之后进系统shell,输入以下命令,查看UPS的识别情况

upsc ups@localhost

UPS型号、电池容量、电压都正常识别,至此UPS服务配置完成。

自己DIY NAS—TrueNAS Scale使用体验分享

应用安装

在基本的存储池和文件共享设置完之后,就进入到应用安装的部分。

TrueNAS的应用分为官方版和社区版。官方版应用由TrueNAS官方进行维护支持,用户也可以自己添加社区版Catalog,由TrueCharts提供支持。部分应用两个版本都有,一般来说社区版的配置更加复杂,部分功能也更全面。

官方提供的应用数量并不多,强烈建议添加社区目录。要添加社区版目录,先进入Apps,点右上角Discover Apps,就能看到已安装的目录。

自己DIY NAS—TrueNAS Scale使用体验分享

点击manage catalogs,就进入添加目录的界面了,这是新版TrueNAS Scale与旧版不同的地方。

自己DIY NAS—TrueNAS Scale使用体验分享

安装应用之前要为应用池选择一个位置,如果机械硬盘需要休眠,就不要将应用池设置在机械硬盘里,会影响硬盘休眠。

自己DIY NAS—TrueNAS Scale使用体验分享

TrueNAS Scale在某个版本里添加了host path validation的功能,具体是什么作用我不太清楚,但是导致了非常多的问题,绝大多数教程里都会告诉你把这玩意关了。我安装的23.10版本在Kubernetes里并没有显示这个选项,看论坛发现官方表示已经移除此功能。所以如果应用安装出现问题的话,就不要往这方面排查了。

自己DIY NAS—TrueNAS Scale使用体验分享

netdata

这个应用相当于一个仪表盘,能看到系统目前的入站出站流量、CPU负载,硬盘I/O等信息。

自己DIY NAS—TrueNAS Scale使用体验分享

本来一开始我是没打算装这玩意的,但是后来看到一个老外的视频,提到这个小技巧,可以通过仪表盘的数据来判断应用是否安装完成。一般来说,安装应用的时候,入站会活动一段时间,因为要拉取镜像,然后CPU转几下,等所有图表恢复平静,基本上就代表着应用装好了。

但是就在此时我遇到了一个问题,我尝试安装的所有应用,除了这个netdata以外,aria2和qbittorrent都卡在deploying,应用事件里提示back-off restarting failed container,具体现象跟论坛里这个帖子描述的差不多。

自己DIY NAS—TrueNAS Scale使用体验分享

年少无知的我本以为自己家的网络大部分时候能裸连Github,拉取镜像不成问题,结果被啪啪打脸。qbittorrent的镜像拉取了将近2个小时,最后还无法启动。Aria2的镜像直接拉取失败。

自己DIY NAS—TrueNAS Scale使用体验分享

TrueNAS无法像手机电脑那样使用客户端软件,所以想优化网络连接,必须借助其他设备,比如刷了固件的路由器。我掏出在书架上积灰已久的AC2100,一通操作配置好了网络连接,插在主路由下面当旁路由。

旁路由配置完可以测试一下外网连接,确认旁路由设置无误之后再进行后续的配置。

ping个英伟达先

自己DIY NAS—TrueNAS Scale使用体验分享

再试试IPv6

自己DIY NAS—TrueNAS Scale使用体验分享

多换几个网址,都能ping通基本就没问题了。

将TrueNAS的网关和DNS服务器地址指向AC2100是不够的,还要在apps页面把kubernetes的网关也指向AC2100,这样旁路由才能发挥作用。kubernetes的网关在Apps——Advanced Settings里设置,如图所示。

自己DIY NAS—TrueNAS Scale使用体验分享

上述设置完成之后,应用就能够正常部署了。

TrueNAS系统也能正常更新。

自己DIY NAS—TrueNAS Scale使用体验分享

这就是为什么我在开头就提醒大家一定要网络通畅,不要心存侥幸。其中的原理,据说是某些应用的启动需要调用Google的API,我也不太清楚到底是怎么回事。

如果查阅资料,可以发现在几年前有网友发起过建立TrueNAS国内源的项目,托管在Gitee上,但是该项目现在已经宣告失败,平台审核不通过,所以就不要在这个上面浪费时间了,老老实实优化网络吧。

OpenWrt虚拟机

在配置好旁路由之后,很快就遇到了第二个问题。

我发现只要NAS一开机,很快AC2100的后台就进不去了。刚开始以为是防火墙没设置好,在折腾了一段时间之后,并没有解决问题。而且旁路由按理来说局域网是可以直接访问的,不需要额外开防火墙的权限。

观察了一段时间OpenWrt的系统状态,发现我担心的事情还是发生了。AC2100采用的MT7621处理器已经非常老,放在过去开硬件NAT能跑满千兆,还有各路网友制作超频固件,但是以我的使用环境,其性能已经不够用了,尤其是优化网络连接需要跑一些规则的情况下。

这是TrueNAS开机时AC2100后台的截图,CPU直接满载,然后不出意料后台卡死。

自己DIY NAS—TrueNAS Scale使用体验分享

安装Aria2时的CPU负载——

自己DIY NAS—TrueNAS Scale使用体验分享

应用安装已经是要求较低的场景,如果这种情况下CPU都能跑满载,那性能就太弱了。于是我开始物色一个软路由,X86小主机已经大幅降价,但是加上内存硬盘整体四五百往上总是有的。我也不是天天部署应用,为了TrueNAS单独花几百块买个旁路由,就有些浪费了。针对此场景,我只能接受两百多的软路由,这个价格清一色的都是Arm平台,跑旁路由其实性能也够了。

为了搞清楚旁路由需要多少性能,我还特地测试了自己的优化带宽,600M左右,那MT7621确实不够用了,因为优化网络需要加解密,是用不了硬件NAT的。

自己DIY NAS—TrueNAS Scale使用体验分享

本来已经挑好了电犀牛的R66s,在下单之前忽然想到,TrueNAS支持虚拟机,反正旁路由也只给NAS自己用,为何不试试虚拟一个OpenWrt出来?而且CPU是X86平台,固件选择余地大,也能把5600G剩余的性能利用起来。

在翻阅了一些教程之后,我发现这么做完全可行,于是直接开工。

由于我使用的主板只有1个物理网口,为了让TrueNAS能够正常访问虚拟机里的OpenWrt旁路由,要在TrueNAS系统里创建一个桥接网卡。TrueNAS系统和虚拟机OpenWrt都使用桥接网卡,最后流量再从物理网卡流出。

创建桥接网卡前,要先删除原物理网卡上的所有配置。找到对应的网卡,右边有个小垃圾桶图标,点一下就能清空设置。如果TrueNAS已经安装了应用,删除原有网卡配置信息时系统会报错,提示网卡正在被kubernetes使用。

自己DIY NAS—TrueNAS Scale使用体验分享

解决办法就是让kubernetes先停下来,仅仅是把运行的应用手动关闭是没用的。进入Apps,右上角settings里选择unset pool,会断开应用池,此时kubernetes才真正停止,可以正常清空设置了。

自己DIY NAS—TrueNAS Scale使用体验分享

我之前提到,TrueNAS系统为了防止误操作导致无法访问,有一个回滚机制。由于清空网卡设置后网络配置发生了变动,所以系统会提示需要test changes。但是此时桥接网卡还没有配置,而系统的网络设置已经被清空,相当于所有的网络都没有设置,千万别点test changes

继续创建桥接网卡,配置过程和物理网卡差不多,只是命名有要求。对于桥接的网卡,名称必须是br开头,后面接数字。为了方便起见,我的桥接网卡名字就叫br0,Bridge Members选之前的物理网卡。

自己DIY NAS—TrueNAS Scale使用体验分享

这一步完成之后,就可以test changes,让改动生效了。

自己DIY NAS—TrueNAS Scale使用体验分享

60秒之内登录TrueNAS管理页面,能看到网卡有流量进出,IP也正常,桥接就成功了。想要用IPv6的话,先设置IPv4地址,设置完之后再去勾选auto configure IPv6,就会自动获取IPv6地址。

自己DIY NAS—TrueNAS Scale使用体验分享

接下来是虚拟机的创建步骤。

首先为虚拟机建立一个虚拟磁盘,也就是Zvol。Zvol的空间不需要太大,OpenWrt用不了那么多空间,我自己分配了6G,实际上再小一些也完全够用。其余设置不需要动,全默认就可以了。

自己DIY NAS—TrueNAS Scale使用体验分享

接下来向Zvol中写入固件的镜像。我选择了eSir的佛跳墙固件,这个版本的固件去除了一些不常用的功能,只保留某些关键插件,非常适合旁路由使用。

先把镜像文件复制到TrueNAS的数据集里面,具体复制到哪个位置,自行决定,反正只要是在TrueNAS的硬盘里就行了。我是从电脑直接复制到SMB共享出来的数据集里面。复制好之后记得把镜像名字改短一点,默认的镜像为了区分版本名字都比较长,输命令简直是折磨自己。

写入固件需要使用命令行。虽然说TrueNAS创建虚拟机时可以直接选择镜像,但是我查到的教程中清一色地使用了命令行写入的方法。为什么要这么做,我也不知道,可能是避免后续镜像文件被移动或更改导致虚拟机出现异常?

大部分教程里使用了SSH客户端连接TrueNAS进行写入,我没有使用这些软件,而是直接在TrueNAS系统的shell里操作。shell的位置在System Settings-Shell。

自己DIY NAS—TrueNAS Scale使用体验分享

写入命令如下:

dd if=mnt/镜像位置/镜像名称.img of=/dev/zvol/虚拟硬盘的路径 bs=1M

我的镜像位置在Download存储池Torrent数据集下,所以if后面的路径是mnt/Download/Torrent。Zvol的位置创建在Download数据集下,名字叫OpenWrt,所以of的路径是mnt/Download/OpenWrt。

命令前要加sudo,否则会报错。加了sudo之后会提示输入管理员密码,密码在输入过程中不可见,不要以为自己没输进去,输完回车就会执行写入命令。由于我的Zvol是放在M2固态里的,所以速度比较快,半秒不到就写好了。

镜像写入之后,进入Virtualization创建虚拟机。系统选Linux,UEFI启动。内存我分配了2G,对于插件不多的固件来说,完全够用了。CPU保险起见分配了1个核心,2个线程。

自己DIY NAS—TrueNAS Scale使用体验分享

在创建过程中需要设置一个密码,这个密码是进入虚拟机的图形输出界面用的,等会儿会用上。虚拟机创建好之后,默认是没有开机的,需要手动打开。这个虚拟机是用作旁路由,所以也需要自动启动。

自己DIY NAS—TrueNAS Scale使用体验分享

为了避免软路由开机与局域网设备发生冲突,各个作者制作固件时默认的后台地址都避开了192.168.1.1,当然我家的局域网网段本来也不是这个,此时是无法进入OpenWrt后台的。旁路由装在虚拟机里,也无法手动修改电脑ip进行连接,只能借助于OpenWrt的控制台。

点击Display,输入之前设置的密码,就可以看到虚拟机的图像输出了。

自己DIY NAS—TrueNAS Scale使用体验分享

根据提示,按Enter进入控制台。

输入以下命令,进入网络配置

vi /etc/config/network

用方向键将光标移动到lan界面下的ipaddr,按i之后就可以编辑,改成想要设置的IP地址。

编辑完之后按esc,再按冒号,输入wq后回车,修改后的配置就保存了。

然后再输入以下命令,重启网络服务

service network restart

下图中的IP地址并不在常见网段范围内,当时脑子抽风输错了,不要在意。

自己DIY NAS—TrueNAS Scale使用体验分享

等重启成功,电脑浏览器上输入设置的地址,成功进入OpenWrt的后台。

自己DIY NAS—TrueNAS Scale使用体验分享

eSir新版本的固件已经不再设置初始密码,默认用户名是root,密码为空,登陆后会提示设置密码。后续OpenWrt的设置就不用我说了,关DHCP,设置网关和DNS,把要用的插件配置好。

旁路由的IPv6设置,我查了很多网页,都没找到一个明确的答案。大部分帖子的做法是禁用Lan口的所有IPv6功能,保留IPv6分配长度。

自己DIY NAS—TrueNAS Scale使用体验分享

然后新建一个接口lan6(名称可随意)基本设置选择DHCPv6,接口填写@lan

自己DIY NAS—TrueNAS Scale使用体验分享

防火墙区域和lan口划分到一起

自己DIY NAS—TrueNAS Scale使用体验分享

我用电脑测试了一下,如此设置确实能正常获取IPv6地址,但是TrueNAS不知道怎么回事,刚开机能获取公网IPv6,运行个几天就没有了......

可能有读者会有疑问,为什么在TrueNAS的应用安装完成后,我折腾这么多步骤去装虚拟机OpenWrt。

原因是一开始我使用的P开头插件无法正常自动更新订阅,导致网络优化失效,每天一到12点TrueNAS因为网络问题无法更新应用目录,就会发报错邮件。虽然说P开头的插件功能更丰富一些,但是对这个旁路由来讲,显然我希望做到免维护,总不能每天12点登后台去手动更新订阅。

但是这个虚拟机里装旁路由的办法也并不完美,和物理机相比有一个问题:kubernetes是跟随TrueNAS系统启动的,我也不知道TrueNAS具体的启动顺序是什么,但是每次重启之后,由于虚拟机在应用之后才启动,应用会因为网络问题报错。

自己DIY NAS—TrueNAS Scale使用体验分享

此时必须手动unset pool,再choose pool,应用才能够正常启动。我在TrueNAS论坛上也看到有人发帖问这个问题,可惜没有任何回复。当然,要是NAS一直开机的话,就不必担心了,偶尔重启后手动设置一下就好。

qbittorrent

BT一直是我获取影视剧的重要来源。如果遇到冷门种子,速度特别慢,连接随缘,运气好也要挂机几天才能下完。有些国外的种子,由于时差,反而是晚上速度比较快。所以这台NAS除了文件共享之外,最重要的一个功能就是BT挂机下载。

应用我选择了qbittorrent,电脑上也用的这个软件,界面已经习惯了。qbittorrent应用既有官方版也有社区版,我先安装的是官方版。

官方版应用的安装都比较简洁。对于qbittorrent来说,主要就是路径的设置,需要设置一个路径保存配置文件,再添加一个路径用于下载。下载的文件要共享出来供其他设备读取,而qbittorrent的配置也可以直接用记事本编辑,所以这两个路径肯定是要用host path的。

自己DIY NAS—TrueNAS Scale使用体验分享

新版本的qbittorrent默认密码不再是adminadmin,需要进应用的日志自己查看生成的初始密码。很多人死活登录不进去,就是因为初始密码不对。

自己DIY NAS—TrueNAS Scale使用体验分享

登录成功后在Options——WebUI里把用户名和密码都改了。

自己DIY NAS—TrueNAS Scale使用体验分享

qbittorrent也支持邮件通知,SMTP的设置方式与TrueNAS系统大同小异,需要用到的东西之前在设置系统邮件的时候就已经都获取了,在Options——Downloads里填进去即可。

自己DIY NAS—TrueNAS Scale使用体验分享

旁路由插件里记得把端口打开,同时设置好规则,避免BT流量走到优化里去,一般来说是不会的,只是手动设置一下更放心。

自己DIY NAS—TrueNAS Scale使用体验分享

端口转发本来准备手动设置的,没想到qbittorrent自带的upnp成功了,光猫里能看到端口信息,就不用自己设置了。在有旁路由的情况下,端口转发要麻烦一些,先在旁路由里设置一次转发,IP为NAS地址。上级网关(我这里是光猫)再设置一次转发,IP为旁路由地址。

自己DIY NAS—TrueNAS Scale使用体验分享

折腾难免遇到问题。qbittorrent官方版的应用,我就遇到了2个问题。

第一个问题是限速。

关注网络的朋友,最近应该听说了,各地运营商都在收紧政策。打击PCDN这事我不反对,毕竟家用宽带不能商用,没什么好说的。但是运营商采取了一刀切的政策,一些流量较大的用户也被“PCDN”了,甚至连说理的地方都没有。

我这里运营商给的上传带宽还挺大方,有200M,全天开机如果敞开上传,碰到热门资源,搞不好我也要被“PCDN”。不想浪费时间精力为这事扯皮,我选择挑个时间段限速上传。

自己DIY NAS—TrueNAS Scale使用体验分享

按道理来说,应用没有单独设置时区的话,是跟着系统时区走的。但是qbittorrent每次都不在设置的时间开启限速,实际限速生效是在下午。我尝试了一些设置时区的命令和环境参数,全部报错。

第二个问题是IPv6。

IPv6对BT下载有非常大的加成,在TrueNAS获取到IPv6地址后,qbittorrent通过host network连上IPv6,这是用户之间流传的解决办法。

但是在实际使用中,qbittorrent并没有获取到IPv6连接,节点数量最多只有600,大部分时候只有300-400之间,tracker list里也没有IPv6的tracker。对比之下,电脑端的qbittorrent能连上1200多个节点。好在即便只有IPv4,速度并不慢,能满足下载需要。

于是我暂时停用了官方版应用,尝试安装了一下社区版的qbittorrent。

社区版qbittorrent可以手动设置时区,其他配置与官方版差不多。不过TrueCharts明确表明自己不对host network做任何支持,所以我没有勾上这个选项。

通过查看应用日志,发现社区版应用的问题跟官方版刚好相反,upnp失败,提示找不到路由,但是有IPv6连接,WebUI里也能看到连上的IPv6 tracker和peer,再次难绷。从MSDN上下载2个Windows的镜像测试一下,没有问题。

自己DIY NAS—TrueNAS Scale使用体验分享

看来只有在几个功能之间做出取舍了。最终我还是选择使用社区版,有IPv6连接,端口转发可以手动设置,目前来看没什么问题,upnp不是刚需。

Aria2

Aria2算是TrueNAS Scale所有应用里配置最让我头疼的一个。本来我是不打算真的用NAS做aria2服务器的,http下载全靠电脑上的IDM,NAS里的Aria2只是配置着玩,结果遇到一堆问题,直到现在我都没搞明白到底发生了什么,折腾了好久,然后莫名其妙地能正常用了......

前面的配置没什么好说的,基本不需要修改。

自己DIY NAS—TrueNAS Scale使用体验分享

端口也保持默认。

自己DIY NAS—TrueNAS Scale使用体验分享

设置RPC token

自己DIY NAS—TrueNAS Scale使用体验分享

配置文件与下载目录都使用host path

自己DIY NAS—TrueNAS Scale使用体验分享

然后就卡deploying了。

自己DIY NAS—TrueNAS Scale使用体验分享

查看事件,发现镜像已经成功拉取,之前已经优化过网络,连接不应该有问题。实际原因是probe failed,也就是没有通过健康度检查,所以系统无法启动此应用,就卡在deploying。

进入应用日志,发现大量报错都是Operation not permitted,也就是权限错误,导致init-stage 2 failed。

自己DIY NAS—TrueNAS Scale使用体验分享

我忽然想起来,在安装Aria2的时候,我把用户和用户组都设置成了自己,也就是图中UID 3000对应的用户。

自己DIY NAS—TrueNAS Scale使用体验分享

而Aria2默认的用户UID是0,也就是root。

自己DIY NAS—TrueNAS Scale使用体验分享

按默认设置以root用户安装,终于成功运行。

自己DIY NAS—TrueNAS Scale使用体验分享

这是我遇到的第一个大坑,差点没把我坑死,折腾了半天才找到原因。安装其他应用时我都是以自己新建的账户安装的,比如qbittorrent,并没有遇到这方面的问题,原作者在博客里也没有提到他制作的Aria2需要root权限。所以如果应用默认的安装用户是root,就不要手动去改了,否则很可能无法正常启动。

Aria2NG我安装的是TrueCharts提供的版本,没有选择Aria2 Pro作者P3TERX自己的Aria2NG。如果想安装他的Aria2NG的话,需要以自定义应用安装,填上对应的镜像地址。我比较懒,不想配置自定义应用,选择了社区打包好的NG。

Aria2NG的安装非常简单,没什么要配置的,安装完直接打开Web界面,先填好之前设置的RPC token,与Aria2本体连接上。

自己DIY NAS—TrueNAS Scale使用体验分享

用英伟达显卡驱动测试一下功能,结果遇到第二个坑——路径错误

自己DIY NAS—TrueNAS Scale使用体验分享

原因是在安装应用时,我将Aria2的挂载路径设置为/Aria2,而Aria2NG里默认的挂载路径是/downloads,找不到路径自然就无法创建文件。这也是很多教程没有提及的地方,我终于明白,为什么教程里配置的挂载路径大多都是/downloads。

在左侧Aria2 Settings——Basic Settings里将下载路径更改为我设置的/Aria2,即可解决问题。

自己DIY NAS—TrueNAS Scale使用体验分享

从第二个坑爬出来,马上又掉入第三个坑——DNS错误。这一步的报错我没有截图,具体表现就是能识别链接里文件的名称,但是没有下载进度,或者直接报DNS错误。这个问题我也折腾了好久,包括但不限于手动指定Aria2的DNS,勾选host network,都无济于事。

查阅资料发现,有些人提到关闭Async DNS,也就是Aria2的异步DNS功能,可以解决DNS报错的问题。在Advanced Settings里把Async DNS改为False之后,没有任何变化,还是无法下载。

自己DIY NAS—TrueNAS Scale使用体验分享

此时我已经要崩溃了,开始摆弄各种设置,看得懂的看不懂的都调整一下试试看,结果在将Aria2的网络界面手动指定为br0桥接网卡,IP地址通过DHCP获取之后,突然就能下载了。

自己DIY NAS—TrueNAS Scale使用体验分享

测试一下Ubuntu镜像

自己DIY NAS—TrueNAS Scale使用体验分享

再测试一下微信安装包

自己DIY NAS—TrueNAS Scale使用体验分享

上述文件都能正常下载,速度将近700M,还是非常快的。

自己DIY NAS—TrueNAS Scale使用体验分享

AMD的显卡驱动无法正常下载,刚开始有速度,过一会儿又没速度了。Nvidia的驱动干脆一开始就没有速度。

自己DIY NAS—TrueNAS Scale使用体验分享

不知道这两家在服务器上设置了什么,不过我本来也不会用NAS上的Aria2下载显卡驱动,所以这个问题就直接忽略了。

BT下载并没有测试,因为我不认为Aria2是一个适合用作BT用途的软件,至少没有qbittorrent这种专门的BT下载软件好用。如果有这方面的需求,在安装Aria2的时候,在RPC token下面几行,可以直接添加tracker list,有助于获取更多的连接,解决Aria2刚装完没速度的问题。

自己DIY NAS—TrueNAS Scale使用体验分享

总之这次Aria2安装实在是太折腾,主要是其他应用都装好了,就这个应用没配置成功,非常不甘心。花这么长时间配置一个不怎么用的应用,似乎也有点冤大头。好在折腾没有白费,成功找到了问题所在,避免了后续其他应用安装时出现同样的配置问题。

HomeBridge

在搬家之前我就考虑过智能家居的布局,但是由于新家是开发商精装修,不打算全部砸掉自己装,所以智能家居的选择非常有限,而且家人也没有这方面的需求。实际上现在家里能谈得上智能家居的东西,大概只有我自己的所有灯具,不存在什么智能化场景。

那么为什么灯具有智能家居的需求,主要是因为我对灯光比较敏感,以前用的那种色温不可调、亮度暗范围小的灯是一点也受不了了。而且卧室顶灯的开关在门口,有时候在床上坐一会,再下床开灯就比较麻,能手机遥控是最好的。

由于我是iPhone用户,所以智能家居的平台肯定是首选Homekit。然而真正获得Homekit支持的设备并不多,要么就是卖得特别贵,国内做得最大的恐怕还是米家。我在购买灯具的时候已经尽量选择了原生Homekit的型号,但是仍有一些设备,比如米家屏幕挂灯,没有接入Homekit,于是就只能借助HomeBridge这样的软件进行桥接,使得米家设备也能在Home里直接控制。

HomeBridge的安装配置,网上仍然有一些教程,只是不同平台的步骤并不一样。经过了这些年的发展,HomeBridge的功能也比以前更加强大,有些教程里的部分步骤不再有必要。

在安装HomeBridge时,要配置的地方并不多,端口我保持了默认。由于TrueNAS系统里使用了桥接网卡,所以HomeBridge的网络也要手动设置,将网络界面指定为br0,手动设置一个固定IP,与家里的局域网处在同网段。这一步非常重要,我尝试过保持默认,或者使用DHCP,都会无法连接,HomeBridge需要一个单独的地址用于广播。

自己DIY NAS—TrueNAS Scale使用体验分享

应用的配置文件我习惯使用host path,将数据集共享出来,防止以后要备份或者手动修改。不过不是所有应用的配置都有权限手动修改,所以这一步不是必要的。

自己DIY NAS—TrueNAS Scale使用体验分享

设置完成之后等应用成功部署,即可进入HomeBridge后台。HomeBridge并没有默认用户名和密码,需要创建一个账户。

自己DIY NAS—TrueNAS Scale使用体验分享

检查一下网络设置。如果之前安装的时候没有手动指定网络界面和IP,这一步就只会有上面那个172开头的IP。这是kubernetes内部的IP地址,是无法被手机系统的Home应用添加的。

自己DIY NAS—TrueNAS Scale使用体验分享

然后安装插件。插件的选择有很多,一些老的教程里甚至会自己编写插件,现在已经没有必要,直接选择名称为HomeBridge Miot并且经过HomeBridge团队验证的插件即可,能够支持大部分的米家设备。

再进入插件设置。HomeBridge需要获取米家设备的token才能连接,现在获取token并没有一些教程里写的那么麻烦,只需要在插件里登录小米账号就可以直接识别账户下已连接的米家设备,自动获取token。

自己DIY NAS—TrueNAS Scale使用体验分享

每一个设备都可以单独设置,上图中的多出来的一个Desk lamp不知道是什么,可能是某个同时兼容米家和Homekit的灯具被重复识别了,IP地址也不在局域网网段内,甚至地区还是美国,手动删掉即可。

配置完成后重启HomeBridge服务。HomeBridge这一点做得比较好,重启服务时UI不会掉线,只要等服务重启好,页面就会自动刷新。

自己DIY NAS—TrueNAS Scale使用体验分享

手机扫描HomeBridge主页的二维码,即可将HomeBridge添加到Home App中。添加的过程非常快,秒识别,如果在这一步卡住很久,就应该考虑是不是网络配置有问题了。

自己DIY NAS—TrueNAS Scale使用体验分享

Home App会提示这是未经认证的设备,不用管它,HomeBridge当然没有经过Homekit认证。

选择HomeBridge的位置。这一步选哪个房间都可以,HomeBridge本体不会显示在Home Apps里面,桥接到HomeBridge的设备也可以单独更改其位置。

自己DIY NAS—TrueNAS Scale使用体验分享

有一些设备需要再次手动确认配置,比如米家屏幕挂灯1S。

自己DIY NAS—TrueNAS Scale使用体验分享

很多米家设备的功能在Homekit里是实现不了的,我也没有抱太大希望,只要能手机遥控开关就满足了。没想到插件作者把屏幕挂灯的不同模式做成了开关,有需要的用户在Home App里也可以直接切换模式。我自己是习惯固定色温使用,所以用不到这个功能。

自己DIY NAS—TrueNAS Scale使用体验分享

一个屏幕挂灯有6个开关......

自己DIY NAS—TrueNAS Scale使用体验分享

色温也可以正常调节,比较意外。有些同时支持米家和Homekit的设备,厂家明确说明无法在Home App里调节色温。搞笑的是第三方插件反而支持这个功能,看来是厂家偷懒了。

自己DIY NAS—TrueNAS Scale使用体验分享

米家智能插座3也被正确识别。

1个智能插座上识别出2个开关,多出来一个LED控制。根据个人实测,关闭LED也会把插座直接关掉,所以这2个开关的功能是重复的。

自己DIY NAS—TrueNAS Scale使用体验分享

登录HomeBridge后台,进入插件设置,找到米家智能插座的标签,进入General Device Settings,往下翻找到这个LED control device,取消勾选。

自己DIY NAS—TrueNAS Scale使用体验分享

此时Home App里的智能插座就只剩下1个开关了。

自己DIY NAS—TrueNAS Scale使用体验分享

HomeBridge后台可能会提示UI组件和node.js需要更新,这个更不更无所谓,不影响正常使用,我自己是习惯更新到最新版本。需要注意,只要在kubernetes里重启了应用,这些组件就会被恢复到安装时的版本,需要再次更新。

更新UI比较简单,点一下就能自动更新了,更新完重启服务。

自己DIY NAS—TrueNAS Scale使用体验分享

node.js的更新麻烦一点,要点右上角进终端,输入以下命令

hb-service update-node自己DIY NAS—TrueNAS Scale使用体验分享

node.js的下载要慢很多,下载完会自动更新,更新完同样需要重启服务。

HomeBridge UI里显示的硬件占用和运行时间是跟随系统的,不是HomeBridge自己使用的资源。

自己DIY NAS—TrueNAS Scale使用体验分享

至此HomeBridge整体配置完毕,可以愉快使用了。实际反应速度还是挺快的,我是感觉不出和原生Homekit有什么区别。

自己DIY NAS—TrueNAS Scale使用体验分享

Adguard Home

Adguard Home的功能是在本地建立一个DNS服务器,用于屏蔽广告和反跟踪。

DNS算是我的一个执念吧,安装Adguard Home,是想试一试使用Adguard Home配置DoH的效果。当初在Windows里直接设置DoH,实际使用体验并不好,即便是国内的服务器,打开各种网站也要等半天。国外的DNS服务更是如此,就算没有干扰,也有不少网站和程序无法正常连接,无奈选择默认DNS用到现在。

以现在的网络环境,想靠这个东西来去广告和避免DNS劫持,已经不太现实。去广告效果最好的还是浏览器插件,比如adblock。很多年前还有一个去广告神器ADSafe,是我见过去广告效果最好的软件,可惜没搞多久就被起诉,团队解散之后冒出一堆拟态,效果不行还存在安全风险,我就再也没用过了。

安装非常简单,存储其实用PVC就行了,只是个人习惯用host path共享出来,方便看里面的配置文件,网页端口保持默认。

自己DIY NAS—TrueNAS Scale使用体验分享

安装完成后顺利启动,进入配置页面。Adguard Home的中文翻译做得不错,就不调成英文了。

自己DIY NAS—TrueNAS Scale使用体验分享

DNS默认使用53端口,这个不需要调整。虽然识别出了IPv6,但是Adguard Home只在局域网内使用,这么多地址都用不上。

自己DIY NAS—TrueNAS Scale使用体验分享

Adguard Home一直宣称多平台兼容,无需在设备上单独设置,实际上就是把路由器的DNS指向Adguard Home。

自己DIY NAS—TrueNAS Scale使用体验分享

首先添加上游DNS服务器,我这里设置了腾讯和阿里的DoH和DoT,选择并行请求。关于这几个请求方式哪个速度最快一直有争议,以我的使用环境,我觉得并行请求就可以了。

自己DIY NAS—TrueNAS Scale使用体验分享

上游服务器支持注释,可以手动指定网站走特定的DNS服务器解析。但是个人觉得没有必要,手动一个个指定太麻烦了,日常访问的网页那么多,根本指定不过来。如果是在路由器上安装的Adguard Home,需要以此分流的,要借助配置文件实现。

注意,上游DNS服务器不是越多越好,填太多了反而影响请求速度。国内环境不需要填写国外DNS,比如谷歌和cloud flare,没有必要,也没有用。

对于有出国留学需求的用户,为了避免DNS泄露,最好客户端打开嗅探,同时使用白名单模式。此时访问国外的DNS是交给节点处理的,客户端仅发送域名等信息,由节点去连接网站服务器获取数据,然后再将数据发送回客户端。所以不论如何,Adguard Home不需要处理这些DNS请求。填了国外DNS服务器,要么连不上,要么多转一圈影响速度。

由于DoH和DoT不是传统DNS的IP地址,所以还需要bootstrap服务器去解析DoH和DoT服务器的地址。我这里同样填写了腾讯和阿里的DNS。bootstrap服务器不支持注释。

自己DIY NAS—TrueNAS Scale使用体验分享

缓存大小保持默认,开启乐观缓存。

自己DIY NAS—TrueNAS Scale使用体验分享

然后在DNS黑名单里添加一些规则。规则同样不是越多越好,加几个常用的就可以了。Adguard自己的规则普遍反映没什么用,所以我没有打开。

自己DIY NAS—TrueNAS Scale使用体验分享

之前提到DoH和DoT服务器需要先经过bootstrap服务器解析,如果你不想多一次解析,可以通过DNS重定向手动指定DoH和DoT服务器的IP地址。

自己DIY NAS—TrueNAS Scale使用体验分享

我在查阅资料时看到,有些网友反映使用Adguard Home之后短视频评论区打不开。为了不影响家人使用,我先在自己的设备上测试一段时间,所以暂时不更改路由器的DNS设置,仅仅手动修改自己设备上的DNS。

以我的iPhone为例,打开设置——WLAN,点网络名称右侧的图标进入详细设置,往下翻找到DNS,手动设置DNS,地址填NAS IP即可,Adguard Home会自动监听DNS请求。

自己DIY NAS—TrueNAS Scale使用体验分享

这个设置只对配置过的网络生效,不影响切换其他网络之后的使用。比如,手机在家里连WiFi,设置了DNS走Adguard Home。出门切换流量,就走运营商的DNS,互不影响。有些人认为设置了Adguard Home,换网络之后需要手动切换DNS,这种说法是不对的。

旁路由的插件如果也想DNS走Adguard Home,填上NAS的IP和默认的53端口。这个不同插件的要求不一样,有的必须手动指定端口,有的不需要,比如某蓝色V开头软件的DNS规则里就只需要填IP。

自己DIY NAS—TrueNAS Scale使用体验分享

刚开始我在想,NAS的DNS指向旁路由,而旁路由的DNS反过来又指向NAS上的Adguard Home,会不会出问题。实际测试是不会的,后来想了想,DNS经过Adguard Home解析,域名已经转换成IP,发往上级网关处理,所以也不存在一开始担心的转圈问题。

到这一步,DNS设置基本完成。设备上手动指定DNS之后,再打开Adguard Home仪表盘,能看到记录就说明配置成功了。

DoH和DoT由于加密,直连速度并不快,毕竟再快也快不过裸奔。安装完的一段时间内DNS查询可能比较慢,随着缓存的建立,使用一段时间后速度就会变快,刚开始平均处理时间在15-17ms左右,现在已经提升到1ms,日常使用基本无感知。

自己DIY NAS—TrueNAS Scale使用体验分享

广告本来也没指望能屏蔽多少,实测下来只有百度贴吧的广告能被屏蔽。Adguard Home能发挥的作用主要还是反追踪,各种网站的tracker倒是屏蔽掉不少。

自己DIY NAS—TrueNAS Scale使用体验分享

Zerotier

内网穿透并不是我真正需要的功能。我自己远程访问NAS的情况几乎没有,以前也从未在外出时因为没有NAS而感到不方便。Zerotier只是一个备用手段,防止自己不在家的时候需要对NAS进行某些操作。

Zerotier同样是既有官方版又有社区版,官方版的配置非常简陋,我更建议安装社区版。

安装之前先去Zerotier官网注册账号

自己DIY NAS—TrueNAS Scale使用体验分享

然后创建网络

自己DIY NAS—TrueNAS Scale使用体验分享

NAS里安装Zerotier App,必须要填写Network ID,应用启动时会自动加入对应的Zerotier网络。

自己DIY NAS—TrueNAS Scale使用体验分享

在Zerotier Central把设备前面的Auth?勾上,允许加入网络,就配置好了。

如果想用Zerotier通过NAS访问局域网其他设备,需要在TrueNAS的System Settings——Advanced——Sysctl里加上这两行,启用转发

net.ipv4.ip_forward=1 net.ipv4.conf.all.src_valid_mark=1自己DIY NAS—TrueNAS Scale使用体验分享

在Zerotier Central里add routes,destination填家里的局域网网段,via后面填NAS的Zerotier IP。

社区版Zerotier安装时不强制填写Network ID,需要自动连接就在Extra Args里添加Arg,填写Network ID,也可以等应用启动好后在命令行里手动连接指定的网络

zerotier-cli join 自己DIY NAS—TrueNAS Scale使用体验分享

显示200 join OK就是连接成功了。

然而实际穿透效果非常不理想,刚连上的时候是能显示physical IP的,但是只要对设备的Name/Description作任何更改,physical IP立刻变为unknown。使用手机流量,打开Zerotier,输入NAS的Zerotier IP,打不开管理页面。

回到Zerotier Central,发现设备的last seen是less than 1 minute,但是看不到physical IP。手机在断开Zerotier的一瞬间,能刷新出一个IPv6地址。

自己DIY NAS—TrueNAS Scale使用体验分享

官方人员的解释是看不到physical IP不代表连接失败,只是无法识别IP,但是个人实测看不到physical IP基本就是连不上。

自己DIY NAS—TrueNAS Scale使用体验分享

在应用shell里输入如下命令,可以查看与planet服务器的连接情况。

zerotier-cli peers|grep -iG "planet|ztaddr"自己DIY NAS—TrueNAS Scale使用体验分享

4个planet服务器能连接上3个,而且使用的是IPv6,只是延迟非常高,不知道为何穿透失败。

Zerotier的穿透并不保证成功,某些过于封闭的网络是会穿透失败的。在半年前就有大量传言,各地运营商都在封锁Zerotier,导致很多人连不上,以前能用的突然就用不了了。网络问题显然不是我能解决的,除非给Zerotier也优化一下,但是Zerotier的流量在外面走一圈,延迟会特别高,也很不方便。有些网友采用了自建planet服务器的办法,听上去有点心动,但是估算了一下开销,我觉得没什么必要。

TailScale

TailScale是基于WireGuard的方案。一开始不使用TailScale是因为WireGuard需要公网IP,所以我以为TailScale也需要公网IP,后来发现并不是这样,所以接下来尝试一下TailScale。

同样是先注册账号。注意TailScale免费版无法用邮箱直接注册,只能通过微软账户等其他方式登录。

登录之后有个欢迎页面,直接跳过,不需要在这里添加设备。

自己DIY NAS—TrueNAS Scale使用体验分享

进入Settings——Personal Settings——Keys,生成一个auth key。Reusable默认打开,不同的设备都可以使用这个auth key,有效期最长90天。

自己DIY NAS—TrueNAS Scale使用体验分享

然后NAS安装TailScale App,填入auth key。如果有通过NAS连接局域网其他设备的需求,需要勾上Advertise Exit Node,其他设置不需要更改。

自己DIY NAS—TrueNAS Scale使用体验分享

手机上也装好TailScale,等会儿测试连接用。

自己DIY NAS—TrueNAS Scale使用体验分享

回到TailScale页面,找到连接上的设备,可以看到手机和NAS都连上了。

自己DIY NAS—TrueNAS Scale使用体验分享

打开NAS机器的Exit Node

自己DIY NAS—TrueNAS Scale使用体验分享

将Subnet Routes设置为家庭网络的局域网网段

自己DIY NAS—TrueNAS Scale使用体验分享

同时禁用证书期限,对于长期在线的设备,显然我们不希望隔几个月就要重新配置证书。

此时基本配置已经完成,手机打开流量,连接TailScale,输入NAS的TailScale IP,测试一下连接。

自己DIY NAS—TrueNAS Scale使用体验分享

通过TailScale分配的IP能正常打开TrueNAS管理页面,至此就算是穿透成功了,不过速度挺慢的,估计只能用来调整系统设置,访问文件不太现实。当然,我本身也没有访问文件的需求,不喜欢外出的时候在路上看剧,就算看也是拷贝到设备里直接看,不会远程连回NAS。常用的小文件放在OneDrive,大文件拷贝到移动硬盘里。

为什么不用IPv6+DDNS方案,主要是觉得域名的价格比较贵,第一年可能没多少钱,后面再续费就要翻倍了。而且TrueNAS的IPv6我还没弄明白,不是很清楚怎么配置。我对内网穿透的需求很少,所以暂时不去折腾这个东西。

自定义应用安装

如果TrueNAS和TrueCharts的2个Catalog都不能满足你的需求,就只能手动拉取docker镜像自己配置了。在针对市面上常见成品NAS系统的教程里,普遍采用了docker run命令进行部署,确实比较方便,不少开发者都提供了样本,直接复制运行就能部署。而面向TrueNAS的部分教程里使用了Portainer。个人认为TrueNAS已经有了Kubernetes,如果不是有特殊需求,没必要再装一个容器平台。

TrueNAS当然也支持启动docker镜像,只是在新版本的TrueNAS Scale里,这个功能的名字从“启动docker镜像”改为了“自定义App”。在Apps——Discover右上角,点击Custom App,即可安装自定义应用。

自己DIY NAS—TrueNAS Scale使用体验分享

这里以一款非常受欢迎的导航面板Sun Panel为例。

部署之前先去查看一下应用主页的docker run命令,搞清楚需要哪些端口和存储路径。

docker run -d --restart=always -p 3002:3002 -v ~/docker_data/sun-panel/conf:/app/conf -v ~/docker_data/sun-panel/uploads:/app/uploads -v ~/docker_data/sun-panel/database:/app/database --name sun-panel hslr/sun-panel

大妈的编辑器可能会吞掉每一行末尾的反斜杠,复制的话注意一下符号,或者去原网站查看代码。

手动填写应用名称和镜像地址。如果不填写完整地址的话,默认从DockerHub拉取。注意,开头的Version指的是custom app的版本,而不是Sun Panel的版本。

自己DIY NAS—TrueNAS Scale使用体验分享

由于Sun Panel只是一个导航面板,所以只需要一个端口,用于WebUI界面。Sun Panel作者给其指定了3002端口,但是TrueNAS自定义应用的端口号必须大于9000,所以需要手动给其指定一个符合TrueNAS系统要求的端口,然后将3002端口映射到手动指定的端口。我这里选择了9002端口。

自己DIY NAS—TrueNAS Scale使用体验分享

注意,Port forwarding上方的Networking设置全部保持默认,不要手动指定网络界面和IPAM,否则无法设置端口映射。

从作者给出的直接部署命令中可以看到,Sun Panel一共需要3个路径,分别是/app/conf(配置文件)、/app/uploads(上传文件)和/app/database。如何设置路径映射,其实也很简单。在TrueNAS的存储池里面建立3个数据集,然后在自定义应用里将这3个数据集的挂载点设置为应用需要的路径即可。

自己DIY NAS—TrueNAS Scale使用体验分享

最后设置应用的WebUI端口。作为一个导航面板,显然我们是要用到WebUI的。勾选Enable WebUI Portal,不要勾选Use Node IP for Portal IP/Domain,否则将使用Kubernetes内部的Cluster IP,局域网无法正常访问。Portal IP/Domain填写TrueNAS局域网地址,端口填写之前映射好的9002。

不要更改Sun Panel所属的用户和用户组,会无法启动,别问我怎么知道的。

自己DIY NAS—TrueNAS Scale使用体验分享

默认用户名admin@sun.cc,密码12345678。

登录之后第一件事,先把管理员的账户和密码改了。记得先新建账户,再删除默认账户。

自己DIY NAS—TrueNAS Scale使用体验分享

Sun Panel的界面确实漂亮,不过添加网站的时候发现了一个问题,不是所有网站默认获取到的图标都是清楚的,可能是没有使用矢量图。

比如,嗯

自己DIY NAS—TrueNAS Scale使用体验分享

如果作为导航主页的话,个人感觉还是挺影响观感的。而Youtube这种不存在的网站,图标无法正常获取,只能手动上传。手动上传又涉及到比例问题,始终调不到理想状态,尝试Topaz Photo AI进行超分,效果也并不理想。所以最终我还是没有使用这个面板作为导航主页,等哪天把图标问题解决了,或许可以考虑。

其实Edge浏览器也支持把网页固定到任务栏,用起来还是挺方便的,就是对小屏用户不太友好,任务栏会比较挤。

自己DIY NAS—TrueNAS Scale使用体验分享

总结

这次TrueNAS Scale的DIY总体上是实现了预期的目标,文件共享、BT下载、智能家居的功能都配置好并且正常使用了。只是折腾的时间比我预想的要长,本来觉得一周内就能全部配置好,实际上配置了大半个月。这也是DIY的一把双刃剑,能高度贴合自己的需求,玩出独特的花样,但是需要投入大量的时间和精力。对于能接受折腾的人,这是DIY的魅力所在。当然,功能配置好之后就不需要再折腾了,如果一个系统日常使用都需要不停地折腾,我会在一开始就放弃这个方案。

不过目前这台NAS也并非完美,还有一些小毛病没有解决。

第一个毛病就是IPv6。

在旁路由已经配置好接口的情况下,TrueNAS刚开机能获取公网IPv6地址,运行一段时间后再进Network看,公网IPv6就消失了,只剩下fe80开头的链路本地地址,不知道是不是因为获取公网IP且开启了80和53端口被运营商封了。为什么我说这是小毛病呢,因为最需要IPv6的qbittorrent是能正常使用IPv6的,其他服务都是针对本地的使用场景,也用不到IPv6,所以问题不大。

第二个毛病就是TrueNAS系统里看不到硬盘温度。

对于NAS来讲,这个其实不算是小毛病了。Windows下扫盘是能正常看到温度和所有S.M.A.R.T.信息的,我也不知道TrueNAS系统到底出了什么问题,所有SATA设备都看不到温度,包括4块希捷银河8T和2块西数蓝盘固态,只有nvme固态能显示温度。

自己DIY NAS—TrueNAS Scale使用体验分享

运行手动S.M.A.R.T.检测会卡在10%,就像这样,但是每天计划执行的S.M.A.R.T.测试并不会报错,也很奇怪。

自己DIY NAS—TrueNAS Scale使用体验分享

而手动执行Long Test,又能收到系统邮件,提醒硬盘温度超过我设置的阈值50℃。

自己DIY NAS—TrueNAS Scale使用体验分享

感觉像是系统能识别到硬盘温度,但是由于某种原因系统界面无法正常显示,这个问题论坛上也有用户遇到,但是官方并没有给出解决办法。

除此之外整个系统的使用还是非常满意的,算上折腾的时间,到现在稳定运行快一个月了,文件共享、BT下载、HomeBridge等服务很好地解决了以前的问题。当然,现在的部署还远没有发挥出整个系统的全部潜力,后续可以根据需求再进行调整。

自己DIY NAS—TrueNAS Scale使用体验分享

最后奉上目前家里网络的拓扑图

自己DIY NAS—TrueNAS Scale使用体验分享

希望以上过程对各位的NAS DIY能有所帮助,感谢阅读。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1749元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3479.01元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1299元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1290.51元起

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

1699元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起
17评论

  • 精彩
  • 最新
  • 这是写了多久呀,太强了

    校验提示文案

    提交
    一周多一点,正好过年的时候写的,现在才整理好发出来

    校验提示文案

    提交
    收起所有回复
  • 大佬,请教下,只想弄个手机图片上传备份功能是不是上黑群就好了?

    校验提示文案

    提交
    只是备份的话确实成品系统更方便

    校验提示文案

    提交
    收起所有回复
  • 看到旁路由的时候扫了下进度条,发现大约在一半的位置……我一个没有nas的人…直接评论码住,走人,等我准备装nas的时候再学习吧 [高兴]

    校验提示文案

    提交
  • 写的很细了,支持下。说句机箱,拓扑龙这机箱用料是真垃圾,相同价位樊隆老款8盘位比他强很多,新款没买过不清楚。

    校验提示文案

    提交
  • 写得真详细,之前也安装过truenas,折腾起来确实很复杂,比成品nas比起来要花费更多时间,不过性价比会更高一些,再次感谢楼主分享

    校验提示文案

    提交
  • 写的很细。我也是用的truenas scale系统,21年开始的。网络那块的确很重要,不然应用基本上没法用,之前用的旁路由,有时间会不稳定,后来换成红米ax6000刷的shellclash,一直稳定运行好久了

    校验提示文案

    提交
  • 厉害,还真没看到写的那么详细的,我本来也用truenas,发现需要飞机场,太麻烦,改成了PVE底层

    校验提示文案

    提交
  • 值得大大的一个赞,很详细

    校验提示文案

    提交
  • 我怎感觉你这比我ubuntu server还复杂....监控还是推荐monit,完美,不放连接了,zdm老说我连接有问题

    校验提示文案

    提交
  • 用过truenas,局域网内传输快且稳定,只是莫名碰到两次硬盘报错,不能修复,害的我以为硬盘坏了。最后换回黑群,一切正常 [doge]

    校验提示文案

    提交
  • 用矿盘组R6性价比高点,不会运气这么差同时坏2块。PVE+TRUENAS,挺好的

    校验提示文案

    提交
  • 真的是大佬 [高兴] [高兴] 。折腾不动了 威联通用着吧

    校验提示文案

    提交
  • 厉害啊,写那么多,收藏慢慢看

    校验提示文案

    提交
  • 👍赞。我折腾许久,发现1tb 的truenas core加上4tb ssd的opensuse对我足以,1tb上面重要资料,4tb的opensuse挂bt

    校验提示文案

    提交
  • 写的真详细,但是这么麻烦有点劝退准备入坑truenas的人

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
157
扫一下,分享更方便,购买更轻松