您可以在 ZFS 中设置 inode 配额吗?

chr*_*ris 5 solaris zfs

我从oracle 站点上文档中找出了如何在 ZFS 中设置块配额。

不过,我没有看到是否/如何设置用户获得多少 inode 的配额。我意识到 ZFS 文件系统的 inode 数量可能没有限制,但是当我的用户创建一个 10,000 个目录深的目录树时,每个目录包含 300 个文件,处理起来有点麻烦。

如果您可以在 oracle 存储设备中设置它,则加分...

小智 7

简答

长答案

引自“第 1 章 Oracle Solaris ZFS 文件系统(介绍)”

所有元数据都是动态分配的,因此在首次创建文件系统时无需预先分配 inode 或以其他方式限制文件系统的可扩展性。

...文件系统的数量或文件系统中可以包含的文件数量没有限制。

早在 2009 年,zfs-discuss邮件列表上也曾讨论过同样的问题。

Re: [zfs-discuss] ZFS 目录和文件配额

我找不到有关如何在 ZFS 中设置文件配额(即每个文件系统/目录的最大文件数)或目录配额(特定目录中的文件可以使用的最大大小)的任何说明。

那是因为它不存在。

这是 2010 年 8 月邮件列表中的另一个很好的引用:

回复:[zfs-discuss] ZFS 文件系统的文件系统所有权详细信息。

ZFS 没有固定数量的 inode,因此本身无法计算限制。ZFS 将空间用于元数据,因此只要您有可用空间,就可以将其用于元数据。

2010年的另一个线程中,讨论了如何根据总空间计算 ZFS 文件系统的 inode 数量(还提供了一个有用的脚本)。

引用其中一个回复

在 ZFS 中,您将在空间不足的同时耗尽 inode。

可能的解决方案

但是,您可以通过在 ZFS zvol 上使用 UFS 文件系统来强制执行用户级 inode 配额。