发表于 2019-4-17 18:09:34

centos系统之磁盘配额

  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   -qquota
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   #更改权限,方便普通用户写入
https://s1.运维网.com/images/blog/201902/19/c7ee0634047a354d0c333a9e060116bb.png

mount   -oremount,usrquota,grpquota   /dev/sdb    /opt/test    #临时重新挂载,添加了usrquota和grpquota参数
使用mount命令查看
https://s1.运维网.com/images/blog/201902/19/e935bf7a93750e1b5a3bbeff04560907.png

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

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

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

注:不带挂载点,看的是系统中的所有文件系统
df:查看文件系统的详细信息
例子:
xfs_quota -x -c "df" /dev/sdb
https://s1.运维网.com/images/blog/201902/19/59ad83149f0a9193dbf2f1f622228f0a.png

report: 后边必须跟支持quota的载入点,列出quota的项目设置
report后可以跟-u -g -p -i -b -h等选
report后可以跟-u(用户)、-g(群组)、-p(单一目录)、-i(inode的使用情况)、-b(block的使用情况)、-h(显示单位)等
https://s1.运维网.com/images/blog/201902/19/624fbc3435d87366b74c41c242ac140c.png

state:列出支持quota功能的文件系统的quota状态
https://s1.运维网.com/images/blog/201902/19/581e1e3f18a8080fad1b2a57e5f6ec40.png

(3)、设置限制值的大小
useradd    jack    #创建普通用户
xfs_quota -x -c 'limit bsoft=8M bhard=10M jack'   /opt/test
说明:
limit:限制
bsoft:全称blocksoft,即block软限制
bhard:全称blockhard,即block硬限制
jack:用户
xfs_quota -x -c "timer -u -b 14days"   /opt/test   #设置宽限时间
xfs_quota -x -c "report" /opt/test/
https://s1.运维网.com/images/blog/201902/19/8635a94bb4a4a4576561be4b57ee6569.png

    测试:
su - jack   #切换用户
cd   /opt/test    #切换到该节点
dd if=/dev/zero of=/opt/test/123 bs=1Mcount=9   
#创建指定容量的测试文件
超出软限制的时候,不会出现警告
dd if=/dev/zero of=/opt/test/1234 bs=1Mcount=9
https://s1.运维网.com/images/blog/201902/19/b2d11564c879c05458b941edb2b0d4dc.png
https://s1.运维网.com/images/blog/201902/19/ddd22e82351831a5dcf3ed6069609254.png

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

    (3)挂载:
mount-a
(4)查看挂载情况:
mount
https://s1.运维网.com/images/blog/201902/19/8b67c1ed055cc4b0a337ce5730e93f19.png
https://s1.运维网.com/images/blog/201902/19/6e2790b28b41ec6371531af10690c942.png

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

    quotaon   /opt/test
https://s1.运维网.com/images/blog/201902/19/6e35b7dd37edf0b2ff742db242a0d0f4.png

    看到分区所挂载的目录自动会生成两个配置文件即可。
(6)设置磁盘配额的限制:
edquota   
-u:用户,为用户设置磁盘配额
-t:改变宽限时间
创建普通用户来测试使用:
useradd   tom
设置普通用户tom的磁盘配额:
edquota   -u   tom
https://s1.运维网.com/images/blog/201902/19/7b46f3bf2c1550e34d18954fee6f93e1.png

    说明:
blocks:当前已经使用的大小
soft:软限制,默认单位都是KB
hard:硬限制,默认单位都是KB
inodes:当前已经使用的inode大小,不用修改
后面的两个的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制。
https://s1.运维网.com/images/blog/201902/19/e4c7f44177d23137458d129a04e82e05.png

    quota -uvs tom   #查看用户的磁盘配额情况
https://s1.运维网.com/images/blog/201902/19/20496fa63ff3396ffa0b7b1fed28bc6e.png

    (7)切换普通用户,并使用普通用户的创建测试文件
dd if=/dev/zero of=/opt/test/t02 bs=1M count=8
#创建一个8M的t02测试文件。
https://s1.运维网.com/images/blog/201902/19/d72aae33ac63158498d638a6505117c1.png

    dd if=/dev/zero of=/opt/test/t03 bs=1M count=8
#再创建一个8M的t03测试文件。
https://s1.运维网.com/images/blog/201902/19/7c493d94d67059ea55ee17943d43a49b.png

    (8)查看用户磁盘配额情况:
quota -ugv
https://s1.运维网.com/images/blog/201902/19/7d338f5b8619de128fee93450de6025f.png

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


页: [1]
查看完整版本: centos系统之磁盘配额