Linux系统管理:磁盘配额

前言:

一、Linux磁盘限额概述
1.1 实现磁盘限额的条件

1、需要安装Linux内核支持

2、安装xfsprogs与quota软件包

1.2 Linux磁盘限额的特点

1、作用范围:针对指定的文件系统(分区)

2、限制对象:用户账号、组账号

3、限制类型:磁盘容量、文件数量

4、限制方法:软限制、硬限制

限制可以允许用户或组暂时性突破限制容量上限,时限为7天 7天后未处理则将多出的部分删除。

软限制<=硬限制

软限制可以通过命令实现,硬限制需要从配置文件中进行设置

大部分命令设置都是临时性质、重启后可能会失效。在配置文件中设置则可以永久生效。

1.3 磁盘配额概述(设置磁盘配额顺序)

1、以支持配额功能的方式挂载文件系统

2、编辑用户和组账号的配额设置

3、验证磁盘配额功能

4、查看磁盘配额使用情况

二、Linux磁盘配额(实验部分)

环境:之前我们已添加了3块磁盘,并进行了分区,格式为LVM。同时,我们创建了LVM(逻辑卷),卷组名为:mailbox。逻辑卷名为:mbox01,已挂载到/opt/mbox2。详情可见:LVM逻辑卷管理详细实验过程

2.1 查看软件包是否已安装

命令: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能够支持大容量级别的文件系统。

2.2 关闭增强性安全功能

不管我们使用的是 CentOS6.0或者CentOS7.0,在做磁盘配额之前先关闭增强性安全功能。因为我们使用的版本不同,CentOS6.0不关闭此功能可能会导致磁盘配额的配置文件无法写入。

命令:setenforce 0 (1为开启)

2.3 启动文件系统的配额支持

添加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 配额功能)
~                                                                                         
~   
2.4 查询是否获得配额支持

此时我们输入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文件系统已支持配额功能。

2.5 编辑用户和组账号的配额设置

使用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 ~]# 

2.6、验证磁盘配额功能

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文件系统中进行磁盘配额的方法,我们可以根据实际情况进行磁盘配额,控制普通用户的使用量,合理分配空间。

需注意:我们在进行测试的适合,先开放文件目录权限,再切换用户后,需要进入到该目录下。

发布了48 篇原创文章 · 获赞 46 · 访问量 6629

猜你喜欢

转载自blog.csdn.net/weixin_45726050/article/details/102961881