スポンサーサイト
投稿日時 : -------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- --:-- | スポンサー広告
[Ubuntu] ディスククォータの設定メモ
投稿日時 : 2008-01-12 15:40
Ubuntuでディスククォータを設定した際のメモ。
 
■インストール
itmst@mv1c3e:~$ sudo apt-get install quota
パッケージリストを読み込んでいます...
依存関係ツリーを作成しています...
Reading state information...
提案パッケージ:
  libnet-ldap-perl
以下のパッケージが新たにインストールされます:
  quota
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
422kB のアーカイブを取得する必要があります。
展開後に追加で 1282kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com gutsy/main quota 3.14-8 [422kB]
パッケージを事前設定しています ...
422kB を 0s で取得しました (1203kB/s)
未選択パッケージ quota を選択しています。
(データベースを読み込んでいます ... 現在 113740 個のファイル
とディレクトリがインストールされています。)
(.../archives/quota_3.14-8_i386.deb から) quota を展開しています...
quota (3.14-8) を設定しています ...

 
■サービス確認
インストールするとサービスの自動起動が自動的に設定される。
itmst@mv1c3e:~$ sysv-rc-conf --list | grep quota
quota        0:off      6:off   S:on
quotarpc     0:off      1:off   2:on    3:on    4:on    5:on    6:off

 
■/etc/fstabの編集
/etc/fstabのクォータを設定するデバイスのエントリのオプションに、ユーザごとにクォータを個別に設定する場合は「usrquota」、グループごとに設定する場合は「grpquota」を追記する。
itmst@mv1c3e:~$ sudo vim /etc/fstab
/dev/sda3 /mnt/sda3 ext3 defaults,usrquota 0 1

 
■再マウント
/etc/fstabに追記した設定を反映させるために該当デバイスを再マウントする。
itmst@mv1c3e~$ sudo mount -o remount /dev/sda3

 
■データベース作成
ディスククォータを使用するデバイスのマウントポイントに対して「quotacheck」コマンドを実行し、クォータ情報のデータベースを作成する。
itmst@mv1c3e:~$ sudo quotacheck /mnt/sda3
itmst@mv1c3e:/mnt/sda3$ ls -l
合計 24
-rw------- 1 root root  7168 2008-01-11 19:24 aquota.user
drwx------ 2 root root 16384 2008-01-11 16:58 lost+found
「/etc/fstab」で「usrquota」を追記した場合は、ユーザクォータのデータベースファイルである「aquota.user」が作成される。グループクォータの場合は「aquota.group」が作成される。クォータプログラムによってはtouchコマンドなどであらかじめ手動で空ファイルを作成しておかなければならない場合もあるらしい。Ubuntu7.10では自動的に作成された。
 
■有効化(初回のみ)
「quotaon」コマンドでクォータを有効化する。-aオプションで/etc/fstabファイル内のクォータが有効になっているnoautoオプションが指定されていないファイルシステム全てを対象とする。-aオプションでユーザクォータ、-gオプションでグループクォータを有効化。-pオプションで状態表示。
itmst@mv1c3e:~$ sudo quotaon /mnt/sda3

 
■無効化
「quotaoff」コマンドでクォータを無効化する。-aオプションで/etc/fstabファイル内のクォータが有効になっているnoautoオプションが指定されていないファイルシステム全てを対象とする。-aオプションでユーザクォータ、-gオプションでグループクォータを停止。-pオプションで状態表示。
itmst@mv1c3e:~$ sudo quotaoff /mnt/sda3

 
■設定
クォータの設定を変更するにはroot権限でedquotaコマンドを実行する。-uオプションでユーザクォータ、-gオプションでグループクォータの設定ができる。コマンドを実行するとエディタが起動し、編修後保存し、終了すると設定が反映される。
itmst@mv1c3e:~$ sudo edquota -u itmst
 
Disk quotas for user itmst (uid 1000):

Filesystem    blocks     soft     hard   inodes   soft   hard
/dev/sda3          0   100000   110000       0      0      0

 
edquotaコマンドで設定できる項目
使用ブロック数ユーザやグループが使用できるブロック数の上限
使用iノード数ユーザやグループが使用できるiノード数の上限
ソフトリミットユーザやグループがソフトリミットを越えてファイルを書き込もうとすると警告が表示される
ハードリミットユーザやグループがハードリミットを越えてファイルを書き込もうとするとエラーになる
グレースタイムソフトリミットを越えてから、エラーになるまでの猶予時間。猶予期間を越えると、ハードリミットに達していなくても書き込みエラーになる

ここでは実験のためにブロックのソフトリミットに100000、ハードリミットに110000を設定。
 
■グレースタイムの設定
ソフトリミットを超過してからエラーになるまでの猶予時間を設定するにはedquotaコマンドを-tオプションをつけて実行する。デフォルトでユーザクォータの設定になる。グループクォータのグレースタイムの設定は-gオプションをつけて実行。
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/sda3                     7days                  7days
days、hours、minutes、secondsの単位でブロック数超過、iノード数超過の場合の猶予期間をそれぞれ設定可能。現在「7days」になっている箇所を「10minutes」や「30seconds」などに変更する。
 
■動作確認
実際にファイルを書き込んで、ソフトリミットを越えた時点で警告、ハードリミットを越えたらエラーが表示されるかを確かめる。ここではユーザクォータを設定した/mnt/sda3に「quota」というディレクトリを作成し、所有者を「itmst」に設定、そこにファイルをコピーしてみる。
itmst@mv1c3e:~$ sudo mkdir /mnt/sda3/quota
itmst@mv1c3e:~$ sudo chown itmst:itmst /mnt/sda3/quota/
itmst@mv1c3e:~$ cp -r /home/itmst/files/ /mnt/sda3/quota/
sda3: warning, user block quota exceeded.
sda3: write failed, user block limit reached.
cp: writing `/mnt/sda3/quota/files/file08.dat': Disk quota exceeded
cp: writing `/mnt/sda3/quota/files/file09.dat': Disk quota exceeded
cp: writing `/mnt/sda3/quota/files/file10.dat': Disk quota exceeded
cp: ディレクトリ `/mnt/sda3/quota/files/files2' を作成できません:
 Disk quota exceeded
正常に動作していそうなことが分かる。
 
■一般ユーザが自分のクォータ状況を確認する場合
一般ユーザが現在の自分のクォータの使用状況を確認するには「quota」コマンドを使用する。
itmst@mv1c3e:~$ quota
Disk quotas for user itmst (uid 1000): 
 Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
 /dev/sda3  110000* 100000  110000   6days      25       0       0        
ハードリミットに達していることが分かる。
 
■rootユーザが全クォータ状況を確認する場合
rootユーザは「repquota」コマンドにデバイスファイルを渡して実行すると特定デバイスの全ユーザのクォータ状況を一覧表示させることができる。-aオプションで/etc/fstabでクォータが設定されているすべてのファイルシステムについて表示する。-uオプションで特定ユーザ、-gオプションで特定グループの全クォータ状況を確認できる。
itmst@mv1c3e:~$ sudo repquota /dev/sda3
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --  141216       0       0              4     0     0       
itmst     +-  110000  100000  110000  6days    25     0     0       

 
■quotacheckを定期的に実行するようにcronに登録する quotaを設定した後は定期的にquotacheckコマンドを実行し、クォータデータベースファイルを更新しなくてはならない。これを手動で行うのは大変なのでcronを使う。
1時間おきにcronに実行してもらう
$ sudo vim /etc/cron.hourly/quotacheck.cron

/etc/cron.hourly/quotacheck.cron
#!/bin/sh
/sbin/quotacheck -aug

 
[参考]
Cyberam Documents Project - クォータ
 
スポンサーサイト
2008-01-12 15:40 | Linux | Comment(0) | Trackback(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。