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:验证以及关闭磁盘配额