[电脑] 全闪NAS进阶记
CHH ID:LightFocus
去年装了一台Synology DS1821+,成为NAS小白。最近看到U.2固态不断降价,打算进阶装一台全闪NAS。现在主力电脑是MacBook Pro 14’,游戏玩的也少了,打算直接在NAS里搞个Windows VM把GPU直通过去解决一下为数不多的游戏需求。
逛CHH偶然看见Intel那个8盘位的U.2硬盘笼,打算找个带光驱位的机箱塞进去。既然要上U.2,又要GPU直通,还是考虑PCIe通道比较多的平台。虽然对打游戏来说Threadripper的高频更合适,砍半的内存通道和PCIe通道也够用,但是价格不太理想,所以最后还是选择了EPYC平台捡垃圾。
先看了一下CPU,NAS和游戏都不需要太多的核心数,所以选了主频高一点的7302。
选主板前先看了下机箱,最近上了机柜,强迫症还是想选择一个rackmount的机箱。但是我的机柜深度又只有600mm,服务器那些机箱肯定是不行的了,看了一圈最后选了银欣的RM42-502,两个光驱位刚好可以装硬盘笼,而且支持SSI-EEB主板,选择也多了一些。
当然硬盘笼和光驱位不是完全兼容的,所以直接暴力夹个笔记本让两者卡紧。
给EPYC二代的主板选择不算太多,考虑到硬盘笼是拿OCuLink口连接的,为了方便选了自带6个OCuLink口的ASUS KRPA-U16。这个主板也支持OCP 2.0 Mezzanine卡,可以上万兆卡也不占用常规PCIe口。
当然这个主板也有缺点,因为和内存冲突,显卡只能装在PCIE3那个PCIe 3.0 x16上,而且PCIE4的x8和PCIE3分带宽,所以如果要上高端显卡的话可能直接导致PCIE1、3、4都用不了。另外下面那四个OCuLink口在显卡正下方,买线的时候一定要记得买弯头的。
剩下的两个OCuLink口买了张Supermicro AOC-SLG3-2E4T解决。
为了不出兼容性问题,内存直接选了在AVL上的三星64G 2933 REG ECC。8通道刚好512G,方便后面折腾虚拟机、docker和ZFS。
显卡和电源是原来的台式机上拆过去的RX 6800和SF 750。
EPYC本身功耗不低,再加上其他这一堆东西,即使不装U.2硬盘,空闲时整机也有140W的功耗。
固态硬盘这边自然就是SN640了,考虑了一下先买了4块组个RAIDZ1。
OS的选择就有点说来话长了。我一开始把目光锁定在Unraid和TrueNAS Scale上,在老台式机上都短暂体验了一下,感觉TrueNAS更复杂一些,所以选择了Unraid。
Unraid最近刚刚更新支持了ZFS,可以对单盘创建ZFS也可以创建ZPool。因为我想搭全闪的NAS,一番Google后就发现了Unraid的第一个问题。
Unraid的设计理念是可以让你混搭各种大小、类型的硬盘,但是其对全闪的支持有点问题。Unraid在Array中加入固态硬盘的话是没有TRIM功能的,因为会和Parity冲突,但是Unraid又强制Array中至少有一个设备,所以你必须找一个设备扔到Array里面。Cache里面可以创建ZPool,这部分可以全闪,只需要把share全部存在cache里面就行。另外我不喜欢Unraid把序列号和U盘GUID绑定的做法,我有个金士顿U盘的GUID就会变(虽然理论上可以无限白嫖)。当然Unraid的社区APP以及对虚拟机的支持做的还是不错的,这点我比较喜欢。
最后没有用Unraid的原因是我在macOS上尝试打开有几千个文件的文件夹时,Finder直接崩了。看了下论坛,好像Unraid的smb和macOS兼容性有点问题。论坛有人给了解决方案在smb设置里面加一堆参数,我试了下可以用,但是速度还是很慢。想想Unraid毕竟还是个付费系统,麻了,转战TrueNAS Scale吧。
先拿个2T的SN550闪迪版创建个1 vdev的ZPool来装虚拟机。ZPool超过80%的占用后写入算法改变可能导致速度会下降,这里只分了1.4T给虚拟机。
另外因为内存比较大,也把默认50%的ARC占用改成了400G,后续存储池也可以开dedup功能。
这个机器姑且是要塞机柜的,所以headless就显得很重要了。先从基本的开关机和进OS前的设置说起,熟悉服务器主板的肯定知道IPMI,华硕这块主板也支持。但是手册很坑,图例写的是http,实际上用https才能访问,一度让我以为IPMI有问题。
在IPMI里面可以控制开关机风扇什么的,以及因为板载集显和BCM,可以直接键鼠进行操作。
TrueNAS Scale本身可以用Web端进行管理,有需要也可以SSH,这块没什么问题。
最后就是Windows VM了。前期安装虚拟机的时候可以直接用QEMU模拟出来的显卡,当然后续安装完驱动肯定是用直通的GPU了。我买了个HDMI的显示器欺骗器,可以输出4K 60。
Windows VM和bare-metal比起来性能损失不大,反而是硬盘跑分高了不少,不知道是因为virtio还是ZFS。
串流我用的是Parsec这个软件,开启Windows自动登录和开机自启后就可以正常使用。我自己实测下来,在TrueNAS万兆有线连接,MacBook Pro通过Wi-Fi连接的情况下,4K 60的画质,编码约10ms,网络3ms,解码3ms左右。和VM直连显示器比较,延迟几乎不可感知,只要不是电竞问题不大。
当然Parsec这个软件带宽限制在50Mbps,虽然可以远程访问,画质肯定是压缩得很明显的。所以在家一个更好的方案可能是买一根长一点的HDMI/DP线连接显示器,然后用Parsec远程控制。
有线连接的话,MacBook Pro这边用的是QNAP的雷电三SFP+转换器,实测跑满万兆没问题,发热量还行。
TrueNAS和MacBook Pro实际对拷文件看看速度。
顺便把SN640丢进去单盘测一下速。
组RAIDZ1可用容量21T不到。
至于数据从DS1821+拷到TrueNAS的话,直接通过rsync就行,还可以定时备份。
实际使用下来和DS1821+的机械硬盘最大的感知区别还是在大量小文件的读取上,例如翻文件夹里照片的预览图。然而Lightroom Classic不支持网络驱动器上的Catalog(泪)。
最后测了下温度,这个机箱和服务器机箱比起来短的部分主要就是硬盘笼后面的一排暴力扇,所以硬盘散热就是个大问题。我一开始在硬盘笼屁股那里拿一把12cm的风扇吸风,但是没有导流后面又是电源,前面还有机箱防盗面板和机柜玻璃门,基本进不了什么风,要把风扇拉满才有比较可用的温度。为了解决这个问题,我在机箱前面防盗面板上再用绝缘胶带固定了一个风扇上去,这样的话进风会好不少,长时间拷贝也就在65°C左右。
塞进机柜的全家福,获得国家电网合作伙伴认证。
P.S.
经过好几年,RAIDZ expansion终于进入Code Review阶段了:
https://github.com/openzfs/zfs/pull/15022
另外TrueNAS Scale的下一版本Cobia也将支持该功能,以后可以慢慢买盘扩阵列了。
微信扫码关注该文公众号作者