btrfs 可以使用使用過濾器將 raid 5 轉換為 1 嗎?

btrfs 可以使用使用過濾器將 raid 5 轉換為 1 嗎?

btrfs 是否支援部分轉換檔案系統?

我目前處於這樣的狀態:

btrfs fi df .
Data, RAID5: total=9.83TiB, used=7.68TiB
System, RAID1: total=32.00MiB, used=704.00KiB
Metadata, RAID1: total=12.00GiB, used=8.61GiB
GlobalReserve, single: total=512.00MiB, used=0.00B

並且由於raid5模式中發現的bug,我想遷移到raid1。有多種原因導致現在沒有進行完整的轉換。我想將目標模式設定為raid1。因此,任何新數據都將放入 raid1,當有時間時,我可以觸發完全重新平衡(或軟)

那麼這樣的事情可能嗎?

btrfs balance start -dconvert=raid1 -dusage=10 .

答案1

好吧,由於沒有其他人有任何信息,我只是嘗試了一下並在此記錄我的步驟。

btrfs balance start -dconvert=raid1 -dusage=10 .

該指令只是轉換符合過濾器的區塊(使用率=10%)。沒有對區塊進行壓縮(如常規平衡),也沒有將目標 raid 等級設定為從 raid5 到 raid1。所以這是相當無用的,它創建了大塊,其中大部分是空數據並浪費了時間。

下一個方法是使用限制濾波器和軟參數,逐步轉換。

btrfs balance start -dconvert=raid1 -dlimit=500,soft .

這樣檔案系統就一步步轉換了。

筆記:

  1. 在轉換之前平衡“空塊”。這樣可以節省時間。
  2. 在此過程中,btrfs 總是會將新資料放入舊 raid-profile 的區塊中。我發現沒有辦法改變這一點。因此,新資料總是會被放入 raid5 區塊中,或建立新的 raid5 區塊來保存資料。一旦整個檔案系統被轉換,這種行為當然就消失了。
  3. 這完全在線工作:)

相關內容