1、需要安装Linux内核支持
2、安装xfsprogs与quota软件包
1、作用范围:针对指定的文件系统(分区)
2、限制对象:用户账号、组账号
3、限制类型:磁盘容量、文件数量
4、限制方法:软限制、硬限制
限制可以允许用户或组暂时性突破限制容量上限,时限为7天 7天后未处理则将多出的部分删除。
软限制<=硬限制
软限制可以通过命令实现,硬限制需要从配置文件中进行设置
大部分命令设置都是临时性质、重启后可能会失效。在配置文件中设置则可以永久生效。
1、以支持配额功能的方式挂载文件系统
2、编辑用户和组账号的配额设置
3、验证磁盘配额功能
4、查看磁盘配额使用情况
环境:之前我们已添加了3块磁盘,并进行了分区,格式为LVM。同时,我们创建了LVM(逻辑卷),卷组名为:mailbox。逻辑卷名为:mbox01,已挂载到/opt/mbox2。详情可见:LVM逻辑卷管理详细实验过程
命令:rpm -qa |grep xfsprogs
rpm -ql |grep quota
示例:
[root@localhost ~]# rpm -qa | grep xfsprogs (查看已安装的软件包,只查询xfsprogs软件包)
xfsprogs-4.5.0-12.el7.x86_64 (软件包已安装)
[root@localhost ~]# rpm -ql xfsprogs |grep quota (查看此软件包中是否有quota组件)
/usr/sbin/xfs_quota
/usr/share/man/man8/xfs_quota.8.gz
(查询可见我们已有这两个组件,可以使用这两条命令)
有了这个软件包及这两个组件,我们就可以使用磁盘配额功能。如果我们电脑里查询不到xfsprogs软件包,那么我们可以使用“yum install”进行安装。
我们这里使用的文件系统是xfs文件系统,配额形式是不一样的,不同于ext4、ext3的扩展文件系统,xfs能够支持大容量级别的文件系统。
不管我们使用的是 CentOS6.0或者CentOS7.0,在做磁盘配额之前先关闭增强性安全功能。因为我们使用的版本不同,CentOS6.0不关闭此功能可能会导致磁盘配额的配置文件无法写入。
命令:setenforce 0 (1为开启)
添加usrquota、grpquota挂载参数
1、临时挂载
命令:mount -a usrquota grpquota /dev/mailbox/mbox01。
配置完成后可用mount查询挂载内容是否启动配额支持
2、自动挂载
先进入配置文件的编辑模式:vim /etc/fstab,然后添加配额功能,最后保存退出。
示例:
[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Oct 27 15:47:27 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1cdaa1f7-8d44-4a00-b153-b0ba1b763ba2 / xfs defaults 0 0
UUID=32aee843-60bd-43b1-94f0-b9af529c2744 /boot xfs defaults 0 0
UUID=07145df9-e2e8-4e89-b08e-1fa3aac7dfc4 /home xfs defaults 0 0
UUID=13e8b5ea-7f99-4459-a180-8c11e6d3e543 swap swap defaults 0 0
/dev/mailbox/mbox01 /opt/mbox2 xfs defaults,usrquota,grpquota 0 0
(这里添加功能权限:usrquota,grpquota 配额功能)
~
~
此时我们输入mount查询挂载内容是否启动配额支持,是无法生效的,我们需要先解挂载,然后再次输入mount -a,最后重新挂载:mount -a,这是我们可以使用mount查询已成功。
示例:
[root@localhost ~]# umount /opt/mbox2 (解挂载)
[root@localhost ~]# df -hT (查询挂载信息)
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.5G 16G 23% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 38M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
[root@localhost ~]# mount -a (重新挂载)
使用mount查询:
[root@localhost ~]# mount
添加功能成功,xfs文件系统已支持配额功能。
使用xfs_quota命令编辑配额设置
格式:xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用户名 ’ 挂载点
示例:
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=50M bhard=80M isoft=4 ihard=6 wangwu' /opt/mbox2/
对用户wangwu进行容量:软限制50M,硬限制80,文件数量:软限制4个,硬限制6个。 /opt/mbox2/ (挂载点)
查看配额使用情况
格式:xfs_quota -x -c ‘report选项’ 挂载点
查看配额使用情况两种方式:
1、xfs_quota -x -c ‘report -ib’ /opt/mbox2 (对所有用户和组查看数量及容量限制)
示例:
[root@localhost ~]# xfs_quota -x -c 'report -ib' /opt/mbox2
User quota on /opt/mbox2 (/dev/mapper/mailbox-mbox01)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
---------- -------------------------------------------------- --------------------------------------------------
root 0 0 0 00 [--------] 3 0 0 00 [--------]
wangwu 81920 51200 81920 00 [6 days] 2 4 6 00 [--------]
Group quota on /opt/mbox2 (/dev/mapper/mailbox-mbox01)
Blocks Inodes
Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
---------- -------------------------------------------------- --------------------------------------------------
root 0 0 0 00 [--------] 3 0 0 00 [--------]
wangwu 81920 0 0 00 [--------] 2 0 0 00 [--------]
2、xfs_quota -x -c ‘quota iuv wangwu’ /opt/mbox2 (查看对wangwu用户容量的限制)
示例:
[root@localhost ~]# xfs_quota -x -c 'quota -iuv wangwu' /opt/mbox2
Disk quotas for User wangwu (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/mailbox-mbox01
2 4 6 00 [--------] /opt/mbox2
[root@localhost ~]#
1、在root权限下, 设置/opt/mbox2/的权限为可读可写可执行,命令:chmod 777 /opt/mbox2/
示例:
[root@localhost /]# chmod 777 /opt/mbox2
[root@localhost /]# ls -l /opt
总用量 0
drwxr-xr-x. 2 root root 6 11月 5 19:04 demo01
drwxrwxrwx. 2 root root 6 11月 7 18:42 mbox2 (权限已设置完成)
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
2、切换至wangwu用户,进入/opt/mbox2中,验证文件数量配额。
示例:
[root@localhost /]# su - wangwu
上一次登录:四 11月 7 19:05:36 CST 2019pts/1 上
[wangwu@localhost ~]$ cd /opt/mbox2
[wangwu@localhost mbox2]$ ls
[wangwu@localhost mbox2]$ touch test{1..6}.txt
[wangwu@localhost mbox2]$ touch test7
touch: 无法创建"test7": 超出磁盘限额
测试容量配额:
我们可以从/dev/zero中提取出局到/opt/mbox2/中,并创建一个文件test0.txt存放。
示例:
[wangwu@localhost mbox2]$ dd if=/dev/zero of=/opt/mbox2/test01.txt bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.0740534 秒,708 MB/秒
[wangwu@localhost mbox2]$ ls -lh
总用量 50M
-rw-rw-r--. 1 wangwu wangwu 50M 11月 7 19:41 test01.txt
dd:复制(验证型)
if= :提取
dev/zero 是存放无用文件的目录,
of= :生成到…
/opt/mbox2/test01.txt :新建一个test01.txt文件并将提取的数据生成到该文件中。
bs=1M:一次提取的大小
count=50 :提取的次数
因为我们设置的容量硬限制是80M,所以此处我们再次提取50M,示例:
[wangwu@localhost mbox2]$ dd if=/dev/zero of=/opt/mbox2/test1.txt bs=1M count=50
dd: 写入"/opt/mbox2/test1.txt" 出错: 超出磁盘限额
记录了31+0 的读入
记录了30+0 的写出
31457280字节(31 MB)已复制,0.136973 秒,230 MB/秒
[wangwu@localhost mbox2]$ ls -lh
总用量 80M
-rw-rw-r--. 1 wangwu wangwu 50M 11月 7 19:41 test01.txt
-rw-rw-r--. 1 wangwu wangwu 30M 11月 7 19:42 test1.txt
可见,我们可以写入30M的大小,超出的部分已被限制,无法添加。
需注意:软限制可以暂时性突破,但是7天后会将超出的容量内容进行强制删除。
此篇博客主要介绍了xfs文件系统中进行磁盘配额的方法,我们可以根据实际情况进行磁盘配额,控制普通用户的使用量,合理分配空间。
需注意:我们在进行测试的适合,先开放文件目录权限,再切换用户后,需要进入到该目录下。