Centos7磁盘配额
一、磁盘配额概述
因为 Linux 是一个多用户管理的操作系统,所以配置磁盘配额是为了防止某用户疏忽或者恶意占满磁盘空间,而导致磁盘崩溃。
1.作用
避免磁盘空间耗尽,从而出现服务程序崩溃,系统无法启动等故障。
2.实现功能
可以限制用户在指定文件系统使用的空间。
可以限定用户在指定文件系统对文件数量进行限制。
3.目的
避免个别用户恶意或无意占用磁盘空间,从而保持系统的稳定性和可持续性。
4.实现条件
内核支持 (CentOS 系统中已经定制了支持 Linux 文件系统的磁盘配额功能)
系统中需要配置和管理磁盘配额工具由 xfsprogs 软件包的 xfs_quota 配额管理程序提供。
注意: XFS 文件系统通过 xfs_quota 工具进行管理; EXT3/4 文件系统通过 quota 工具进行管理。
5.限制对象
可以针对指定的用户账户和组账户进行限制。
6.限制类型
磁盘容量限制: 限制磁盘空间大小,默认单位是 kb。
文件数量限制: 限制拥有的文件个数;
每一个文件都有一个对应的数字标记,称为 i 结点编号,这个编号在文件系统内是唯一的,所以可通过 i 结点数量来限制文件数量。
7.限制方法
软限制:在固定期限内(默认7天)是允许超过这个限制,但系统会给出警告信息。
硬限制:指定一个配额数值,是绝对禁止用户超过的限制值 (超出硬限制时,系统会给出警告并禁止继续写入数据)
二、实验要求
创建一个名为 zhangsan 的用户,给其设置容量限制和文件数量限制,其中容量限制的软配额为 80M,硬配额为 100M,文件数量的软配额为 40,硬配额为 50
三、实验步骤
1.添加一块 20G 硬盘,并将硬盘转为物理卷
[root@localhost ~]# pvcreate /dev/sdb
1
2.创建一个名为 test 的卷组,将物理卷添加到卷组当中
[root@localhost ~]# vgcreate test /dev/sdb
1
3.在原有卷组上创建一个逻辑卷,大小为 5G,名为 zhangsan
[root@localhost ~]# lvcreate -L 5G -n zhangsan test
1
4.对逻辑卷进行格式化文件系统
[root@localhost ~]# mkfs.xfs /dev/test/zhangsan
1
5.检查 xfsprogs 软件包是否安装
[root@localhost ~]# rpm -q xfsprogs
1
6.创建一个挂载目录 /zhangsan
[root@localhost ~]# mkdir /zhangsan
1
7.以支持磁盘配额功能方式挂载文件系统
[root@localhost ~]# mount -o usrquota,grpquota /dev/test/zhangsan /zhangsan/
1
8.赋予 /zhangsan 目录 777 权限方便后续测试,任何用户都可以写入
[root@localhost ~]# chmod 777 /zhangsan/
1
9.设置自动挂载
[root@localhost ~]# echo "/dev/test/zhangsan /zhangsan xfs defaults,usrquota,grpquota 0 0" >> /etc/fstab
1
10.创建用户,并设置密码
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# echo 123 | passwd --stdin zhangsan
1
2
11.进行磁盘配额
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /zhangsan
1
12.查看容量限制
[root@localhost ~]# xfs_quota -c 'quota -uv zhangsan' /zhangsan
1
13.查看文件数量限制
[root@localhost ~]# xfs_quota -c 'quota -uvi zhangsan' /zhangsan
1
14.切换用户验证
[root@localhost ~]# su - zhangsan
1
15.通过 dd 转换工具,可快速查看效果
第一步:创建一个 9M 数据大小的文件
[zhangsan@localhost ~]$ dd if=/dev/zero of=/zhangsan/a.txt bs=1M count=9
[zhangsan@localhost ~]$ ls -lh /zhangsan/
1
2
第二步:将 9M 的数据删除,创建一个 86M 的数据
[zhangsan@localhost ~]$ dd if=/dev/zero of=/zhangsan/a.txt bs=1M count=86
[zhangsan@localhost ~]$ ls -lh /zhangsan/
1
2
第三步:将 86M 的数据删除,创建一个 110M 的数据
[zhangsan@localhost ~]$ dd if=/dev/zero of=/zhangsan/a.txt bs=1M count=110
[zhangsan@localhost ~]$ ls -lh /zhangsan/
1
2
16.查看磁盘容量使用情况
[zhangsan@localhost ~]$ su - root
[root@localhost ~]# xfs_quota -x -c 'report -ab'
1
2
17.配置文件数量限制(创建 20 个文件,发现能够正常创建)
[root@localhost ~]# su - zhangsan
[zhangsan@localhost ~]$ rm -rf /zhangsan/a.txt
[zhangsan@localhost ~]$ touch /zhangsan/a{1..20}.txt
[zhangsan@localhost ~]$ ls /zhangsan/
1
2
3
4
创建 48 个也是能够够正常创建的,因为 50 个才是硬配额
[zhangsan@localhost ~]$ touch a{1..48}.txt
[zhangsan@localhost ~]$ ls /zhangsan/ | wc -w
1
2
创建 51 个时发现创建第 51 个时失败,实际上只创建了 50 个
[zhangsan@localhost ~]$ touch /zhangsan/a{1..51}.txt
[zhangsan@localhost ~]$ ls /zhangsan/ | wc -w
1
2
18.查看文件数量磁盘配额
[zhangsan@localhost ~]$ su - root
[root@localhost ~]# xfs_quota -x -c 'report -ai'
1
2
四、在配置磁盘限制时应注意
-x : 表示启动专家模式
-c: 表示直接调用管理命令
-u: 表示用户配额 (注意:如果是对组做配额,用-g)
bsoft: 容量的软限制
bhard: 容量的硬限制
isoft: 文件数的软限制
ihard:文件数的硬限制
注意:当配置完用户配额时再配置组配额的话就需要进行刷新 quotaoff(关闭)然后再quotaon(开启)
-u 启动或关闭用户的磁盘配额
-g 启动或关闭组的磁盘配额
-v 显示启动过程信息
quota 加下列参数可进行查看
-u 用户名
-g 组名
-v 显示详细信息
-s 以常见单位显示大小
常见组合:-uvs -gvs
通过 repquota 可查询指定分区磁盘配额
-u 查询用户配额
-g 查询组配额
-v 显示详情
-s 以常见单位显示
可以同时查看用户和组 组合: -ugvs
edquota 选项 用户/组
-u:修改用户的限额配置
-g:修改组的限额配置