1.5. XFS 和 ext4 的比较

XFS 是 RHEL 中的默认文件系统。本节比较 XFS 和 ext4 的用法和功能。

元数据错误行为
在 ext4 中,当文件系统遇到元数据错误时您可以配置行为。默认的行为是继续操作。当 XFS 遇到不可恢复的元数据错误时,它会关闭文件系统,并返回 EFSCORRUPTED 错误。
配额

在 ext4 中,您可以在创建文件系统时启用配额,或稍后在现有文件系统上启用配额。然后您可以使用挂载选项配置配额强制。

XFS 配额不是一个可重新挂载的选项。您必须在初始挂载中激活配额。

在 XFS 文件系统上运行 quotacheck 命令没有效果。当您第一次打开配额记帐时,XFS 会自动检查配额。

文件系统重新定义大小
XFS 没有工具来缩小文件系统的大小。您只能增大 XFS 文件系统的大小。而 ext4 支持扩展和缩小文件系统大小。
内节点(inode)号

ext4 文件系统不支持超过 232 内节点。

XFS 动态分配内节点。只要文件系统上存在空闲空间,XFS 文件系统就无法耗尽 inode 。

某些应用程序无法正确处理 XFS 文件系统上大于232 的 inode 数。这些应用程序可能会导致 32 位 stat 调用失败,返回值为 EOVERFLOW 。在以下情况下,inode 数超过 232:

  • 文件系统大于 1 TiB,其 inode 为 256 字节。
  • 文件系统大于 2 TiB,其 inode 为 512 字节。

如果您的应用程序由于 inode 数太大而失败,请使用 -o inode32 选项挂载 XFS 文件系统,来强制inode 数低于 232。请注意,使用 inode32 不会影响已分配了 64 位数的 inode。

重要

除非特定环境需要,否则 请勿 使用 inode32 选项。inode32 选项可改变分配行为。因此,如果没有可用空间在较低磁盘块中分配 inode ,则可能会出现 ENOSPC 错误。