Fedora 資料一覧
2008/11/18更新
対応バージョン: 9
quotaを使うには以下の手順で行う。
quotaオプション付でファイルシステムをマウント
/etc/fstabにてquotaを使いたいファイルシステムにquotaオプションを付ける。
制限をかけたい方法によって以下のオプションを指定する。
ユーザで制限をかける(ユーザquota)
usrquota
グループで制限をかける(グループquota)
grpquota
ユーザ/グループ両方で制限をかける
usrquota,grpquota
ここではユーザquotaを設定するものとして説明する。
例)
/dev/sdb2 /test ext3 defaults,usrquota 1 2
quotaオプション有効化
該当のファイルシステムがアンマウント可能ならいったんアンマウントしてマウントし直す。
例)
% sudo umount /test % sudo mount /test
アンマウント不可能ならマシンをリブートする。
以降、quota関連コマンドにて各種設定を行うが、グループquotaの場合はコマンドオプションのuのところがgに変わるだけでパラメータなどは基本的に同じである。
quota情報記録ファイル作成
% sudo quotacheck -au % ls -l /test/aquota.user -rw------- 1 root root 7168 2008-11-18 00:05 aquota.user
グループquotaの場合はaquota.groupが作成される。
quota関連コマンドのオプションは主に以下のものを使用する。
-a
設定対象が全て
-u
ユーザquotaの設定
-g
グループquotaの設定
-p
状態を表示する
-v
詳細表示モード
ユーザquota設定
% sudo edquota -u foo Disk quotas for user foo (uid 900): Filesystem blocks soft hard inodes soft hard /dev/sdb2 0 0 0 0 0 0
soft(ソフトリミット)とhard(ハードリミット)に使用制限を指定する。
blocksの右のsoft/hardはファイルサイズに対する設定(単位はKB)、inodesの右のsoft/hardはファイル数に対する設定である。0を指定すると無制限になる。
またblocksとinodesはそれぞれ現在使用しているファイルサイズとi-nodeの合計である。
softで設定したサイズを使いきると一定の猶予期間(後述)の間はhardで設定したサイズまで書き込める。猶予期間が過ぎるか、猶予期間内でもhardで設定したサイズに達するとそれ以上書き込みができなくなる。
例) soft=10MB、hard=40MBの場合
Filesystem blocks soft hard inodes soft hard /dev/sdb2 0 10240 40960 0 0 0
既存のquotaの設定をコピーするにはedquotaの-pオプションを使用するとよい。
例) fooのquota設定をbarにコピーする
% sudo edquota -p foo bar
quota有効
% sudo quotaon -auv /dev/sdb2 [/test]: user quotas turned on
状態を確認するとユーザquotaだけが有効になっているのが分かる。
% sudo quotaon -p /test group quota on /test (/dev/sdb2) is off user quota on /test (/dev/sdb2) is on
また、repquotaで現在の設定状況が確認できる。
% sudo repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------- root -- 192000 0 0 4 0 0
現状ではrootだけが当該ファイルシステムを使っているのが分かる。
ここでfooユーザで20MBのファイルを作ってみる。
% dd if=/dev/zero of=a bs=1M count=20
するとrepquotaで以下のようになり、fooユーザのソフトリミットを越えたために2カラム目が「+-」になっているのが分かる。
% sudo repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------- root -- 192000 0 0 4 0 0 foo +- 20504 10240 40960 7days 1 0 0
さらに20MBのファイルを作ろうとするとハードリミットに達して途中までしかファイルが作成されない。
% dd if=/dev/zero of=b bs=1M count=20 dd: writing `b': ディスク使用量制限を超過しました 20+0 records in 19+0 records out 20922368 bytes (21 MB) copied, 0.160903 s, 130 MB/s
またrepquotaの結果は以下のようになる。
% sudo repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------- root -- 192000 0 0 4 0 0 foo +- 40960 10240 40960 6days 2 0 0
猶予期間の設定
猶予期間とはソフトリミットが強制的に実行されるまでの期間であり、この期間を過ぎるとソフトリミットを越えたファイル作成ができなくなる。
この期間はデフォルトで7日間に設定されており、変更するにはedquotaの-tオプションを使用する。
単位にはseconds(秒)、minutes(分)、hours(時)、days(日)が使用できる。
% sudo 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/sdb2 7days 7days