磁盘配额(Quota)
1.Quota 的一般用途
针对
WWW server
,例如:每个人的网页空间的容量限制!
针对
mail server
,例如:每个人的邮件空间限制。
针对
file server
,例如:每个人最大的可用网络硬盘空间
(
教学环境中最常见!
)
2.
Quota 的使用限制
仅能针对整个 filesystem
:
核心必项支持 quota
:
Quota 的
记录
文件:
只对一般身��使用者有效
3.
容量限制
文
档案数量限制 (block 戒 inode):
限制 inode 用量:可以管理使用者可以建立的『档案数量』;
限制 block 用量:管理用户磁盘容量的限制,较常见为这种方式。
4.
hard:表示使用者的用量绝对
不能
过这个限制值
:
soft:表示使用者在
低于
soft 限值时 (此例中为 400Mbytes),可以正常使用磁盘,但若
超过
soft
而低于
hard 的限值
,
每次用户登入系统时,系统会主
动
发出磁盘即将爆满的警告讯息, 会给予一个宽限时间 (grace time)。
不
过,若使用者在宽限时间倒数期间就将容量再次降低亍 soft 限值
下限
, 则宽限时间会停止
。
5.
grace time
一般预讴的宽限时间为七天,如果七天内你都
不进行任何
磁盘管理,那么 soft 限制值会即刻取代 hard 限值
而
作为 quota 的限制。
Quota
配置实例
1.
检查文件系统是否支持
----->
必须是单独的分区
[root@
wangfc
~]# df -TH /home
/dev/mapper/vg0-lv0
ext4
204M
5.8M
187M
4% /home
2.
检查文件系统是否支持,
VFAT 文件系统
不
支持 Linux Quota 功能
[root@wangfc ~]# mount | grep home
/dev/mapper/vg0-lv0 on /home type ext4 (rw
)
3.
手动挂载
Quota
[root@
wangfc
~]# mount -o remount,usrquota
,
grpquota
/home
//
[root@wangfc ~]# mount | grep home
/dev/mapper/vg0-lv0 on /home type ext4 (rw,usrquota,grpquota)
4.
开机自动挂载
[root@wangfc ~]# vim /etc/fstab
/dev/mapper/vg0-lv0 /home ext4 defaults,usrquota,grpquota 1
2
----------------------------------------------------------------------------------------------------------------------------------------------------------------
5.
建立 quota
记录
文件
[root@localhost ~]# quotacheck
Bad number of arguments.
Utility for checking and repairing quota files.
quotacheck [-gucbfinvdmMR] [-F <quota-format>] filesystem|-a
-u, --user check user files
-g, --group check group files
-c, --create-files
create new quota files
-b, --backup
create backups of old quota files
-f, --force
force check even if quotas are enabled
-i, --interactive
interactive mode
-n, --use-first-dquot
use the first copy of duplicated structure
-v, --verbose print more information
-d, --debug
print even more messages
-m, --no-remount
do not remount filesystem read-only
-M, --try-remount
try remounting filesystem read-only,
continue even if it fails
-R, --exclude-root
exclude root when checking all filesystems
-F, --format=formatname
check quota files of specific format
-a, --all check all filesystems
-h, --help
display this message and exit
-V, --version
display version information and exit
[root@
wangfc
~]# quotacheck -auvg
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/mapper/vg0-lv0 [/home] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Old group file not found. Usage will not be substracted.
quotacheck: Checked 178 directories and 353 files
quotacheck: Old file not found.
6.
产生两个文件
[root@wangfc ~]# ll
-
d
/home
/
a
*
-rw-------. 1 root root
6144 Jul 31 20:45 aquota.group
-rw-------. 1 root root
6144 Jul 31 20:45 aquota.user
7.
Quota
启动
、 关闭
[root@wangfc ~]# quotaon -auvg
/dev/mapper/vg0-lv0 [/home]: group quotas turned on
/dev/mapper/vg0-lv0 [/home]: user quotas turned on
[root@wangfc ~]# quotaoff -auvg
/dev/mapper/vg0-lv0 [/home]: group quotas turned off
/dev/mapper/vg0-lv0 [/home]: user quotas turned off
8.
编辑
quota
文件
激活磁盘配额
[root@
wangfc
~]# quotaon /home
用edquota命令,对特定用户采用配额限制
[root@wangfc ~]# edquota -u t
est
Disk quotas for user test (uid 506):
Filesystem
blocks
soft
hard
inodes
soft
hard
/dev/mapper/vg0-lv0
18
10
20
9
0
0
7.
查看磁盘配额
[root@wangfc ~]# repquota -a
*** Report for user quotas on device /dev/mapper/vg0-lv0
Block grace time: 7days; Inode grace time: 7days
Block limits
File limits
User
used
soft
hard
grace
used
soft
hard
grace
----------------------------------------------------------------------
root
--
13
0
0
2
0
0
test
+-
18
10
20
7days
9
0
0
8.
测试
[test@wangfc ~]$ dd if=/dev/zero of=file1 bs=1k count=10
dd: writing `file1': Disk quota exceeded
2+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.00025672 s, 4.0 MB/s
[test@wangfc ~]$ dd if=/dev/zero of=file2 bs=1k count=10
dd: opening `file2': Disk quota exceeded
1. 文件系统 (filesystem):说明该限制值是针对哪个文件系统 (partition);
2. 磁盘容量 (blocks):这个数值是 quota 自己算
出来
的,单位为 Kbytes,请丌要更劢他;
3. soft:磁盘容量 (block) 的 soft 限制值,单位亦为 KB
4. hard:block 的 hard 限制值,单位 KB;
5. 档案数量 (inodes):这是 quota 自己算
出来
的,单位为个数,请
不要更改它
;
6. soft:inode 的 soft 限制值;
7. hard:inode 的 hard 限制值;
实验结果如下:
[xxx@localhost ~]$ dd if=/dev/zero of=f1 bs=24M count=1
dd: writing `f1': Disk quota exceeded
1+0 records in
0+0 records out
17776640 bytes (18 MB) copied, 0.560308 s, 31.7 MB/s
[xxx@localhost ~]$ rm *
[xxx@localhost ~]$ touch {1,2,3,4,5}
[xxx@localhost ~]$ ls
1
2
3
4
5
[xxx@localhost ~]$ touch {6,7,8}
touch: cannot touch `8': Disk quota exceeded
[xxx@localhost ~]$ ls
1
2
3
4
5
6
7
8.
把
XXX
账户的配额复制给
yyy
用户
[root@localhost ~]# edquota -p xxx -u yyy
[root@localhost ~]# edquota -u yyy
Disk quotas for user yyy (uid 502):
Filesystem
blocks
soft
hard
inodes
soft
hard
/dev/sda3
32
10240
17360
8
12
15