从 DSM 到 Truenas,高硬件低软件的 Nas 手记

2021-04-27 23:59:04 +08:00
 Morxi

需求分析与我的使用场景

早期使用习惯:

大概从高中开始我就用群晖的东西来管理我的个人文件,设备先后从 Gen8 黑群晖 —— DS 216j —— 之前的 Gen10 Plus 黑群晖
在这个时间段中,主要用途为: 群晖搭配 Download Station 下载东西
使用 Samba 作为分享给 Windows/电视盒子 的协议

现在的需求:

面向局域网内容器共享硬盘空间
足够快的媒体搜索,可方便的让我在不手动归类的情况下找到我想要的文件
提供面向对象存储的 API
稳定,可以接受复杂的首次部署但要简单的升级和日常维护
无明显的直接经济支出或者可以一次付款终身使用

系统架构

硬件

Hpe Microserver Gen10 Plus

硬件选型思考

首先这台机器放在我家客厅,我一个月大多数时候都在学校并且每次回家需要来回 4H 的通勤时长,以至于在这种情况下 IPMI 是硬需求。
虽然收一个 1U/2U 带 IPMI 的平台的确不错,不过噪音和体积在客厅就显得完全不合适了,而 Gen10p 摆电视柜下面刚刚好。

在使用过程中我还出现过升级固件导致平台下线不得不让我家人手动触发物理硬件开关的情况,不过总的来说。大部分日常运维操作(作死折腾),都可以依靠 IPMI 进行救援。

优点:真的好看,从外观到 ILO6,又小巧又能干的感觉,外置电源还可以很容易的藏在角落里。<del>是带尾巴的黑长直贫乳魅魔</del>
缺陷:Microserver Gen10 Plus 最大的缺陷就是那可怜的内存和 PCI 扩展性,而且单 PCI 物理插槽在 HPE 的 BIOS 里只支持 x8x8 的 Bifurcation,直接导致了大部分的纯物理 PCI Split Card 都无法正常工作(包括我之前认为理论可能的使用 x4x4x4x4 Nvme split card 并只插 0 和 3 的方案,实际上在我的机器上仍然只有 Nvme 0 会被识别) 好在我并没有那么高的扩展要求,插个 P3700 就当没有 PCI 槽了。至于万兆,我觉得有那需求都不会考虑这种带有严格体积的四盘位存储机。

软件选型思考:

我选择了 TrueNas 作为新的文件服务操作系统,
首先不会继续考虑群晖了,事实上我之前一直使用 DSM 作为文件管理系统是因为手上有一台白裙可以服务降级,但 DSM6.2 以后的大面积翻车和常年停滞的黑裙安全性更新让我不再想继续选择
Ceph,我承认它足够的先进和分布式,但单机条件下,组件越多,单点故障率也的也越高
Unraid,不想考虑和群晖一样的破解方案了,以及在群聊的时候谈到这玩意的文件系统安全性也是灵车级别...

软件 ESXi 7.0

文件迁移

迁移的过程中使用原来的 DS216j 作为数据拷贝的源机器

我准备了另外的硬盘并在 TrueNas 完成初始化并配置好 pool,这里直接创建 stripe data vdev 即可,如果数据大且十分重要,建议至少两块硬盘 MIRROR 来作为拷贝的中继

如果在群晖端执行 rsync 建议安装这个 synocli[https://synocommunity.com/package/synocli-net] 套件并全程使用 screen 执行以避免操作中断

我的命令以在 DS216j 上面执行 rsync 为演示

rsync -aHAXxv  --delete --progress -e ssh -T -o Compression=no -x [source_dir] [dest_host:dest_dir]

如果文件量比较大,建议拷贝前先在 TrueNas 的 Service 中打开 RSync 服务,并添加你拷贝的目标路径为 RSync Module

随后执行

rsync -aHAXxv  --delete --progress  [source_dir] [dest_host://module/dest_dir]

在我的测试工况下,1Gbps NIC 通过 ssh 协议拷贝峰值速度约为 22MBps,通过 rsync tcp 的峰值速度为 55MBps

随后拔下群晖的硬盘,插上并建立存储池,重复直到所有数据转移完成

工具的替代和使用习惯改变

File Station 替代品

我先后试用了 NextCloud,Firebrowser
更早之前还有可道云,Cloudreve,或者一些面板自带的文件管理等
最终还是拿 FileBrowser 做 Web 端的文件浏览
缺点: MKV 没有字幕

Moments & Photo Station 替代品

这里我选择了 PhotoView 这个开源的方案,效果如下

它支持 PWA,在移动设备上也能获得相对可以的体验

缺点:
残废且占用极高 CPU 的人脸识别
只能读不能写,照片备份还需要 NextCloud 或者其他的客户端协同完成

Download Station 替代

我用 RHEL 8 跑起了 Qbitorrent Enhanced-Nox 用来订阅 RSS 下载的动漫,
PT 站我不是很常用,只是偶尔下一些不太好找的电影会去 MT,单独开了个 Transmission 用来挂 PT 的种子

对象文件存储

TrueNAS 官方 Plugin 里面有 Minio,直接安排(

服务暴露

我使用这个 https://nginxproxymanager.com/ 在一个高位端口转发我内网的大多数交互式 Web 服务
它同时支持图形化配置 Basic Auth 和简单的权限组 虽然在相当一段长的时间里我都沉溺于手写和折腾各种 Nginx 的 Configure trick
但是大多数时候手动配置只会给自己的维护添堵,尤其是想添加一个域名或者改一个转发接口就得连回去拷配置再调试 <del>Web 它不香吗</del>

而且证书的存放也是头疼的一件事,感觉找个容器把这些全关进去反倒能提高安全性和稳定性

感想和我踩的一些坑

部分参考文档:
https://gist.github.com/KartikTalwar/4393116
https://github.com/awesome-selfhosted/awesome-selfhosted
https://www.reddit.com/r/freenas/comments/c1k337/to_cache_or_not_to_cache_that_is_the_question/

Writting by Morxi , Thanks for reading

4847 次点击
所在节点    服务器
12 条回复
igfw
2021-04-28 00:10:44 +08:00
还是直接来一个群晖省事
Morxi
2021-04-28 00:23:30 +08:00
@igfw 就省事而言,你说的对
shenleg
2021-04-28 00:33:24 +08:00
看完我选择群晖
felixcode
2021-04-28 00:49:51 +08:00
对 Truenas 和 ZFS 了解这么少还敢放重要文件啊
Morxi
2021-04-28 01:01:34 +08:00
@felixcode 这也是我转移的目的,黑裙那套的黑箱我更是完全不了解
以及这篇文章后半段感想是取自我两三年前玩 freenas 时候的,用来给完全没有接触 ZFS 和 TrueNAS 的萌新避坑
ChristianSwift
2021-05-04 22:11:10 +08:00
群晖出的那张双 nvme+万兆电口的卡可以完美兼容
Morxi
2021-05-05 13:04:00 +08:00
@ChristianSwift
那个也是带 PLX 的方案,所以价格离谱。
本身 C242 平台就可以直接做 PCIe Bifurcation 就是不知道 HPE 咋在 bios 里面砍的只剩下 x8x8

成本的话去掉 PLX 只做双万兆和 Pci bridge 那个卡最多不到 400.(这两个月控制芯片涨价以前)
iphoneXr
2021-05-20 15:01:35 +08:00
看到个感兴趣的帖子 特意登录上来聊聊
我的硬件平台是超微 E200 9A 4 核 CPU 、64G 内存、nvme1T+500G
软件基于 proxmox6.3-2 因为 cpu 性能比较弱,主要还是多用 lxc,尽量少用 vm 虚拟机。
我之前测试的时候有个疑惑 感觉内网速度一直卡在 20 多 MBps 也就是 20MB/s 的传输速度。
因为我一般是用 rclone 来内网备份和传输文件,也是走的 ssh 协议。iperf 好像可以打满速度。
”1Gbps NIC 通过 ssh 协议拷贝峰值速度约为 22MBps“ 现在也看到你这么说了,难道这个是真是 ssh 的锅?
abellee000
2021-05-24 07:57:16 +08:00
还没有调通,Windows10 工作站和 Nas 机全用 544+flr 56G 网卡接 Mellanox SX6012 56G 交换机,TrueNas 和工作站全闪,
MTU 这边 Windows10 在网卡上设置了 9014,Nas 里设置的 9000 (是否需要重启才能配置生效?),通过工作站使用 SMB 上传 1G 文件到 Nas 大概 100Mb/s-200Mb/s,从 Nas 下载文件回工作站能到 800Mb/s-900Mb/s 。晚上开 iperf 跑一下速度。
很奇怪啊,为什么上传下载速度不对等?
Morxi
2021-06-01 08:25:51 +08:00
@iphoneXr ssh 的加密和确认开销太大了,不太适合内网场景
heqirong
2021-09-16 12:13:30 +08:00
运行情况现在如何,我也准备迁移到新机器上,配置类似,32G 的 ECC 内存,硬盘是 4T*6,在 esxi 中把硬盘控制器直通给 truenas,分配 16G 内存给 truenas 运行 ok 不? truenas 可能要跑几个 plus
Morxi
2021-09-18 09:39:15 +08:00
@heqirong
16G 内存带 24T 的存储有点不太够,我日常使用经常满内存...好像也只是会拷贝慢一点
我已经迁移到了 Truenas Scale,不是稳定性问题而是 Scale 自带了 K8s 可以方便我集成然后管理。
原版日常运行是 OK 的,被我维护打断的最长 Uptime 100d+,Scale 我没有测试足够长的时间。
切换的话也只需要把控制器切过去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/773722

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX