Btrfs RAID1:如何更換物理上不再存在的磁碟驅動器?
我有一個具有以下狀態的 btrfs RAID1 系統:
# btrfs filesystem show Label: none uuid: 975bdbb3-9a9c-4a72-ad67-6cda545fda5e Total devices 2 FS bytes used 1.65TiB devid 1 size 1.82TiB used 1.77TiB path /dev/sde1 *** Some devices missing
失去的設備是完全失效且作業系統無法辨識的磁碟驅動器。我刪除了有故障的磁碟並將其送去回收。
現在我在 /dev/sdd 下安裝了一個新磁碟。在網上搜尋,我找不到這種情況的說明(搜尋詞選擇錯誤?)。當故障磁碟仍然可以被作業系統訪問時,有很多範例如何保存 RAID 系統。
btrfs replace
命令需要源磁碟。我嘗試了以下方法:
# btrfs replace start 2 /dev/sdd /mnt/brtfs-raid1-b # btrfs replace status /mnt/brtfs-raid1-b Never started
沒有錯誤消息,但狀態表明它從未啟動。我無法弄清楚我的嘗試有什麼問題。
我正在執行 Ubuntu 16.04 LTS Xenial Xerus,Linux 核心 4.4.0-57-generic。
更新#1
好的,在“非後台模式(-B)”下執行命令時,我看到一個以前沒有出現的錯誤:
# btrfs replace start -B 2 /dev/sdd /mnt/brtfs-raid1-b ERROR: ioctl(DEV_REPLACE_START) failed on "/mnt/brtfs-raid1-b": Read-only file system
/mnt/brtfs-raid1-b
已安裝 RO(只讀)。我別無選擇; Btrfs 不允許我將剩餘的磁碟掛載為 RW(讀寫)。當我嘗試掛載磁碟 RW 時,我在 syslog 中收到以下錯誤:BTRFS: missing devices(1) exceeds the limit(0), writeable mount is not allowed
在 RO 模式下,它接縫我什麼都做不了;無法替換、添加或刪除磁碟。但是我無法將磁碟安裝為 RW。還剩下什麼選擇?
當一個簡單的磁碟發生故障時,它不應該這麼複雜。系統應繼續執行 RW 並警告我驅動器發生故障。我應該能夠插入一個新磁碟並在其上重新複製數據,而應用程序仍然不知道磁碟問題。那是一個適當的RAID。
事實證明,這是自 2017 年初以來 btrfs 的限制。要再次以 rw 方式安裝文件系統,需要修補核心。我還沒有嘗試過。因此,我打算離開 btrfs;不必修補核心即可更換有故障的磁碟。
點擊以下連結了解詳情:
如果到 2020 年您仍然遇到此問題,請發表評論。我相信人們想知道這是否已修復。
更新: 截至 2020 年 10 月 20 日,我搬到了舊的 mdadm 和 lvm,並且對我的 RAID10 4x4 Tb(總空間為 8 Tb)非常滿意。它已被證明,執行良好,不佔用資源,我完全信任它。