IT pass HikiWiki - [ITPASS2010]quotaの設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
== 目的
各ユーザのディスク使用量を
* ソフトリミット 10 GB
* ハードリミット 12 GB
に制限するため, quota を導入する.
== kernel が quota に対応しているか確認
以下のコマンドを入力する.
(2.6.26-2-amd64 等は kernel のバージョンに合わせる)
$ grep CONFIG_QUOTA /boot/config-2.6.26-2-amd64
CONFIG_QUOTA=y と表示されれば対応している.
== quota コマンドが入っているか確認
* 方法 1:
$ which quota
/usr/bin/quota
のように quota コマンドのパスが表示されれば入っている.
メッセージが返ってこなければ入っていない.
* 方法 2:
$ dpkg -l | grep quota
dpkg -l でパッケージの一覧を表示し, "quota" を含む行を表示する.
表示されなければ入っていない.
quota が入っていなければ, 以下の作業を行う.
== quota のインストール
root 権限を得る ( itpadmin グループに入っているユーザ、または chikuwa XX のユーザーのみ可能 ).
$ sudo -s
quota パッケージをインストールする.
# apt-get install 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
起動中に以下のような警告がでるが, これは aquota.user の中身がないための警告で, この時点では問題ない.
Checking quotas...quotacheck: WARNING - Quotafile /home/aquota.user was
probably truncated. Cannot save quota settings...
== gate ユーザの quota 設定
gate-toroku-system は新規ユーザのホームディレクトリを
作成した際に, gate ユーザに設定された quota を新規ユーザに
適用する. そのため gate ユーザに quota を設定する.
gate ユーザにソフトリミット 10 GB, ハードリミット 12 GB の
quota をかける.
# edquota gate
vi が立ち上がるので, 以下のように編集する.
容量のリミットは,
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 情報が表示される.
== ディスクの使用状態を見る
各ユーザがディスクの使用状態を見るには, 以下のコマンドを打つ.
$ quota
ちなみに, root 権限を持つユーザが
# quota [ユーザ名]
と打つと, [ユーザ名] のディスクの使用状態が見ることが出来る.
== ソフトリミット超過の猶予期間
デフォルトでは 7 日間である.
変更する場合は edquota コマンドの -t, -T オプションを使って変更できる.
詳しくは man を参照.
== 動作確認
試験のために, 一時的に適当なユーザ(ここでは仮に test とする)の quota の設定を ソフトリミット 200 MB,
ハードリミット 250 MB にする.
dd コマンドを用いて, 200 MB のソフトリミットを越えるサイズの
ファイルを作成し, 警告されるかどうかを確認する.
次のコマンドは, test のホームで行うこと.
$ 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
試験が終われば忘れずにファイルを削除し, quota の設定も
元に戻しておくこと!!
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
== 目的
各ユーザのディスク使用量を
* ソフトリミット 10 GB
* ハードリミット 12 GB
に制限するため, quota を導入する.
== kernel が quota に対応しているか確認
以下のコマンドを入力する.
(2.6.26-2-amd64 等は kernel のバージョンに合わせる)
$ grep CONFIG_QUOTA /boot/config-2.6.26-2-amd64
CONFIG_QUOTA=y と表示されれば対応している.
== quota コマンドが入っているか確認
* 方法 1:
$ which quota
/usr/bin/quota
のように quota コマンドのパスが表示されれば入っている.
メッセージが返ってこなければ入っていない.
* 方法 2:
$ dpkg -l | grep quota
dpkg -l でパッケージの一覧を表示し, "quota" を含む行を表示する.
表示されなければ入っていない.
quota が入っていなければ, 以下の作業を行う.
== quota のインストール
root 権限を得る ( itpadmin グループに入っているユーザ、または chikuwa XX のユーザーのみ可能 ).
$ sudo -s
quota パッケージをインストールする.
# apt-get install 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
起動中に以下のような警告がでるが, これは aquota.user の中身がないための警告で, この時点では問題ない.
Checking quotas...quotacheck: WARNING - Quotafile /home/aquota.user was
probably truncated. Cannot save quota settings...
== gate ユーザの quota 設定
gate-toroku-system は新規ユーザのホームディレクトリを
作成した際に, gate ユーザに設定された quota を新規ユーザに
適用する. そのため gate ユーザに quota を設定する.
gate ユーザにソフトリミット 10 GB, ハードリミット 12 GB の
quota をかける.
# edquota gate
vi が立ち上がるので, 以下のように編集する.
容量のリミットは,
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 情報が表示される.
== ディスクの使用状態を見る
各ユーザがディスクの使用状態を見るには, 以下のコマンドを打つ.
$ quota
ちなみに, root 権限を持つユーザが
# quota [ユーザ名]
と打つと, [ユーザ名] のディスクの使用状態が見ることが出来る.
== ソフトリミット超過の猶予期間
デフォルトでは 7 日間である.
変更する場合は edquota コマンドの -t, -T オプションを使って変更できる.
詳しくは man を参照.
== 動作確認
試験のために, 一時的に適当なユーザ(ここでは仮に test とする)の quota の設定を ソフトリミット 200 MB,
ハードリミット 250 MB にする.
dd コマンドを用いて, 200 MB のソフトリミットを越えるサイズの
ファイルを作成し, 警告されるかどうかを確認する.
次のコマンドは, test のホームで行うこと.
$ 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
試験が終われば忘れずにファイルを削除し, quota の設定も
元に戻しておくこと!!
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]