Quotaの設定
提供: Astarisk Works Wiki
目次 |
Quotaとは
Quotaというのは、一般的には「分量、割当て」などという意味ですが、UNIXではユーザやグループ、ファイルシステムに対してディスクの使用量を制限するための仕組みのことを言います。
Quotaの動作環境確認
利用する環境でQuotaが利用可能かどうかの確認の方法を説明します。 ちなみに、RedHat Enterprise Linux 3では利用可能です。
カーネルの確認
Quotaはkernel-1.3.8x からカーネルに組み込まれている機能なので、現在のカーネルでは一般的にサポートされている機能になります。独自にカーネルをビルドした環境ではビルドした方に確認ください。
パッケージの確認
rpmコマンドで quota パッケージがインストールされていることを確認します。インストールされていない場合には、インストールCD-ROMなどからパッケージのインストールを行ないます。
# rpm -q quota # quota-3.09-1
Quotaの設定
Quotaを有効にするための設定を説明します。
/etc/fstabの設定
/etc/fstabでQuotaを管理するパーティションを指定します。Quotaはパーティション単位で設定します。 次の例はRHEL 3の未設定のfstabです。
LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda3 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
次はquotaを設定したfstabです。
LABEL=/ / ext3 defaults,usrquota 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda3 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
1行目に&color(red){usrquota}という単語を追加しています。これがユーザ単位のQuotaを設定するパーティションに指定しているという意味になります。 グループ単位でQuptaを指定するときには&color(red){grpquota}と指定します。両方指定することも可能です。
LABEL=/ / ext3 defaults,usrquota,grpquota 1 1
パーティションの再マウントもしくはリブート
Quotaの設定はディスクをマウントするときに読み込まれるので、有効にするためには再マウントする必要があります。
# mount -o remount /home
ただし、システムで重要なディレクトリ(/etcなど)を格納しているパーティションの場合、システムごと再起動したほうがいいでしょう。
再マウント後、mountコマンドで有効になっていることを確認します。
# mount /dev/hda2 on / type ext3 (rw,usrquota) none on /proc type proc (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) none on /dev/shm type tmpfs (rw)
一行目にusrquotaという表示が追加されています。設定したパーティションがこのようになっていればQuotaが有効になっています。
ハードリミットとソフトリミット、猶予期間
quotaの設定に用いる用語を説明します。
- ソフトリミット(Soft Limit)
- ソフトリミットとは、quota でディスクの使用量を制限されたユーザがそのパーティション上で使用可能な最大のディスク容量をいいます。
- ハードリミット(Hard Limit)
- ハードリミットとは、ディスク使用量の絶対的な制限で、quota でディスクの使用量を制限されたユーザは、ハードリミットを越えることが出来ません。
- 猶予期間
- 猶予期間とは、ソフトリミットが強制的に実行されるまでの期間のことで、この期間にのみハードリミットまでディスクを使用することが可能になります。
ユーザへの容量制限の設定
ユーザ単位にディスクの容量制限を設定する方法を説明します。 ユーザ単位にディスクの容量制限を設定できるのはusrquotaを設定したパーティション内のみです。
Quota管理データベースの作成
ユーザ単位のQuotaではaquota.userというファイルを管理データベースとして用います。このファイルは次のコマンドをパーティションのルートディレクトリで実行すると作成されます。
# quotacheck -avmu
初めて実行するときにはディスクのスキャンを行うため、少し時間がかかります。
ユーザに割り当てるディスク容量を設定する。
edquotaコマンドでユーザに割り当てるディスク容量を指定します。
# edquota ユーザ名
コマンドを実行すると環境変数EDITORで指定されたエディタが起動します。通常はviだと思いますが、GUI環境で使うときには注意してください。次の様な内容が表示されます。
# edquota nec Disk quotas for user nec (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sda6 45320 0 0 5509 0 0
各カラムの意味は次の通りです。
| Filesystem | Quotaの対象となるパーティション |
| blocks | ユーザが使用しているブロック数(単位はKByte) |
| soft | ブロック数のソフトリミット |
| hard | ブロック数のハードリミット |
| inodes | ユーザが使用しているファイル数 |
| soft | inode数のソフトリミット |
| hard | inode数のハードリミット |
これらのうち、softとhardの値をそれぞれ編集して容量制限を行います。また、0(ゼロ)を指定すると容量を制限しないという意味になります。
ソフトリミットの猶予期間の設定
次のコマンドを実行すると容量制限の設定と同様にエディタが起動し、編集できます。
# 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/sda6 7days 7days
これが初期設定です。ブロックとINODE(ファイル数)のそれぞれに設定可能です。単位はdaysのほかにsec、min、hour、day、week、monthが指定可能です。
グループへの容量制限の設定
特定のグループに対する容量を設定できますが、グループ全体で使える容量を設定することに注意してください。そのグループのユーザがそれぞれ設定した容量を使えるのではありません。 例えば、c2yuserというグループがあり、fp1とfp2というユーザがいるとき、c2yuserにquotaで200MBの容量を割り当てると、fp1とfp2合わせて200MB使えることになります。 あんまり使い道がないように思われるので、説明は割愛します。気が向いたら書き足します。 ユーザのときとの違いはquotacheck、edquotaコマンドに-gというオプションを追加することぐらいです。 詳しくはhttp://www.express.nec.co.jp/linux/tech/knowledge/system/quota.htmlでも見てください。
QuotaのON/OFF
通常、OSの起動スクリプトでquotaはONにされるのですが、どうも制限が効いていないと思ったら、quotaonコマンドを使ってください。
# quotaon -auvg /dev/hda2 [/]: group quotas turned on
OFFにしたいときは次のようにします。
# quotaoff -auvg /dev/hda2 [/]: group quotas turned off
Quotaの確認
自分にかけられているquotaの制限を確認するにはquotaコマンドを使います。
> quota Filesystem blocks quota limit grace files quota limit grace /dev/hda6 541 10000 15000 none 12 3000 4000
自分のグループのQuotaを確認するときは次のコマンドを使います。
>quota -g
Disk quotas for group fp (gid 503):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda2 1024* 1024 1024 32 0 0