关于 NVME 硬盘 Linux RAID, ZFS 以及其他阵列方式

2023-02-10 20:27:53 +08:00
 KanVivii

手头有 6 块 2T NVME P4510 。最初想的是做 software RAID 5 ,但是看了小胖的视频后 Level1Techs,又考虑换到 ZFS 。 因为后期有计划再增加 6-8 块相同的 2T NVME ,ZFS 对扩容的支持不是太好,要一次性增加多块儿硬盘,单次花费比较大

不考虑硬 RAID ,阵列卡太贵了不太划算

想请教下大家对 Linux software RAID, ZFS 之外 还有什么好的多盘支持的方案

3212 次点击
所在节点    Linux
21 条回复
Remember
2023-02-10 20:41:53 +08:00
btrfs
SaltyKitkat
2023-02-10 22:22:34 +08:00
btrfs 的 raid5/6 目前不大能用
ltkun
2023-02-10 23:56:01 +08:00
哪种 raid 能直接增加硬盘数量? zfs 应该已经可以算得上最灵活的 raid 方式了吧
fisherwei
2023-02-11 00:21:46 +08:00
@ltkun
搜索一下 LSI 在线扩容
esee
2023-02-11 00:22:42 +08:00
上 unraid 呗..单独盘校验,扩容贼方便,就是性能不会有那么强
fisherwei
2023-02-11 00:26:56 +08:00
由于 nvme 的写入速度太快了,如果用 ZFS 依靠 cpu 做 XOR 的话,压力可能会非常大,甚至成为瓶颈,建议搞个模拟环境做个 benchmark 。
sNullp
2023-02-11 00:37:39 +08:00
zfs 已经支持在线扩容了。虽然不完美但别的方案也不完美。
shalingye
2023-02-11 01:38:26 +08:00
考虑下 VHD ?通过父子继承实现类似阵列的功能,这个我是打算做个管理软件的,还没来得及搞
KanVivii
2023-02-11 02:42:29 +08:00
@sNullp 刚看到 ZFS 3.0 扩容会方便好多了

@fisherwei CPU 压力的话还好 两颗 7542 不太担心

@ltkun RAID5 倒是可以增加 但是数据重新校验也是很耗时 挺麻烦


谢谢大家
mxT52CRuqR6o5
2023-02-11 03:48:29 +08:00
unraid 是我见过最灵活的,不过缺点是不能在线扩缩容
wengych
2023-02-11 10:39:29 +08:00
unraid 容易 boom
vibbow
2023-02-11 10:57:00 +08:00
mdadm raid 5 + xfs 路过
roswellian
2023-02-11 11:48:24 +08:00
ZFS 永远的神
xyjincan
2023-02-11 13:10:26 +08:00
ZFS 可以添加硬盘,前期 6 块,后期加 6 块没有问题,完美兼容,原理类似,一块磁盘,分区分小点,后面再扩展分区,你用虚拟机试试这个
documentzhangx66
2023-02-12 12:13:41 +08:00
1.raid 别用 btrfs ,很多人都说有 bug 。

2.Linux raid ,最稳的方式,还是 raid 卡。当然,用了这玩意,远程热备还是要做的,毕竟 raid 卡也有坏掉的时候。
documentzhangx66
2023-02-12 12:14:23 +08:00
zfs 不建议用,内存占用太大了,这系统是很多年前设计的,从现在角度来看,连 btrfs 都不如。
justaname
2023-02-12 15:13:00 +08:00
家用环境 raid 卡绝对不可能比软 raid 稳,上 BBU 都可能出问题,硬卡 RAID5/6 的回写缓存是一个大坑。为了基本的写入性能总得开回写缓存吧,一旦因为各种原因 RAID 盘掉线(家用环境没有 2 冗余电源,没有 SAS 冗余链路,甚至硬盘都不一定是正规企业盘),缓存里的数据就丢了,要是缓存里的数据恰好是 superblock 或者 metadata ,嘿嘿那就有得折腾了,阵列卡可不知道自己缓存里是啥玩意儿。
BBU 理论上可以应对这种情况,但实际上并不一定,我就遇到过损坏文件系统的情况。硬盘掉线了但是阵列卡没有掉线,然后所有硬盘都变成 UBad ,可以用 LSI 的命令强行让所有盘上线,问题是我缓存里的 superblock 丢了呀,最后一点办法都没有,还好有备份。ZFS 这种软阵列基本上不太可能出现这种情况,所有修改基于 transaction ,掉电也可以回溯,反正所有缓存都是 ZFS 自己管理的,ZFS 自己不出问题那就没问题。硬阵列就算上面的文件系统是有日志,因为回写缓存的存在,文件系统并不能保证关键数据真的落盘了,要安全除非把回写缓存关了,不然多余 1 张盘被踢的话就只能自求多福了,鬼知道回写缓存里的内容啥时候给你丢了。
当然硬阵列也有相对 ZFS ,MDADM 的性能优势,尤其是随机读写。因为 ZFS recordsize 和 padding 的存在,要是追求随机读写性能设置很小的 recordsize 的话 ZFS 的空间利用率会非常烂,搞不好还不如直接用 mirror 了。
至于 btrfs ,吃过两次亏之后我是不会在大容量存储上使用 btrfs 了,只能用脆弱形容
KanVivii
2023-02-15 14:24:15 +08:00
@justaname

非常感谢这么详细的讲解 raid 和 zfs 我都尝试跑一阵子 丢点电影在上面试一下
看看后面的效果

因为机器会丢在机房里面跑 所以有些方案可以尝试
0x663
346 天前
@KanVivii 最后采用的什么方式
KanVivii
345 天前
@liushaokang

其实一直在尝试,目前就 LVM 做个池子,然后定期拷贝全部文件到另外的存储池

NVME Soft RAID 性能下降还是蛮严重的,过几天 RAID 卡到了试一下效果

ZFS 因为吃内存而且不咋熟悉所以没有再考虑

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

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

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

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

© 2021 V2EX