Raid

Btrfs 將較小的驅動器添加到 RAID1

  • July 29, 2019

我有一個帶有 2 個 2Tb 驅動器的 RAID1 btrfs 文件系統,並且我有一個備用的 750 Gb 硬碟,所以我想我會把它添加到 RAID 中,這樣我就可以使用一些額外的儲存空間。

好吧,我將它添加到卷中,可用的可用空間量如預期的那樣增加了新添加的硬碟量的一半。我做了一個btrfs balance /hdd,現在的輸出btrfs filesystem show是:

Label: none  uuid: e100a7bd-1c03-4424-9ab2-4aa9fa679b8c
   Total devices 3 FS bytes used 496.82GiB
   devid    1 size 1.82TiB used 500.03GiB path /dev/sda1
   devid    2 size 1.82TiB used 500.03GiB path /dev/sdd1
   devid    3 size 698.64GiB used 0.00B path /dev/sdc

相關行來自df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       2,2T  498G   1,4T  27% /hdd

重新平衡後新驅動器為空是否正常?我需要做其他事情嗎?難道我做錯了什麼?

如果相關,我正在使用 Netrunner Rolling。

更新:所以我的 2 Tb 驅動器中的一個死了,所以我在文件系統中添加了一個 250 Gb 和一個 1 Tb 驅動器,並進行了平衡。這是目前的情況:

Label: 'dades'  uuid: e100a7bd-1c03-4424-9ab2-4aa9fa679b8c
   Total devices 4 FS bytes used 589.10GiB
   devid    1 size 1.82TiB used 592.03GiB path /dev/sdb1
   devid    3 size 698.64GiB used 180.00GiB path /dev/sdd
   devid    4 size 232.89GiB used 0.00B path /dev/sda
   devid    5 size 931.51GiB used 412.03GiB path /dev/sde

df -h

Filesystem      Size  Used Avail Use% Mounted on    
/dev/sdb1       1,9T  590G   755G  44% /hdd

這個問題已有三年之久,但似乎從未得到回答。我在解決自己的類似問題時偶然發現了這個問題。如果它有正確的答案,那對我當時會很有用。

在您的情況下,這似乎是設計使然。您遇到的“問題”(​​在驅動器故障和更換之前和之後)是陣列中的另一個現有磁碟比新添加的磁碟具有更多可用空間

$$ s $$. 所以 Btrfs 將首先寫入它們,即使有關配置的所有內容都按您的預期工作。一旦陣列到達新設備具有更多可用空間的點,那麼它將被寫入其中一對冗餘塊。(下一個最大的可用空間用於第二個副本。) 您可以強制對整個陣列進行完全重新平衡,強制新設備接收塊,通過

sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mountpoint

不要擔心將您的raid1“轉換”為raid1。至少根據我的經驗(但似乎在任何地方都沒有正式記錄),它只會重新做所有事情,包括對所有磁碟進行完整的 raid1 重新平衡,大致與它們的大小成正比。

儘管您現在肯定已經弄清楚了這一切,但對於在搜尋中找到這個問題的人來說,在這種特殊情況下,我建議您不要做任何事情。一旦事情開始填滿,就應該使用新設備。不幸的是,“應該”和“將”並不總是與 Btrfs 保持一致。如果這沒有發生,請嘗試上述命令。如果這不起作用,請嘗試答案。

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