ディスククォータの設定

 ディスククォータとは、ユーザーまたは、グループに対してディスクスペースに制限をかけるシステムです。 このシステムを利用する事によって、ユーザーが無制限にHDDの容量を消費するのを抑えたりする事ができます。
 多くのユーザーが共有する Samba やメールサーバーには、必須の機能です。

≪ 項目 ≫
1.ディスククォータについて
2.インストールと設定
3.ディスクの使用量に制限をかける
4.執行猶予の時間制限をかける
5.その他


 1.ディスククォータについて

 ディスククォータとは、上にも記述しましたが、ユーザーが無制限にHDDの容量を消費するのを抑える為の、ファイルサーバーやメールサーバー等に必須の機能です。 容量を超えたユーザーに対して警告を行ったり、自動で削除を行ったり、またファイルを作成、コピーをできない様にします。
 注意点として、ディスククォータはカーネル2.2とカーネル2.4とでは、ファイルシステムや構造が違うので注意してください。 このページでは、カーネルバージョンは 2.4.18-23 で設定を行っています。
 ( Turbo Linux 6.5 Server より以前は 2.2 です。)
 またカーネルをカスタマイズして再構築している人は、ディスククォータ機能が有効になっていないと使用できません。 Turbo Linux 7 Server では標準で有効になっているので、特にカーネルを設定をする必要はありません。

 2.インストールと設定

 使用するパッケージは、”quota-3.01-6.rpm”です。
  このパッケージは 2005/07/27  時点での最新です。

 Linuxのインストールの仕方しだいでは、インストールされていない場合があるので確認してください。

 rpm -ihv quota-3.01-6.rpm

 これでインストールは完了です。

 次にディスククォータはファイルシステム単位で機能します。 ファイルシステムマウント時にディスククォータを使用できるようにオプションが必要です。 今回は、Sambaやメールサーバー(qmail)等を対象します。 なので各ユーザーの領域は /home の直下にあるので、/home をディスククォータを付けます。 /home などのファイルシステムのマウントは”/etc/fstab”が設定ファイルとなりますので、以下の様に修正します。

 /dev/hda7  /home  ext3  defaults  1,1
             
 /dev/hda7  /home  ext3  usrquota  1,1

 下線部の箇所はインストール時によって数値の部分が変わります。

 ユーザー単位でクォータを使用する場合は”usrquota”を、グループ単位で使用する場合は”grpquota”を記述します。 両方の場合はカンマで区切ります。
 ”/etc/fstab”を変更したら、ファイルシステムを再マウントします。(Linuxを再起動してもOKです。)
 続いて、クォータデータベースファイルを作成します。 これは、ディスクの使用状況など記録したファイルです。 以下のコマンドを実行してファイルを作成してください。

 quotacheck -u /home

 グループ単位の場合は”-g”を指定します。

 これで、 /home の直下に”aquota.user”(ユーザー単位)または、”aquota.group”(グループ単位)というファイルが作成されます。


 3.ディスクの使用量に制限をかける

 次にユーザーまたはグループに対して、使用できるディスクの容量に制限をかける設定を行います。
 設定できる項目は以下の通りです。

 ◆ 設定対象の項目

  ・ブロッククォータ
   そのままブロックの使用を制限するためのものです。ディスク消費量を制限するものと考えてください。
   1ブロックの大きさは ext2 で1KBとなっています。

  ・ノードクォータ
   ソードの使用を制限するためのものです。 作成できるファイル数、ディレクトリィ数が制限されると考えてください。

 以上の2つに対して以下の3つの設定が出来ます。

 ◆ 設定値

  ・ソフト制限
   ソフト制限とは、設定された値に達した場合は警告を発します。ユーザーは警告を受けて下にある猶予期間まで
   そのまま使用できますが、その間に他のファイルを削除するなどして、スペースを空ける必要があります。

  ・ハード制限
   ハード制限とは、設定された値に達した場合は、それ以上ファイルを作成する事はできません。

  ・猶予期間
   猶予期間とは、ソフト制限を越えて消費してしまった場合、設定した期間の間だけ使用される事が許可されます。

 上記の3つの設定は、0を設定すると制限が無い事になるので注意してください。

以下のコマンドを使用して設定を行います。

 edquota [-u | -g] << ユーザー名 >>

-u はデフォルトなので省略可です。-g を指定した場合は対象がグループとなります。グループ指定をする場合は必ず -g を指定します。
実行した場合、自動で vi が起動します。

Disk quotas for user << ユーザー名 >>  (uid xxx):  <--(1)
Filesystem blocks soft hard inodes soft hard
/dev/hda7 1298 1024000 2048000 38 0 0  <--(2)
〜 省略 〜

 (1)に設定するユーザー(またはグループ)の情報が出力され、実際に修正する部分は(2)です。 左から順に説明しますと、

   ・クォータ対象のファイルシステム
   ・使用中のブロック
   ・ブロックのソフト制限
   ・ブロックのハード制限
   ・使用中のノード
   ・ノードのソフト制限
   ・ノードのハード制限

 となります。ここで編集するのは各ソフト制限とハード制限の値を編集します。
ブロックの場合は単位はブロックになります。編集が終ったら保存して終了してください。

 また、”edquota”コマンド以外に”setquota”というコマンドも使用できます。以下が書式です。

  setquota [ -u | -g ] << ユーザー名 or グループ名 >> << ブロックソフト制限 >>
<< ブロックハード制限 >> << ノードソフト制限 >> << ノードハード制限 >> << ファイルシステム >>


 です。ユーザーの設定の場合は -u を省略する事が可能です。例として

 setquota -u xxxx 1024000 2048000 0 0 /home

 となります。グループ指定の場合は -g は必ず要るので注意してください。


 4.執行猶予の時間制限をかける

 次にディスク使用量に制限を設定した後は、執行猶予の時間制限をかけます。 設定に使用するコマンドは同じです。以下の様に実行してください。

 edquota [-u | -g] -t

-u はデフォルトなので省略可です。-g を指定した場合は対象がグループとなります。グループ指定をする場合は必ず -g を指定します。
ディスク制限をかけた時と同じ様に実行した場合は自動で vi が起動します。

Grace period before enforcing soft limits for users <--(1)
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda7 7days 7days <--(2)

〜 省略 〜


 (1)はクォータ種類(ユーザーかもしくはグループ)の表示をしています。 (2)の行で、ソフト制限を越えた場合の猶予期間を設定します。 デフォルトではブロッククォータ、ノードクォータともに7日間に設定させています。 この他にも、hour(時間)min(分)sec(秒)のいずれかで設定できます。(省略した場合は秒で扱われます。)

 また同じ様に”setquota”でも設定できます。以下が書式です。

 setquota -p [ -u | -g ] << ブロック猶予期間 >> << ノード猶予期間 >> << ファイルシステム >>

 ”setquota”の場合は秒単位での指定となります。


 5.その他

 ◆ quotacheck

 ディスク制限と猶予期間の設定が終了したら、”quotacheck”を行って、設定を反映させてください。
以下が書式です。

 quotacheck [ -u | -g ] << ファイルシステム >>

 ◆ quotaon、quotaoff

 ”quotacheck”など設定がうまく反映されない時や、一時的にクォータ機能を止めたい時に使用します。 (うまくいかない場合は、”quotaoff”コマンドでクォータを無効にしてからやり直してみてください。)
quotaon はクォータ機能を起動し、”quotaoff はクォータ機能を停止させます。
以下が書式です。

 quotaon [ -u | -g ] << ファイルシステム >>

( quotaon、quotaoff どちらも同じ書式です。)

 ◆ converquota

 カーネル 2.2 から 2.4 に、クォータデータベースファイルを移行させたい場合に使用します。
書式は以下の通りです。

 converquota [ -u | -g ] << ファイルシステム >>



TOPページに戻る