1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux内核 quota Linux系统磁盘配额(quota)

linux内核 quota Linux系统磁盘配额(quota)

时间:2019-08-30 05:44:20

相关推荐

linux内核 quota Linux系统磁盘配额(quota)

本文主要介绍Linux系统磁盘配额工具quota。磁盘配额是指限制用户对磁盘的使用量。由于Linux是一个多用户、多任务的操作系统,多个用户公用磁盘空间,为了公平、合理的使用磁盘空间,于是就有了磁盘配额工具quota。

磁盘配额的限制条件:对EXT系列文件系统,quota仅能针对整个文件系统进行设计,无法对单一的目录进行磁盘配额;而在最新的xfs的文件系统中,可以使用quota对目录进行磁盘配额,因此在进行磁盘配额前,一定要对文件系统进行检查。

Linux内核必须支持quota。

磁盘配额只对一般用户有效,因为root拥有全部的磁盘空间。

quota的可以设置内容:可以分别针对用户、群组进行磁盘配额。

可以限制inode和block的用量。

soft/hard,表示具体限制的数值大小,当磁盘容量达到soft时,系统会发出警告,要求降低至soft值以下,当达到hard时,系统会禁止继续增加新的文件。

宽限时间(一般为7天),当某一用户使用磁盘容量达到soft时,系统会给出一个grace time,若超过这个天数,soft值会变成hard值并禁止该用户对磁盘增加新的文件。

0. 实验条件

操作系统:CentOS 6.5 (kernel 2.6.32-431.el6.i686 , 默认支持磁盘配额quota功能)

磁 盘:/dev/sdb1 (文件系统ext4,空间大小10G)

Selinux :Disabled

用户和组:普通用户quota1,quota2 加入 myquota组

1. 查看内核支持quota功能[root@localhost~]#grep-iquota/boot/config-2.6.32-431.el6.i686

CONFIG_NETFILTER_XT_MATCH_QUOTA=m

CONFIG_QUOTA=y

CONFIG_QUOTA_NETLINK_INTERFACE=y

CONFIG_PRINT_QUOTA_WARNING=y

#CONFIG_QUOTA_DEBUGisnotset

CONFIG_QUOTA_TREE=y

CONFIG_QUOTACTL=y

其中CONFIG_QUOTA=y(此行y代表支持quota功能)

2. 准备文件系统[root@localhost~]#fdisk-l/dev/sdb

[root@localhost~]#fdisk/dev/sdb

DeviceBootStartEndBlocksIdSystem

/dev/sdb11130610490413+83Linux

[root@localhost~]#mkfs.ext4/dev/sdb1

[root@localhost~]#mkdir/mnt/data

[root@localhost~]#mount/dev/sdb1/mnt/data/

[root@localhost~]#mount-oremount,usrquota,grpquota/mnt/data/

[root@localhost~]#mount|grepquota

/dev/sdb1on/mnt/datatypeext4(rw,usrquota,grpquota)

首先创建一个可用的磁盘分区设备/dev/sdb1 ,格式化为ext4文件系统,挂载到/mnt/data目录。然后重新挂/dev/sdb1文件系统,并添加usrquota,grpquota选项。

如果需要开机自动挂载,请vim /etc/fstab 并将挂载选项usrquota,grpquota加入其中。

3. 添加用于磁盘配额的用户和组[root@localhost~]#groupaddmyquota

[root@localhost~]#useradd-gmyquotaquota1

[root@localhost~]#useradd-gmyquotaquota2

4. 生成磁盘配额配置文件quotacheck[root@localhostdata]#quotacheck-cug.

[root@localhostdata]#ls

aquota.groupaquota.userlost+found

其中各选项及生成的配置文件解释如下:-c 创建磁盘配额的配置文件

-u 针对用户配额的配置文件aquota.user

-g 针对用户组配额的配置文件aquota.group

-v 显示扫描过程信息

-a 检测系统中所有已经挂载支持quota功能的分区

aquota.user 用户配额quota配置文件

aquota.group组配额quota配置文件

5. 启用磁盘配额quotaon

[root@localhostdata]#quotaon/dev/sdb1#启用/dev/sdb1的磁盘配额quota功能

[root@localhostdata]#quotaoff/dev/sdb1#关闭/dev/sdb1的磁盘配额quota功能

其中可以使用选项解释如下:-a 开启所有quota设定,根据/etc/mtab设定

-v 开启quota时显示信息

6. 编辑用户和组磁盘配额edquota[root@localhostdata]#edquota-uquota1

[root@localhostdata]#edquota-uquota2

[root@localhostdata]#edquota-gmyquota

其中可以使用选项解释如下:-u 编辑用户磁盘配额quota.user

-g 编辑组磁盘配额quota.grp

-t : 编辑宽限时间

-p : 复制quota磁盘配额给其他用户

复制用户quota1的磁盘配额给用户quota2:[root@localhostdata]#edquota-pquota1quota2

[root@localhostdata]#quota-uquota2

Diskquotasforuserquota2(uid502):

Filesystemblocksquotalimitgracefilesquotalimitgrace

/dev/sdb1050000100000100

[root@localhostdata]#quota-uquota1

Diskquotasforuserquota1(uid501):

Filesystemblocksquotalimitgracefilesquotalimitgrace

/dev/sdb1050000100000100

quota配置相关的内容:inode:限制用户可以建立的文件数量

block:限制用户磁盘的容量,以KB为单位

soft:软限制。就是在超过这个值后,会提醒用户,但用户的权限还没有被限制。

hard:硬限制。这是最高的限制,用户或组绝对不会超过这个限制值。如果超过了,就限制死了用户的使用权限了。

grace time:宽限时间。这个就是当达到soft限制时,还没有到达hard限制的时候,用来提醒用户的。如果在警告的天数之内,用户都不进行任何磁盘管理操作,那么 soft限制值会即刻取代hard限值来作为quota的限制,就算你没有达到hard限制,也用不了了。

这里修改用户quota1的软限制soft为50M,硬限制hard为100M。用户组myquota的软限制soft为50M,硬限制hard为100M。[root@localhostdata]#edquota-uquota1

Diskquotasforuserquota1(uid501):

Filesystemblockssofthardinodessofthard

/dev/sdb1050000100000000

[root@localhostdata]#edquota-gmyquota

Diskquotasforgroupmyquota(gid501):

Filesystemblockssofthardinodessofthard

/dev/sdb1050000100000000

7. 检查用户和组磁盘配额quota

为了方便检查测试磁盘配额效果,我们给/mnt/data目录赋予666权限,以方便普通用户quota1 和 quota2 创建文件。[root@localhostdata]#chmod777/mnt/data/

[root@localhostdata]#ls-ld

drwxrwxrwx3rootroot40961月3113:29.

[root@localhostdata]#su-quota1

[quota1@localhost~]$cd/mnt/data/

[quota1@localhostdata]$touchtest1.txt

[quota1@localhostdata]$quota

Diskquotasforuserquota1(uid501):

Filesystemblocksquotalimitgracefilesquotalimitgrace

/dev/sdb1050000100000100

可以看到对用户quota1设置的磁盘配额软限制50M,硬限制100M已经生效。

检查用户quota1 和 组myquota 的磁盘配额:[root@localhostdata]#quota-uquota1

Diskquotasforuserquota1(uid501):

Filesystemblocksquotalimitgracefilesquotalimitgrace

/dev/sdb1050000100000100

[root@localhostdata]#quota-gmyquota

Diskquotasforgroupmyquota(gid501):

Filesystemblocksquotalimitgracefilesquotalimitgrace

/dev/sdb1050000100000200

8. 测试用户磁盘配额效果[root@localhostdata]#suquota1

[quota1@localhostdata]$ddif=/dev/zeroof=quota1.datbs=1Mcount=50

sdb1:warning,userblockquotaexceeded.

sdb1:warning,groupblockquotaexceeded.

记录了50+0的读入

记录了50+0的写出

52428800字节(52MB)已复制,0.155252秒,338MB/秒

[quota1@localhostdata]$quota

Diskquotasforuserquota1(uid501):

Filesystemblocksquotalimitgracefilesquotalimitgrace

/dev/sdb151200*500001000007days200

可以看到宽限时间grace已经生效7days,表明磁盘配额达到软限制50M的警告线,此时还可以再增加文件,但如果达到100M的硬限制,就无法再创建文件了。[quota1@localhostdata]$ddif=/dev/zeroof=quota11.datbs=1Mcount=80

sdb1:writefailed,userblocklimitreached.

dd:正在写入"quota11.dat":超出磁盘限额

记录了48+0的读入

记录了47+0的写出

49971200字节(50MB)已复制,0.0881028秒,567MB/秒

如上“超出磁盘配额”证明对用户quota1的磁盘配额生效。我们在检查一下用户quota1的磁盘配额情况。

[quota1@localhostdata]$touchtest.txt

[quota1@localhostdata]$ls

aquota.grouplost+foundquota1.dattest2.txt

aquota.userquota11.dattest1.txttest.txt

[quota1@localhostdata]$echohelloworld>test.txt

bash:echo:writeerror:超出磁盘限额

9. 查看磁盘配额报告情况repquota[root@localhostdata]#repquota-aug

repquota一个磁盘配额综合查询命令,以下是对它的一些选项解释,一般这三个选项一起使用:-a 报告所有支持quota的文件系统

-u 报告针对用户的quota信息

-g 包裹针对组的quota信息

10. 系统启动时自动启用磁盘配额及添加计划任务

(1)为了实现系统启动时自动启用磁盘配额,可以在 /etc/rc.d/rc.sysinit 或 /etc/rc.d/rc.local 中加入以下内容:/usr/sbin/quotaon-aug

在系统关机/重启脚本 /etc/rc.d/rc[0,6]/ 中加入关闭quota的命令:/usr/sbin/quotaoff-aug

(2)quotcheck命令用来扫描文件系统的磁盘配额使用情况,更新aquota.user,aquota.group从而保持quota配置到最新的状态。

因此最好能在系统启动时自动执行以下命令:/sbin/quotacheck-avug

或者通过crontab定期执行:08***/sbin/quotacheck-avug#每天早上七点执行一次扫描文件系统磁盘配额情况

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。