磁盘配额

Posted 莫孟林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘配额相关的知识,希望对你有一定的参考价值。

磁盘配额

配额允许您控制用户或者组织的磁盘使用。它能防止个体用户和组织使用文件系统中超过自己所允许的部分,或者造成系统完全拥堵。XFS 文件系统也支持项目配额,它限制了一个项目所能使用的空间大小,无论哪个用户在项目的目录树中创建文件。

配额必须由 root 用户或者有 root 权限的用户启用和管理。它们往往用于多用户系统,不常用于单一用户的工作站。

以下为设置磁盘配额的操作方法,分为两个例子,ext4和xfs

ext4:

用/dev/sdb2 分区和ian用户来做实验

  1. mkfs.ext4 /dev/sdb2 #创建ext4文件系统
  2. mkdir /mnt/ext4 #创建一个挂载点
  3. mount -o ursquota,grpquota /dev/sdb2 /mnt/ext4 #临时实验,直接用mount进行挂载 ,也可以在fstab中添加记录“/dev/sdb2 /mnt/ext4 ext4 usrquota,grpquota 0 0 ” 然后使用mount -a 进行挂载
  4. quotacheck -cug /mnt/ext4 #创建配额数据库
  5. quotaon -p /mnt/ext4 #查看是否启用了配额
  6. quotaon /mnt/ext4 #启用配额
  7. edquota ian #打开一个以vim为编辑器的文本
  8. edquota ian
  9. Disk quotas for user wang (uid 500):
  10. Filesystem blocks soft hard inodes soft hard
  11. /dev/sda6 1164 800000 1000000 159 162 165

第一个 soft 为警告配额,第一个hard的为最大上限配额,当soft值达到之后,用户在7天之内还可以写入文件,当达到hard上限时,将直接不能进行写操作。

inodes为可以使用的 inodes个数,第二个soft为inodes个数的警告额度用户在7天之内还可以使用inode的个数,第二个hard为上限额度

 

xfs的磁盘配额:

用/dev/sdb3 分区和ian用户来做实验

对 XFS 文件系统来说,配额数据是文件系统元数据的一部分。对其他文件系统来说,用户配额信息存储在文件系统 root 的 aquota.user 文件,组配额也同样存储在 aquota.group。版本 1 配额使用 quota.user 和 quota.group。对这些文件系统来说,重新安装完文件系统之后,您必须创建配额文件,并启用配额进行检测。quotacheck 命令检查所有文件系统上的配额,如果 aquota.user 和 aquota.group 文件不存在,就会创建所需的 aquota.user 和 aquota.group 文件。

当执行quotacheck  -cug 的时候会跳过,xfs的配额功能默认是开启的。

  1. mkdir /mnt/xfs
  2. mkfs.xfs /dev/sdb3
  3. mount -o usrquota,grpquota /mnt/xfs
  4. quotacheck -acug # xfs的检查会跳过
  5. #对 XFS 文件系统来说,配额检查是默认启动的,除非文件安装了 uqnoenforce,gqnoenforce 或者 pqnoenforce 设置。
  6. #使用 xfs_quota 命令和 -x(适用于 专家)选项控制 xfs 配额。没有 -x 选项,您显示配额信息会受到限制。
  7. #命令还有一些子命令,包括 help,用于显示可用的子命令清单,state,用于显示整体状况,enable,用于启用配额检测,还有 disable,用于停止。
  8. #选项 -u、-g 和 -p 分别限制用户、组或项目的行为。
  9. #使用 -v 获得 verbose 输出。您可以在命令行模式运行命令,命令行中独立的子命令由 -c 选项指明。
  10. #您可以多次指定多种子命令的该选项。如果您将指定子命令的选项,可能就需要引用命令。
  11. #清单中显示了一些例子。
  12. [[email protected] ~]# xfs_quota -x /mnt/xfs
  13. xfs_quota> state
  14. User quota state on /mnt/xfs (/dev/sda3)
  15. Accounting: ON
  16. Enforcement: ON
  17. Inode: #131 (3 blocks, 3 extents)
  18. Group quota state on /mnt/xfs (/dev/sda3)
  19. Accounting: ON
  20. Enforcement: ON
  21. Inode: #132 (3 blocks, 3 extents)
  22. Project quota state on /mnt/xfs (/dev/sda3)
  23. Accounting: OFF
  24. Enforcement: OFF
  25. Inode: #132 (3 blocks, 3 extents)
  26. Blocks grace time: [7 days 00:00:30]
  27. Inodes grace time: [7 days 00:00:30]
  28. Realtime Blocks grace time: [7 days 00:00:30]
  29. xfs_quota> disable #禁用配额功能
  30. xfs_quota> quit
  31. [[email protected] ~]# xfs_quota -x -c "enable -gu -v" /mnt/xfs #启用配额功能
  32. User quota state on /mnt/xfs (/dev/sda3)
  33. Accounting: ON
  34. Enforcement: ON
  35. Inode: #131 (3 blocks, 3 extents)
  36. Group quota state on /mnt/xfs (/dev/sda3)
  37. Accounting: ON
  38. Enforcement: ON
  39. Inode: #132 (3 blocks, 3 extents)
  40. Blocks grace time: [7 days 00:00:30]
  41. Inodes grace time: [7 days 00:00:30]
  42. Realtime Blocks grace time: [7 days 00:00:30]
  43. edquota ian #进行配额,配置和ext4的一样

edquota -p user1 user2  #该命令可以将user1的配额的配置,按照同样的配置,配置给user2

setquota usename 4096 5120 40 50 /foo #省略vim编辑器的配置,直接在命令行进行配置,与edquota 内的值一一对应

以上是关于磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章

linux的磁盘配额

linux使用磁盘配额管理

磁盘配额

centos7的磁盘配额有啥特点

磁盘配额实验

22磁盘管理—磁盘配额详解