Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

17.2. ディスククォータの管理

クォータが実装されている場合、ほとんどは、クォータを超えているかどうかを監視し、クォータが正確であることを確認するという形で、いくつかのメンテナーンスが必要になります。
ユーザーが繰り返しクォータを超過したり、常にソフト制限に達している場合、システム管理者には、ユーザーのタイプや、ユーザーの作業にディスク容量が及ぼす影響の度合に応じて 2 つの選択肢があります。管理者は、ユーザーが使用するディスク領域を節約する方法をわかるようにするか、ユーザーのディスククォータを拡大するかのいずれかを行うことができます。

17.2.1. 有効化と無効化

クォータはゼロに設定することなく、無効にすることができます。すべてのユーザーとグループのクォータをオフにするには、以下のコマンドを使用します。
# quotaoff -vaug
-u オプションまたは -g オプションのいずれも指定しない場合は、ユーザークォータのみが無効になります。-g のみを指定すると、グループクォータのみが無効になります。-v スイッチを使用すると、コマンドの実行時に詳細なステータス情報が表示されます。
ユーザーおよびグループのクォータを再度有効にするには、次のコマンドを使用します。
# quotaon
すべてのファイルシステムでユーザーおよびグループのクォータを有効にするには、次のコマンドを使用します。
# quotaon -vaug
-u オプションまたは -g オプションのいずれも指定しない場合は、ユーザークォータのみが有効になります。-g のみが指定されている場合は、グループのクォータのみが有効になります。
/home などの特定のファイルシステムのクォータを有効にするには、次のコマンドを使用します。
# quotaon -vug /home
注記
quoteon コマンドはマウント時に自動的に実行されるため、XFS では必ずしも必要というわけではありません。詳細については、マニュアルページの quoteon (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
レポートは読みやすいですが、いくつか説明しておくべき点があります。各ユーザーの後に表示される -- は、 ブロックまたは i ノードの制限を超えているかどうかを簡単に判断する方法です。いずれかのソフト制限を超えた場合、対応する - の代わりに + が表示されます。最初の - はブロック制限を表し、2 番目は i ノード制限を表します。
通常、猶予 欄は空白です。ソフト制限が超過した場合、その列には猶予期間に残り時間量に相当する時間指定が含まれます。猶予期間が経過した場合、その代わりに 何も 表示されません。

17.2.3. クォータの精度維持

システムクラッシュなどの理由で、ファイルシステムのマウントを正しく解除できない場合は、次のコマンドを実行する必要があります。
# quotacheck
ただし、システムがクラッシュしていないとしても、quotacheck は定期的に実行できます。quotacheck を定期的に実行する安全な方法には、以下が含まれます。
次回の再起動時に quotacheck を確実に実行する
ほとんどのシステムに最適な方法
この方法は、定期的に再起動する (ビジーな) 複数ユーザーシステムに最も適しています。
シェルスクリプトを /etc/cron.daily/ または /etc/cron.weekly/ ディレクトリーに保存するか、次のコマンドを使用してスケジュールします。
# crontab -e
crontab -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 を参照してください。