IT pass HikiWiki - [Memo2011][ITPASS] ika 構築作業ログ 16 (quota2) Diff

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

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 作成→ 再起動

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