磁盘的配额

1.磁盘为什么要进行配额----因为磁盘内的资源不是无限的,不给磁盘做限额就会导致一些不平衡的事情发生,所以我们要做配额

2.磁盘的限制对象

磁盘限制可以对系统中的普通用户和用户组生效,一般也只会针对这两个。

注意:磁盘限制对root用户是无效的,只有root才可以对其他用户进行限额

3.所应用的场景

一般多适用于网络存储空间有限的比如:网盘、云盘、邮件服务器、公司的共享服务器等场景

4.那磁盘配额能限制什么呢

inode----限制用户或用户组创建文件的个数

block----限制用户或用户组能够使用的磁盘空间的大小

补充:限制分为硬限制和软限制还有宽限时间

硬限制:是不可逾越的限制,如果超过这个限制系统会告诉你不能超过该限制,并且会把超过限制的部分给删除掉,无法创建

软限制:你是可以超过这个限制的,并不影响使用,但是超过这个限制系统就会给你发送警告信息了

宽限时间:当你超过软限制并没有超过硬限制,就会启动这个机制,一旦启动这个机制,你就会在规定时间内叫你删除超过软限制的部分,如果在规定时间内没有执行操作,那么软限制就会变成硬限制

介绍完磁盘配额理论部分,我们来看看实际操作怎么做

首先先检查你的内核版本支不支持这个操作

在/boot/目录下有很多文件或目录,找到以conf开头的config-3.10.0-693.el7.x86_64 这个文件

执行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

回显这样就是差不多可以

不同的文件系统磁盘配额的设置方式大致一样,但是还是有一点差别以xfs和ext4举例

xfs文件系统格式化

格式 :xfs_quota -x -c "limit -u/g bsoft=N bhard=N usrname/grpname" quota path

对用户设置磁盘配额

#首先把磁盘挂载起来,选中文件系统为xfs xfs文件系统支持磁盘配额的属性user)quota g(组group)quota

mkfs.xfs /dev/sdb1

 #查看文件系统是否支持磁盘配额  举例我们磁盘挂载到/data目录下

mount | grep /data(挂载的文件夹或者磁盘) 

/dev/sdb1 on /data type xfs (rw,relatime,seclabel,attr2,inode64,noquota) 可以看到没有我所说的两个属性,这时我们就添加这两个属性

mount -o remount,uquota,gquota /dev/sdb1 /data

-o 是选项,可以添加属性挂载、remount 重新挂载

#添加完成后我们可以重新查看一下属性

mount | grep /data

/dev/sdb1 on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota) 可以看到已经添加上去了

#我们可以设置开机自挂载

vim /etc/fstab

/dev/sdb1 /data  xfs defaults,uquota,gquota  0  0

#创建用户来测试看有没有被限制

useradd p1

useradd p2

修改用户密码 这里用非交互式的

echo 1 | passwd --stdin p1

echo 1 | passwd --stdin p2

#到这我们就可以看看用户磁盘配额状态

xfs_quota -x -c 'report -uibh' /data

User quota on /data (/dev/sdc1)
                        Blocks                            Inodes              
User ID      Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
---------- --------------------------------- --------------------------------- 
root            0      0      0  00 [------]      3      0      0  00 [------]

设置对用户的限额

xfs_quota -x -c 'limit -u isoft=7 ihard=10 quota1 ' /data

isoft  设置inode的软限制

ihard  设置inode的硬限制

做完这些我们可以去测试

再给测试文件目录添加文件时注意普通用户是否有写入权限,不然是测试不了的

chmod 777 /data

切换用户进行测试

su - p1

[quota1@client ~]$ cd /data   # 一定要切换到做了配额的目录下在操作
[quota1@client data]$ touch test{1..8}.txt
[quota1@client data]$ touch test{9,10}.txt
[quota1@client data]$ touch test11.txt
touch: 无法创建"test11.txt": 超出磁盘限额

组的跟用户相差不多,就是要把用户放在同一组,设置配额就把u改成g

ext4的配额

首先先下载配额工具

yum -y install quota

前几步上xfs一样,查看有没有属性没有就添加进去

#到不一样的地方了

ext4配额是需要生成quota数据库的,就用我们刚刚下载的工具

quotacheck -acgu

-a  所有分区(已支持配额)

-c  创建

-g  组

-u  用户

#启动磁盘配额

quotaon  -avug

如果你要查看磁盘配额情况就使用下面命令查看

quota -uvs user1

修改宽限时间

quota常用命令

1)    临时禁用quota
xfs_quota -x -c "disable -up" /data
xfs_quota -x -c "state" /data    检查quota状态

2)    临时启用quota
xfs_quota -x -c "enable -up" /data

3)    完全关闭quota
xfs_quota -x -c "off -up" /data

4)    删除quota限制(无法恢复)
xfs_quota -x -c "off -up" /data
xfs_quota -x -c "remove -p" /data
xfs_quota -x -c "limit -u isoft=0 ihard=0 quota1" /data   将配额值设为0(无配额限制)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值