磁盘管理之磁盘配额
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逻辑卷认识与管理详解(实验详细,可跟做)