linux-磁盘管理与文件系统-磁盘配额
Posted 可乐卷儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-磁盘管理与文件系统-磁盘配额相关的知识,希望对你有一定的参考价值。
前言
Linux系统作为一个多用户的操作系统,在生产环境中,会发生多个用户共同使用一个磁盘的情况,会造成Linux根分区的磁盘空间耗尽,导致Linux系统无法建立新的文件,从而出现服务程序崩溃、系统无法启动等故障现象。为了避免这种情况,解决方法就是 ,对用户在指定文件系统中使用磁盘空间、文件数量进行限制,防止用户占用大量的磁盘空间,从而保持系统存储空间可以稳定使用
注意:在 CentOS 系统中,不同的文件系统使用不同磁盘配额配置管理工具。
例如,XFS 文件系统通过 xfs_quota 工具进行管理;EXT3/4 文件系统通过 quota 工具进行管理
一、磁盘配额的概述
1、实现磁盘限额的条件
- 需要linux内核支持
- 使用quata软件包
2、linux磁盘限额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户账号、组账号
- 限制类型:磁盘容量、文件数量
- 软限制:指定一个软性的配额数值(如 480MB 磁盘空间、180 个文件),在固定 的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息
- 硬限制:指定一个硬性的配额数值(如 500MB 磁盘空间、200 个文件),是绝对 禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效
- 限制方法:软限制、硬限制
- 磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB
软限制:超出系统警告,仍可写入
硬限制:超出最高容量,无法再写入
假设软限制为5G,硬限制是8G;若系统指定的目录超过5G,系统会提示已超出,但是还可以继续录入,但是上限是8G,就无法再写入 - 文件数量:限制用户能够拥有的文件个数。在 Linux 操作系统中,每一个文件都有一个对应的数字标记,称为 i 结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此 xfs_quota 通过限制 i 结点的数量来实现对文件数量的限制
软限制:超出系统警告,仍可创建
硬限制:超出最高容量,无法再创建
假设软限制为5个,硬限制是10个;若系统创建目录超过5个,系统会提示已超出,但是还可以继续创建,但创建上限是10个,就无法再创建
- 磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB
二、磁盘配额配置(ext4)-quota
磁盘配额要求Linux内核支持磁盘配额技术,centos7默认支持
磁盘配额只对一般用户有效,对管理员(root)来说是没有任何作用限制的
1、配置配额功能
- mount | grep /dev/sdb1:查询当前分区支持的配额功能
- mount -o remount,usrquota,grpquota /dev/sdb1:增加分区/dev/sdb1用户和组的配额功能
2、激活配额选项
由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件(aquota.user 和 aquota.group),才可以去启动quota功能,使用 quotacheck 命令的 -c 选项
- vim /etc/fstab
/dev/sdb1 /liuchun ext4 defaults,usrquota,grpquota 0 0 - mount -a 激活测试
3、生成配额文件-quotacheck
- quotacheck -cugv /dev/sdb1:创建用户和组的磁盘配额的配置文件
- -c:创建磁盘配额的配置文件
- -u:用户;针对扫描用户的情况建立aquota.user
- -g:组;针对扫描用户的情况建立aquota.group
- -v:详情;显示扫描过程
4、创建用户并设置限制-edquota
- edquota -u wuhao:对用户wuhao进行限制
- -u:用户名
- -g:组名
- -t:设定宽限时间
- -p:复制磁盘配额规则,不需要每个用户或者组都手动设置一遍:edquota -p user1 -u user2
参数说明:
- bloks:磁盘容量,单位是kb
- inodes:文件数量
- i进入输入模式
- :wq 保存退出
5、开启配置-quotaon
- -u /dev/sdb1:开启用户的磁盘配额
- -g /dev/sdb1:开启组的磁盘配额
- -a /dev/sdb1:开启所有分区的磁盘配额
- -p /dev/sdb1:查看是否开启此功能
- -p /dev/sdb1:查看是否开启此功能
6、关闭配置-quotaoff
- -a:关闭所有分区的磁盘配置
- -u:关闭用户的磁盘配额
- -g:关闭组的磁盘配额
7、查询配额情况-quota
- -u 用户名
- -g 组名
- -v 显示详情
-s 以常见耽误显示
-a 查询所有分区的磁盘配额
查看当前用户wuhao的配额情况:quota -u wuhao
参数说明
inode:可以创建文件或者目录的数量
block:可以存储的容量大小,*号代表超出
soft(软限制):最低限制容量,可以被超过,但会有警告信息,超过的部分会保存到宽限时期到期。一般是硬限制的80%,单位为KB
hard(硬限制):绝对不能被超过限制。达到hard时,系统会禁止继续增加新的文件
grace:宽限时间(一般为7天)单位为KB
当用户使用的空间超过了软限制但还没达到硬限制,在这个宽限的时间到期前必须将超过的数据降低到软限制以下(默认是7天),当宽限时间到期,系统将自动清除超过的数据。
0:表示不限制
8、实例
举例:设置tom 用户(已经创建好的普通用户)在opt 目录下创建文件的最大容量是10240K 最大文件个数6
edquota -u tom
/dev/mapper/vg01/lv02 0 10000 10240 0 5 6
验证:
1、以tom用户登陆
2、在/opt目录下写入10000K大小的文件(dd if=/dev/zero of=文件路径 bs=1K count=10000)
3、再在/opt目录下写入240K大小的文件
4、因为设置了软限制是10M,所以他会警告
5、再在/opt目录下写入440K大小的文件
6、因为已经超过了硬限制所以会报错已经超出了磁盘配额
7、ll -h /opt 查看一下超出10240的部分没写入
其中:
dd:复制
if=/dev/zero:从zero中拿取容量
of=文件路径:将的容量写入设置配额磁盘下的文件中
bs=N:每次写多少容量,默认单位为字节,可带单位K,M
count=N:一共写入几次
三、磁盘配额设置(xfs)-xfs_quota
1、对用户设置配额-xfs_quota
- -x:启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
- -c:直接调用管理命令,如limit,report等
实例
xfs_quota -x -c ‘limit -p bhard=100m 1’ /opt/lv03:限制Project 1的配额为100MB
2、调用project命令创建一个project,再调用limit命令设置配额
- xfs_quota -c ‘quota -p 1’ /opt/lv03:查询某个project的配额使用情况
- 管理命令limit后相关:
- -u:对用户限制
- -g:对组限制
- bsoft:磁盘容量软限制
- bhard:磁盘容量硬限制
- isoft:文件数量软限制
- ihard:文件数量硬限制
3、管理命令report后相关
- -u:对用户查看
- -g:对组查看
- -a:查看所有可用分区的配额使用报告
- -b:查看磁盘容量
- -i:查看文件数
4、实例
4.1、对用户设置配额
创建lv03,在/etc/fstab设置
vim /etc/fstab
/dev/vg01/lv03 /opt xfs defaults,usrquota,grpquota 0 0
例:设置tom 用户最大容量是80M 最大文件个数8
xfs_quota -x -c ‘limit -u bsoft=50M bhard=80M isoft=6 ihard=8 tom’ /opt/lv03
验证:
tom写入90M数据会报错超出磁盘配额限制dd if=/dev/zero of=文件路径 bs=1M count=90
xfs_quota -x -c ‘report -abi’ /opt/lv03:执行report命令,后面跟上挂载点,这样可以列出所有的Project ID以及对应的配额使用情况
4.2、对单一目录设置配额
- 修改lv03,在/etc/fstab设置挂载参数
vim /etc/fstab
/dev/vg01/lv03 /opt xfs defaults,prjquota 0 0 - 卸载lv03重新挂载
umount /dev/vg01/lv03
mount /dev/vg01/lv03 - 创建测试目录
mkdir /opt/lv03/test - 设置配额
xfs_quota -x -c 'project -s -p /opt/lv03/test 1’
#为目录分配ProjectID 1,-p 后跟path
5、无交互式设置磁盘配额命令-setquota
setquota -u 10210 10960 5 10 /opt/data ,常用语脚本
-x:启动专家模式,在当前模式下允许对配额系统进行修改的所有管理
以上是关于linux-磁盘管理与文件系统-磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章