我有一个跨两个设备的 btrfs 卷,其中包含元数据 RAID1 和数据 RAID0。如果一个驱动器出现故障,几乎所有超过 64KB 默认条带大小的文件都会被损坏。由于此分区不是性能关键,但应该节省空间,因此我考虑过重新平衡文件系统以在磁盘之间均匀分布文件,但类似的事情似乎不存在。最终目标是在驱动器发生故障时仍然能够读取某些文件。
AFAIK,使用“单一”/线性数据分配只会一一填满驱动器。
例子:
将两个 128KB 文件(file0、file1)写入两个设备(dev0、dev1):
RAID0:
- 文件0/块0 (64KB): dev0
- 文件0/块1 (64KB): dev1
- 文件 1/块 0 (64KB):dev0
- 文件 1/块 1 (64KB):dev1
线性:
- 文件0 (128KB): dev0
- 文件1 (128KB): dev0
分发文件:
- 文件0 (128KB): dev0
- 文件1 (128KB): dev1
有谁知道如何实现类似的目标,或者是否是 btrfs-devs 计划的?
编辑:缩小 RAIDesque 的思维,称其为“在多个设备上均匀分布文件”比“每个文件‘RAID 0’条带”更好,因为它并不意味着“每个文件设备切换”,而是“填充设备”一样”。 (例如 dev0 上 1G,dev1 上两个 512MB)
答案1
雨果米尔斯提供了回答在 btrfs 邮件列表上:
基本上“单一”模式分配 1GiB 块,这对于我的用例来说已经足够了。