Btrfs
如何將 4 驅動器 BTRFS raid1 轉換為 2 驅動器“單”(非 RAID)模式
我在 BTRFS raid1 配置中有 4 個大小相同的驅動器。我想釋放兩個驅動器以在不同的系統中使用。
我非常有信心使用 BTRFS 可以做到這一點,但我不確定如何正確地做到這一點。
我在 FWIW 其他地方備份了所有數據。
我在一個由四個小型 LVM 邏輯卷組成的臨時文件系統上快速測試了這個過程。第一個問題是您是否要保持鏡像(容量減少)?
在以下所有內容中,
«PATH»
是您的 btrfs 文件系統的掛載點。這些是線上操作。如果您不想鏡像數據(例如,因為它不適合減少的容量):
- 擺脫鏡像,將文件系統轉換為沒有它的樣子。預設情況下,這是重複的元數據和單個數據副本。但是,由於您仍然有兩個磁碟,所以 raid1 元數據更有意義。你通過重新平衡來做到這一點。這裡的“軟”意味著只轉換需要它的塊組——例如,已經是 raid1 的元數據不會被觸及。(與已經“單一”的數據相同,如果您在中途取消此操作並稍後重新啟動,可能會發生這種情況)。
btrfs balance start -mconvert=raid1,soft -dconvert=single,soft «PATH»
餘額將(預設情況下)在前台執行;你可以給
--background
你的終端回來(並檢查狀態btrfs balance status «PATH»
)。狀態消息也將列印到 dmesg(以及核心日誌和/或 systemd 日誌)。這可能需要很長時間;btrfs 喜歡移動數據☹。接下來,移除磁碟。無論您是否將其保留為鏡像,您都可以執行此操作。
- 現在您可以移除其他兩個磁碟。這也會移動一堆數據,因此需要一段時間。請注意,您可以(並且應該)一次刪除兩個磁碟,否則它可能會將數據移動到您接下來要刪除的磁碟上。
btrfs device remove /dev/disk1 /dev/disk2 «PATH»
請注意磁碟/分區設備位於掛載點之前。這又是一次線上操作。您可以在核心日誌中查看狀態。