3.3. XFS クォータ管理
XFS クォータサブシステムは、ディスク領域 (ブロック) およびファイル (inode) の使用量の制限を管理します。XFS クォータは、ユーザー、グループ、ディレクトリーレベル、またはプロジェクトレベルでこれらの項目の使用を制御または報告します。また、ユーザー、グループ、ディレクトリーまたはプロジェクトのクォータは個別に有効になりますが、グループとプロジェクトのクォータは相互に排他的であることに注意してください。
ディレクトリーまたはプロジェクトごとに管理する場合、XFS は特定のプロジェクトに関連付けられたディレクトリー階層のディスク使用量を管理します。そうすることで、XFS はプロジェクト間の組織間にまたがるグループ境界を認識します。これにより、ユーザーまたはグループのクォータを管理する際に使用できるレベルよりも、広いレベルの制御が提供されます。
XFS クォータは、特定のマウントオプションを指定して、マウント時に有効になります。各マウントオプションは noenforce として指定することもできます。これにより、制限を強制適用せずに使用状況のレポートが可能になります。有効なクォータマウントオプションは以下の通りです。
- uquota/uqnoenforce: ユーザークォータ
- gquota/gqnoenforce: グループクォータ
- pquota/pqnoenforce: プロジェクトクォータ
クォータを有効にすると、xfs_quota ツールを使用して制限を設定し、ディスク使用量を報告できます。xfs_quota は、デフォルトでは対話形式で、基本モード で実行されます。基本モードのサブコマンドは使用量を報告するだけで、すべてのユーザーが使用できます。基本的な xfs_quota サブコマンドには以下が含まれます。
- quota username/userID
- 指定の username または numeric userIDの使用状況および制限を表示します
- df
- ブロックおよび inode の空きおよび使用済みの数を表示します。
これとは対照的に、xfs_quota には エキスパートモード もあります。このモードのサブコマンドは、制限を実際に設定することができるため、昇格した特権を持つユーザーのみが利用できます。エキスパートモードサブコマンドを対話的に使用するには、以下のコマンドを使用します。
#
xfs_quota -x
エキスパートモードのサブコマンドには以下が含まれます。
- report /path
- 特定のファイルシステムのクォータ情報を報告します。
- limit
- クォータの制限を変更します。
基本モードまたはエキスパートモードのサブコマンドの完全なリストについては、サブコマンド help を使用します。
すべてのサブコマンドは、-c オプションを使用してコマンドラインから直接実行することもできます。エキスパートサブコマンドの場合は -x を使用します。
例3.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 [------] ...
ホームディレクトリーが
/home/john
のユーザー john
に対して、inode 数のソフト制限およびハード制限をそれぞれ 500 と 700 に設定するには、以下のコマンドを使用します。
#
xfs_quota -x -c 'limit isoft=500 ihard=700 john' /home/
この場合は、マウントされた xfs ファイルシステムである mount_point を渡します。
デフォルトでは、limit サブコマンドはターゲットをユーザーとして認識します。グループに制限を設定する場合は、(前の例のように) -g オプションを使用します。同様に、プロジェクトには -p を使用します。
ソフトブロックおよびハードブロック制限は、isoft または ihard の代わりに bsoft または bhard を使用して設定することもできます。
例3.3 ソフトブロックおよびハードブロック制限の設定
たとえば、
/target/path
ファイルシステムで アカウンティング
をグループ化するために、ソフトブロック制限とハードブロック制限をそれぞれ 1000m と 1200m に設定するには、次のコマンドを使用します。
#
xfs_quota -x -c 'limit -g bsoft=1000m bhard=1200m accounting' /target/path
注記
バイトの bsoft および bhard count コマンド。
重要
リアルタイムブロック(rtbhard/rtbsoft)は、クォータの設定時に有効な単位として man xfs_quota で説明されていますが、本リリースではリアルタイムサブボリュームは有効になっていません。そのため、rtbhard オプションおよび rtbsoft オプションは適用されません。
プロジェクト制限の設定
XFS ファイルシステムでは、マネージドツリーと呼ばれるファイルシステム内の個々のディレクトリー階層にクォーターを設定できます。各マネージドツリーは、プロジェクト ID とオプションの プロジェクト名 によって一意に識別されます。
- プロジェクトが制御するディレクトリーを
/etc/projects
に追加します。たとえば、以下は一意の ID が 11 の/var/log
パスを/etc/projects
に追加します。プロジェクト ID には、プロジェクトにマッピングされる任意の数値を指定できます。#
echo 11:/var/log >> /etc/projects - プロジェクト名を
/etc/projid
に追加して、プロジェクト ID をプロジェクト名にマッピングします。たとえば、以下は、前のステップで定義されたように logfiles というプロジェクトをプロジェクト ID 11 に関連付けます。#
echo logfiles:11 >> /etc/projid - プロジェクトのディレクトリーを初期化します。たとえば、以下はプロジェクトディレクトリー
/var
を初期化します。#
xfs_quota -x -c 'project -s logfiles' /var - 初期化したディレクトリーでプロジェクトのクォータを設定します。
#
xfs_quota -x -c 'limit -p bhard=lg logfiles' /var
汎用クォータ設定ツール(クォータ、repquota、および edquota など)を使用して XFS クォータを操作することもできます。ただし、このツールは XFS プロジェクトクォータでは使用できません。
重要
Red Hat は、他の利用可能なすべてのツールで xfs_quota を使用することを推奨します。
XFS クォータの設定に関する詳細は、man xfs_quota、manprojid (5)、および man projects (5 ) を参照してください。