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

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

ファイルシステムの容量制限方法(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 ユーザー名


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