XFS是否支持默认配额?

我们需要为所有用户设置一个默认配额。 从我能从man 8 xfs_quota看到的,你只能为个人用户设置配额。 我需要设置一个适用于每个用户的配额,而不必枚举每个用户。

不知道你错过了这个,如果你看过手册页。

 limit [ -gpu ] bsoft=N | bhard=N | isoft=N | ihard=N | rtbsoft=N | rtb‐ hard=N -d | id | name Set quota block limits (bhard/bsoft), inode count limits (ihard/isoft) and/or realtime block limits (rtbhard/rtbsoft). The -d option (defaults) can be used to set the default value that will be used, otherwise a specific user/group/project name or numeric identifier must be specified. 

所以你会设置一个默认的配额:

 # xfs_quota -x -c 'limit bsoft=1g bhard=1g -d' /home 

我在这里添加一些东西,希望能帮助其他人解决同样的问题。

我有一个单独的XFS文件系统安装uquota。 我有多个用户使用我想限制的文件系统,还有一个超级用户(我们称之为“lisa”),我不想限制他们。 我也有一个postgres数据库在这里(由用户“postgres”拥有),我不想限制。

我发现xfs_quota手册页在描述默认限制实际上是如何工作的时候有点缺乏,而且在其他任何地方都找不到任何资源,所以这就是我发现的。

设置默认限制…

 xfs_quota -x -c 'limits bsoft=45G bhard=50g -d' /myxfs 

了不起。 所有配额都将被设置,任何login的新用户都将自动获得默认限制。 现在,我将通过将其限制显式设置为0来排除我的超级用户和postgres的默认值。

 xfs_quota -x -c 'limits bsoft=0 bhard=0 lisa' /myxfs xfs_quota -x -c 'limits bsoft=0 bhard=0 postgres' /myxfs 

现在我会得到一份报告

 xfs_quota -x -c 'report -h' /myxfs User quota on /myxfs (/dev/sdc1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 22.3G 45G 50G 00 [------] postgres 59.1G 0 0 00 [------] lisa 13.4T 0 0 00 [------] 

看起来很棒! 对? 错误! 尽pipe这个报告,postgres和lisa仍然有限,仍然使用默认限制。 只要我尝试以任何用户的身份写入任何内容并再次运行报告…

  Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 22.3G 45G 50G 00 [------] postgres 59.1G 45G 50G 00 [------] lisa 13.4T 45G 50G 00 [------] 

设置已经恢复!

为了解决这个问题,你必须将你想要的用户限制设置为非零值。 所以把它设置得很高。 我把我的设定为PB。

  Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 22.3G 45G 50G 00 [------] postgres 59.1G 1000T 1000T 00 [------] lisa 13.4T 1000T 1000T 00 [------] 

这可以防止我的超级用户和postgres数据库被限制,同时保持所有其他用户的“默认”50G限制。

有几件事要注意:

  • 根用户(或UID 0)永远不会被xfs_quota(根据手册页)
  • 如果您想知道为什么没有其他用户显示在我的报告中,这是因为我通过NFS导出它们,尽pipe限制正在工作,并且我可以在客户端上看到它们,但是这不会在服务器上默认报告

希望这有助于某人。

编辑:您可以通过指定上限来显示更多的UID。 例如

 xfs_quota -x -c 'report -U 50000 -h' /storage/1 User quota on /myxfs (/dev/sdc1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- #0 22.3G 50G 75G 00 [------] #26 59.1G 1000T 1000T 00 [------] #1000 13.4T 1000T 1000T 00 [------] #2615 55.9G 0 0 00 [------] #2705 207.4M 0 0 00 [------] #2707 168.1G 50G 75G 00 [-none-] #2718 178.5M 50G 75G 00 [------] #16661 245.9M 0 0 00 [------] #18806 0 50G 75G 00 [------] #24403 2.5M 0 0 00 [------] #24583 100K 50G 75G 00 [------] #26153 4.1G 50G 75G 00 [------] #26618 40K 0 0 00 [------] #26765 320K 50G 75G 00 [------] #27175 15.1G 50G 75G 00 [------] #27189 2.5M 50G 75G 00 [------] 

真棒!