Linux-磁盘配额
一、 什么是磁盘配额?
限制磁盘资源的使用 – 限制原因就是资源不是无限的。
1.1 应用场景
- 网络存储空间有限 网盘
- 邮件服务器
- 公司的文件共享服务器
1.2 限制对象
-
限制普通用户
-
限制用户组
注意:不能限制root用户
root用户对其他人的限制
1.3 能够限制什么?
- inode ---- 限制用户创建文件的个数
- block ---- 限制用户能够使用的磁盘空间的大小
# soft软限制:超过软限制只警告,不影响使用
# hard硬限制:是不可逾越的限制
# grace time 时间限制:宽限时间,当超过软限制,没有超过硬限制的时候,将启动倒计时,一般默认设置为7天,如 果7天内都不进行任何磁盘管理操作,软限制将变成硬限制。
1.4 设置配额的条件
# 需要内核支持quota功能
[root@client ~]# grep -i quota /boot/config-3.10.0-693.el7.x86_64
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
1.5 磁盘配额案例
不同的文件系统磁盘配额的设置方式大致是一样的,但是还是有一定的区别,下列以xfs文件为例:
1.5.1 XFS文件系统设置磁盘配置
语法:
xfs_quota-x -c "limit -u/g bsoft=N bhard=N usrname/grpname" quota path
1.5.1.1 对用户设置磁盘配置
# 前提是文件系统支持磁盘配额的属性uquota gquota
# 将文件系统挂载到系统中的目录
# mount /dev/sdc1 /data
# 查看文件系统是否支持磁盘配额
[root@client ~]# mount | grep data
/dev/sdc1 on /data type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
# 让文件系统支持磁盘配额
[root@client ~]# umount /data
[root@client ~]# mount -o uquota,gquota /dev/sdc1 /data
[root@client ~]# mount | grep data
/dev/sdc1 on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
# 设置分区开机挂载
[root@client ~]# vim /etc/fstab
/dev/sdc1 /data xfs defaults,uquota,gquota 0 0
# 创建普通用户并设置密码
[root@client ~]# useradd quota1
[root@client ~]# useradd quota2
[root@client ~]# useradd quota3
[root@client ~]# echo "1" | passwd --stdin quota1
更改用户 quota1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@client ~]# echo "1" | passwd --stdin quota2
更改用户 quota2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@client ~]# echo "1" | passwd --stdin quota3
更改用户 quota3 的密码 。
passwd:所有的身份验证令牌已经成功更新。
# 查看磁盘配额的信息
[root@client ~]# xfs_quota -x -c 'report -ubih' /data
User quota on /data (/dev/sdc1)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grac