![RAID-1 中故障的 Btrfs 硬碟可以即時更換嗎?](https://rvso.com/image/1388783/RAID-1%20%E4%B8%AD%E6%95%85%E9%9A%9C%E7%9A%84%20Btrfs%20%E7%A1%AC%E7%A2%9F%E5%8F%AF%E4%BB%A5%E5%8D%B3%E6%99%82%E6%9B%B4%E6%8F%9B%E5%97%8E%EF%BC%9F.png)
我正在嘗試決定檔案系統,並想知道是否可以在不停機的情況下更換 btrfs RAID 中發生故障的磁碟機。
假設我使用命令建立一個新的 btrfs 檔案系統
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
現在假設有一天
/dev/sdc
失敗了。有兩種可能性:它可能會逐漸失敗,顯示 SMART 錯誤 - 在這種情況下,我可以使用 新增設備btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
,然後使用 刪除舊設備btrfs device delete /dev/sdc /mnt
。但如果它突然失敗,變得不可讀......網絡搜索表明在這種情況下我必須首先卸載文件系統,以降級模式安裝,添加新設備,然後刪除丟失的設備。
umount /mnt mount -o degraded /dev/sdb /mnt btrfs device add /dev/sdf /mnt btrfs device delete missing /mnt
卸載顯然是一種破壞性操作,因此會出現停機 - 任何使用該檔案系統的應用程式都會出現 I/O 錯誤。但考慮到 Btrfs 正在大力開發,這些關於 Btrfs 的「教學」看起來已經過時了。
問題是:考慮到 btrfs 的當前狀態,是否可以在線上執行此操作,即無需卸載?
如果沒有,是否有一個純軟體解決方案可以滿足此需求?
答案1
在Linux 3.8中,btrfs replace mountpoint old_disk new_disk
被加入。如果您正在運行最新的內核,它將提供您正在尋找的功能。