10.システムの運用管理(ディスク制限 : quota)


10.1.1 概要
quota は、パーティション単位でユーザーやグループが使用できるブロック数、作成できるファイル数を制限する仕組みです。
この機能によって、特定のユーザーがハードディスクを占有してしまうことを防止することができます。

10.1.2 quota 利用の前準備
quota 機能を利用するには、次の設定が事前に必要になります。
○ /etc/fstab への quota 利用の追加
○ quota のデータベースファイルの作成
(1) /etc/fstab への quota 利用の追加
quota 機能を利用するファイルシステムは、マウント時にオプションが必要になります。
オプション名は、ユーザーに対するものなら usrquota、グループに対するものなら grpquota です。
では、先に作った /data に usrquota を設定してみましょう。
(その前に確認のためのユーザーを2つくらい追加しておくことにします : takaq2, takaq3 を追加しました、グループはtestuserです)
設定を反映させるために、リブートか再マウントが必要になります。では、再マウントしてみましょう。

 ↑
どうやらできた?
(2)quota のデータベースファイルの作成
次に quotacheck コマンドでデータベースファイルを作成します。
このコマンドは、指定したファイルシステムにおけるユーザ、グループごとの使用量を調査して、該当ファイルシステムのルートディレクトリに quota.user (grpquota の時は quota.group) というファイルを作成します。

  ↑
あれ? おかしい!!!!
quotacheck: Scannibg /dev/hda6 [/data] done ・・・・・・なんて表示するはずなのに!
パラメータ変えても同じです。
しかも、quota.user が /data にありません。んーーーーまたダメ?
とりあえず、quotacheck コマンドの使い方を書いときます。
機能 ユーザー・グループごとのファイルシステム使用量を調査する。
書式 quotacheck [-u] [-g] [-v] -a
quotacheck [-u] [-g] [-v] filesystem
オプション -u   ユーザーごとの使用量を調査する。
-g   グループごとの使用量を調査する。
-v   現在進行している状況を表示する。
-a   /etc/fstab にある全ファイルシステムに対して調査する。
平成17年07月29日(土) 追記・・・・こんな記事を見つけました。
                       ↓
                ※“usrquota”を追加できるのは、ext2 のあるパーティションだけである。

ext3でも確かusrquota の記述があるのを見た気がしたのですが・・・・
私のPlamoのカーネルが古いのかもしれません。
・・・で、ext2に戻してみました。
【ext3 -> ext2 に戻す】

umount /dev/hda6               /dev/hda6アンマウント
tune2fs -O ^has_journal /dev/hda6     /dev/hda6のファイルタイプをext2へ変更
e2fsck -y /dev/hda6              パーティションのエラーチェック
mount -t ext2 /dev/hda6 /data   マウントポイントを指定してマウント

/etc/fstabを変更してリブート

この後で quotacheck を実行しました。しかし、LABEL=/data while openinig error とかでNGです。
この時、ふと思いました。もしかして、ラベル設定したのがだめだったかな?
なので、/etc/fstabを次のようにしてみました。

 ↓
つまり、/dataのLABEL記述を無くしたわけです。mount -o remount /dev/hda6 かリブートです。
そして quotacheck 実行です。

 ↓
いやーーーーーやっとできましたぁ!!!

10.1.3 quota の設定
quota 使用の準備ができたら、ユーザーやグループに対する制限の設定を行います。
設定する項目は次の種類があります。
・制限の対象(ブロッククォータ、ノードクォータ) → 片方または両方の設定もできます。
・制限の種類(ソフト制限、ハード制限) → 全てのユーザー、グループに適用されます。
・猶予期間
(1)制限の対象
・ブロッククォータ (block quota)

使用ブロック数を制限するものです。ディフォルト: 1block = 1KByte です。( Ex : 1Mbyte -> 1024block)

・ノードクォータ (node quota)

使用ノード数を制限します。作成できるファイル、ディレクトリの数を制限する時に用います。
(2)制限の種類
ソフト制限(soft limit)とハード制限(hard limit)の2種類があります。意味合いは次のような感じです。
ソフトよりハードを大きくとるのがミソです。

(3)猶予期間(grace period) → ディフォルト:7日
ソフト制限とハード制限の適用方法を与えます。猶予期間が「0」の場合は、猶予期間が設定されないことになり、「ソフト制限値 = ハード制限値」になります。
猶予期間は全てのユーザー、グループに適用されます。
ここから設定方法です。
quota 値の設定は edquota コマンドで行います。環境変数 EDITOR (ディフォルト : vi ) で指定されたプログラムをエディタとして使用します。
エディタ上でソフト制限値、ハード制限値を設定してファイルを保存します。既に quota値 を設定しているユーザーと同じ quota値 の設定を行う場合は、p オプションを指定することで、エディタで編集することなく quota値 の設定を行うことができます。
edquota の使い方を次に示します。
機能 quota 値、猶予期間を設定する。
書式 edquota [-u | -g] name エディタでnameの quota値 を設定する。

edquota -p proto-user [-u | -g] name

     proto-userと同一の設定をnameに適用する。

edquota [-u | -g] -t 猶予期間を設定する
オプション  -u    ユーザーの quota値 を設定する。(ディフォルトです)

 -g    グループのquota値 を設定する。
どれ、edquota -u takaq2 ・・・・って「あれ」変です。quota 設定の内容になっていません。
/usr/doc/quota-1.55/quota.html にある /etc/fstab の例を見たら ext2 ファイルしかない。
んーーーー調べよう!
     ↓
上記 平成17年07月29日(土) 追記 を実施後に再度挑戦です。

  ↑
エディタで開かれた直後の画面です。では、ブロックをソフト:1024(1Mbyte) ハード:1536(1.5Mbyte) ノードをソフト:100 ハード:150にしてみましょう。
  ↓
こんな感じで wq です。
次に takaq2 と同じ設定を takaq3 にしてみましょう。

ちーっと気になるメッセージ出てますね!
また、quota値 の設定は setquota によりエディタを使わないで設定することができます。
機能  quota値 を設定する。
書式  setquota [-u | -g] name bsl bhl isl ihl filesystem
 setquota [-u | -g] name bsl bhl isl ihl -a

   bsl : ブロックソフト制限値  bhl : ブロックハード制限値
   isl : ノードソフト制限値    ihl : ノードハード制限値
 setquota [-u | -g] -p proto-user name filesystem
 setquota [-u | -g] -p proto-user name -a

 proto-userの設定値をnameに適用する。
 setquota [-u | -g] -t blockgrace inodegrace filesystem
 setquota [-u | -g] -t blockgrace inodegrace -a

 ブロック制限の猶予期間を blockgrace iノード制限の猶予期間を inodegrace に設定(単位:秒)にする。
オプション  -u    ユーザーに設定
 -g    グループに設定
 -a    /etc/fstabにエントリがあって、quotaが指定されている全ファイルシステムを対象
では、ユーザ:takaq4 に setquota でブロック制限、ハード制限をした後に同じ設定を takaq5 に適用してみましょう。

 ↑
 ああ、私のPlamoには setquota が無いですね。
現在のディスク使用状況や設定値を参照するには quota コマンドを使用します。

  ↑
ありゃーーーー、また変です。調べないといけないですね。
やっぱりカーネルの再構築が要ります。ディフォルトのインストールではカーネルがquota使用を有効にしてません。
 CONFIG_QUOTA = is not set を CONFIG_QUOTA = y にして再構築する必要があります。
 「やってみるかー」とも思いましたが、もはや打ち切りのPC-98x1シリーズをいじっても仕方がないなぁ・・・・です。
 Plamo Linux 3.3 (98) をいじるのはこれくらいにしたいと思います。(単に根性無しなだけかもしれません)

これでおしまいです。・・・・2005年8月3日 22:02:24


Prev Top
システムの運用管理(プロセス管理、メモリ・ディスク管理) 目次

サイトトップへ