4

我有一个 btrfs 卷,它已经由两个不同的设备组成,并且安装在 /samples 上。据报道,其总大小为 194GB df

$ 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 去了哪里,我该如何解决这个问题?

谢谢

4

1 回答 1

5

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

  1. 我的新 500G 没有显示,因为它们最初无法使用。
  2. 我需要平衡三个分区上的数据:
btrfs filesystem balance /samples
  1. 在同一个磁盘上使用两个分区(/dev/sdc1 和 /dev/sdc6)根本不是最优的,因为它们会花时间在两个分区之间寻找。在这种情况下,更好的选择是使用“单一”,其中分区一个接一个地填充(没有条带化)。使用新的 btrfs 工具,可以使用以下命令:
btrfs balance start -dconvert=single,soft /samples
  1. 在 Debian/Ubuntu 主机上,支持余额转换的最新 btrfs 工具通常没有打包格式,需要从源代码编译。

再次感谢您的回答。

于 2013-07-31T13:04:38.793 回答