nfs 磁盘限额 linux,磁盘配额:quota

quota作用: 限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器...

•创建硬链接不受限制,无论是block还是inode

•对root用户不起作用,但可以修改对root的配额设置

•针对文件系统,不针对目录

•针对容量或者文件数量限制,block和inode

一、启用磁盘限额

1. 让文件系统支持配额 [ext3/4]

[root@node1 sdb]# vim /etc/fstab

/dev/sdb1 /mnt/sdb ext4 defaults,usrquota,grpquota 0 0

[root@node1 sdb]# mount

/dev/sdb1 on /mnt/sdb type ext4 (rw,usrquota,grpquota)

2. 创建磁盘配额的数据库文件

注意: 建议停用SELinux

[root@nfs ~]# setenforce 0

setenforce: SELinux is disabled

[root@nfs ~]# vim /etc/selinux/config

SELINUX=disabled

如果不关闭会有类似下面的提示

[root@node1 sdb]# quotacheck -acug

quotacheck: Cannot create new quotafile /mnt/sdb/aquota.user.new: Permission denied

quotacheck: Cannot initialize IO on new quotafile: Permission denied

quotacheck: Cannot create new quotafile /mnt/sdb/aquota.group.new: Permission denied

quotacheck: Cannot initialize IO on new quotafile: Permission denied

[root@node1 sdb]# yum -y install quota //如果没有这个功能的话安装quota这个包

[root@node1 sdb]# quotacheck -acgu //生成quota文件数据库

[root@node1 sdb]# ls //配额相关的数据库文件

aquota.group aquota.user lost+found

选项:

-a 所有分区(已支持配额)

-c 创建

-u 用户

-g 组

3.启动磁盘配额

[root@node1 sdb]# quotaon -a //启动所有分区的磁盘配额

二、日常管理

TIPS:数值0为不限制

方法一:edquota

[root@node1 sdb]# edquota -u alice //-u参数可以忽略

Disk quotas for user alice (uid 501):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 16 8192 10240 4 0 8

blocks: 从磁盘的使用量限制,比如限制用户使用10M,单位是k

inodes: 从创建文件数限制,比如只能建立100个文件

soft: 软限制 block 8M

hard: 硬限制 block 10M

grace time: 宽限期,默认7天 # edquota -t

[root@node1 sdb]# su - alice

[alice@node1 sdb]$ pwd

/mnt/sdb

[alice@node1 sdb]$ dd if=/dev/zero of=file1 bs=1M count=9

sdb1: warning, user block quota exceeded.

9+0 records in

9+0 records out

9437184 bytes (9.4 MB) copied, 0.0221389 s, 426 MB/s

[alice@node1 sdb]$ dd if=/dev/zero of=file1 bs=1M count=20

sdb1: warning, user block quota exceeded.

sdb1: write failed, user block limit reached.

dd: writing `file1': Disk quota exceeded

11+0 records in

10+0 records out

10485760 bytes (10 MB) copied, 0.0347449 s, 302 MB/s

[alice@node1 sdb]$ ll -h

-rw-rw-r--. 1 alice alice 10M Aug 11 12:10 file1

[alice@node1 sdb]$ quota //查看自己的配额情况

Disk quotas for user alice (uid 501):

Filesystem blocks quota limit grace files quota limit grace

/dev/sdb1 10240* 8192 10240 6days 1 0 8

方法二: setquota

# setquota -u username block软限制 block硬限制 inode软限制 inode硬限制 分区

# setquota -u jack 80000 100000 15 20 /dev/sda2

方法三:复制

# edquota -p alice tom robin user1 user2 user3

# setquota -p alice jack /mnt/raid5/ //必需指定设备

将alice的配额方案复制给后面所有用户

[root@nfs ~]# for i in {1..10}

do

useradd zhang$i

edquota -p alice zhang$i

done

+++查看配额+++

查看单个用户的配额: # quota jack

查看所有用户的配额: # repquota -a

# repquota -ag

普通用户查看自己配额: $ quota

扩展知识:针对组设置配额

例1:限制hr组的成员能在/home/hr目录中:100M 50文件

[root@node1 sdb]# groupadd hr

[root@node1 sdb]# useradd hr01 -G hr

[root@node1 sdb]# useradd hr02 -G hr

[root@node1 sdb]# mkdir /mnt/sdb/hrhome

[root@node1 sdb]# chgrp hr !$

chgrp hr /mnt/sdb/hrhome

[root@node1 sdb]# ll -d !$

ll -d /mnt/sdb/hrhome

drwxr-xr-x. 2 root hr 4096 Aug 11 12:18 /mnt/sdb/hrhome

[root@node1 sdb]# repquota -ag

*** Report for group quotas on device /dev/sdb1

Block grace time: 7days; Inode grace time: 7days

Block limits File limits

Group used soft hard grace used soft hard grace

----------------------------------------------------------------------

root -- 20 0 0 2 0 0

hr -- 4 0 102400 1 0 50

倒2.不改动既有系统的Quota实例

假如你忽然想将邮件信箱所在目录 /var/spool/mail/ 给一个quota,但是已经没有独立的文件系统让你规划了,并且你想让用户的邮箱与主文件夹的总体使用固定,那该怎么办?

假设/home是个独立的分区,那么:

1.将/var/spool/mail这个目录完整的移动到/home下面;

2.利用 ln -s /home/mail /var/spool/mail来新建连接数据;

3.将 /home 进行quota限额设置。

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值