LPIC-1 - 101試験 - 104:デバイス、Linuxファイルシステム、ファイルシステム階層標準 - 104.4 ディスククォータを管理する

Last Update : September 18 2014 21:34:21

     

a. ディスククォータの制限

 「クォータ」機能とは、ファイル・システム(ディスク)の使用量を監視し、設定された制限値に達すると、警告を行ったり、それ以上利用できないように書き込みを禁止したりする機能です。ユーザーやグループごと、フォルダ、ボリュームなどの単位で制限をかけ、特定のユーザーがディスクを使いすぎるのを防いだり、日々増え続けるログやデータなどでディスクがあふれたりするのを未然に防止したりするために重要な機能です。


a. ディスククォータの適用

ディスククォータを実装するには、以下のステップを使用します。

  1. /etc/fstab を修正することで、ファイルシステム毎のクォータを有効にします。
  2. ファイルシステムを再マウントします。
  3. クォータデータベースファイルを作成して、ディスク使用状況テーブルを生成します。
  4. クォータポリシーを付与します。

b. ディスククォータの管理

1./etc/fstab の編集

まず、容量を制限するファイルシステムに対して、/etc/fstab でディスククォータが有効になるように設定します。以下は、/home ディレクトリに対してユーザーごとの容量制限をかける場合(usrquotaを指定)です。グループごとの制限をかけたい場合は、grpquota を記述します。ユーザーとグループ共に容量を制限をかける場合は、単に、quota とだけ記述します。

# vi /etc/fstab
LABEL=/home /home ext3 defaults,usrquota 1 2


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

ディスククォータをかける対象のファイルシステムをマウントします。以下のように、既に /home がマウント済みと表示された場合は、/etc/mtab を更新するために再マウントします。再マウント後、/etc/mtab に usrquota の文字が更新されていればOKです。

# mount /home
mount: /dev/hda7 は マウント済か /home が使用中です
mount: mtab によると、/dev/hda7 は /home にマウント済です

# mount -o rw,remount /home //再マウント
# cat /etc/mtab
/dev/hda7 /home ext3 rw,usrquota 0 0


3.ディスク使用量のチェック [ quotacheck ]

現時点でのディスク使用量をチェックし、クォータファイル(ユーザーごとのファイル使用量を管理するファイル)を作成します。ユーザーについてスキャンしたファイルは、aquota.user、グループごとについてスキャンしたファイルは、aquota.group がスキャンをかけたファイルシステムの直下に作成されます(ここでは、/home )。アクセス権はrootのみ読み書き可能を設定する。なお、/etc/fstab に記述されている全てのファイルシステムについてスキャンをかけるには、-a オプションを付け加えます。ユーザーのクォーターファイルを作成する、-u オプションはデフォルトで On になっています。グループごとのクォータファイルを作成するには、-g オプションを付け加えます。

# quotacheck -cv /home
quotacheck: Scanning /dev/hda6 [/home] done
quotacheck: Checked 3 directories and 6 files
quotacheck: Old file not found.


4.クォータを有効/無効にする [ quotaon ] [ quotaoff ]

クォータを有効にするには、 quotaon コマンドを使用します。無効にする場合は、 quotaoff コマンドを使用します。なお、quotaon コマンドを使用せずとも、システムを再起動すれば自動的にクォータが有効になります。

# quotaon -uv /home
/dev/hda7 [/home]: user quotas turned on

●quotaon/quotaoff のオプション
 -u ユーザーごとのディスククォータを有効にする
 -g グループごとのディスククォータを有効にする
 -v メッセージを表示する
 -a /etc/fstab に記述されている読み書きの許可と quota の指定がされている全て
の ファ イルシステムについて、quota を起動する/停止する


5.クォータの設定 [ edquota ]

実際にユーザーごとにディスク使用量の制限をかけていきます。使用するコマンドは、 edquota です。以下コマンドを実行すると、ユーザーsakura の現在のディスククォータ設定が表示されます。

# edquota -u sakura
Disk quotas for user sakura (uid 504):
Filesystem      blocks     soft       hard     inodes     soft     hard
/dev/hda7       39692      20000      22000     1886        0        0

各パラメータの意味は以下の表の通りです。実際に編集するのは、各ソフト制限の値とハード制限の値になります。ディスク容量の単位はKB単位で記述し、0 は無制限を表します。ここでは、ソフト制限(以下後述)を20MBとし、ハード制限を22MBとしています。設定の編集後、即座に反映されます。

ディスク使用量(KB) ファイル数
現在の使用量 ソフト制限 ハード制限 現在の使用量 ソフト制限 ハード制限


6.ソフト制限・ハード制限・タイムリミットについて

ディスククォータには、ソフト制限・ハード制限という2つの制限があります。
ソフト制限は、容量が指定サイズ、あるいは指定ファイル数を超えた段階でユーザーに対して警告が発せられます。しかし、警告が発せられてもファイルをの書き込み作業自体には問題は発生しません。それに対して、ハード制限は、指定限度以上の容量を越えた場合には、それ以上、ファイルを書き込みすることができなくなります。

なお、ソフト制限にはタイムリミットというものがあり、警告が発せられてから指定期間以上(デフォルトでは7日間)、ファイルを削除せずにそのままにしておくと、その期間以降はファイルを書き込みする事ができなくなります。これは、クォータ設定を確認する repquota コマンドの grace 値がこれに該当します。また、ソフト制限・ハード制限はユーザーごとに設定を行う事ができますが、タイムリミットはファイルシステムごとに設定します。タイムリミットの設定は、 edquota -t コマンドを使用します。使用できる時間の単位は、days(日)、hours(時間)、minutes(分)、seconds(秒)です。

# 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/hda7                     7days                  7days


7.クォータ設定を確認する [ repquota ]

現在のクォータ設定を確認するには、 repquota コマンドを使用します。

# repquota -u -a
*** Report for user quotas on device /dev/hda7
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    6328       0       0             71     0     0
sakura    --   39692   20000   20000           1886     0     0


8.一般ユーザがクォータの設定を確認する [ quota ]

一般のユーザーが自分のディスク使用状況を確認するには、 quota コマンドを使用します。

● quota コマンド構文
  quota [-u] [オプション] [ユーザー名]

● quota オプション
 -u ユーザークォータの状況を表示する(デフォルト)
 -g グループクォータの状況を表示する
 -v 詳細な情報を表示する

$ quota
Disk quotas for user tizu (uid 501):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/hda7      44     200     200              10       0       0


9.クォータ設定のコピー [ setquota ]

クォータの設定は、基本的にユーザーに対して同じ設定を施す事がほとんどです。その場合は、いちいちユーザーごとに編集していたのでは手間がかかるので、クォータ設定をコピーして再利用します。以下の例では、ユーザーsakura のクォータ設定を、foo ユーザにコピーして適用しています。適用後は、 repquata コマンドで確認してください。

# setquota -u -p sakura foo -a

●setquota オプション
 -r 対象がNFSファイルシステムの場合に使用する
 -u ユーザー単位でのクォータを設定する(省略した場合のデフォルト)
 -g グループ単位でのクォータを設定する
 -p -p <コピー元ユーザ><コピー先ユーザ> でクォータ設定をコピーする


10.クォータの運用

クォータを運用していくには、定期的にディスクの使用状況を調べておく必要があります。ディスク使用量を調べるコマンドは、 quotacheck コマンドを使用します。このコマンドを cron で1日1回程度実行して、aquota.user と aquota.group を定期的に更新しておく必要があります。

# vi /etc/crontab
20 0 * * * root /sbin/quotacheck -a



z. 出題範囲概要

●主要な知識範囲
ファイルシステムにディスククォータを設定する
ユーザのクオータレポートを編集、確認、生成する
●重要なファイル、用語、ユーティリティ
quota, edquota, repquota, quotaon


  [ 例題 ] 
  1. 101:104.4 問01  ディスククォータ
  2. 101:104.4 問02  ディスククォータ
  3. 101:104.4 問03  各ユーザのディスククォータの状況を確認する
  4. 101:104.4 問04  クォータ


     

www.it-shikaku.jp