磁盘配额:
文件服务器:共享存储空间,让用户能够随时存储数据;
FTP:
SMB:
网盘:极速上传
磁盘配额主要是针对于这类文件服务器进行用户的磁盘空间使用限制而提出的。
磁盘配额的设定对象:
1.能够实施读写操作的块设备;
2.要有正确的文件系统;
磁盘配额限制哪些人的访问行为:
1.用户
为指定用户限制磁盘使用量
1) 磁盘空间(块) 一个block的限制,代表1KB存储空间
2) inode
2.组
限制指定组中所有成员的磁盘使用量的总和;
磁盘配额的类型:
soft limit:软限制
当用户的磁盘使用量达到软配额限制,将会启动宽限期倒计时;在倒计时归0之前,用户可以正常使用剩余的配额量,但一旦倒计时归0,用户将不能继续使用磁盘空间,除非将数据进行清理,低于软限制,而后可以继续使用磁盘空间;
hard limit:硬限制
用户所能够使用的磁盘空间的真正上限;
一般来讲,软限制要比硬限制的数值要小一些。
soft:90M
hard:120M
已经存放了95M数据, 10M
清理称为85M
在Linux中默认的宽限期为7天
需要一个用户记录用户和组的磁盘使用量和配额量的数据文件;
aquota.user
aquota.group
如果想要让分区或卷能够支持磁盘配额的设定,需要单独的挂载选项;
usrquota, grpquota
1. ~]# mount -o usrquota,grpquota DEVICE MOUNT_POINT
2./etc/fstab
DEVICE MOUNT_POINT FSTYPE defaults,usrquota,grpquota 0 0
quotacheck
quotacheck - scan a filesystem for disk usage, create, check and repair quota files
选项:
-v, --verbose:显示整个操作过程的详细信息
-u, --user:创建,检测和修复用户配额文件
-g, --group:创建,检测和修复组配额文件
-c, --create-files:经过检测,如果没有用户配额文件和或组配额文件,就安装用户给定的选项来进行文件的创建;
-a, --all:所有的在/etc/fstab文件中包含了与配额有关的挂载选项的设备上,是否有对应选项的配额文件;
用于编写配额内容的命令
edquota
-u, --user:编写用户配额,默认的功能;
-g, --group:编写组配额,不推荐使用;
-t, --edit-period:设置超出软限制的宽限期;默认7天,可以选择以秒,分钟,小时,天等时间单位;
是配额功能生效:
quotaon, quotaoff
quotaon, quotaoff - turn filesystem quotas on and off
quotaon|quotaoff /dev/sdb1
查看配额的使用情况
quota
quota - display disk usage and limits
repquota(只有root用户可以使用)
repquota - summarize quotas for a filesystem
注意:
root不受磁盘配额限制;
!!添加一个用户,设置密码:
[root@localhost mysub1]# passwd QQQQQ
更改用户 QQQQQ 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
!!创建一个分区:
[root@localhost mysub1]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x976102f0 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
!!如果新分区的磁盘没有显示,可以使用~刷新:
[root@localhost mysub1]# ls /dev/sdd*
/dev/sdd
[root@localhost mysub1]# partx -a /dev/sdd
partx: /dev/sdd: error adding partition 1
[root@localhost mysub1]# ls /dev/sdd*
/dev/sdd /dev/sdd1
!!创建文件系统:
[root@localhost ~]# mke2fs -t ext4 /dev/sdd1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
!!挂载,修改配置文件,设置挂载位置永久生效,重新挂载:
[root@localhost ~]# mount /dev/sdd1 /myquota
#
# /etc/fstab
# Created by anaconda on Thu Mar 9 15:51:17 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=8001c548-1b27-4e84-aabb-bd02f64cfdd8 /boot xfs defaults
0 0
/dev/mapper/cl-swap swap swap defaults 0 0
/dev/sdd1 /myquota ext4 defaults,usrquota,grpquota 0 0
[root@localhost ~]# mount -a
!!使用quotacheck命令生成配置磁盘配置的数据库文件,若selinux开启的话会提示权限不够,通过setenforce?0临时关掉selinux就可以了,quotacheck执行成功可以看到/quota/下面多了两个文件:
[wenyao@localhost ~]$ quotacheck -cug /myquota/
quotacheck: Cannot remount filesystem mounted on /myquota read-only so counted values might not be right.
Please stop all programs writing to filesystem or use -m flag to force checking.
[wenyao@localhost ~]$ su - root
密码:
上一次登录:二 6月 6 20:38:43 CST 2017pts/0 上
[root@localhost ~]# quotacheck -cugm /myquota/
[root@localhost ~]# ls /myquota/
aquota.group aquota.user lost+found
!!然后通过quotaon?/quota/启动对应文件系统上的磁盘配额功能
!!通过edquota?-u?myquota配置用户myquota对这个磁盘分区的使用配额。还可以通过 edquota?-g?groupname?对groupname这个组设定配额