btrfs fi show 和 btrfs fi df 之间的磁盘使用情况存在差异

btrfs fi show 和 btrfs fi df 之间的磁盘使用情况存在差异

我知道完整元数据存在一些 btrfs 问题,但我的问题似乎有所不同。

我有 2x3TB 磁盘正在创建突袭0btrfs 文件系统。我无法理解以下报告的磁盘使用情况之间的差异:

> btrfs fi show
Label: none  uuid: 23a6779e-9c8e-4cec-804b-0056451ab782
        Total devices 2 FS bytes used 1009.59GiB
        devid    1 size 2.73TiB used 530.02GiB path /dev/sda
        devid    2 size 2.73TiB used 530.01GiB path /dev/sdc

Btrfs v3.17

> btrfs fi df /mnt/btrfs 
Data, RAID0: total=1.03TiB, used=1008.49GiB
System, RAID1: total=8.00MiB, used=96.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, RAID1: total=2.00GiB, used=1.10GiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=384.00MiB, used=0.00B

从第一个输出中,我推测我的文件在每个磁盘上占用了 530GB,并且仍然有足够的可用空间。

但从第二个输出中我看到,我只有 1TB 可用空间,而不是 ~5TB,而且几乎已满(使用了 1008.49GiB),我应该担心吗?这种差异意味着什么?

答案1

btrfs 常见问题解答解释每个命令所显示的内容。

btrfs fi show命令显示文件系统中的磁盘,以及每个磁盘的大小以及已占用的数量已分配在每个磁盘上。您的输出并不意味着存储了 530 GiB 的数据,只是表示已为数据存储预留了这么多空间。这也是常规df命令解释文件系统的方式。您是对的,设备上还有足够的剩余空间。

btrfs fi df命令提供了详细信息已分配空间。如果将所有“总计”值相加,考虑到 RAID1 元数据,您会发现您分配了命令show所示的大约 1060.03 GiB。 “已使用”值是为每种格式分配的空间中实际存储了多少信息。

btrfs fi df命令无法告诉您还可以存储多少数据,因为这取决于格式。 single/RAID0 中的 1 GiB 数据将占用文件系统上的 1 GiB 可用空间,但 dup/RAID1 中的 1 GiB 元数据将占用文件系统上 2 GiB 的可用空间。它可以告诉您磁盘上有多少可用空间,但无法告诉您有多少将用于存储数据以及有多少将用于元数据。

相关内容