【问题标题】:How to change block size on XFS如何在 XFS 上更改块大小
【发布时间】:2021-04-14 08:45:27
【问题描述】:

情况:服务器使用 XFS 文件系统,块大小 4kB。有很多小文件。

结果:部分目录占用 2+GB 空间,但实际文件大小小于 200MB。

解决方案:将 XFS 块大小更改为尽可能小,512B。我知道这意味着更多的开销和一些性能损失,我无法找出多少。

问题:怎么做?

我知道 XFS 使用 xfsdump 来备份数据。因此,假设 /dev/sda2 是我想要更改的实际 XFS 文件系统,而 /mnt/export 是我想使用 xfsdump 转储它的地方。手册说转储的块大小必须与恢复的块大小和 -b 参数“指定用于转储的块大小(以字节为单位)相同”。 .我有点担心,因为手册还说“默认块大小为 1Mb”

这是转储我的完整文件系统的正确方法吗(在这种情况下,/dev/sda2 挂载到 /home)?

xfsdump -b 512 -f /mnt/export /home

如果上面的命令是正确的,我需要做些什么才能正确取回我的文件,只有 512B 块大小?我的猜测是使用

将 /dev/sda2 重新格式化为 512B 块大小
mkfs.xfs /dev/sda2 -b 512

然后使用

xfsrestore -f /mnt/export /home

但我不确定如何进行,也没有一个好的方法来测试我是否正确。

【问题讨论】:

    标签: xfs


    【解决方案1】:

    所以我做了更多的研究并想出了这个:

    xfsdump -f /mnt/export_file /home
    umount /home
    mkfs.xfs -b size=1024 /dev/sda2 -f
    #Minimum block size for CRC enabled filesystems is 1024 bytes.
    mount /home
    xfsrestore -f /mnt/export_file /home
    

    如您所见,由于启用了 CRC 的文件系统的最低要求,我无法将块大小更改为 512B,但除此之外,完全成功。 我不认为我必须先卸载文件系统。如果您以在 /home 中拥有 homedir 的人身份登录,您将无法执行此操作,因此请以 root 身份登录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      相关资源
      最近更新 更多