MENU

ファイルシステムの容量制限方法(quota)

 

 

 

参照サイト
quotaとquotaの動作環境

 

 

1 qutaパッケージがインストールされているか確認

rpm -q quota

 

[root@centos52 ~]# rpm -q quota

quota-3.13-1.2.3.2.el5

 

 

2 起動時にquotaがonになっているか確認

/etc/rc.d/rc.sysinit ファイル(initスクリプト)を
grepして確かめる。

 

[root@centos52 ~]# grep /sbin/quotaon /etc/rc.d/rc.sysinit
if [ -x /sbin/quotaon ]; then
action $"Enabling local filesystem quotas:" /sbin/quotaon -aug

 

 

3 パーテーションに対して、クォータを有効に

/etc/fstabをviで編集する。

 

/etc/fstabファイルについて

プログラムがファイルシステムのマウント状況を
確認するために利用するファイル。
また、/etc/fstab に記述しておくことで、
mountコマンドの引数を省略できる。

 

1行目の

LABEL=/ / ext3 defaults 1 1

LABEL=/ / ext3 defaults,usrquota,grpquota 1 1

に変更します。

 

 

4 パーティションを再マウントquotaを有効に

そもそも/に対して再マウントコマンドを発行して良いのか不明ですが。

[root@centos52 /]# mount -o remount /

 

 

5 quota が設定されたことを確認

 

[root@centos52 /]# mount

/dev/hda1 on / type ext3 (rw,usrquota,grpquota)

と表示されていれば大丈夫です。

 

 

6 ディスク使用状況等を記録するquotaのデータベースファイルを作成

・現在のディスク使用量のテーブルを構築

 

・ルートディレクトリに aquota.user というファイルを作成

 

[root@centos52 /]# quotacheck -avmu

quotacheck: Quota for users is enabled on mountpoint / so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.

とのメッセージが出たため今回は -f オプションを追加して強制的に再度実行しました。

 

[root@centos52 /]# find -maxdepth 1 -name"*quota*" -print
[root@centos52 /]# ls -l /aquota.user

-rw------- 1 root root 7168 8月 19 01:49 /aquota.user00q

 

 

7 ユーザに対する制限

[root@centos52 /]# edquota usera

 

viが起動するので編集する。

 

Disk quotas for user usera (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hda1 20 0 0 7 0 0

 

 

Filesystem quotaの対象のディレクトリ

blocks ユーザが使用しているブロック数(単位はKByte)、

 

soft ブロック数のソフトリミット「0」だと制限無し

 

hard ブロック数のハードリミット「0」だと制限無し

 

inodes ユーザが使用しているファイル数(inode数)

 

soft inode数のソフトリミット

 

hard inode数のハードリミット

 

ソフトリミットとは

quota ユーザがそのパーティション上で使用できる最大ディスク容量。
猶予期間 (grace period) と組み合わせることでボーダーラインと
して機能します。ボーダーを越えた時点で警告が発せられます。

 

ハードリミットとは

猶予期間の経過中にのみ機能します。
ユーザーに対するディスク使用量の絶対的な制限。

 

 

8 ソフトリミットが強制的に実行されるまでの猶予期間を設定

 

[root@centos52 /]# edquota -t

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda1 7days 7days

 

以下の単位を使用して猶予期間を指定します。

sec
min
hour
day
week
month

 

 

9 以後の動作

以後は、起動時にquotacheckコマンドが自動実行されデータベースが更新されます。

 

頻繁に再起動を繰り返さないサーバーなどは
cronに登録して、定期的にこれを実行させます。

 

[root@centos52 /]# crontab -e

0 0 * * * /sbin/quotacheck -avugm

 

 

10 全ユーザーのquota情報を表示

[root@centos52 /]# repquota /

 

 

11 ユーザーのquota情報を表示

[root@centos52 /]# quota ユーザー名

 

実際にソフトリミットに達した際は警告が出ました。