21.ext4文件系统的磁盘配额设置

作者:码农 | 发布时间:

1.实验环境及实验任务

【实验准备】创建的“/dev/sdb2”分区,大小为1G,文件系统为ext4

[root@linux ~]# lsblk -f

NAME   FSTYPE   LABEL          UUID                                   MOUNTPOINT

sda                                                                  

├─sda1 xfs                     036025e7-9f79-4675-a38a-ec98562eb57d   /boot

└─sda2 LVM2_mem                61zv0d-m1Rn-Vvpv-yjs4-rbip-Sz4v-84tyVz

  ├─centos-root

       xfs                     7df66b77-1ad5-456b-91c0-b43b5bdc0cf5   /

  └─centos-swap

       swap                    4d4907b3-c7fb-4169-b76c-35c7f1add59c   [SWAP]

sdb                                                                  

├─sdb1 xfs                     b3f21e00-c94f-4498-a9f6-52286989ade0  

└─sdb2 ext4                    c132a358-77f8-463d-85c3-b23fe7498a52  

sr0    iso9660  CentOS 7 x86_64

                               2019-09-11-18-50-31-00                 /run/media

实验任务/dev/sdb2分区上针对用户zhang4限制磁盘软限制为100MB、磁盘硬限制为130MB、文件数软限制为3个、文件数硬限制为6个。

2.磁盘配额实验

步骤1:创建挂载点/data1, 以支持配额的方式将磁盘分区挂载到挂载点,参数分别是 usrquota(启用用户限额)和 grpquota(启动用户组限额)

[root@localhost ~]# mkdir /data1

[root@localhost ~]# mount -o remount,usrquota,grpquota  /data1
[root@localhost ~]# mount | grep data1
/dev/sdb2  on /data1  type ext4 (rw,usrquota,grpquota)

quotacheck命令的常用格式为:

quotacheck    -avug 

其中的选项说明如下:

   -a扫瞄所有在 /etc/mtab 中,含有 quota 支持的文件系统,

   -u针对使用者扫瞄文件与目录的使用情况,会创建 aquota.user文件

   -g针对群组扫瞄文件与目录的使用情况,会创建 aquota.group文件

   -v显示扫瞄的详细过程;

步骤2:使用quotacheck命令扫描文件系统以及创建quota配置文件

[root@linux ~]# quotacheck -avug

…..

quotacheck: Scanning /dev/sdb2 [/data1] done

quotacheck: Cannot stat old user quota file /data1/aquota.user: 没有那个文件或目录. Usage will not be subtracted.

quotacheck: Cannot stat old group quota file /data1/aquota.group: 没有那个文件或目录. Usage will not be subtracted.#这里只是说未创建配置文件,不需要处理

quotacheck: Checked 3 directories and 0 files

quotacheck: Old file not found.

quotacheck: Old file not found.

[root@linux ~]# cd /data1

[root@linux data1]# ll

总用量 32

-rw-------. 1 root root  6144 7月   1 22:39 aquota.group #系统已经创建了配置文件

-rw-------. 1 root root  6144 7月   1 22:39 aquota.user #系统已经创建了配置文件

drwx------. 2 root root 16384 7月   1 22:38 lost+found

quotaon命令的常用格式为:

quotaon    选项

常用的选项:

-a  根据 /etc/mtab 文件中对文件系统的配置,启动相关的Quota服务

-u  针对用户启动 Quota(根据记录文件 aquota.user)

-g  针对群组启动 Quota(根据记录文件 aquota.group)

-v  显示启动服务过程的详细信息

步骤3:使用quotaon命令启动quota服务

t@linux data1]# quotaon -avug

/dev/sdb2 [/data1]: group quotas turned on

/dev/sdb2 [/data1]: user quotas turned on

edquota命令的常用格式为:

edquota  [-u  用户名]   [ -g  组名]

常用的选项:

-u 用户名   进入配额的 Vi 编辑界面,修改针对用户的配置值;

-g 群组名   进入配额的 Vi 编辑界面,修改针对群组的配置值;

步骤4:使用edquota命令编辑用户的磁盘配额

root@linux data1]# edquota -u zhang4

Disk quotas for user zhang4 (uid 1001):

  Filesystem                   blocks       soft       hard     inodes     soft     hard

  /dev/sdb2                         0     102400     133120          0        3        6

 

 

Disk quotas for user zhang4 (uid 1001):

  Filesystem                   blocks       soft       hard     inodes     soft     hard

  /dev/sdb2                         0     102400     133120          0        3        6

表头

含义

文件系统(filesystem)

说明该限制值是针对哪个文件系统(或分区);

磁盘容量(blocks)

此列的数值是 quota 自己算出来的,单位为 Kbytes,不要手动修改;

磁盘容量的软限制(soft)

当用户使用的磁盘空间超过此限制值,则用户在登陆时会收到警告信息,告知用户磁盘已满,单位为 KB;

磁盘容量的硬限制(hard)

要求用户使用的磁盘空间最大不能超过此限制值,单位为 KB;

文件数量(inodes)

同 blocks 一样,此项也是 quota自己计算出来的,无需手动修改;

文件数量的软限制(soft)

当用户拥有的文件数量超过此值,系统会发出警告信息;

文件数量的硬限制(hard)

用户拥有的文件数量不能超过此值。

quota命令查询磁盘配额的常用格式为:

quota  [选项]  [用户名或组名] 

常用的选项:

-u 用户名:查询用户配额;

-g 组名:查询组配额;

-v:显示详细信息;

-s:以习惯单位显示容量大小,如M、G;

步骤5:使用quota命令查询用户的磁盘配额

[root@linux data1]# quota -uvs zhang4

Disk quotas for user zhang4 (uid 1001):

     Filesystem   space   quota   limit   grace   files   quota   limit   grace

      /dev/sdb2      0K    100M    130M               0       3       6

步骤6:切换到zhang4用户,验证磁盘配额限制是否生效。

[root@linux data1]# chown zhang4 /data1

[root@linux data1]# su zhang4

[zhang4@linux data1]$ dd if=/dev/zero  of=/data1/test  bs=1M  count=90

记录了90+0 的读入

记录了90+0 的写出

94371840字节(94 MB)已复制,0.427706 秒,221 MB/秒

[zhang4@linux data1]$ dd if=/dev/zero  of=/data1/test  bs=1M  count=110

sdb2: warning, user block quota exceeded.

记录了110+0 的读入

记录了110+0 的写出

115343360字节(115 MB)已复制,0.251255 秒,459 MB/秒

[zhang4@linux data1]$ dd if=/dev/zero  of=/data1/test  bs=1M  count=130

sdb2: warning, user block quota exceeded.

sdb2: write failed, user block limit reached.

dd: 写入"/data1/test" 出错: 超出磁盘限额

记录了130+0 的读入

记录了129+0 的写出

136310784字节(136 MB)已复制,0.289743 秒,470 MB/秒

步骤7:关闭磁盘配额

[root@linux data1]# quotaoff -uv /data1

3.实验总结

步骤1:以支持挂载的方式挂载磁盘分区到指定目录

步骤2:使用quotacheck命令,扫描文件系统并创建磁盘配额文件

步骤3:使用quotaon命令,启动quota的服务

步骤4:使用edquota命令修改用户和群组的配额限制参数

步骤5:使用quota命令来查询用户和用户组的配额

步骤6:验证以及关闭磁盘配额