Red Hat Training

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

3.3. XFS クォータの管理

XFS クォータサブシステムでディスク領域 (ブロック) およびファイル (inode) の使用量に関する制限の管理を行います。こうした項目の使用量に関する制御や報告は、ユーザー、グループ、ディレクトリーまたはプロジェクトの各レベルで行います。また、ユーザーのクォータ、グループのクォータ、ディレクトリーまたはプロジェクトのクォータはそれぞれ個別に有効にできますが、グループとプロジェクトのクォータについては相互に排他的となります。
ディレクトリー単位またはプロジェクト単位で管理を行う場合、XFS は特定のプロジェクトに関連付けられたディレクトリー階層のディスク使用量を管理します。これにより、XFS は複数のプロジェクト間にある組織をまたがった「グループ」の境界を認識します。ディレクトリー単位またはプロジェクト単位でクォータの管理を行うことにより、ユーザーのクォータやグループのクォータを管理する場合よりも広範囲な制御レベルを得ることができます。
XFS のクォータは、マウント時に特定のマウントオプションを付けて有効にします。各マウントオプションは noenforce として指定することもできます。これを指定すると、一切の制限を適用することなく使用量に関する報告を可能にします。有効なクォータのマウントオプションは以下の通りです。
  • uquota/uqnoenforce - ユーザーのクォータ
  • gquota/gqnoenforce - グループのクォータ
  • pquota/pqnoenforce - プロジェクトのクォータ
クォータを有効にすると、xfs_quota ツールを使ってディスク使用量の制限を設定し、その報告が可能になります。デフォルトでは、xfs_quotaベーシックモード でインタラクティブに実行されます。ベーシックモードのサブコマンドは使用量の報告のみを実行します。このコマンドはすべてのユーザーが使用できます。xfs_quota の基本的なサブコマンドには以下が含まれます。
quota username/userID
任意の username または数字による userID の使用量と制限を表示します。
df
空き/使用済みブロック数および空き/使用済み inode 数を表示します。
一方、xfs_quota には エキスパートモード もあります。このモードのサブコマンドで制限を実際に設定することができるため、このサブコマンドを使用できるのは上位の特権を持つユーザーに限られます。エキスパートモードのサブコマンドをインタラクティブに使用するには、xfs_quota -x を実行します。エキスパートモードのサブコマンドには以下が含まれます。
report /path
特定のファイルシステムのクォータ情報を表示します。
limit
クォータの制限を変更します。
ベーシックモードまたはエキスパートモードのサブコマンド一覧については、サブコマンドの help をご覧ください。
すべてのサブコマンドは、コマンドラインからも-c オプションを使って直接実行させることができます。エキスパートのサブコマンドの場合は -x を使用できます。

例3.2 サンプルのクォータレポートの表示

たとえば、/home (/dev/blockdevice 上) のクォータレポートのサンプルを表示するには、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 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

注記

コマンドの bsoftbhard ではバイト単位でカウントします。

重要

man xfs_quota では、リアルタイムのブロック (rtbhard/rtbsoft) がクォータの設定時の有効な単位として説明されていますが、本リリースではリアルタイムのサブボリュームは有効にされません。このため、rtbhardrtbsoft のオプションは適用できません。

プロジェクト制限の設定

プロジェクトで管理されているディレクトリー群に対して制限を設定する前に、まずそのディレクトリー群を /etc/projects に追加します。プロジェクト名を /etc/projectid に追加して、複数のプロジェクト ID とプロジェクト名をマッピングさせることができます。プロジェクトを /etc/projects に追加したら、次のコマンドを使用してそのプロジェクトディレクトリーを初期化します。
# xfs_quota -x -c 'project -s projectname' project_path
次のコマンドを実行して、初期化したディレクトリー群を持つプロジェクトのクォータを設定します。
# xfs_quota -x -c 'limit -p bsoft=1000m bhard=1200m projectname'
クォータ設定の汎用ツール (quotarepquota、および edquota など) を使用しても XFS のクォータを操作することができます。ただし、これらのツールは XFS のプロジェクトのクォータでは使用きません。

重要

Red Hat は、他の利用可能なすべてのツールの中でも、xfs_quota の使用を推奨します。
XFS のクォータの設定方法については、man xfs_quotaman projid(5)、および man projects(5) を参照してください。