NAS 存储的安全+便捷+成本的最优平衡思路探讨,及单盘位最高容量疑问

348 天前
 sicifus

先给 V 站大佬们汇报一下所谓"最优平衡"的思路,纯粹从个人的"穷+我全都要"的立场出发。若不合理还望指正并轻拍。要点如下:

安全+便捷角度

1 )不用 RAID5 ,大容量单盘失效后重建失败概率过高(Ref1),不展开。

进一步地,不用任何奇偶校验的 RAID (包含群晖的 SHR ),避免重建伤盘。(阵列的核心诉求是保证实时性,而不是数据安全性)

2 )通用数据采用不同存储池下的 1+1 备份实现。工具拟用文件级备份的 Snapraid ,可以实时同步,也可以定期冷备。

(题外话:核心数据额外有 3 地 4 中心机制,即工作机、公司服务器、云、NAS (待增),保证安全性和实时性)。

引入成本角度后

3 )无需一次性配满磁盘,而是根据数据增量分步按需配置,第一次采购 2 块磁盘(假设为 14T )组 1+1 ,之后每隔若干年采购 1 块容量翻倍的磁盘,并基于 Mergerfs 实现存储池的平滑扩容。步骤略见下图:

4 )更进一步地,计算、存储分离(解耦):算力的提升&降本的速度明显快于存储,因此不想采用一体式 NAS 的方式,更倾向于小主机( Homelab/算力)+磁盘柜的方式。

小结一下以上思路,即

1 ) Mergerfs+Snapraid+磁盘逐步翻倍扩容策略,优点:

2 )算存分离,优点:低成本、高性能等。

疑问

要实现图示的存储逐步翻倍扩容,就要确保磁盘柜(或者一体化 NAS 机)的单盘位可识别容量要>50~60T 。 但好像目前市面上的产品宣传口径都是跟着主流 HDD 的最大容量走的(一般是 16T-20T 左右)。

我的疑问是,撇开厂家的宣传策略不谈,从技术上看,

磁盘柜/一体式 NAS 的最大单盘容量的受限条件实际是什么?是主板?是 XX 接口的类型?是总线的带宽?还是系统里的默认设置?

或,有没有简易+便宜地提升可识别单盘容量的方法?

谢谢大家~~

5072 次点击
所在节点    NAS
63 条回复
sicifus
348 天前
@首页 #19 最后一句修改为"因为是数据复刻备份,而非数据+校验字节的条带化存储"
mantouboji
347 天前
@geniussoft

偶自己实测:四个 4T 硬盘组成的 RAID5 ,更换一块硬盘后 rebuild 需要 22 个小时。
geniussoft
347 天前
@mantouboji
首先,22 小时,还好。

其次,raid 重建速度取决于系统的负载和性能,如果系统本身空载(家用条件)而性能足够( ds1821+),10Tx8 的 Raid5/6 单盘重建,也就 10 多个小时,亲测。
aru
347 天前
Mergerfs 性能很少,2 个 nvme 盘用 mergerfs 合并后速度不到单个盘一半
sicifus
347 天前
@aru 会不会哪里没设置好?我看到的说法 mergerfs 的性能基本上就取决于单盘的读写性能么
aru
347 天前
@sicifus
如果你的机器有 2 个现成的 nvme 硬盘,可以自己实测一下大文件写入和读取
HXHL
347 天前
别用 Mergerfs ,坑多
standin000
347 天前
snapraid 不能备份群晖系统,这是个坑
lightionight
347 天前
@ltkun 哈哈 freebsd + zfs 一把梭🤣
Ariver
347 天前
假设一下你的某个硬盘的数据丢失之后,你是否可以接受。
在这个原则下来设计你的 nas 就好了。
有的人可以接受,那你就朝着容量的方向建,硬盘加加加
不能接受,那就备份,raid 也是一种备份方案。
xiaoyuesanshui
347 天前
LVM?
loginv2
347 天前
snapraid
sunnysab
347 天前
@lightionight 我就是!底层跑个 PVE ,把 SATA 控制器分配给 FreeBSD 跑 zfs 了,日常维护靠命令。上面装了 nginx 、samba 。
sicifus
347 天前
@Ariver #30
事实上是,"我全都要"。
主贴的图已经画了,采用存储池 1+1 备份,因此不光可以接受某个硬盘数据丢失,还可以接受这个存储池下任意 n 块硬盘数据丢失。
sicifus
347 天前
@HXHL #27 感谢回复,
能稍微扩展说一下吗?或者给几个关键词我自己去搜一下,
谢谢~
ButcherHu
347 天前
URE 的问题众说纷纭,但是 Mergerfs 的 io 真的不行,理论就是单盘读写性能,而且实际小文件的话会慢的多,我没有具体测,但是之前用的时候跟 raidz2 对比很明显。

对于你说的最大单盘容量的受限条件,我感觉还是硬盘厂商的制造成本和商业策略的考量,毕竟单盘最大容量是有限制的。

但是硬盘扩容对我来说不是什么问题,每次备份的硬盘数量翻倍就好。至于"最优平衡",我觉得分期就好。
libook
347 天前
用过很多年的 MergerFS+SnapRAID 方案,分享几个坑。

1. SnapRAID 进行奇偶校验同步的时候要求文件不能正在被写入,所以只适用于冷数据。
2. SnapRAID 的原理是每块盘上的数据块进行奇偶校验,所以在 1 块校验盘的情况下,当一块盘坏了的时候,想要恢复数据,就要确保其他盘上的数据仍然是上一次奇偶校验同步的版本,但如果在上一次奇偶校验同步之后其他盘的数据发生了变化,那么这些变化的数据块就无法恢复了(可能仍然可以恢复其他未变化的数据块的数据)。也就是说发生多盘修改文件的情况下,被修改的这些文件可能就会随着硬盘损坏而丢失了。需要对硬盘组的使用方式进行规划,比如每两次校验同步之间确保只在一块硬盘上修改数据,需要在其他盘上修改数据之前先进行奇偶校验同步。
3. MergerFS 是基于 FUSE ,所以要关注 FUSE 本身的短板,以及你目前系统上的 FUSE 是否存在 bug 。
4. 我遇到过两段时间 MergerFS 频繁挂掉的情况,MergerFS 的挂载点会提示 input/output error ,需要重启或重新挂载才能解决。跟 MergerFS 开发者交流过,很难 debug 定位到问题。根据我的观察是当打开状态的文件数量超过 3000 之后就很容易挂掉,不知道是我硬盘 IOPS 跟不上,还是 FUSE 有 Bug 。

建议数据分冷热;假设你的热数据是小部分,那么可以热数据用 RAID-1 等镜像方案;冷数据用 MergerFS+SnapRAID 备份方案,如你画的图写满一块硬盘再写下一块。

单盘容量限制理论上是文件系统方面的限制,不过现代文件系统基本都很难达到这种限制。如果厂商对单盘容量进行了限制,可能是因为对设备系统进行测试后认为系统在单盘大于某个容量后会导致产品使用体验下降,又或是显著加大了售后服务的难度。

不过话说回来我并不推荐用超大容量的硬盘,一旦硬盘故障了,恢复数据需要很长的时间,如果采用奇偶校验备份的方式,在超长时间的恢复过程中会有较大概率再坏盘,导致奇偶校验失效。

如果主板有 PCIe x8/x16 槽可以考虑 HBA 卡+硬盘笼,我用了浪潮服务器上拆下来的 HBA 卡和 12 盘位硬盘笼,很便宜。

P.S. 我在后来评估认为 SnapRAID 不是很符合我个人的需求,转而去使用实时奇偶校验的 unRAID 方案了,当然 unRAID 也有它自己的短板。
HXHL
347 天前
@sicifus 我公司就是做 nas 系统的,叫 CasaOS ,由[mergerfs]( https://github.com/IceWhaleTech/CasaOS/issues?q=is%3Aissue+mergerfs+ )导致的 issue 有不少😪。当然我这里不是说 mergerfs 不好,我们还是挺喜欢 mergerfs ,但是有时会有一些奇怪的问题。
sicifus
347 天前
@HXHL #38 感谢!学到新知
sicifus
347 天前
@ButcherHu #36 感谢回复!
Mergerfs 的实际体验是我特别想知道的,感谢提醒避坑~

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

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

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

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

© 2021 V2EX