我有一个btrfs卷,该卷已经包含两个不同的设备,并安装在/samples上。 df报告其总大小为194GB。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sdc1       194G  165G   20G  90% /samples

现在,我想从另一台设备向该卷再添加500GB。
我做了
$ sudo mkfs.btrfs -m raid0 -d raid0 /dev/sdb
$ sudo btrfs device add /dev/sdb /samples

我的文件系统现在正确报告:
$ sudo btrfs filesystem show
Label: none  uuid: 545e95c6-d347-4a8c-8a49-38b9f9cb9add
    Total devices 3 FS bytes used 161.98GB
    devid    3 size 465.76GB used 0.00 path /dev/sdb
    devid    2 size 93.13GB used 84.51GB path /dev/sdc1
    devid    1 size 100.61GB used 84.53GB path /dev/sdc6

但是当我这样做时,我会错过一些空间:
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sdc1       660G  165G   43G  80% /samples

我增加了500GB!为什么我没有更多的可用空间?

要调试,我运行了以下命令:
$ sudo btrfs filesystem df /samples
Data, RAID0: total=162.00GB, used=159.79GB
Data: total=8.00MB, used=7.48MB
System, RAID1: total=8.00MB, used=24.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=3.50GB, used=2.19GB
Metadata: total=8.00MB, used=0.00

我的数据在RAID0中,没关系。那么我的500GB到哪里去了,我该如何解决呢?

谢谢

最佳答案

感谢您的回答。我正在计算从这里和btrfs邮件列表中收到的各种答复中得出的答案。

  • 我的新500G没有显示,因为它们最初无法使用。
  • 我需要平衡三个分区上的数据:

  • btrfs filesystem balance /samples
    

  • 在同一磁盘上使用两个分区(/dev/sdc1和/dev/sdc6)根本不是最佳选择,因为它们会花费时间在两个分区之间进行搜索。在这种情况下,更好的选择是使用“单个”,其中一个分区一个接一个地填充(无 strip 化)。使用新的btrfs工具,可以使用以下命令:

  • btrfs balance start -dconvert=single,soft /samples
    

  • 在Debian/Ubuntu主机上,支持余额转换的最新btrfs工具通常无法以打包格式提供,需要从源代码进行编译。

  • 再次感谢您的回答。

    08-05 07:10