まず、quotaの状況を確認する。
[user01@dc1 ~]$ quota Disk quotas for user user01 (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/VolGroup00-LogVol00 76 46080 51200 10 0 0 [user01@dc1 ~]$この時点では、どの制限にも達していない。
ファイルサイズ45MBのファイルを作成する。
[user01@dc1 ~]$ head --bytes=`expr 45 \* 1024 \* 1024` /dev/zero > 45M.dat dm-0: warning, user block quota exceeded. [user01@dc1 ~]$ファイルは作成されたが、ソフトリミットに達した旨警告された。状況を確認する。
[user01@dc1 ~]$ quota Disk quotas for user user01 (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/VolGroup00-LogVol00 46212* 46080 51200 7days 11 0 0 [user01@dc1 ~]$制限に達したため、使用ブロック容量の後に「
*
」が表示されている。猶予時間(grace time)は、7日間になっている。この状態では、ファイルを作成できるが、ハードリミットに達するとそれ以上書込めなくなる。ファイルサイズ1MBのファイルを一つづつ作ってみる。
[user01@dc1 ~]$ for (( i=1; $i <= 6; i=`expr $i + 1` )) do command="head --bytes=`expr 1024 \* 1024` /dev/zero > 1M-$i.dat"; echo $command; eval $command; done head --bytes=1048576 /dev/zero > 1M-1.dat head --bytes=1048576 /dev/zero > 1M-2.dat head --bytes=1048576 /dev/zero > 1M-3.dat head --bytes=1048576 /dev/zero > 1M-4.dat head --bytes=1048576 /dev/zero > 1M-5.dat dm-0: write failed, user block limit reached. head: write error: Disk quota exceeded head: write error head --bytes=1048576 /dev/zero > 1M-6.dat -bash: 1M-6.dat: Disk quota exceeded [user01@dc1 ~]$五番目のファイルでハードリミットに達し、途中で書込めなくなった。六番目のファイルは、作成する前に失敗している。確認してみよう。
[user01@dc1 ~]$ ls -l total 51124 -rw-r--r-- 1 user01 users 1048576 Sep 17 00:32 1M-1.dat -rw-r--r-- 1 user01 users 1048576 Sep 17 00:32 1M-2.dat -rw-r--r-- 1 user01 users 1048576 Sep 17 00:32 1M-3.dat -rw-r--r-- 1 user01 users 1048576 Sep 17 00:32 1M-4.dat -rw-r--r-- 1 user01 users 872448 Sep 17 00:32 1M-5.dat -rw-r--r-- 1 user01 users 47185920 Sep 17 00:32 45M.dat [user01@dc1 ~]$ quota Disk quotas for user user01 (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/VolGroup00-LogVol00 51200* 46080 51200 16 0 0 [user01@dc1 ~]$ハードリミットに達したため、猶予時間が表示されなくなった事に注意。この状態では、空ファイルすら作れない。
[user01@dc1 ~]$ touch a touch: cannot touch `a': Disk quota exceeded [user01@dc1 ~]$ファイルを削除し、ハードリミットを下回れば、再びファイルを作成可能になる。
[user01@dc1 ~]$ rm 1M-5.dat [user01@dc1 ~]$ touch a [user01@dc1 ~]$
この状態を、管理者側で確認してみよう。
[root@dc1 ~]# repquota -a
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol00
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 1571120 0 0 59255 0 0
daemon -- 20 0 0 3 0 0
lp -- 16 0 0 2 0 0
smmsp -- 16 0 0 2 0 0
avahi -- 8 0 0 1 0 0
apache -- 24 0 0 3 0 0
ntp -- 16 0 0 2 0 0
rpc -- 4 0 0 1 0 0
rpcuser -- 8 0 0 1 0 0
luci -- 263348 0 0 20552 0 0
dovecot -- 8 0 0 1 0 0
webalizer -- 32 0 0 4 0 0
piranha -- 16 0 0 3 0 0
rpm -- 24324 0 0 75 0 0
ricci -- 60 0 0 8 0 0
user01 +- 50352 46080 51200 6days 17 0 0
user02 -- 76 46080 51200 10 0 0
user03 -- 76 46080 51200 10 0 0
[root@dc1 ~]#
ユーザuser01の猶予時間が6日間と表示されている。管理者は各ユーザの猶予時間を変更することができる。5分(300秒)に変更してみよう。
[root@dc1 ~]# setquota -T user01 300 unset -a
[root@dc1 ~]# repquota -a
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol00
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 1571120 0 0 59255 0 0
daemon -- 20 0 0 3 0 0
lp -- 16 0 0 2 0 0
smmsp -- 16 0 0 2 0 0
avahi -- 8 0 0 1 0 0
apache -- 24 0 0 3 0 0
ntp -- 16 0 0 2 0 0
rpc -- 4 0 0 1 0 0
rpcuser -- 8 0 0 1 0 0
luci -- 263348 0 0 20552 0 0
dovecot -- 8 0 0 1 0 0
webalizer -- 32 0 0 4 0 0
piranha -- 16 0 0 3 0 0
rpm -- 24324 0 0 75 0 0
ricci -- 60 0 0 8 0 0
user01 +- 50352 46080 51200 00:05 17 0 0
user02 -- 76 46080 51200 10 0 0
user03 -- 76 46080 51200 10 0 0
[root@dc1 ~]#
ユーザuser01で、動作を確認してみる。設定直後。
[user01@dc1 ~]$ quota
Disk quotas for user user01 (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VolGroup00-LogVol00
50352* 46080 51200 00:05 17 0 0
[user01@dc1 ~]$
ソフトリミットに達しているが、猶予時間がある。この状態では、まだファイルを作成することができる。五分後。
[user01@dc1 ~]$ quota
Disk quotas for user user01 (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VolGroup00-LogVol00
50352* 46080 51200 none 17 0 0
[user01@dc1 ~]$
猶予時間がnoneになっている。この状態では、空ファイルも作成できない。[user01@dc1 ~]$ touch b dm-0: write failed, user block quota exceeded too long. touch: cannot touch `b': Disk quota exceeded [user01@dc1 ~]$この制限は、ソフトリミットを下回るまで解除されない。
[user01@dc1 ~]$ rm 1M-* [user01@dc1 ~]$ quota Disk quotas for user user01 (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/VolGroup00-LogVol00 46224* 46080 51200 none 13 0 0 [user01@dc1 ~]$ touch b dm-0: write failed, user block quota exceeded too long. touch: cannot touch `b': Disk quota exceeded [user01@dc1 ~]$ rm 45M.dat [user01@dc1 ~]$ touch b [user01@dc1 ~]$ quota Disk quotas for user user01 (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/VolGroup00-LogVol00 92 46080 51200 13 0 0 [user01@dc1 ~]$
『その1・ファイルシステム毎の設定』『その2・ユーザ毎の設定』『その3・運用』