17.2. ディスククォータの管理
クォータが実装されている場合、ほとんどは、クォータを超えているかどうかを監視し、クォータが正確であることを確認するという形で、いくつかのメンテナンスが必要になります。
ユーザーが繰り返しクォータを超過したり、常にソフト制限に達している場合、システム管理者には、ユーザーのタイプや、ユーザーの作業にディスク容量が及ぼす影響の度合に応じて 2 つの選択肢があります。管理者は、ユーザーが使用するディスク領域を節約する方法をわかるようにするか、ユーザーのディスククォータを拡大するかのいずれかを行うことができます。
17.2.1. 有効化と無効化
クォータはゼロに設定することなく、無効にすることができます。すべてのユーザーとグループのクォータをオフにするには、以下のコマンドを使用します。
#
quotaoff -vaug
-u
オプションまたは -g
オプションのいずれも指定しない場合は、ユーザークォータのみが無効になります。-g
のみを指定すると、グループクォータのみが無効になります。-v スイッチにより、コマンドの実行時に詳細なステータス情報が表示されます。
ユーザーおよびグループのクォータを再度有効にするには、次のコマンドを使用します。
#
quotaon
すべてのファイルシステムでユーザーおよびグループのクォータを有効にするには、次のコマンドを使用します。
#
quotaon -vaug
-u
オプションまたは -g
オプションのいずれも指定しない場合は、ユーザークォータのみが有効になります。-g
のみが指定されている場合は、グループのクォータのみが有効になります。
/home
などの特定のファイルシステムのクォータを有効にするには、次のコマンドを使用します。
#
quotaon -vug /home
注記
quotaon コマンドは、マウント時に自動的に実行されるため、XFS に常に必要であるとは限りません。詳細は、man ページの quotaon (8)を 参照してください。
17.2.2. ディスククォータに関するレポート
ディスク使用量レポートを作成するには、repquota ユーティリティーの実行が必要になります。
例17.6 repquota コマンドの出力
たとえば、repquota /home コマンドは以下の出力を生成します。
*** Report for user quotas on device /dev/mapper/VolGroup00-LogVol02 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 4 0 0 kristin -- 540 0 0 125 0 0 testuser -- 440400 500000 550000 37418 0 0
クォータが有効なすべてのファイルシステム (オプション
-a
) のディスク使用状況レポートを表示するには、次のコマンドを使用します。
# repquota -a
レポートは読みやすいですが、いくつか説明しておくべき点があります。各ユーザーの後に表示される
--
は、ブロックまたは inode の制限を超えるかを簡単に判断できます。いずれかのソフト制限を超えると、対応する -
の代わりに +
が表示されます。最初の -
はブロックの制限を表し、2 つ目は inode の制限を表します。
通常、
grace
列は空白です。ソフト制限が超過した場合、その列には猶予期間に残り時間量に相当する時間指定が含まれます。猶予期間が過ぎると、代わりに 何も
表示されません。
17.2.3. クォータの精度維持
システムクラッシュなどの理由で、ファイルシステムのマウントを正しく解除できない場合は、次のコマンドを実行する必要があります。
#
quotacheck
ただし、システムがクラッシュしていないとしても、quotacheck は定期的に実行できます。quotacheck を定期的に実行する安全な方法には、以下が含まれます。
- 次回の再起動時に quotacheck を確実に実行する
- ほとんどのシステムに最適な方法この方法は、定期的に再起動する (ビジーな) 複数ユーザーシステムに最も適しています。シェルスクリプトを
/etc/cron.daily/
ディレクトリーまたは/etc/cron.weekly/
ディレクトリーに保存するか、次のコマンドを使用してシェルスクリプトをスケジュールします。#
crontab -ecrontab -e コマンドには、touch /forcequotacheck コマンドが含まれます。このスクリプトは root ディレクトリーに空のforcequotacheck
ファイルを作成するため、起動時にシステムの init スクリプトがこれを検索します。このディレクトリーが検出されると、init スクリプトは quotacheck を実行します。その後、init スクリプトは/forcequotacheck
ファイルを削除します。このように、cron
でこのファイルが定期的に作成されるようにスケジュールすることにより、次回の再起動時に quotacheck を確実に実行することができます。cron の詳細は、man cron を参照してください。 - シングルユーザーモードで quotacheck を実行
- quotacheck を安全に実行する別の方法として、クオータファイルのデータ破損の可能性を回避するためにシングルユーザーモードでシステムを起動して、以下のコマンドを実行する方法があります。
#
quotaoff -vug /file_system#
quotacheck -vug /file_system#
quotaon -vug /file_system - 実行中のシステムで quotacheck を実行
- 必要な場合には、いずれのユーザーもログインしておらず、チェックされているファイルシステムに開いているファイルがない状態のマシン上で quotacheck を実行することができます。quotacheck -vug file_system コマンドを実行します。このコマンドは、quotacheck が指定された file_system を読み取り専用に再マウントできない場合に失敗します。チェックの後には、ファイルシステムは読み込み/書き込みとして再マウントされることに注意してください。警告読み込み/書き込みでマウントされているライブのファイルシステム上での quotacheck の実行は、quota ファイルが破損する可能性があるため、推奨されません。
cron の設定に関する詳細は、man cron を参照してください。