zfs可以组raid1(mirror) raid0(stripe) raid10
raid5(raidz) raid6(raidz2)等形式的raid,之前比较看好的是raidz和raidz2,然而随着深入了解后发现扩容不灵活。
例如: raidz要扩容,要么一块一块更换大硬盘,要么再加一组同硬盘数的raidz组成stripe。raid10灵活,扩容方便但安全性不够,万一坏一组mirror数据全挂。
- 后来想到一种另类的方式:
以四盘位来说,两盘组成一个zfs mirror,另外两块分别单独做zfs stripe,然后这三组组个snapraid。其中一块做snapraid的parity,其他的做为数据盘存content和data。这样以后可以选择加盘加入snapraid或以小换大(比raidz以小换大的速度快)。
数据安全说明:
随便坏一块盘,数据可完全恢复
mirror坏一块盘+stripe任意坏一块,数据可完全恢复
stripe两块盘同时坏,放数据那块盘的数据丢失,mirror的数据完好
stripe两块盘同时坏,mirror其中一块坏,mirror数据完好不离线
也就是特定情况下,同时坏三块盘,mirror里的数据也是安全的