设为首页 收藏本站
查看: 1072|回复: 0

[经验分享] centos系统之磁盘配额

[复制链接]
YunVN网友  发表于 2019-4-17 18:09:34 |阅读模式
  Linux系统作为一个多用户的操作系统,在生产环境中,会发生多个用户共同使用一个磁盘的情况,会造成Linux根分区的磁盘空间耗尽,导致Linux系统无法建立新的文件,从而出现服务程序崩溃、系统无法启动等故障现象。
  为了避免这种情况,解决方法就是 ,对用户在指定文件系统中使用磁盘空间、文件数量进行限制,防止用户占用大量的磁盘空间,从而保持系统存储空间可以稳定使用。
  一、磁盘配额的限制
1、磁盘配额的对象:整个硬盘或者硬盘分区,并且要求Linux内核支持磁盘配额技术
2、对EXT系列文件系统,磁盘配额是针对整个文件系统(即整个硬盘分区),无法对单一的目录进行磁盘配额;
对xfs系列文件系统,磁盘配额不仅可以对文件系统(硬盘分区),还可以对单一的目录进行磁盘配额。
因此,在磁盘配额前,一定对文件系统进行检查。
  3、磁盘配额只对一般用户有效,对管理员(root)来说是没有任何作用限制的。
  二、quota的设置内容
1、分别针对用户(user)、群组(group)、单一目录(project)进行磁盘配额
  2、限制inode和block的用量(inode和block的介绍请看。。。)
简单说明:
inode:关系可以创建文件或者目录的数量
block:关系可以存储的容量大小
  3、soft/hard:表示具体限制的数值大小
soft(软限制):最低限制容量,可以被超过,但会有警告信息,超过的部分会保存到宽限时期到期。一般是硬限制的80%。
hard(硬限制):绝对不能被超过限制。达到hard时,系统会禁止继续增加新的文件。
  4、宽限时间(一般为7天)
当用户使用的空间超过了软限制但还没达到硬限制,在这个宽限的时间到期前必须将超过的数据降低到软限制以下(默认是7天),当宽限时间到期,系统将自动清除超过的数据。
  三、部署磁盘配额
  1、实验环境
实验环境:Vmware Workstation Pro 14
系统平台:CentOS Linux release 7.4.1708 (Core)
  2、安装磁盘配额的软件工具(quota)
rpm   -q  quota
https://s1.运维网.com/images/blog/201902/19/6c65231f97503364e3cff51a6f3b8b7e.png
  没有就用yum安装quota工具
yum   -y   install    quota
  3、格式化硬盘并以支持配额功能的方式挂载文件系统
  1)xfs文件系统:
(1)格式化文件系统
mkfs.xfs     /dev/sdb    #格式化/dev/sdb的文件系统为xfs
https://s1.运维网.com/images/blog/201902/19/6fe46e84c5eeb930615e3a17bb558a40.png

mkdir     /opt/test     #在系统中创建用于挂载的目录
——————————临时挂载———————————————
mount   /dev/sdb   /opt/test     #临时将/dev/sdb挂载到/opt/test下
chmod   777   /opt/test     #更改权限,方便普通用户写入


mount   -o  remount,usrquota,grpquota     /dev/sdb    /opt/test    #临时重新挂载,添加了usrquota和grpquota参数
使用mount命令查看


可以从上图看出,没有效果,“noquota”就是没开启磁盘配额。
注:执行mount命令的-o remount不能生效,没有效果,其原因是对于xfs文件系统,quota功能在挂载一开始就开启了,所以只能通过修改/etc/fstab文件进行quota功能的开启。
——————————————————————————————
————————————开机挂载——————————————
vi    /etc/fstab
/dev/sdb     /opt/test      xfs     defaults,usrquota,grpquota,prjquota      0       0


说明:
quota主要有三个类别设置:
usrquota——用户
grpquota——群组
prjquota——单一目录,但是不能和grpquota同时存在。
mount   -a     #检查语法并实现挂载,没有输出代表没有语法错误。
mount      #查看分区挂载详细情况


从上图可以看到,usrquota和grpquota
(2)、查看xfs文件系统的quota管理数据
格式:
xfs_quota -x -c  "命令"  挂载点
说明:
-x:专家模式,后续才可以跟-c选项
-c: 指定执行命令
命令:
print:简单列出系统中的文件系统的信息
例子:
xfs_quota -x -c "print"


注:不带挂载点,看的是系统中的所有文件系统
df:查看文件系统的详细信息
例子:
xfs_quota -x -c "df" /dev/sdb


report: 后边必须跟支持quota的载入点,列出quota的项目设置
report后可以跟-u -g -p -i -b -h等选
report后可以跟-u(用户)、-g(群组)、-p(单一目录)、-i(inode的使用情况)、-b(block的使用情况)、-h(显示单位)等


state:列出支持quota功能的文件系统的quota状态


(3)、设置限制值的大小
useradd    jack    #创建普通用户
xfs_quota -x -c 'limit bsoft=8M bhard=10M jack'   /opt/test
说明:
limit:限制
bsoft:全称block  soft,即block软限制
bhard:全称block  hard,即block硬限制
jack:用户
xfs_quota -x -c "timer -u -b 14days"   /opt/test   #设置宽限时间
xfs_quota -x -c "report" /opt/test/


    测试:
su - jack   #切换用户
cd   /opt/test    #切换到该节点
dd if=/dev/zero of=/opt/test/123 bs=1M  count=9   
#创建指定容量的测试文件
超出软限制的时候,不会出现警告
dd if=/dev/zero of=/opt/test/1234 bs=1M  count=9



    从上图可以看出,最大容量为10M,没法超过。
2)EXT文件系统
(1)格式化分区:
mkfs.ext4 /dev/sdb1
(2)设置开机自动挂载:
vi   /etc/fstab
/dev/sdb1       /opt/test       ext4    defaults,usrquota,grpquota      0       0


    (3)挂载:
mount  -a
(4)查看挂载情况:
mount



    由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件,才可以去启动quota功能。
(5)创建磁盘配额的配置文件:
quotacheck:
-v:显示扫描过程
-u:针对扫描用户的情况建立aquota.user
-g:针对扫描组的情况建立aquota.group
-c:创建新的配额文件
-a:扫描所有分区
quotacheck   -augcv    #扫描所有分区,并创建相应配置文件


    quotaon   /opt/test


    看到分区所挂载的目录自动会生成两个配置文件即可。
(6)设置磁盘配额的限制:
edquota   
-u:用户,为用户设置磁盘配额
-t:改变宽限时间
创建普通用户来测试使用:
useradd   tom
设置普通用户tom的磁盘配额:
edquota   -u   tom  


    说明:
blocks:当前已经使用的大小
soft:软限制,默认单位都是KB
hard:硬限制,默认单位都是KB
inodes:当前已经使用的inode大小,不用修改
后面的两个的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制。


    quota -uvs tom   #查看用户的磁盘配额情况


    (7)切换普通用户,并使用普通用户的创建测试文件
dd if=/dev/zero of=/opt/test/t02 bs=1M count=8
#创建一个8M的t02测试文件。


    dd if=/dev/zero of=/opt/test/t03 bs=1M count=8
#再创建一个8M的t03测试文件。


    (8)查看用户磁盘配额情况:
quota -ugv


    (9)关闭磁盘配额
quotaoff /quotadir/      #关闭单个磁盘的磁盘配额
quotaoff  -a                   #关闭系统所有已经开启的配额



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-828452-1-1.html 上篇帖子: centos系统之LVM逻辑卷 下篇帖子: centos系统之进程管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表