22磁盘管理—磁盘配额详解

Posted

tags:

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

  • 磁盘容量配额

    • 查看内核是否支持quota功能:

    • 修改/etc/fstab添加支持磁盘配额选项

    • 卸载、加载/web,并查看/web项

    • 创建磁盘配额配置文件

    • 对用户实现配额

    • 测试用户配额

    • 关闭磁盘配额

磁盘容量配额

Unix系统最初设计理念就让许多人一起使用,多任务的操作系统,但是硬件的资源是固定有限的,如果出现个小破坏份子不断的创建文件或下载电影,那么硬盘空间总有一天会被占满的吧,这时就需要quota服务帮助我们为每个用户限制可以使用的硬盘空间,一旦超出预算就不再允许他们使用。

quota的磁盘配额可以限制用户的硬盘可用空间或最大创建文件数量,并且还有软/硬限制的区别:

软限制:当达到软限制时会提示用户,但允许用户在规定期限内继续使用。 
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。

查看内核是否支持quota功能:

[[email protected] ~]# dmesg | grep quota
VFS: Disk quotas dquot_6.5.2

查看quota程序包是否已经安装:

[[email protected] ~]# rpm -q quota
quota-3.17-23.el6.x86_64

修改/etc/fstab添加支持磁盘配额选项

首先在系统新建一个用于挂载分区的目录,然后修改/etc/fstab添加一条自动挂载分区条目:

[[email protected] ~]# vim /etc/fstab
/dev/sdc1               /web                    ext4    defaults,usrquota,grpquota      0 0

卸载、加载/web,并查看/web项

[root@localhost ~]# umount /web/; mount -a

为了让其他用户可以使用这个分区,先将这个实验用的分区权限修改成777

[root@localhost ~]# chmod 777 /data/

创建磁盘配额配置文件

[root@localhost ~]# quotacheck -vug /web/

-v 显示扫描过程; 
-u 针对扫描情况与目录的使用情况建立aquota.user; 
-g 针对用户扫描文件与使用情况建立aquota.group;

接着就能看到分区目录中自动生成了两个配置文件

[[email protected] /]# ll /web/
total 3104
-rw------- 1 root    root       7168 Jul 25 10:40 aquota.group
-rw------- 1 root    root       7168 Jul 25 10:39 aquota.user

对用户实现配额

[root@localhost ~]# edquota -u zhanghe

输入上面的命令后,会进入一个vi编辑界面

选项解释

Filesystem下显示实现磁盘配额的分区; 
blocks下为当前已经使用的大小,不用修改; 
soft为软限制,超出后会给出警告,超出的部分默认会保存7天; 
hard为硬限制,不可超越的限制(软硬限制默认单位都是KB); 
后面的两个相同的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制;


本例中设置,zhanghe可以使用/dev/sdb1分区的软限制大小10M,硬限制20M,可创建的文件个数软限制是3个,硬限制5个;

Disk quotas for user zhanghe (uid 1001):
 Filesystem                   blocks       soft       hard     inodes     soft     hard
 /dev/sdc1                         0       10240       20480          0        3        5

修改保存退出后,开启这个分区的磁盘配额

[root@localhost ~]# quotaon /web/

测试用户配额

如果操作无误,现在磁盘配额就已经开始起作用了,使用zhanghe用户登录测试如下: 
切换到zhanghe用户

[root@localhost ~]# su - zhanghe

进入/dev/sdc1分区

[zhanghe@localhost ~]$ cd /web/

所以理论上最后写入/web/testfile1的数据应该是1200KB

[[email protected] ~]$ dd if=/dev/zero of=/web/testfile1 bs=100K count=120
sdc1: warning, user block quota exceeded.
//因为针对zhanghe用户在这个分区的软限制设置是10M,所以这里给出了警告信息
记录了120+0 的读入
记录了120+0 的写出
12288000字节(12 MB)已复制,0.145558 秒,84.4 MB/秒

可以查看到testfile1的大小是12M

[[email protected] ~]$ ll /web/testfile1 -h
-rw-rw-r-- 1 zhanghe zhanghe 12M 8月  29 06:51 /web/testfile1
//测试向第二个文件/web/testfile2写入10M垃圾数据
[[email protected] ~]$ dd if=/dev/zero of=/web/testfile2 bs=100K count=120
sdc1: write failed, user block limit reached.
dd: 写入"/web/testfile2" 出错: 超出磁盘限额
//出现了一个警告,并且下方显示只有8M的数据被复制,这是因为我们设置的硬限制是20M
记录了85+0 的读入
记录了84+0 的写出
8683520字节(8.7 MB)已复制,0.0676851 秒,128 MB/秒

关闭磁盘配额

关闭单个磁盘的磁盘配额

[root@localhost ~]# quotaoff /data/

关闭所有已经开启的磁盘配额

[root@localhost ~]# quotaoff -a

反之,开启所有磁盘配额

[root@localhost ~]# quotaon -a

如果不再使用磁盘配额,可以将配置文件也删除

[[email protected] ~]# rm -rf /sdb1/aquota.*


本文出自 “家住海边喜欢浪” 博客,请务必保留此出处http://zhang789.blog.51cto.com/11045979/1847286

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

LVM与磁盘配额

磁盘配额详解

Linux系统磁盘分区设备挂载及磁盘配额详解

linux使用磁盘配额管理

linux中磁盘配额管理

linux-磁盘管理与文件系统-磁盘配额