Linux磁盘配额

磁盘配额

概述

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

实现条件

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

EXT4和XFS的区别

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

Ext4 文件系统

Ext4 文件系统(扩展文件系统)是 Ext 文件系统家族的第四代,其起源可以追溯到 1987 年首次推出的 Minix 操作系统。Ext 文件系统是第一个支持 Linux 内核的文件系统。早在 1992 年。它在 2008 年与 Linux 2.6.28 一起出现。接替其前身 ext3。

Ext4 完美地管理了许多小文件并确保元数据被正确写入,即使写入缓存断电。

一目了然,它的主要特点包括:

  • 支持大文件大小 - Ext4 支持高达 16 TiB (Tebibytes) 的单个文件大小,而 XFS 支持高达 8 exbibytes 的最大文件大小。
  • 基于范围的延迟分配以加快文件分配。
  • 向后兼容性——使用 Ext4 文件系统的另一个好处是它向后兼容Ext3 和 Ext2系统。这提高了性能和灵活性,因为某些 Ext4 功能也可以在 Ext3 和 Ext2 文件系统中实现。此外,Ext3 和 Ext2 文件系统可以作为 Ext4 挂载。
  • 分配改进 - 存储块在写入磁盘之前由 Ext4 文件系统更有效地分配。这大大提高了读写性能。
  • 日志校验和 - Ext4 文件系统利用校验和选项将文件损坏的风险降至最低。校验和选项执行频繁的检查以探测块卷中的错误。这样做可以减少日志记录时间并降低性能。
  • 更快的文件系统检查 - 除了日志校验和,Ext4 产生更快的文件系统检查,例如,与早期版本(如 Ext3 和 Ext2)相比,fsck 命令将运行得更快并在更短的时间内给出结果。
  • 改进的时间戳——Ext4 实现了以纳秒为单位测量的时间戳,这是对基于秒的时间戳的粒度的改进,后者被认为是不够的。此外,时间戳还增加了 408 年,以解决 2038 年的上限。
  • 无限数量的子目录——Ext4 文件系统不限制可以在单个目录中创建的子目录的数量,除了目录大小本身。在 Ext3 中,一个目录最多只能有 32,000 个子目录。Ext4 引入了 HTreeindices 功能以增加可以存储在目录中的条目。
  • 透明加密 - 早在 2015 年 6 月,Linux 内核 4.1 中的 Ext4 文件系统就实现了对透明加密的支持。

XFS 文件系统

XFS 文件系统最初由 Silicon Graphics 于 1993 年开发,它以稳定和高性能的 64 位日志文件系统而自豪。XFS 文件系统旨在支持高达 18 EB 的大型文件系统和超大文件。该文件系统专为具有大型磁盘阵列、大型 CPU 以及需要存储大型文件的系统而设计。

XFS 以提供高 I/O 线程的可扩展性以及在处理大文件方面的出色性能而广为人知。

XFS 文件系统是 RHEL、CentOS 和其他 RHEL 发行版(如 Oracle Linux、Rocky Linux 和 AlmaLinux)中的默认文件系统。

主要特点包括:

  • 支持更大的文件系统 - XfS 支持高达 1PiB 的文件系统大小,而 Ext4 支持高达 50TiB。支持的文件系统大小可能因 Linux 发行版版本而异。
  • 延迟分配 - 使用惰性评估技术进行文件分配。块分配仅在数据最终刷新到磁盘时发生,有助于减少碎片并提高性能。
  • 在线碎片整理和文件系统增长
  • 复杂的元数据预读算法
  • 元数据日志 - 元数据日志是一项功能,可在突然断电或系统崩溃的情况下保证文件系统的一致性。
  • 配额日志——这消除了在系统崩溃后进行冗长的配额一致性检查的需要。
  • 支持扩展属性——这使系统能够为每个文件关联几个额外的名称/值对。
  • 在线碎片整理和增长 - 您可以在挂载和活动时对文件系统进行碎片整理和扩大。
  • 存储可扩展性——XFS 文件系统在支持大型文件系统、大型目录和高达 EB 容量的海量文件方面发挥了惊人的作用。
  • 高效的磁盘空间管理——XFS 还通过 B-Tree 索引为高效的磁盘空间管理提供可扩展性。

实现步骤

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

磁盘配额设置

确认selinux已关闭
sestatus -v
在这里插入图片描述
如果是enable表示开启,需要修改selinux的配置文件,设置完需重启,如图:
在这里插入图片描述

mount -o usrquota,grpquota /dev/sdb3 /opt #临时带配额参数挂载

写进/etc/fstab配置文件,实现永久挂载

xfs_quota -x -c 'limit -u bsoft=50M bhard=60M isoft=6 ihard=8 jerry' /opt/
xfs_quota命令
-x:启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c:直接调用管理命令,如limit,report等
管理命令limit后相关:
-u:对用户限制
-g:对组限制
bsoft:磁盘容量软限制
bhard:磁盘容量硬限制
isoft:文件数量软限制
ihard:文件数量硬限制

给/opt授权

 chmod 777 /opt

验证磁盘配额

quota -u [username]
dd if=/dev/zero of=/opt/123.txt bs=10M count=12

在这里插入图片描述
验证配额数量
取消磁盘配额

xfs_quota -x -c 'disable -up' /data

tip:

/dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。
在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。

/dev/zero : 在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。

其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。BSD就是通过mmap把/dev/zero映射到虚地址空间实现共享内存的。可以使用mmap将/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值