Btrfs

有沒有辦法監控 btrfs 重新平衡的進度?

  • January 9, 2021

我正在替換鏡像 btrfs 中的故障硬碟。

btrfs device delete missing /[mountpoint]需要長時間,所以我認為它實際上是在將數據重新平衡到替換驅動器。

有沒有辦法監控這種操作的進度?

我不一定希望有一個漂亮的 GUI,甚至是 % 計數器;如果有必要,我願意寫幾行 shell 腳本,但我什至不知道從哪裡開始尋找相關數據。btrfs filesystem show例如只是掛起,大概是等待平衡操作完成,然後才會顯示有關鏡像 fs 的任何資訊。

btrfs balance status /mountpoint

man 8 btrfs

[filesystem] balance status [-v] <path>
       Show status of running or paused balance.

       Options

       -v   be verbose
sudo btrfs fi show

這將輸出如下內容:

Label: none  uuid: 2c97e7cd-06d4-4df0-b1bc-651397edf74c
       Total devices 16 FS bytes used 5.36TiB
       devid    1 size 931.51GiB used 770.48GiB path /dev/sdc
       devid    2 size 931.51GiB used 770.48GiB path /dev/sdg
       devid    3 size 931.51GiB used 770.48GiB path /dev/sdj
       devid    4 size 0.00 used 10.02GiB path
       devid    5 size 931.51GiB used 770.48GiB path /dev/sdh
       devid    6 size 931.51GiB used 770.48GiB path /dev/sdi
       devid    7 size 931.51GiB used 770.48GiB path /dev/sdd
       devid    8 size 931.51GiB used 770.48GiB path /dev/sdo
       devid    9 size 465.76GiB used 384.31GiB path /dev/sdn
       devid    10 size 931.51GiB used 770.48GiB path /dev/sdp
       devid    11 size 931.51GiB used 770.48GiB path /dev/sdr
       devid    12 size 931.51GiB used 770.48GiB path /dev/sdm
       devid    13 size 931.51GiB used 769.48GiB path /dev/sdq
       devid    14 size 931.51GiB used 770.48GiB path /dev/sdl
       devid    15 size 931.51GiB used 770.48GiB path /dev/sde
       devid    16 size 3.64TiB used 587.16GiB path /dev/sdf

Btrfs v3.12

如果您注意到設備 id #4 看起來與其他設備有點不同。當您執行“btrfs device delete missing /mntpoint”時,它將開始重新生成釋放該“失去”驅動器所需的 raid 元/數據。

如果你做類似的事情

"watch -n 10 sudo btrfs fi show"

然後您可以看到有問題的“失去”設備上的空間逐漸變小,直到操作完成並將其從 fi 中刪除。

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