Btrfs

Btrfs RAID1:如何更換物理上不再存在的磁碟驅動器?

  • April 5, 2021

我有一個具有以下狀態的 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)非常滿意。它已被證明,執行良好,不佔用資源,我完全信任它。

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