[Memo2011][ITPASS] ika 構築作業ログ 16 (quota2)

quota の設定において、前回のログにおける問題(ログ 15 (quota) 参照)解決のため、どこに不備があるのかの再確認を含め,もう一度はじめから作業を始めた.

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

目的

各ユーザのディスク使用量を

  • ソフトリミット 40 GB
  • ハードリミット 48 GB

に制限するため, quota を導入する.

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

以下のコマンドを入力した. (2.6.26-2-amd64 等は kernel のバージョンに合わせた)

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

CONFIG_QUOTA=y と表示された.

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

$ which quota
/usr/bin/quota

のように quota コマンドのパスが表示された.

/etc/fstab の編集

# vim /etc/fstab

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

# /etc/fstab: static file system information.

#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc            /proc           proc    defaults        0       0

# / was on /dev/sda1 during installation

UUID=f3dd32e8-c628-4abd-a6fb-07950b19eaab /     ext3    errors=remount-ro    0       1

# /home was on /dev/sda3 during installation

UUID=374db796-98f7-458e-acc4-5dee7234f046 /home    ext3  defaults,usrquota        0       2

# swap was on /dev/sda2 during installation

UUID=05758d20-7a3f-4a88-95d3-1f73bcc2c8e5 none    swap    sw    0       0

# swap was on /dev/sdb2 during installation

UUID=8996c268-e8ca-4aae-98b0-26915ca5468e none    swap    sw    0       0

/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0

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

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

# cd /home

# touch aquota.user

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

# chmod 600 aquota.user

システムの再起動

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

しかし、期待されるエラーの確認が出来なかった.

代わりに

checking quotas...quotacheck: Cannot guess format from filename on /dev/sda3. P1 ease specify format oncommandline. 

startpar: service(s) returened failure: quota ... failed! 

と表示された.

次の3つに問題があるのではないかと思い調べてみたが、

  • home が sda3 にマウントされてる事を確認.
  • aquota の中身が無いことを確認.
  • aquota.user の容量が 0 を確認.

できた。

つまり、ここに問題はない.

ここで、 北大のマニュアルでは aquota.user でなく quota.user でこの作業をしているので, aquota.userを消し, 試しに神戸でも quota.user でやってみる.

すると再起動中に aquota.user がないと言われたので, 再起動後, aquota.user を作って再起動した.

すると,

checking quotas...quotacheck: Cannot guess format from filename on....

done

Turining on quotas...done

と表示された.

今までと違い特に問題となりそうなものが表示されなかった.

マニュアルでの次の作業に移った.

gate ユーザの quota 設定

gate ユーザにソフトリミット 40 GB, ハードリミット 48 GB の quota をかけた.

# edquota gate

vi が立ち上がるので, 以下のように編集した. 容量のリミットは, soft 項目 40 000 000 ( 単位は KB ), hard 項目 48 000 000 ( 単位は KB ). ファイル

数のリミットは, soft 項目も hard 項目も 0 ( 単位はファイル数 ).

Disk quotas for user gate (uid 500):

Filesystem                   blocks       soft       hard     inodes     soft     hard

/dev/sda6                     96208   40000000   48000000       7316        0        0

既存ユーザの quota 設定

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

# cd /home

# edquota -p gate `gate-user-list stable`

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

山中先生(mdy) は ソフトリミット 80 GB, ハードリミット 96 GB に変更した.

# edquota -u cps

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

# repquota -v /home

とすると, 各ユーザの quota 情報が表示された.

ディスクの使用状態を見た

各ユーザがディスクの使用状態を見るには, 以下のコマンドを打った.

$ quota

ちなみに, root 権限を持つユーザが

# quota [ユーザ名]

と打つと, [ユーザ名] のディスクの使用状態が見ることが出来た.

試験のために, 一時的に適当なユーザ 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が作成される. )

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

ryukih@tako-itpass:~$ dd if=/dev/zero of=tmp bs=1000k count=200

sda3: warning, user block quota exceeded.

200+0 records in

200+0 records out

204800000 bytes (205 MB) copied, 0.208156 s, 984 MB/s

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

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

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

ryukih@tako-itpass:~$ dd if=/dev/zero of=tmp bs=1000k count=300

sda3: warning, user block quota exceeded.

sda3: write failed, user block limit reached.

dd: writing `tmp': ディスク使用量制限を超過しました

250+0 records in

249+0 records out

255717376 bytes (256 MB) copied, 0.255161 s, 1.0 GB/s

試験後、忘れずにファイルを削除した.

リミットも元に戻した.

前回の作業における問題(ログ 15 (quota) 参照)は今回生じなかった.

考えられる理由は

  • 前回、再起動をしたが上手く設定が反映出来てなかった.
  • aquota.user と quota.user を再起動前に一度に作ると、何らかの理由で再起動で上手く設定が反映されない(エラーがでる).

今回、quota.user 作成→再起動→ aquota.user 作成→ 再起動

で上手く設定が反映され作業を無事終える結果となった.

Last modified:2011/11/02 22:01:08
Keyword(s):
References:[[ITPASS2011]2011年度サーバ構築ログ]