本章给大家介绍基于 LVM 逻辑卷的磁盘配额
磁盘配额概述
1, 需要磁盘限额的条件
(1), 需要 Linux 内核支持
(2), 安装 xfsprogs 与 quota 软件包
.
Linux 磁盘配额的特点
作为范围: 针对指定的文件系统
限制对象: 用户账号, 组账号
限制类型: 磁盘容量, 文件数量
限制方法: 软限制, 硬限制
.
磁盘配额的过程
以支持配额功能的方式挂载文件系统 --> 编辑用户和组账号的配额设置
--> 验证磁盘配额功能 --> 查看磁盘配额使用情况
.
启用磁盘配额支持
1. 启用文件系统的配额支持:
添加 usrquota,grpquota 挂载参数
.
磁盘配额管理
编辑用户和组账号的配额设置
1, 使用 xfs_quota 命令编辑配额设置
常用选项
-u: 用户
-g: 组
-x: 使用专家模式
-c: 使用命令执行
限制字段
bsoft: 软限制 ((≤硬限制, b 表示块, 可以超出最长时间为 7 天))
bhard: 硬限制 ((不可超出))
isoft: 软限制 ((i 为节点))
-ishard: 硬限制
磁盘配额验证功能
1, 切换到设置配额的分区
2, 创建指定数量的文件 (使用 touch 命令或者 cp 命令)
3, 创建指定容量的文件 (使用 dd 命令或者 co 命令)
查看配额的使用情况
xfs_quoota -x -c 'report 选项' 挂载点
report 常用选项
a: 查看所有
b: 输出报告
i: 查看节点信息
u: 用户
g: 组
.
那么下面就开始进行磁盘配额的实际操作
磁盘配额是针对容量和节点进行限制
进行磁盘配额之前要看你内核是否支持功能, 相关的软件包是否安装:
输入 rpm -qa | grpe xfsprogs 过滤查看是否以安装改软件包
rpm -qa | grep xfsprogs
输入 rpm -ql xfsprogs | grep quota 过滤查看是否有该组件
rpm -ql xfsprogs | grep quota
如果没有的话我们就需要用 yum 仓库安装.
.
在做磁盘配额之前不管虚拟机里安装的是 6.0 版本还是 7.0 版本的都需要先把增强型安全功能关闭, 输入 setenforce 0 关闭增强型安全功能, 如果不关闭的话就会出现磁盘配额的配置文件是无法写入的.
进行永久性的挂载
输入 VIM /etc/fstab, 敲击回车, 举例用我们 mbox02 进行永久性挂载
光标移动到 mbox02 的 defaults 处按 a 在光标所在的后部输入: usrquota,grpquota, 输入 wq 保存并退出
但是此时还是没有生效, 输入 mount 查看
接下来要重新挂载让其生效:
输入 umount /opt/mbox2, 进行重新挂载
输入 mount -a 进行挂载
输入 mount 查看挂载情况
接下来要设置磁盘配额
输入
xfs _quota -x -c 'limit -u bsoft=50M bhard=80M isoft=4 ihard=6 zhangsan' /opt/mbox2
其中:
xfs_quota: 软件包
-x: 专家模式
-c: 命令
limit: 上限限制
bsoft=50M bhard=80M: 容量大小限制
isoft=4 ihard=6: 节点设置
zhangsan: 用户
接下来进行验证
这是可以看到我们当前用户是管理员身份, 但是我们限制的用户是 zhangsan, 这时候就需要切换用户, 输入 su zhangsan
这时候输入 ls -l /opt / 查看 zhangsan 是否有读写权限
我们可以退回到管理员身份.
输入 chown 777 /opt/mabox2/ 修改权限
chown 777 /opt/mabox2/
输入 ls -l /opt / 查看权限是否修改成功
接下来切换到 zhangsan 用户进行操作
输入: su zhangsan
输入: cd /opt/mbox2/
输入 ls 查看目录, 此时目录是空的
输入 touch test{1..4}.txt
输入 ls 查看到目录下有 4 个文件
输入 touch test5.txt
输入 touch tset6.txt, 这时候如果再输入 touch test7.txt 的肯定是会超出磁盘限额
因为我们设置的磁盘节点是 6, 在创建第 7 个文件时肯定会超出限额, 这时候就说明节点设置成功
这是节点超出限额了, 但是容量没有超出限额, 但是我们也不可以往里面的文件写内容
输入 rm -rf 删除刚才的文件
接下来进行容量的验证
输入
dd if=/dev/zero of=/opt/mbox2/test01.txt bs=1M count=50
其中
dd: 验型形复制
if: 从文件中拿去内容
zero: 用来做实验的文件
of: 输出
bs: 单次获取内容的大小
conut: 获取次数
再输入 ls -lh 查看当前文件容量
这时候已经有 50M 了, 我们再获取 50M, 方法一样, 看看可不可以完全获取成功, 这时候可以看到至读取了 30M 内容.
但是这个时候节点上限是 6, 再创建一个文件看看还能不能创建成功, 输入 touch test03.txt.
由此实验可以得出容量和节点两者如果有一个超出限额, 另外一项就无法写入.
来源: http://www.bubuko.com/infodetail-3166073.html