btrfs:可用磁盘空间不足,但设备未完全使用

btrfs:可用磁盘空间不足,但设备未完全使用

我使用 btrfs 作为我的主目录,它跨多个设备。总的来说,我应该有大约 7.3TB 的空间 - 这就是df显示的,但我在仅使用了 5.7TB 数据后就用完了空间:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdd3       7.3T  5.7T   63G  99% /home

btrfs 有这样一段话:

# btrfs fi df /home
Data, RAID0: total=5.59TB, used=5.59TB
System, RAID1: total=8.00MB, used=328.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=11.50GB, used=8.22GB

这很奇怪,因为应该有足够的分区来支持 7.3TB(此外,btrfs 数据配置应该是“单一”而不是 RAID0)。

以下是内容btrfs show

# btrfs fi show
Label: none  uuid: 2dd4a2b6-c672-49b1-856b-3abdc12d56a5
    Total devices 9 FS bytes used 5.59TB
    devid    2 size 303.22GB used 303.22GB path /dev/sdb1
    devid    3 size 303.22GB used 303.22GB path /dev/sdb2
    devid    4 size 325.07GB used 324.50GB path /dev/sdb3
    devid    1 size 2.73TB used 1.11TB path /dev/sdc1
    devid    5 size 603.62GB used 589.05GB path /dev/sdd1
    devid    6 size 632.22GB used 617.65GB path /dev/sdd2
    devid    7 size 627.18GB used 612.61GB path /dev/sdd3
    devid    8 size 931.51GB used 931.51GB path /dev/sde1
    devid    9 size 931.51GB used 931.51GB path /dev/sde2

如您所见,devid 1(我添加的最后一个磁盘)只使用了 1.11TB,而该分区共有 2.73TB 可用空间(它应该是 3TB 的驱动器,但只有 2.7TB 可用:-[ )。

我搜索了好久,还是没找到如何让 btrfs 充分利用分区的方法。我遗漏了什么?

笔记:

  1. 我正在使用 Ubuntu 12.04.2,当前内核是 3.2.0-23。
  2. 这是我跑步btrfs fi resize max /home之后btrfs fi balance /home

答案1

您使用的是数据 raid0,即无奇偶校验的条带化。一旦您填满 raid0 阵列中的任何磁盘,该阵列就会变满,因为该磁盘上不再有空间来写入其条带部分。

该 ~3TB 设备比您在 btrfs-raid0 实践中充分利用的其他设备大得多。要尝试强制系统使用整个磁盘,您最终需要对其进行分区,然后将两个分区添加为单独的磁盘。顺便说一句,不要这样做,因为它会对性能产生奇怪而可怕的影响,如果您使用 raid0,我认为这对您来说非常关键……?

另一点需要注意的是:在我看来,3.2 版内核对于运行 btrfs 来说已经是相当老了。Btrfs 仍处于高度开发阶段,如果您要运行 btrfs,您确实应该跟踪更新的内核。

在多个设备上使用 Btrfs - 文件系统创建: 当您拥有不同大小的驱动器并想要使用每个驱动器的全部容量时,您必须对数据块使用单个配置文件,而不是 raid0:

# Use full capacity of multiple drives with different sizes (metadata mirrored, data not mirrored and not striped)  
mkfs.btrfs -d single /dev/sdb /dev/sdc

相关内容