btrfs:分配了巨大的元数据

Gnu*_*rou 16 linux ssd hard-drive btrfs

我有一个 256GB 的 SSD 磁盘,我将 ext4 root FS 转换为 btrfs。我删除了 ext4 备份子卷,启用压缩并递归地进行碎片整理以在所有文件上启用它。

btrfs fi df / 有一个让我担心的输出:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB
Run Code Online (Sandbox Code Playgroud)

如果我正确理解输出,65GB(我磁盘的 1/4!)保留用于元数据,不可用于存储文件。如果这是正确的,那将是对我磁盘空间的巨大浪费。我理解正确吗?可以调整磁盘的元数据分配部分的大小吗?

hol*_*eap 17

首先,确保您的内核和 BTRFS 用户空间是最新的。

根据BTRFS FAQ,您不能调整元数据块大小。但是,您可以尝试运行btrfs balance start -m <mount point>这将在整个磁盘上重新分配元数据,并且作为副作用,可能会释放未分配的空间。

如果这不起作用,您可能需要备份数据并重新创建文件系统。(有关更多信息,请查看内容。)

  • 所以,必要的补丁使它进入了稳定的内核,我已经尝试了你的建议。平衡确实将元数据的保留区域量减少到 3GB,并且声称的空间现在在“df”中显示为可用空间。请注意,您不需要重新平衡整个磁盘,您可以执行 **btrfs balance start -m &lt;mount point&gt;** 仅重新平衡元数据,这样会快得多。感谢有见地的回答! (11认同)