8.3. XFS クォータ管理
XFS クォータサブシステムは、ディスク領域 (ブロック) およびファイル (inode) の使用量の制限を管理します。XFS クォータは、ユーザー、グループ、ディレクトリーレベル、またはプロジェクトレベルでこれらの項目の使用を制御または報告します。また、ユーザー、グループ、ディレクトリーまたはプロジェクトのクォータは個別に有効になりますが、グループとプロジェクトのクォータは相互に排他的であることに注意してください。
ディレクトリーまたはプロジェクトごとに管理する場合、XFS は特定のプロジェクトに関連付けられたディレクトリー階層のディスク使用量を管理します。そうすることで、XFS はプロジェクト間の組織間にまたがる「グループ」境界を認識します。これにより、ユーザーまたはグループのクォータを管理する際に使用できるレベルよりも、広いレベルの制御が提供されます。
XFS クォータは、特定のマウントオプションを指定して、マウント時に有効になります。各マウントオプションは noenforce として指定することもできます。これにより、制限を強制適用せずに使用状況の報告が可能になります。有効なクォータマウントオプションは以下の通りです。
- uquota/uqnoenforce: ユーザークォータ
- gquota/gqnoenforce: グループクォータ
- pquota/pqnoenforce: プロジェクトクォータ
クォータを有効にすると、xfs_quota ツールを使用して制限を設定し、ディスク使用量を報告できます。xfs_quota は、デフォルトでは対話形式かつ basic mode で実行されます。基本モードのサブコマンドは使用量を報告するだけで、すべてのユーザーが使用できます。基本的な xfs_quota サブコマンドには以下が含まれます。
- quota username/userID
- 指定の username または数値の userID の使用状況および制限を表示します。
- df
- ブロックおよび inode の空きおよび使用済みの数を表示します。
これとは対照的に、xfs_quota には エキスパートモード もあります。このモードのサブコマンドは、制限を実際に設定することができるため、昇格した特権を持つユーザーのみが利用できます。エキスパートモードのサブコマンドを対話的に使用するには、xfs_quota -x を実行します。エキスパートモードのサブコマンドには以下が含まれます。
- report /path
- 特定のファイルシステムのクォータ情報を報告します。
- limit
- クォータの制限を変更します。
基本モードまたはエキスパートモードに関するサブコマンドの一覧は、サブコマンド ヘルプ を使用します。
すべてのサブコマンドは、-c オプションを使用してコマンドラインから直接実行することもできます。エキスパートサブコマンドの場合は -x を使用します。
例8.2 サンプルクォータレポートの表示
たとえば、(
/dev/blockdevice
の) /home
のクォータレポートのサンプルを表示するには、xfs_quota -x -c 'report -h' /home コマンドを使用します。これにより、以下のような出力が表示されます。
User quota on /home (/dev/blockdevice) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] testuser 103.4G 0 0 00 [------] ...
ユーザー
john
(ホームディレクトリーが /home/john
) に対して、inode 数のソフト制限およびハード制限をそれぞれ500 と 700 に設定するには、以下のコマンドを使用します。
# xfs_quota -x -c 'limit isoft=500 ihard=700 /home/john'
デフォルトでは、limit サブコマンドはターゲットをユーザーとして認識します。グループに制限を設定する場合は、(前出の例のように) -g オプションを使用します。同様に、プロジェクトには -p を使用します。
ソフトブロックおよびハードブロック制限は、isoft または ihard の代わりに bsoft または bhard を使用して設定することもできます。
例8.3 ソフトブロックおよびハードブロックの制限の設定
たとえば、
/target/path
のファイルシステムで accounting
をグループ化するために、ソフトおよびハードのブロック制限をそれぞれ 1000m と 1200m に設定するには、以下のコマンドを使用します。
# xfs_quota -x -c 'limit -g bsoft=1000m bhard=1200m accounting' /target/path
重要
リアルタイムブロック (rtbhard/rtbsoft) は、クォータの設定時に有効な単位として man xfs_quota に記述されていますが、本リリースではリアルタイムサブボリュームが有効化されていません。そのため、rtbhard オプションおよび rtbsoft オプションは、適用されません。
プロジェクト制限の設定
プロジェクトが制御するディレクトリーに制限を設定する前に、最初に
/etc/projects
に追加します。プロジェクト名を /etc/projectid
に追加して、プロジェクト ID をプロジェクト名にマップできます。プロジェクトを /etc/projects
に追加したら、以下のコマンドを使用してプロジェクトディレクトリーを初期化します。
# xfs_quota -c 'project -s projectname'
初期化したディレクトリーを持つプロジェクトのクォータは、以下を使用して設定できます。
# xfs_quota -x -c 'limit -p bsoft=1000m bhard=1200m projectname'
汎用クォータ設定ツール (例: quota、repquota、および edquota) を使用して XFS クォータを操作することもできます。ただし、このツールは XFS プロジェクトクォータでは使用できません。
XFS クォータの設定に関する詳細は、man xfs_quota を参照してください。