第 6章ディスク容量制限の実践

システム上で使用されるディスク容量をモニタすることに加えて(項26.3.1を参照)、ディスク容量は ディスク容量制限を実践することにより規制することが可能で、これにより システム管理者はあるユーザーがディスク容量を使い過ぎる前に、又は パーティションの1つが満杯になる前に警報を受けることができます。

ディスク容量制限は、個別のユーザーにもユーザーグループにも設定できます。 このような柔軟性が各ユーザーには、個人ファイル(メールやレポート)を処理する 為の小さな容量制限を与え、それと同時に彼らが担当するプロジェクトには かなりのサイズの容量制限(そのグループにプロジェクトを与えると想定)を 与えることを可能にします。

さらに、容量制限は使用されるディスクブロックの数量を制御する為だけでなく iノードの数量も制御します。iノードはファイル関連の情報を収納する為に 使用されますので、それが、作成出来るファイルの数量を制御します。

ディスクの容量制限を実践するためには、quota RPMがインストール されている必要があります。 RPMパッケージのインストールについての詳細は、 パートVを参照してください。

6.1. ディスク容量制限の設定

ディスク容量制限を実践するには次のステップを使用します:

  1. /etc/fstabを修正して ファイルシステム単位の容量制限を有効にする

  2. ファイルシステムを再マウントする

  3. 容量制限ファイルを作成し、ディスク使用テーブルを 生成する

  4. 容量制限を割り当てる

これらの各ステップは、以下のセクションで詳しく説明されます。

6.1.1. 容量制限を有効にする

rootとして、好みのテキストエディタを使用して、容量制限を必要とする ファイルシステムにusrquotagrpquotaの どちらか、又は両方のオプションを追加します:

LABEL=/           /               ext3    defaults        1 1
LABEL=/boot       /boot           ext3    defaults        1 2
none              /dev/pts        devpts  gid=5,mode=620  0 0
LABEL=/home       /home           ext3    defaults,usrquota,grpquota 1 2
none              /proc           proc    defaults        0 0
none              /dev/shm        tmpfs   defaults        0 0
/dev/hda2         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

この例では、/homeファイルシステムでユーザーと グループの両方の容量制限が有効になっています。

6.1.2. ファイルシステムの再マウント

userquotagrpquotaのオプションを 追加した後、fstabのエントリが修正されている各ファイル システムを再マウントします。ファイルシステムがプロセスによって使用中でない 場合は、umountコマンドを使用し、その後mount コマンドを使用してファイルシステムを再マウントします。ファイルシステムが 現在使用中であれば、最も簡単にファイルシステムを再マウントする手段は、 システムの再起動です。

6.1.3. 容量制限ファイルの作成

それぞれの容量制限が有効になったファイルシステムが再マウントされた後には、 システムは、ディスク容量制限で動作する状態です。しかし、ファイルシステム 自身はまだ容量制限をサポートする準備が出来ていません。次のステップで quotacheckコマンドを実行します。

quotacheckコマンドは容量制限が有効になったファイルシステムを 検査して、ファイルシステム毎に現在のディスク使用量のテーブルを構成します。 このテーブルはその後オペレーティングシステムのディスク使用量のコピーを 更新するのに使用されます。さらにファイルシステムのディスク容量制限 ファイルが更新されます。

ファイルシステム上で容量制限ファイル(aquota.useraquota.group)を作成するには 、quotacheckコマンドの -cオプションを使用します。例えば、/homeパーティション用に ユーザーとグループの容量制限が有効な場合、/homeディレクトリの中に そのファイルを作成します:

quotacheck -acug /home

-aオプションは、容量制限が有効かどうか調べる為に、 /etc/mtab内のマウントされている非-NFSファイルが 全てチェックされると言う意味です。-cオプションは、 容量制限が有効な各ファイルシステムの為に容量制限ファイルが作成される様に 指定します。-uは、ユーザー容量制限のチェックを指定し、 -gオプションはグループ容量制限のチェックを指定します。

-u-gも指定されていない場合、 ユーザー容量制限ファイルだけが作成されます。-gだけが 指定してある場合は、グループ容量制限ファイルのみが作成されます。

ファイルが作成された後に、次のコマンドを使用して容量制限有効なファイルシステム毎に 現在のディスク使用量のテーブルを生成します:

quotacheck -avug

これらのオプションは次のようになります:

  • a — 全ての容量制限有効な ローカルマウントのファイルシステムをチェックする

  • v — 容量制限のチェックが進むのと共に 詳細進行状態を表示する

  • u — ユーザーディスク容量制限情報をチェック

  • g — グループディスク容量制限情報をチェック

quotacheckの実行が終了した後は、有効な容量制限(ユーザーと グループの両方又は片方)へ対応する容量制限ファイルは、/homeなど のような各容量制限が有効なファイルシステム用にデータで充填されます。

6.1.4. ユーザー単位で容量制限を割り当てる

最後のステップは、edquotaコマンドを使用して ディスク容量制限を割り当てることです。

ユーザー1人に容量制限を設定するには、シェルプロンプトでrootとして 次のコマンドを実行します:

edquota username

容量制限を実践したい各ユーザーに対してこのステップを実行します。例えば、 容量制限が、/homeパーティション用(/dev/hda3) に/etc/fstabで有効であり、edquota testuser コマンドが実行された場合、システムのデフォルトとして設定されたエディタに以下の様に 表示されます:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436          0          0      37418        0        0

注意注意
 

EDITOR環境変数で定義されているテキストエディタは edquotaで使用されます。このエディタを変更するには、 EDITOR環境変数を好みのエディタのフルパス名へ設定します。

1番目の列は、容量制限が有効になっているファイルシステムの名前です。2番目の 列は、ユーザーが現在使用しているブロックの数量を示します。その次の2つの列は ファイルシステム上のユーザー用にソフトとハードのブロックリミットを 設定するために使用されます。inodesの列は ユーザーが使用しているiノードの数を表示します。最後の2つの列はファイルシステムの ユーザー用にソフトとハードのiノードリミットを設定するのに使用されます。

ハードリミットとは、ユーザー又はグループが使用出来るディスク容量の絶対最大量 です。この限度に到達すると、それ以上のディスク容量は使用できません。

ソフトリミットは使用できるディスク領域の最大量を定義するものです。 但し、ハードリミットとは違い、ソフトリミットは一定の期間だけその限度を 超過できます。この期間は猶予期間と 呼ばれるものです。猶予期間は、秒、分、時間、日、週、又は 月で表現できます。

いずれかの値が、0に設定されている場合は、その限度は設定されて いないことになります。テキストエディタで目的の限度に修正します。 例えば:

Disk quotas for user testuser (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440436     500000     550000     37418        0        0

ユーザーの為の容量制限が設定されたことを確証するには次のコマンドを 使用します:

quota testuser

6.1.5. グループ単位で容量制限を割り当てる

容量制限はグループ単位ベースでも割り当てできます。例えば、devel グループ用にグループ容量制限を設定するには、以下のコマンドを使用します(グループ容量制限をする 前にグループが存在している必要があります):

edquota -g devel

このコマンドはグループ用の既存の容量制限をテキストエディタで 表示します:

Disk quotas for group devel (gid 505):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda3                    440400          0          0      37418        0        0

この限度を修正し、ファイルを保存してそれから容量制限を設定します。

グループの容量制限が設定されたことを確証するには次のコマンドを使用します:

quota -g devel

6.1.6. ファイルシステム単位で容量制限を割り当てる

容量制限が有効な各ファイルシステムを基にして容量制限を割り当てるには、 次のコマンドを使用します:

edquota -t

他のedquotaコマンドと同様に、これもテキストエディタで ファイルシステム用の現在の容量制限を開きます:

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/hda3                     7days                  7days

ブロックの猶予期間、又はiノードの猶予期間を修正して、 そのファイルへの変更を保存し、テキストエディタを終了します。