有没有办法监控 btrfs 重新平衡的进度?

use*_*849 19 btrfs

我正在更换镜像 btrfs 中出现故障的硬盘。

btrfs device delete missing /[mountpoint]需要长时间,所以我认为它实际上是将数据重新平衡到替换驱动器。

有没有办法监控这样的操作的进度?

我不一定期望漂亮的 GUI,甚至 % 计数器;如果有必要,我愿意编写几行 shell 脚本,但我什至不知道从哪里开始寻找相关数据。btrfs filesystem show例如只是挂起,大概是等待平衡操作完成,然后才显示有关镜像文件系统的任何信息。

llu*_*lua 31

btrfs balance status /mountpoint
Run Code Online (Sandbox Code Playgroud)

man 8 btrfs

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

        Options

        -v   be verbose
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,事实证明,在我的情况下,btrfs 似乎没有将当前操作视为平衡,因为它没有返回任何内容,但我看到还有一个“替换状态”,如果我使用了替换命令,我可能会使用它. 无论如何都很好的答案。 (4认同)

Ace*_*Ace 8

sudo btrfs fi show
Run Code Online (Sandbox Code Playgroud)

这将输出如下内容:

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
Run Code Online (Sandbox Code Playgroud)

如果您注意到设备 ID #4 看起来与其他设备略有不同。当您执行“btrfs 设备删除丢失的/mntpoint”操作时,它将开始重新生成释放“丢失”驱动器所需的raid 元/数据。

如果你做类似的事情

"watch -n 10 sudo btrfs fi show"
Run Code Online (Sandbox Code Playgroud)

然后您可以看到有问题的“丢失”设备上的空间逐渐变小,直到操作完成并将其从 fi 中删除。