Menu Close

Red Hat Training

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

3.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
クォータの制限を変更します。
基本モードまたはエキスパートモードのいずれかのサブコマンドの完全な一覧については、サブコマンド 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 のファイルシステムで accounting をグループ化するために、ソフトおよびハードのブロック制限をそれぞれ 1000m と 1200m に設定するには、以下のコマンドを使用します。
# xfs_quota -x -c 'limit -g bsoft=1000m bhard=1200m accounting' /target/path
注記
コマンド bsoft および bhard は、バイト単位でカウントされます。
重要
リアルタイムブロック (rtbhard/rtbsoft) は、クォータの設定時に有効な単位として man xfs_quota に記述されていますが、本リリースではリアルタイムサブボリュームが有効化されていません。そのため、rtbhard オプションおよび rtbsoft オプションは、適用されません。

プロジェクト制限の設定

XFS ファイルシステムでは、管理ツリーと呼ばれるファイルシステム内の個々のディレクトリー階層にクォータを設定できます。各管理ツリーは、プロジェクト ID と任意の プロジェクト で一意に識別されます。
  1. プロジェクトが制御するディレクトリーを /etc/projects に追加します。たとえば、以下は一意の ID が 11 の /var/log パスを /etc/projects に追加します。プロジェクト ID には、プロジェクトにマッピングされる任意の数値を指定できます。
    # echo 11:/var/log >> /etc/projects
    
  2. /etc/projid にプロジェクト名を追加して、プロジェクト ID をプロジェクト名にマッピングします。たとえば、以下は、前のステップで定義されたように Logs というプロジェクトをプロジェクト ID 11 に関連付けます。
    # echo Logs:11 >> /etc/projid
    
  3. プロジェクトのディレクトリーを初期化します。たとえば、以下はプロジェクトディレクトリー /var を初期化します。
    # xfs_quota -x -c 'project -s logfiles' /var
  4. 初期化したディレクトリーでプロジェクトのクォータを設定します。
    # xfs_quota -x -c 'limit -p bhard=lg logfiles' /var
汎用クォータ設定ツール (例: quotarepquota、および edquota) を使用して XFS クォータを操作することもできます。ただし、このツールは XFS プロジェクトクォータでは使用できません。
重要
Red Hat は、他の利用可能なすべてのツールよりも xfs_quota を使用することを推奨します。
XFS クォータの設定に関する詳細は、man xfs_quotaman projid(5)、および man projects(5) を参照してください。