Custom Search

JITAKU_SVR_Wiki

quota設定

quotaを使用すると各ユーザのディスク使用量を制限出来る。
レンタルサーバとかで100MB制限をかけたい、というような時に便利。

事前準備

念のためテストで、/のみのパーティションで、/homeをquota管理出来ないか試してみたがダメだった。
quota管理するときは別パーティションを作成(用意)してから、そのパーティションにquotaを設定する。

fstab設定

fstabを書き換えてサーバ再起動
(マウント解除、再マウントでも可能だった気がする)

# vim /etc/fstab
/dev/mapper/vg_iilsmn02-LogVol02 /home ext4 defaults,usrquota 1 2

quota設定

最初にquotaを設定する前に、quotacheckをし"aquota.user"を作成する。
これがファイルシステムを管理するファイルなので大切に扱う。
quotaを使わなくなったら削除すればOK。

今回は"ユーザ"に対してquotaを設定する予定。
※グループに対して設定も出来るが、オプションが別途必要なので注意

# quotacheck -cv /home
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quo ta to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/home] done
quotacheck: Cannot stat old user quota file /home/aquota.user: そのようなファイ ルやディレクトリはありません. Usage wil l not be substracted.
quotacheck: Old group file name could not been determined. Usage will not be substracted.
quotacheck: Checked 10 directories and 5 files
quotacheck: Old file not found.

# ls -l /home/aquota.user
-rw------- 1 root root 7168  3月 26 17:31 2015 /home/aquota.user

色々表示されているが問題ない。
初回に必要なオプションは上記だけで大丈夫だと思う。
念のため少し他のオプションも列挙。

オプション

-c: 既存のquotaファイルを読み込まない。
新規にスキャンを実行し、それをディスクに保存する。
quotacheckは古いquotaファイルが見つからなければ、そのスキャンも飛ばす。

-u: /etc/mtabでリストされているファイルシステム、または指定されたファイルシステムの
ユーザーquotaのみがチェックされる。デフォルトの動作である。

-g: /etc/mtabでリストされているファイルシステム、
または指定されたファイルシステムのグループquotaのみがチェックされる。

-v: quotacheckに進行している操作を表示させる。
通常は寡黙に動作する。


quotaを有効/無効化

# quotaon -a
これで完了。

停止させたいときは

# quotaoff -a

ユーザへのquota設定

edquotaで設定

# edquota -u hogehoge

Disk quotas for user hogehoge (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                    976620          0     100000         15        0        0

※vi操作と同じ。
Blockサイズと、inodeで制限がかけられる。
softは警告。hardは制限。
0は無制限。

setquotaで設定

hogehogeにソフトリミット100MB、ハードリミット200MBを設定

# setquota -u hogehoge 102400 204800 0 0 -a

が…。最初の一人目をsetquotaで設定してもrepquotaで反映されていないのが分かる。
正直どうしたら良いのか理解が出来ないので色々試す。
下記のトラブルシュートで注釈。

ユーザごとのquota状況確認~

# repquota -a

*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --       4       0       0              1     0     0
hogehoge +-  976620       0  100000             15     0     0

hardが100MBに対して、hogehogeは現在1GBほど使用しているので、
ddコマンドで1GBのファイルを作成してようとしても…

$ dd if=/dev/zero of=./zero2.img count=10000 bs=100000
sdb1: write failed, user block limit reached.
dd: writing `./zero2.img': ディスク使用量制限を超過しました
1+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000512899 s, 0.0 kB/s

と表示される。

$ ls -lh  zero2.img
-rw-rw-r-- 1 hogehoge hogehoge 0  3月 26 18:25 2015 zero2.img

ファイルは0バイトとなる。

トラブルシュート

なぜか…setquotaで設定を入れても有効にならなかった。
単にやり方が悪いだけってのもあるし、quota理解が足りないからかもしれないが、
edquotaで一度ユーザ操作をしたら何故かうまくいった。
※ちなみにedquotaはただのviでのファイル操作なので省略。

あまりquotaを使うこともないのでここではこのままOKとした。
(トラブルシュートとは言わないかも)

参考

http://linux.kororo.jp/cont/intro/quata.php


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-22 (火) 14:29:35 (639d)