Linux磁盘配额(Quota)与进阶文件系统管理

Quota 的一般用途
1、针对WWW server,例如:每个人的网页空间的容量限制
2、针对mail server,例如:每个人的邮件空间限制
3、针对file server,例如:每个人最大的可用网络硬盘空间
针对 Linux 系统主机
1、限制某一群组所能使用的最大磁盘配额
2、限制某一用户的最大磁盘配额
3、以Link的方式,来使邮件可以作为限制的配额

Quota 的使用限制
1、仅能针对整个filesystem
2、核心必须支持quota
3、Quota的记录文件
4、只对一般身份使用者有效
你不能针对『某个目录』来进行Quota的设计,但你可以针对『某个文件系统(filesystem)』来设定。

Quota 的规范设定项目
1、容量限制或档案数量限制(block 或 inode)
限制inode用量:可以管理使用者可以建立的『档案数量』
限制block用量:管理用户磁盘容量的限制
2、柔性劝导与硬性规定(soft/hard):
hard:表示使用者的用量绝对不会超过这个限制值
soft:表示使用者在低于soft限值时,可以正常使用磁盘,但若超过soft切低于hard的限值,会有告警信息。
3、会倒数计时的宽限时间(grace time):
宽限时间只有在用户的磁盘用量介于soft到hard之间时,才会出现且会倒数的一个东西。
当你的磁盘用量即将到达hard且超过soft时,系统会给予警告,但也会给一段时间让用户自行管理磁盘。一般预设的宽限时间为七天,如果七天内你都不进行任何磁盘管理,那么soft限制值会即刻取代hard限值来作为quota的限制。

一个Quota实作范例
1、设一专题,5个人为一组,quota1,quota2,quota3,quota4,quota5 初始群组都为quotagroup
2、账号的磁盘容量限制值:我想让这五个用户都能够取得300M的磁盘使用量(hard),档案数量则不予限制。此外,只要容量使用率超过250M,就予以警告(soft)
3、群组的限额:由于系统里面还有其他用户存在,因此我仅承认quotagroup这个群组最多仅能使用1G的容量,
4、宽限时间的限制:最后每个使用者在超过soft限制值之后,都还能够有14天的宽限时间。

用脚本来创建账号添加密码等工作
[root@ ~]# vi addaccount.sh
#!/bin/bash
groupadd quotagroup
for username in quota1 quota2 quota3 quota4 quota5
do
    useradd -g quotagroup $username
    echo "$username" | passwd --stdin $username
done

实作Quota流程-1:文件系统支援
由于Quota仅针对整个文件系统来进行规划,所以我们得先查一下,/home是否是个独立的filesystem
[root@ ~]# df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/hda3 4.8G 740M 3.8G 17% /home            <===/home 确实是独立的
使用如下的方式来手动加入quota的支持
[root@ ~]# mount -o remount,usrquota,grpquota /home
[root@ ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)
当你重新挂载时,系统会同步更新/etc/mtab这个档案,所以你必须要确定/etc/mtab已经加入usrquota, grpquota的支持到你所想要设定的文件系统中。
[root@ ~]# vi /etc/fstab
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
[root@ ~]# umount /home
[root@ ~]# mount -a
[root@ ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)

实作Quota流程-2:建立quota记录文件
其实Quota是透过分析整个文件系统中,每个使用者(群组)拥有的档案总数与总容量,再将这些数据记录在该文件系统的最顶层目录,然后在该记录文件中再使用每个账号(或群组)的限制值去规范磁盘使用量
quotacheck :扫瞄文件系统并建立Quota的记录文件
[root@ ~]# quotacheck [-avugfM] [/mount_point]
选项与参数:
-a :扫瞄所有在/etc/mtab内,含有quota支持的filesystem
-u :针对用户扫瞄档案与目录的使用情况,会建立aquota.user
-g :针对群组扫瞄档案与目录的使用情况,会建立aquota.group
-v :显示扫瞄过程的信息
-f :强制扫瞄文件系统,并写入新的quota配置文件
-M :强制以读写的方式扫瞄文件系统,只有在特殊情况下才会使用
quotacheck 的选顷你只要记得『 -avug 』一起下达即可

实作Quota流程-3:Quota启劢、关闭与限制值设定
quotaon :启动quota的服务
[root@ ~]# quotaon [-avug]
[root@ ~]# quotaon [-vug] [/mount_point]
选项与参数:
-u :针对使用者启动quota(aquota.user)
-g :针对群组启动quota(aquota.group)
-v :显示启动过程的相关讯息
-a :根据/etc/mtab内的filesystem设定启动有关的quota,若不加-a的话,则后面需加上特定的那个filesystem
[root@ ~]# quotaon -auvg
/dev/hda3 [/home]: group quotas turned on
/dev/hda3 [/home]: group quotas turned on
quotaoff :关闭quota的朋务
[root@ ~]# quotaoff [-a]
[root@ ~]# quotaoff [-ug] [/mount_point]
选项与参数:
-a :全部的filesystem的quota都关闭
-u :仅针对后面接的那个/mount_point关闭user quota
-g :仅针对后面接的那个/mount_point关闭group quota
edquota :编辑账号/群组的限值与宽限时间
[root@ ~]# edquota [-u username] [-g groupname]
[root@ ~]# edquota -t <==修改宽限时间
[root@ ~]# edquota -p 范本账号-u新账号
选项与参数:
-u :后面接账号名称。可以进入quota的编辑画面(vi)去设定username的限制值
-g :后面接组名。可以进入quota的编辑画面(vi)去设定groupname的限制值
-t :可以修改宽限时间
-p :复制范本。那个模板账号为已经存在并且已设定好quota的使用者
[root@ ~]# edquota -u quota1
Disk quotas for user quota1 (uid 710):
Filesystem blocks soft hard inodes soft hard
/dev/hda3     80             0     0         10         0         0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23879.html