IT pass HikiWiki - [Memo2010][ITPASS] tako 構築作業ログ 16 (quota) Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

10/10/26 に quota の設定を赤松, 高橋(由)で行った. (ロガー: 高橋(由))

{{toc_here}}

[((<ITPASSサーバ構築ドキュメント>)) へ戻る]

= quota の設定

== kernel が quota に対応しているか確認

以下のコマンドを入力する.
( kernel のバージョンは 2.6.26-2-amd64 )

$ grep CONFIG_QUOTA /boot/config-2.6.26-2-amd64

CONFIG_QUOTA=y と表示されたので対応している.

== quota コマンドが入っているか確認

以下を実行した.

$ which quota
/usr/bin/quota

メッセージが返ってきたので, コマンドがあることを確認した.

== /etc/fstab の編集

# vim /etc/fstab

で, 以下のように home を含むファイルシステム ( /dev/sda6 ) の
<options> 項目に usrquota を追加した.

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    errors=remount-ro 0       1
/dev/sda6       /home           ext3    defaults,usrquota        0       2
                                                  ^^^^^^^^
/dev/sda5       none            swap    sw              0       0
/dev/sdb5       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

== quota の記録ファイル ( aquota.user ) の作成

/home ディレクトリに移動して aquota.user ファイルを作成した.

# cd /home
# touch aquota.user

aquota.user ファイルのパーミッションを以下のように設定した.

# chmod 600 aquota.user

== システムの再起動

/etc/fstab の情報を反映させるために, システムを再起動する.

# reboot

すると, 起動中に以下のような警告がでた.

Checking quotas...quotacheck: WARNING - Quotafile /home/aquota.user was
probably truncated. Cannot save quota settings...

これは aquota.user の中身がないための警告で, この時点では問題ないとした. 以下の設定を行うと aquota.user の中身ができて警告は出なくなった.

== gate ユーザの quota 設定

gate-toroku-system は新規ユーザのホームディレクトリを
作成した際に, gate ユーザに設定された quota を新規ユーザに
適用する. そのため gate ユーザに quota を設定する.

gate ユーザにソフトリミット 10 GB, ハードリミット 12 GB の
quota をかける.

# edquota gate

デフォルト emacs が立ち上がった. 以下のように編集する. 容量のリミットは,
soft 項目 10 000 000 ( 単位は KB ), hard 項目 12 000 000 ( 単位は KB ).
ファイル数のリミットは, soft 項目も hard 項目も 0 ( 単位はファイル数 ).

Disk quotas for user gate (uid 500):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sda6                     96208   10000000   12000000       7316        0        0

== 既存ユーザの quota 設定

gate ユーザの quota を, 既に /home に存在する全てのユーザに適用する.

# cd /home
# edquota -p gate `gate-user-list stable`

cps はソフトリミット 100 GB, ハードリミット 100 GB に変更した.

# edquota -u cps

以下のコマンドで各ユーザの quota の情報を確認した.

# repquota -v /home

== 動作確認

試験のために, 一時的に適当なユーザの quota の設定を ソフトリミット 200 MB,
ハードリミット 250 MB にした.

dd コマンドを用いて, 200 MB のソフトリミットを越えるサイズの
ファイルを作成し, 警告されるかどうかを確認する.
# 次のコマンドはそのユーザーのホームで行うこと.

$ dd if=/dev/zero of=tmp bs=1000k count=200

/dev/zero を入力ファイルとして, tmp を出力ファイルとして読み書きする.
bs は一度に行う読み出し書き込みのサイズ, count は読み出し書き込みの回数である. ( このようにすると, 1000 kbytes × 200 のサイズのファイル tmp
が作成される. )

以下のように警告が表示された.

sda6: warning, user block quota exceeded.
sda6: write failed, user block limit reached.
dd: writing `tmp': ディスク使用量制限を超過しました
250+0 records in
249+0 records out
255713280 bytes (256 MB) copied, 0.639584 s, 400 MB/s

tmp を削除し, 同様にハードリミットを越えるサイズのファイルを作成し,
警告されるかどうか確認する.

$ dd if=/dev/zero of=tmp bs=1000k count=300

以下のように警告が表示された.

sda6: warning, user block quota exceeded.
sda6: write failed, user block limit reached.
dd: writing `tmp': ディスク使用量制限を超過しました
250+0 records in
249+0 records out
255713280 bytes (256 MB) copied, 0.594481 s, 430 MB/s

試験後 tmp ファイルを削除し, quota の設定も元に戻した.

[((<ITPASSサーバ構築ドキュメント>)) へ戻る]