Filesystems
Btrfs 在多個設備上平均分配文件
我在兩個具有元數據 RAID1 和數據 RAID0 的設備上有一個 btrfs 卷。如果一個驅動器發生故障,實際上所有高於 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)
Hugo Mills在 btrfs 郵件列表中提供了答案:
基本上“單一”模式分配 1GiB 塊,這對我的案例來說已經足夠了。