quota 基础配置、XFS 文件系统配额.note

noteId: 57B72B1C5F774CCEA24DE635BCF65616 · 原始路径:/ALL/Linux - A模块/服务配置/quota磁盘配额/quota 基础配置、XFS 文件系统配额.note · 图片:23 · 附件待处理:0

 
·首先至少添加一块硬盘:
lsblk
# 这里我添加了 5块硬盘,选择 sdd 进行使用 
 
 
一、配置 quota 磁盘配额:
 
1、配置 quota:
 
(1)安装 quota:
apt install -y quota
 
 
(2)配置刚刚添加的硬盘,将其挂载、格式化:
 
1、创建一个用于挂载的目录:
mkdir /quota_test
 
2、编辑 /etc/fstab:
vim /etc/fstab
 
3、将硬盘格式化:
mkfs.ext4 /dev/sdd
 
4、挂载:
mount -a
 
5、查看是否挂载成功:
mount | grep quota
挂载成功:
 
 
2、配置 用户配额:
 
(1)创建 quota 相关的 用户 和 组 的文件,不尝试重新挂载文件:
quotacheck -cugm /quota_test
-c //创建
-u //用户
-g //组
 
 
(2)为 指定用户配置 磁盘配额:
edquota -u skills    //-u指定用户,为 skills用户配置 磁盘配额
 
# 按 Ctrl + o 保存,按 Enter 回车确认保存文件路径,然后按 Ctrl + x 退出
或者
# 按 Ctrl + x,输入 y 进行保存,按 Enter 回车,再按 Ctrl + x 退出
 
 
(3)启用 quota:
quotaon /quota_test
 
 
(4)测试 配额:(inodes字段【文件个数】)
 
1、切换到 skills 用户;(配额限制的用户)
chmod 777 /quota_test    //让 skills 用户有权限编辑该目录
su skills 
 
2、先创建三个 文件,测试软配额:(因为软配额定义了 2 个文件)
touch /quota_test/123
touch /quota_test/1234
此时提示已经超出了限额,但是文件是创建成功的
 
 
3、再创建一个文件,测试 硬配额:
touch /quota_test/12345
此时已经无法再创建了,因为它不能够超过硬配额限制
 
 
 
·参数解释:
# blocks 块: 文件存储单位 (在这里可以理解为约等于多少kb),这里的112 代表当前skills用户已经占用了112个blocks的存储空间
# inodes 节点: 文件和目录的节点单位(在这里可以理解为存储多少个文件数量,这里的3代表skills用户已经创建了三个节点的文件数量 
# soft 软配额:当到达这个值的时候讲收到警告,并且在宽限时间内,用户可以超过软配额的一定量,即在一段时间内允许超过100的文件。
# hard 硬配额:当到达这个值的时候收到警告,不允许继续创建,用户的磁盘空间在任何时候都不能超过
# Grace Period 宽限时间:宽限时间是指软配额的限制时间,即用户可以在此时间内超过软配额而不会受到系统限制。在这个时间内你可以用来调整或者清理文件,以确保在这段时间内不会受到系统的限制。
 
 
3、设置 软配额 宽限时间:
在这段时间内,使用的空间可以超过软配额,但是不能超过硬配额
 
(1)对整个文件系统配额 设置 软配额的宽限时间:
edquota -t
(2)对单个 指定的用户设置 软配额 的宽限时间:
edquota -T -u skills
默认都为7天:
对其修改:(改成你所需要的时间)
当创建的文件超过软配额后,会有 5分钟(上面定义的)宽限时间,过了这5分钟后,超过配额限制的文件将会被删除
 
 
 
(3)查看 软配额宽限时间是否设置成功:
repquota -v /quota_test
 
 
 
4、批量设置 配额:(复制一个用户的配额给另外一个用户)
 
(1)先 创建一个用户:
adduser elysia
 
(2)查看 当前的 配额:(显示配额使用情况)
repquota -v /quota_test
# 可以看到此时只有一个用户
 
(3)复制 一个用户的 配额 给 另外一个用户:
edquota -p skills elysia    //将 skills用户 的配额 复制 给 elysia 用户
edquota -p skills elysia user1 user2 user3 user4
 
(4)查看 用户的 配额是否复制成功:
repquota -v /quota_test
用户配额 复制成功:
 
 
5、对组设置磁盘配额:
 
(1)创建一个 组,创建一个用户并将其加入组:
groupadd aaa
adduser tw
usermod -a -G aaa tw    //将 用户 tw 加入 aaa 组
 
 
(2)对组设置磁盘配额
setquota -g aaa 10M 20M 2 4 /quota_test    //对 aaa 组设置 磁盘配额
·代码解释:
-g    指定要设置的组
第一个数(10M)    表示设置 软限额为 10M
第二个数(20M)    表示设置 硬限额为 20M
2      设置 文件个数的 软限额 为 2 个
4      设置 文件个数的 硬限额 为 4 个
 
(3)查看 配额:
repquota -g -v /quota_test
# -g 参数 能够查看组
 
 
 
二、XFS 文件系统配额:
 
·先添加一个硬盘,这里不再赘述
 
1、配置 XFS文件系统 磁盘配额:
 
 
(1)安装 软件包:
apt install -y xfsdump xfsprogs
 
 
(2)查看硬盘,以 XFS格式 对硬盘进行 格式化:
 
lsblk
# 这里使用 sdc 硬盘进行操作
 
·以 XFS格式 格式化 硬盘:
mkfs.xfs /dev/sdc
 
 
(3)创建一个目录,并将格式化后的 XFS硬盘 挂载上去:
mkdir /quota_xfs
mount -o uquota /dev/sdc /quota_xfs
 
 
 
(4)设置 磁盘配额限制:
xfs_quota -x -c 'limit bhard=100m skills' /quota_xfs    //为 skills 设置磁盘配额
 
·参数解释:
这条命令的作用是使用xfs_quota工具,针对文件系统/quota_xfs中的组"skills"设置磁盘配额限制。
具体参数的含义如下:
-x    //表示在批处理模式下运行xfs_quota。
-c 'limit bhard=100m skills'    //表示执行一条限制硬盘配额的命令。其中,bhard=100m表示设置硬盘配额限制为100兆字节;skills则是指定要限制配额的组名称。
/quota_xfs    //表示要操作的文件系统路径。
 
 
(5)查看 磁盘限额配置;
xfs_quota -x -c 'report -h' /quota_xfs/
 
 
 
 
三、配置 Project quota(针对项目的磁盘配额)
 
·添加一块硬盘
 
1、配置 Project quota:
 
(1)安装软件包:
apt install -y xfsdump xfsprogs
 
 
(2)查看磁盘,将其格式化:
 
·查看磁盘:
lsblk
# 这里选择使用 sde
 
·将其格式化:
mkfs.xfs /dev/sde
 
 
(3)创建一个目录,并将其挂载到目录:
mkdir /xfs
mount -o prjquota /dev/sde /xfs
 
 
 
(4)使用xfs_quota工具,在/xfs 目录 中创建一个名为"1"的项目:
xfs_quota -x -c 'project -s -p /xfs 1'
·代码解释:
-x:    表示在批处理模式下运行xfs_quota。
-c 'project -s -p /quota_xfs 1':    表示执行一条创建项目的命令。其中,-s表示启用项目配额功能,-p /quota_xfs表示设置项目的根路径为/quota_xfs,而1则是指定要创建的项目的名称。
 
 
(5)使用xfs_quota工具,针对项目"1"设置磁盘配额限制:
xfs_quota -x -c 'limit -p bhard=10M 1'
·代码解释:
-x:    表示在批处理模式下运行xfs_quota。
-c 'limit -p bhard=10M 1':    表示执行一条限制项目磁盘配额的命令。其中,-p表示该限制适用于项目,bhard=10M表示设置项目的硬盘配额限制为10兆字节,而1则是指定要设置配额的项目名称。
 
 
 
 
2、检查 配置:
 
xfs_quota -x -c report /xfs
 
 
 
3、配置 xfs 重启生效:(将其写入 fstab 中)
vim /etc/fstab