磁盘管理之磁盘配额

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘管理之磁盘配额相关的知识,希望对你有一定的参考价值。

    不管磁盘空间有多么大,磁盘空间不够使用似乎是一个永远的事实。加之Linux系统在默认情况下,并不限制每个用户使用磁盘空间的大小,如果某个用户疏忽或恶意将磁盘占满,将导致系统无法进行写操作甚至崩溃。当然你可能会想到:在每创建一个用户的时候,可以将它的主目录建在一个单独的逻辑分区上(需要指出:像/tmp这样的目录不支持磁盘配额),不过这样太麻烦。如何使多个用户公平的使用磁盘,就是磁盘配额要解决的问题。




    磁盘配额的简单实现步骤

1、创建文件系统

2、移动原有数据

3、挂载目录

4、移回原有数据

*    关闭selinux(Centos7以下版本可能)

5、创建磁盘配额数据库

6、开启配额功能

6、指定用户配额

7、测试

8、关闭磁盘配额

# 创建文件系统
[[email protected]~]#mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
...    # 
# 如果原来目录下有数据,要先移动数据,否则原数据会隐藏
[[email protected]/home]#mkdir /tmp/home   
[[email protected]/home]#mv /home/* /tmp/home/
# 挂载文件系统
[[email protected]~]#vim /etc/fstab 
...
/dev/sdb1   /home   ext4  usrquota,grpquota  0   0 
... 
[[email protected]~]#mount -a
# 将数据移回原目录
[[email protected]/home]#mv /tmp/home/* ./
# 关闭selinux
[[email protected]/tmp]#getenforce    # 查看selinux状态
Enforcing
[[email protected]/tmp]#setenforce 0    # 关闭selinux
[[email protected]/tmp]#getenforce 
Permissive 
# 创建磁盘配额数据库
[[email protected]~]#quotacheck -cug /home/
# 查看并打开磁盘配额功能
[[email protected]~]#quotaon -p /home/
group quota on /home (/dev/sdb1) is off
user quota on /home (/dev/sdb1) is off    # 关闭
[[email protected]~]#quotaon /home/    # 打开配额功能
[[email protected]~]#quotaon -p /home/
group quota on /home (/dev/sdb1) is on
user quota on /home (/dev/sdb1) is on    # 开启
# 为用户创建配额
[[email protected]/home]#edquota user
  ***原始数据
Disk quotas for user user (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                      9496          0          0        133        0        0
  ***修改后数据
Disk quotas for user user (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                      9496      30000      40000        133      180       200
                                                               # 此处inode要大于原来inode
# 查看配额状况
[[email protected]/home]#quota user    # 也可以是repquota /home(会显示全部用户配额)命令
Disk quotas for user user (uid 1000): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1    9496   30000   40000             133*    180     200   7days
# 切换至user用户测试
[[email protected]/home]#su - user    # 注意:完全切换
Last login: Wed Aug 31 20:14:37 CST 2016 on pts/0
[[email protected] ~]$ dd if=/dev/zero of=f1 bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.03785 s, 277 MB/s    # 未到配额上限
# 查看已用空间
[[email protected] ~]$ du -sh
20M	.
# 继续增加占用空间30M
[[email protected] ~]$ dd if=/dev/zero of=f2 bs=1M count=30
sdb1: warning, user block quota exceeded.    # 已报错,超过上限40M
sdb1: write failed, user block limit reached.
dd: error writing ‘f2’: Disk quota exceeded
20+0 records in
19+0 records out
20750336 bytes (21 MB) copied, 0.105223 s, 197 MB/s
# 关闭磁盘配额
  ***修改/etc/fstab
  [[email protected]/home]#vim /etc/fstab 
  /dev/sdb1   /home   ext4  defaults  0   0
  ***卸载/home
  [[email protected]~]#umount /home
  ***再挂载
  [[email protected]~]#mount -a
  [[email protected]~]#quota user    # 配额消失
  [[email protected]~]#

需要注意的是:

quota是软限制,在触发软限制之时,gracetime会倒计时,在这个时间(默认是7天)没有耗尽之前,若用户还不清理磁盘使之符合软限制的要求,则软限制就会变成硬限制。edquota -t可修改这个时间。

[[email protected]/home]#quota user    # 也可以是repquota /home(会显示全部用户配额)命令
Disk quotas for user user (uid 1000): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1    9496   30000   40000             133*    180     200   7days


本文出自 “LINUX_Home” 博客,请务必保留此出处http://dmwing.blog.51cto.com/11607397/1844933

以上是关于磁盘管理之磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章

磁盘管理之磁盘配额

linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

linux之磁盘管理,查看识别设备,磁盘的挂载卸载分区配额管理,文件系统

高级文件系统管理之mdadm与lvm的创建

linux使用磁盘配额管理

文件系统之磁盘配额