Ram*_*hum 7 linux nfs disk-space-utilization
我在系统管理方面很烂,所以如果我有一些基本的错误,请告诉我。
这是让我发疯的事情。在工作中,我们有一个大型 NFS 服务器,为我们公司的所有员工提供服务。每个人都有一定数量的 GB 可以写入。我经常收到“超出配额”的错误,因为我运行了一些生成大量临时文件然后删除它们的程序,但在他们删除它们之前,它们达到了配额。
在与我们的系统管理员交谈后,我了解到我的配额已经增加到远远超出这些测试所需的数量,但似乎我将这个配额花在了我的主文件夹以外的地方。系统管理员向我解释说,NFS 服务器中以我的用户名作为所有者的每个文件都计入我的配额。
我想获得这些文件的列表,以便我可以删除很多不再需要的文件。但他告诉我,唯一的方法是搜索整个公司的整个文件系统,遍历每个人的主文件夹。即,一个耗时的过程。他现在正在做这个搜索。
对我来说听起来很奇怪的是:当 Linux 给我一个“超出配额”的错误时,它似乎能够立即知道我正在超过我的配额。不是一个耗时的过程。那么,如果不进行长时间的搜索,我为什么无法获得计入我的配额的文件列表?
我可以想到可能导致您的配额问题的两件事。
首先,您应该知道配额是通过在文件系统上创建一个微型数据库来实现的,每次创建、修改或删除文件时都会更新该数据库。(实际上有两个,一个用于用户配额,一个用于组配额。)当配额第一次打开时,这个数据库是通过检查文件系统上每个文件的使用情况并记录每个用户和/或每个文件的结果来初始化的。在这些文件中分组。因为每次有活动时文件系统驱动程序都会使它们保持最新,所以查找用户的当前配额使用情况很快。
有一个问题。如果文件系统没有完全卸载,配额数据库可能会损坏,例如,如果硬断电。发生这种情况时,管理员应该 在重新启动系统时运行quotacheck以验证和重建数据库,但这可能不会发生。或者宇宙射线或硬盘驱动器故障可能会损坏它们。
quotacheck但是,运行需要卸载文件系统,或者至少以只读方式安装,因此在重建配额数据库时无法使用它。这可能需要很长时间,因此不幸的是很少有人完成。NFS 服务器管理员应安排停机时间以检查文件系统配额,并应考虑更改程序,以便quotacheck在崩溃后重新启动时始终运行。
其次,根据您的描述,您可能已达到 inode 配额。除了限制磁盘空间量之外,配额还可以限制可以创建的文件数量。如果您创建了大量临时文件,那么这可能就是正在发生的事情。您(或 NFS 服务器管理员)也应该检查这个。运行quota -s以查看与您的限制相比,数据库认为您使用了什么。