ZFS 如何避免 inode 数量耗尽,以及为什么它没有在以前的文件系统(例如 ext4)中实现?

ZFS 如何避免 inode 数量耗尽,以及为什么它没有在以前的文件系统(例如 ext4)中实现?

Oracle ZFS 指南第 1 章指出

所有元数据都是动态分配的,因此无需预先分配 inode

这是个惊喜,但让我疑惑的是为什么 ZFS 用来实现这一点的方法没有在其他文件系统(例如 ext4)中实现。例如,一些邮件服务器面临的 inode 号耗尽问题就是添加此功能的理由。

我不确定在哪里可以找到有关必须限制 ext4 中的 inode 数量的原因的详细信息(例如)或者 ZFS 必须做出哪些妥协才能实现几乎无限的 inode 数量。

答案1

XFS 实际上具有无限的 inode(请maxpct参阅mkfs.xfs 手册页-mxfs_growfs),所以它不是 ZFS 独有的功能。

EXT4 是 EXT2 的直接后代,它将 inode 实现为静态结构。在 EXT3 和 EXT4 的各种升级中,这一核心思想保持不变。

相关内容