Filesystems

Btrfs 在多個設備上平均分配文件

  • July 6, 2015

我在兩個具有元數據 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 塊,這對我的案例來說已經足夠了。

引用自:https://unix.stackexchange.com/questions/214009