现状
- 4 块 4TB HDD 硬盘
- 1 块 512GB SSD 硬盘
- 64GB 内存(没有 ECC )
目的
- 能够实现快照
- 能够自动检测文件错误并修复
- 能够使用 SSD 作为缓存,加速读写
前两条为强需求
场景
- 家庭用户,资料数据、照片数据不期望损坏,期望不丢失
- 电影随意,可以随时丢失
- 读写频次并不高
- 可以接收因为缓存损坏导致的 1-3 天数据丢失(近期数据或照片都在电脑或手机上有备份,不怕丢失近期数据)
方案
方案 1
raid1->bcache->btrfs
- 2 块 HDD 组 raid1(使用 mdadm) -> md0
- 1 块 SSD 和 md0 结合使用 bacache 创建缓存后的块设备 -> bcache0
- 把 bcache0 格式化为 btrfs
缺点:
-
数据损坏的时候不知道哪一块上的数据是好的,而且因为 raid1 处于底层,brtfs 也无法进行数据修复
-
bcache 设备损坏不清楚会不会导致整个 btrfs 磁盘损坏
方案 2
bcache->btrfs+raid1
- 1 块 HDD 和 1/2 块 SSD 组缓存后的块设备 -> bcache0
- 1 块 HDD 和 1/2 块 SSD 组缓存后的块设备 -> bcache1
- bcache0 和 bcache1 使用 brtfs 组成 raid1
缺点:
- bcache 设备损坏不清楚会不会导致整个 btrfs 磁盘损坏
- 缓存盘浪费,写入的是一样的数据,但是却缓存了两份
方案 3
raid5(mdadm) -> bcache -> btrfs
大家经常说 raid5 重建很痛苦,而且不一定成功,有些害怕
方案 4
ZFS
缺点:资源消耗大,磁盘性能下降严重(听说的,不清楚实际情况)
方案 5
LVM ,因为其缓存也是工作在块设备这一层的,和方案 1 和 2 类似,就不考虑了
问题:
各位朋友什么建议?大家一般怎么规划自己的文件系统?
|