磁盘配额
配额允许您控制用户或者组织的磁盘使用。它能防止个体用户和组织使用文件系统中超过自己所允许的部分,或者造成系统完全拥堵。XFS 文件系统也支持项目配额,它限制了一个项目所能使用的空间大小,无论哪个用户在项目的目录树中创建文件。
配额必须由 root 用户或者有 root 权限的用户启用和管理。它们往往用于多用户系统,不常用于单一用户的工作站。
以下为设置磁盘配额的操作方法,分为两个例子,ext4和xfs
ext4:
用/dev/sdb2 分区和ian用户来做实验
- mkfs.ext4 /dev/sdb2 #创建ext4文件系统
- mkdir /mnt/ext4 #创建一个挂载点
- mount -o ursquota,grpquota /dev/sdb2 /mnt/ext4 #临时实验,直接用mount进行挂载 ,也可以在fstab中添加记录“/dev/sdb2 /mnt/ext4 ext4 usrquota,grpquota 0 0 ” 然后使用mount -a 进行挂载
- quotacheck -cug /mnt/ext4 #创建配额数据库
- quotaon -p /mnt/ext4 #查看是否启用了配额
- quotaon /mnt/ext4 #启用配额
- edquota ian #打开一个以vim为编辑器的文本
- edquota ian
- Disk quotas for user wang (uid 500):
- Filesystem blocks soft hard inodes soft hard
- /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的配额功能默认是开启的。
- mkdir /mnt/xfs
- mkfs.xfs /dev/sdb3
- mount -o usrquota,grpquota /mnt/xfs
- quotacheck -acug # xfs的检查会跳过
- #对 XFS 文件系统来说,配额检查是默认启动的,除非文件安装了 uqnoenforce,gqnoenforce 或者 pqnoenforce 设置。
- #使用 xfs_quota 命令和 -x(适用于 专家)选项控制 xfs 配额。没有 -x 选项,您显示配额信息会受到限制。
- #命令还有一些子命令,包括 help,用于显示可用的子命令清单,state,用于显示整体状况,enable,用于启用配额检测,还有 disable,用于停止。
- #选项 -u、-g 和 -p 分别限制用户、组或项目的行为。
- #使用 -v 获得 verbose 输出。您可以在命令行模式运行命令,命令行中独立的子命令由 -c 选项指明。
- #您可以多次指定多种子命令的该选项。如果您将指定子命令的选项,可能就需要引用命令。
- #清单中显示了一些例子。
- [root@echidna ~]# xfs_quota -x /mnt/xfs
- xfs_quota> state
- User quota state on /mnt/xfs (/dev/sda3)
- Accounting: ON
- Enforcement: ON
- Inode: #131 (3 blocks, 3 extents)
- Group quota state on /mnt/xfs (/dev/sda3)
- Accounting: ON
- Enforcement: ON
- Inode: #132 (3 blocks, 3 extents)
- Project quota state on /mnt/xfs (/dev/sda3)
- Accounting: OFF
- Enforcement: OFF
- Inode: #132 (3 blocks, 3 extents)
- Blocks grace time: [7 days 00:00:30]
- Inodes grace time: [7 days 00:00:30]
- Realtime Blocks grace time: [7 days 00:00:30]
- xfs_quota> disable #禁用配额功能
- xfs_quota> quit
- [root@echidna ~]# xfs_quota -x -c "enable -gu -v" /mnt/xfs #启用配额功能
- User quota state on /mnt/xfs (/dev/sda3)
- Accounting: ON
- Enforcement: ON
- Inode: #131 (3 blocks, 3 extents)
- Group quota state on /mnt/xfs (/dev/sda3)
- Accounting: ON
- Enforcement: ON
- Inode: #132 (3 blocks, 3 extents)
- Blocks grace time: [7 days 00:00:30]
- Inodes grace time: [7 days 00:00:30]
- Realtime Blocks grace time: [7 days 00:00:30]
- edquota ian #进行配额,配置和ext4的一样
edquota -p user1 user2 #该命令可以将user1的配额的配置,按照同样的配置,配置给user2
setquota usename 4096 5120 40 50 /foo #省略vim编辑器的配置,直接在命令行进行配置,与edquota 内的值一一对应