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映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/463943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:调整搜索速度

在我之前的文章 “Elasticsearch:如何提高查询性能” 及 “Elasticsearch:提升 Elasticsearch 性能” 里,我详细描述了如何提高搜索的性能。在今天的文章里,我从另外一个视角来描述如何调整搜索的速度。希望对大家有所帮助&#x…

c++简单实现avl树

文章目录 AVL树节点类节点类的构造函数 AVLinsert()插入RotateL(左单旋)RotateR(右单旋)RotateLR(右双旋)RotateRL(左双旋) Find(查找)IsBalance(检查是否是avl树) AVL树 AVL树:又名高度平衡树,在二叉搜索树的基础上加上了一个条件,条件是左右子树高度差…

【并查集】模版

【模板】并查集 - 洛谷 #include <bits/stdc.h> using namespace std; const int N2e59; int a[N]; int Find(int x) {if(xa[x]){return x;}else{a[x]Find(a[x]);return a[x];} } void push(int x,int y) {a[Find(x)]Find(y);return ; } int main() {int n,m; cin>>…

(十七)【Jmeter】取样器(Sampler)之JSR223取样器

该实例使用python 2.7.3的插件,jython-standalone-2.7.3.jar:https://www.123pan.com/s/VppKjv-5YvTv.html 提取码:tfsX 把该插件放在Jmeter安装的:apache-jmeter-5.6.3\lib\ext目录下: 简述 JSR是Java Specification Requests的缩写,意思是Java规范提案 操作路径如下: …

Linux-新手小白速秒Hadoop集群全生态搭建(图文混编超详细)

在之前的文章中&#xff0c;我教会大家如何一步一步搭建一个Hadoop集群&#xff0c;但是只提供了代码&#xff0c;怕有些朋友会在一些地方产生疑惑&#xff0c;今天我来以图文混排的方式&#xff0c;一站式交给大家如何搭建一个Hadoop高可用集群包括&#xff08;HadoopHA&#…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:SideBarContainer)

提供侧边栏可以显示和隐藏的侧边栏容器&#xff0c;通过子组件定义侧边栏和内容区&#xff0c;第一个子组件表示侧边栏&#xff0c;第二个子组件表示内容区。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起…

第九届多媒体系统和信号处理国际会议(ICMSSP 2024)即将召开!

2024年第九届多媒体系统和信号处理国际会议&#xff08;ICMSSP 2024&#xff09;将在5月24-26日在泰国曼谷举行。ICMSSP 2024旨在展示多媒体系统和信号处理等相关主题的最新研究和成果&#xff0c;为不同领域的专家代表提供了面对面交流新想法以及应用经验的机会&#xff0c;建…

【经验总结】ubuntu 20.04 git 上传本地文件给 github,并解决出现的问题

1. 在GitHub 上创建仓库 登录 GitHub 个人网站 点击 New 填写 Repository name, 以及 Description (optional) 选择 Public &#xff0c; 并添加 Add a README file 点击 Create repository github repository 创建成功 2. 设置SSH key 在本地 bash 运行&#xff1a;…

sqllab第十八关通关笔记

知识点&#xff1a; UA注入 不进行url解析&#xff0c;不能使用 %20 编码等操作出现在User-agent字段中一般为insert语句 insert 表名(字段1&#xff0c;字段2&#xff0c;。。。) values(数据1&#xff0c;数据2&#xff0c;。。。) 通过admin admin进行登录发现页面打印出了…

arp动态表缓存清除

一、arp表里清除表状态&#xff1a; 1&#xff0c;Delay&#xff1a;请求arp 2&#xff0c;Reachab&#xff1a;响应arp 3&#xff0c;Stale此状态下&#xff0c;待gc_stale_time超时后&#xff0c;准备gc_interval定期清理 二、限制条件 base_reachable_time&#xff1a;后变…

数据结构的概念大合集04(队列)

概念大合集04 1、队列1.1 队列的定义1.2队列的顺序存储1.2.1 顺序队1.2.2 顺序队的基本运算的基本思想1.2.3 顺序队的4要素的基本思想 1.3 环形队列1.3.1 环形队列的定义1.3.1 环形队列的实现 1.4 队列的链式存储1.4.1 链队1.4.2 链队的实现方式1.4.3 链队的4要素的基本思想 1.…

双指针 | 移动零 | 复写零

1.移动零 题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 示例&#xff1a; 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]解题思路&#xff1a; right指针一直往后移动&#xff0c;当…

Java实现简单的通讯录

每日一言 泪眼问花花不语&#xff0c;乱红飞过秋千去。 —欧阳修- 简单的通讯录实现&#xff0c;跟写Java实现图书管理系统差不多&#xff0c;用到的知识也差不多&#xff0c;就当个小练习&#xff0c;练习一下写Java程序的手感。 Java实现图书管理系统 关于通讯录的代码都写…

【JVM】(内存区域划分 为什么要划分 具体如何分 类加载机制 类加载基本流程 双亲委派模型 类加载器 垃圾回收机制(GC))

文章目录 内存区域划分为什么要划分具体如何分 类加载机制类加载基本流程双亲委派模型类加载器 垃圾回收机制&#xff08;GC&#xff09; 内存区域划分 为什么要划分 JVM启动的时候会申请到一整个很大的内存区域,JVM是一个应用程序,要从操作系统这里申请内存,JVM就需要根据,把…

Android Studio字体大小调节

外观页面字体调节 settings->Appearance->User cunstom font 代码字体调节 Settings->Editor->Font此时logcat窗口、Build窗口和Ternimal窗口字体大小也会同步调节&#xff08;2023.2.1版本上验证&#xff09;

基于Springboot和Redis实现的快递代取系统

1.项目简介 本项目基于springboot框架开发而成&#xff0c;前端采用bootstrap和layer框架开发&#xff0c;系统功能完整&#xff0c;界面简洁大方&#xff0c;比较适合做毕业设计使用。 本项目主要实现了代取快递的信息管理功能&#xff0c;使用角色有三类&#xff1a;一是客…

Elasticsearch 主副分片切换过程中对业务写入有影响吗

&#x1f34a;&#x1f349;&#x1f34b; 先说下结论&#xff0c;只要集群中的工作节点过半&#xff0c;有候选的master节点&#xff0c;挂掉的节点中不同时包含索引的主分片和副分片&#xff0c;那么ES是可以做到让业务无感知的进行主副分片切换的。 蓝胖子会先讲解下ES集群写…

ARM_基础之RAS

Reliability, Availability, and Serviceability (RAS), for A-profile architecture 源自 https://developer.arm.com/documentation/102105/latest/ 1 Introduction to RAS 1.1 Faults,Errors,and failures 三个概念的区分&#xff1a; • A failure is the event of devia…

外包干了3天,技术明显进步。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

16、技巧之九: 修改参数,如何让表格翻页滚动到底部?【Selenium+Python3网页自动化总结】

1、问题提出 在网页配置参数时&#xff0c;输入参数名称搜索&#xff0c;搜出来的同名参数结果有多个&#xff0c;分布在一个表格的不同行&#xff0c;表格是动态加载的&#xff0c;需要滚动鼠标才能把所出参数找出来。用selenium怎么实现这种参数修改&#xff1f; 2、网页元素…