linux磁盘配额详解(EXT4和XFS)

磁盘配额

      • 概述
      • 实验环境
      • 注意事项
      • EXT4和XFS的区别
      • 实现步骤
      • EXT4的磁盘配额设置
        • 参数说明
      • XFS的磁盘配额设置
        • 对用户设置配额
        • 对单一目录设置配额

概述

Linux系统作为一个多用户的操作系统,在生产环境中,会发生多个用户共同使用一个磁盘的情况,会造成Linux根分区的磁盘空间耗尽,导致Linux系统无法建立新的文件,从而出现服务程序崩溃、系统无法启动等故障现象。
为了避免这种情况,解决方法就是 ,对用户在指定文件系统中使用磁盘空间、文件数量进行限制,防止用户占用大量的磁盘空间,从而保持系统存储空间可以稳定使用。
如果要针对某个目录进行配额限制的话,XFS文件系统支持 Project Quota 功能,通过该特性,可以支持目录级别的配额限制。本文将对ext4和xfs这两种linux文件系统进行磁盘配额的详细配置

实验环境

CentOS 7.6虚拟机
逻辑卷2个: ext4格式的/dev/vg01/lv02
xfs格式的/dev/vg01/lv03

注意事项

  • 磁盘配额要求Linux内核支持磁盘配额技术,centos7默认支持
  • 磁盘配额只对一般用户有效,对管理员(root)来说是没有任何作用限制的

EXT4和XFS的区别

ext4 文件系统 xfs 文件系统
无法对单一目录 可对单一目录
quota工具 xfs_quota工具
quota默认不开启 默认开启
需要创建配额配置文件 不需要创建配额配置文件

实现步骤

1、关闭selinux
2、修改/etc/fstab,对所选文件系统激活配额选项
3、重新挂载设备
4、用quotacheck命令生成基本配额文件(xfs跳过)
5、启动磁盘配额功能(xfs跳过)
6、用quota或者xfs_quota对具体用户或者目录设置配额

EXT4的磁盘配额设置

1、确认selinux已关闭
在这里插入图片描述
如果是enable表示开启,需要修改selinux的配置文件,设置完需重启,如图:
linux磁盘配额详解(EXT4和XFS)_第1张图片
mount -o usrquota,grpquota /dev/vg01/lv02 /opt #临时带配额参数挂载
linux磁盘配额详解(EXT4和XFS)_第2张图片
在这里插入图片描述
写进/etc/fstab配置文件,永久挂载
linux磁盘配额详解(EXT4和XFS)_第3张图片
由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件(aquota.user 和 aquota.group),才可以去启动quota功能,使用 quotacheck 命令的 -c 选项

  • -v:显示扫描过程
  • -u:针对扫描用户的情况建立aquota.user
  • -g:针对扫描组的情况建立aquota.group

linux磁盘配额详解(EXT4和XFS)_第4张图片
ext4需要开启配额否则即使设置了配额也不生效
linux磁盘配额详解(EXT4和XFS)_第5张图片
quotaon 选项 分区名

  • -a 启动所有分区的磁盘配额
  • -u 启动用户的磁盘配额
  • -g 启动组的磁盘配额
  • -v 显示启动过程信息
  • -p 查看是否开启了磁盘配额

quotaoff 选项 分区名

  • -a 关闭所有分区的磁盘配额

  • -u 关闭用户的磁盘配额

  • -g 关闭组的磁盘配额

在这里插入图片描述
设置tom 用户(已经创建好的普通用户)在opt 目录下创建文件的最大容量是10240K 最大文件个数6
在这里插入图片描述
edquota 选项 用户名或组名

  • -u 用户名
  • -g 组名
  • -t 设定宽限时间
  • -p 复制磁盘配额规则,不需要每一个用户或者组都手动设置一遍

linux磁盘配额详解(EXT4和XFS)_第6张图片
dd if=/dev/zero of=文件路径 bs=N count=N

  • dd:复制
  • if=/dev/zero:从zero中拿取容量
  • of=文件路径:将的容量写入设置配额磁盘下的文件中
  • bs=N:每次写多少容量,默认单位为字节,可带单位K,M
  • count=N:一共写入几次

参数说明

  • inode:可以创建文件或者目录的数量
  • block:可以存储的容量大小
  • soft(软限制):最低限制容量,可以被超过,但会有警告信息,超过的部分会保存到宽限时期到期。一般是硬限制的80%,单位为KB
  • hard(硬限制):绝对不能被超过限制。达到hard时,系统会禁止继续增加新的文件
  • 宽限时间(一般为7天)单位为KB
    当用户使用的空间超过了软限制但还没达到硬限制,在这个宽限的时间到期前必须将超过的数据降低到软限制以下(默认是7天),当宽限时间到期,系统将自动清除超过的数据。

查询用户或组的配额
quota 选项 用户或组名

  • -u 用户名
  • -g 组名
  • -v 显示详细信息
  • -s 以常见单位显示大小

查询文件系统配额
repquota 选项 分区名

  • -a 查询所有分区的磁盘配额
  • -u 查询用户配额
  • -g 查询组配额
  • -v 显示详情
  • -s 以常见单位显示

XFS的磁盘配额设置

对用户设置配额

linux磁盘配额详解(EXT4和XFS)_第7张图片
在这里插入图片描述
xfs_quota -x -c ‘limit -u bsoft=50M bhard=80M isoft=6 ihard=8 tom’ /opt/lv03

xfs_quota命令

  • -x:启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
  • -c:直接调用管理命令,如limit,report等

管理命令limit后相关:
-u:对用户限制
-g:对组限制
bsoft:磁盘容量软限制
bhard:磁盘容量硬限制
isoft:文件数量软限制
ihard:文件数量硬限制
linux磁盘配额详解(EXT4和XFS)_第8张图片
linux磁盘配额详解(EXT4和XFS)_第9张图片
在这里插入图片描述
linux磁盘配额详解(EXT4和XFS)_第10张图片
xfs_quota -x -c ‘report -abi’ /opt/lv03
#执行report命令,后面跟上挂载点,这样可以列出所有的Project ID以及对应的配额使用情况

管理命令report后相关:
-u:对用户查看
-g:对组查看
-a:查看所有可用分区的配额使用报告
-b:查看磁盘容量
-i:查看文件数

对单一目录设置配额

linux磁盘配额详解(EXT4和XFS)_第11张图片
linux磁盘配额详解(EXT4和XFS)_第12张图片
在这里插入图片描述
linux磁盘配额详解(EXT4和XFS)_第13张图片
xfs_quota -x -c 'project -s -p /opt/lv03/test 1’
#为目录分配ProjectID 1,-p 后跟path

linux磁盘配额详解(EXT4和XFS)_第14张图片

xfs_quota -x -c ‘limit -p bhard=100m 1’ /opt/lv03
#限制Project 1的配额为100MB
调用project命令创建一个project,再调用limit命令设置配额
linux磁盘配额详解(EXT4和XFS)_第15张图片
在这里插入图片描述
xfs_quota -c ‘quota -p 1’ /opt/lv03
#查询某个project的配额使用情况

你可能感兴趣的:(Linux)