4.9. 在 NFS 服务器中启用配额支持

如果要限制用户或组群可以存储的数据量,您可以在文件系统中配置配额。在 NFS 服务器上,rpc-rquotad 服务确保配额也应用于 NFS 客户端上的用户。

先决条件

  • NFS 服务器正在运行并已配置。
  • 配额已在 extXFS 文件系统上配置。

流程

  1. 验证您导出的目录中是否启用了配额:

    • 对于 ext 文件系统,请输入:

      # quotaon -p /nfs/projects/
      group quota on /nfs/projects (/dev/sdb1) is on
      user quota on /nfs/projects (/dev/sdb1) is on
      project quota on /nfs/projects (/dev/sdb1) is off
    • 对于 XFS 文件系统,请输入:

      # findmnt /nfs/projects
      TARGET    	SOURCE	FSTYPE OPTIONS
      /nfs/projects /dev/sdb1 xfs	rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,usrquota,grpquota
  2. 安装 quota-rpc 软件包:

    # dnf install rpc-quotad
  3. 可选。默认情况下,配额 RPC 服务在端口 875 上运行。如果要在不同的端口上运行该服务,请将 -p <port_number> 附加到 /etc/sysconfig/rpc-rquotad 文件中的 RPCRQUOTADOPTS 变量中:

    RPCRQUOTADOPTS="-p __<port_number>__"
  4. 可选: 默认情况下,远程主机只能读取配额。要允许客户端设置配额,请将 -S 选项附加到 /etc/sysconfig/rpc-rquotad 文件中的 RPCRQUOTADOPTS 变量中:

    RPCRQUOTADOPTS="-S"
  5. firewalld 中打开端口:

    # firewall-cmd --permanent --add-port=875/udp
    # firewall-cmd --reload
  6. 启用并启动 rpc-quotad 服务:

    # systemctl enable --now rpc-rquotad

验证

  1. 在客户端中:

    1. 挂载导出的共享:

      # mount server.example.com:/nfs/projects/ /mnt/
    2. 显示配额。命令取决于导出的目录的文件系统。例如:

      • 要显示所有挂载的 ext 文件系统上的特定用户的配额,请输入:

        # quota -u <user_name>
        Disk quotas for user demo (uid 1000):
             Filesystem     space     quota     limit     grace     files     quota      limit     grace
        server.example.com:/nfs/projects
                     0K       100M      200M                  0         0         0
      • 要在 XFS 文件系统中显示用户和组群配额,请输入:

        # xfs_quota -x -c "report -h" /mnt/
        User quota on /nfs/projects (/dev/vdb1)
                    Blocks
        User ID     Used     Soft     Hard     Warn/Grace
        ---------- ---------------------------------
        root        0        0        0        00 [------]
        demo        0        100M     200M     00 [------]

其它资源

  • quota (1) 手册页
  • xfs_quota(8) man page