ディスク割当てについて

ユーザーまたはグループが使用できるディスク領域の容量(blocks)や、ユーザーまたはグループが作成できるファイルの数(inodes)を制限するか、指定した制限に使用量が達したときに通知するには、ディスク割当てを設定します。強い制限は、ファイル・システム上のユーザーまたはグループが使用できるブロックまたはinodeの最大数を指定します。ユーザーまたはグループは、猶予期間として知られている、期間に対する弱い制限を超過できます。

Oracle Linux 8では、Btrfsファイル・システムの、ユーザーおよびグループのディスク割当てはサポートされていません。ただし、このリリースでは、Btrfsファイル・システムのサブボリューム・レベルでの割当てがテクノロジ・プレビューとしてサポートされています。詳細は、割当て制限グループを使用したbtrfsサブボリュームの割当て制限の管理を参照してください。

XFSファイル・システムに対する割当ての構成方法の詳細は、XFSファイル・システムでの割当ての管理を参照してください。

ファイル・システムでのディスク割当ての有効化

ディスク割当てはマウント時に有効になります。次の表は、mountコマンドで指定して割当て制限を有効にできるオプションについて説明しています。

マウント・オプション 説明

gqnoenforce

グループ割当てを有効にします。使用量を報告しますが、使用量制限を強制適用しません。

gquota

グループ割当てを有効にして、使用量制限を強制適用します。

pqnoenforce

プロジェクト割当てを有効にします。使用量を報告しますが、使用量制限を強制適用しません。

pquota

プロジェクト割当てを有効にして、使用量制限を強制適用します。

uqnoenforce

ユーザー割当てを有効にします。使用量を報告しますが、使用量制限を強制適用しません。

uquota

ユーザー割当てを有効にして、使用量制限を強制適用します。

  1. システムにquotaパッケージをインストールします(まだインストールされていない場合)。

    sudo dnf install quota
  2. ファイル・システムの/etc/fstabエントリに、usrquotaまたはgrpquotaオプションを追加します。

    /dev/sdb1       /home        ext4    usrquota,grpquota   0 0
  3. ファイル・システムを再マウントします。

    sudo mount -o remount /home
  4. 割当てデータベース・ファイルを作成します。

    sudo quotacheck -cug /home

    前述のコマンドにより、ファイル・システムのroot (この例では/home)にファイルaquota.useraquota.groupが作成されます。

詳細は、quotacheck(8)マニュアル・ページを参照してください。

ユーザーおよびグループへのディスク割当ての割当て

  1. ユーザーには、次のコマンドを使用します。

    sudo edquota username

    グループには、次のコマンドを使用します。

    sudo edquota -g group

    前述のコマンドを実行すると、EDITOR環境変数で定義されているデフォルト・エディタでテキスト・ファイルが開かれます。したがって、ユーザーまたはグループの制限を指定できます。次に例を示します。

    Disk quotas for user guest (uid 501)
    Filesystem  blocks  soft  hard  inodes  soft  hard
     /dev/sdb1   10325     0     0    1054     0     0

    blocksおよびinodesのエントリは、ファイル・システムでのユーザーの現在の使用状況を反映します。

    ヒント:

    制限を0に設定すると、blocksまたはinodesカテゴリに対応する割当てチェックと強制が無効になります。

  2. ブロック数とinode数に対する弱い制限および強い制限を編集して、変更を保存します。

または、setquotaコマンドを使用してコマンド・ラインから割当て制限を構成できます。-pオプションを使用すると、あるユーザーまたはグループから別のユーザーまたはグループに割当て設定を適用できます。

XFSファイル・システムを使用する場合、xfs_quotaは割当て情報を管理するための推奨ツールであることに注意してください。詳細は、XFSファイル・システムでの割当ての管理を参照してください。

詳細は、edquota(8)およびsetquota(8)の各マニュアル・ページを参照してください。

プロジェクト割当ての設定

ファイル・システムの中には、管理対象ツリーと呼ばれる個々のディレクトリ階層に割当て制限を設定できるものがあります。各管理対象ツリーは、プロジェクトIDと、オプションのプロジェクト名によって一意に識別されます。ディレクトリ階層のディスク使用量を制御する機能は、特権ユーザーに割当て制限を設定しないようにする場合や(/var/logなど)、多数のユーザーまたはグループにディレクトリへの書き込みアクセス権がある場合(/var/tmpなど)に便利です。

プロジェクトを定義して割当制限を設定するには、次の手順を実行します。

  1. プロジェクト割当てを有効にして、ファイル・システムをマウントします。

    sudo mount -o pquota device mountpoint

    たとえば、/myxfsファイル・システムのプロジェクト割当てを有効にする場合は、次のコマンドを使用します。

    sudo mount -o pquota /dev/vg0/lv0 /myxfs
  2. /etc/projectsファイルに、ディレクトリ階層に対して一意のプロジェクトIDを定義します。

    sudo echo project_ID:mountpoint/directory |sudo tee -a /etc/projects

    たとえば、次のようにディレクトリ階層/myxfs/testdirにプロジェクトID 51を設定します。

    sudo echo 51:/myxfs/testdir |sudo tee -a /etc/projects
  3. プロジェクト名をプロジェクトIDにマップする/etc/projidファイル内にエントリを作成します。

    sudo echo project_name:project_ID |sudo tee -a /etc/projid

    たとえば、次のようにプロジェクト名testprojをID 51のプロジェクトにマップします。

    sudo echo testproj:51 |sudo tee -a /etc/projid

詳細は、projects(5)およびprojid(5)のマニュアル・ページを参照してください。

ファイル・システムをマウントしてプロジェクト割当てを有効にし、ディレクトリ階層にプロジェクトIDを設定した場合は、edquotaまたはxfs_quotaを使用してそのプロジェクト割当ての制限を設定できます。XFSファイル・システムを使用する場合は、xfs_quotaの使用が優先されることに注意してください。詳細は、XFSファイル・システムでの割当ての管理を参照してください。

弱い制限の猶予期間の設定

  1. 次のコマンドを実行して、弱い制限の猶予期間を設定します。

    sudo edquota -t

    前述のコマンドを実行すると、デフォルトのテキスト・エディタでテキスト・ファイルが開かれて、次の例に示すように猶予期間を指定できるようになります。

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
      Filesystem     Block grace period     Inode grace period
      /dev/sdb1            7days                  7days 
  2. ブロック数とinode数の弱い制限の猶予期間を指定して、変更を保存します。

詳細は、edquota(8)マニュアル・ページを参照してください。

ディスク割当ての表示

ユーザーのディスク使用量を表示する場合は、オプションや引数の指定なしでquotaコマンドを使用します。

sudo quota username

グループのディスク使用量を表示する場合は、-gオプションを追加して、次のコマンドを使用します。

sudo quota -g group

使用量が割当て制限を超えているファイル・システムに関する情報を表示する場合は、-qオプションを追加します。次に例を示します。

sudo quota -q

ユーザーは、quotaコマンドを使用して自分と自分のグループのディスク使用量を表示することもできます。

詳細は、quota(1)マニュアル・ページを参照してください。

ディスク割当ての有効化および無効化

特定のファイル・システムのすべてのユーザー、グループのディスク割当てを無効にする場合は、次のコマンドを使用します。

sudo quotaoff -guv filesystem

すべてのユーザー、グループおよびファイル・システムのディスク割当てを無効にする場合は、次のコマンドを使用します。

sudo quotaoff -aguv

すべてのユーザー、グループおよびファイル・システムのディスク割当てを再アクティブ化する場合は、次のコマンドを実行します。

sudo quotaon -aguv

詳細は、quotaon(1)マニュアル・ページを参照してください。

ディスク割当て使用量のレポート

単一のファイル・システムのディスク割当て使用量を表示するには:

sudo repquota filesystem

すべてのファイル・システムのディスク割当て使用量を表示するには:

sudo repquota -a

詳細は、repquota(8)マニュアル・ページを参照してください。

ディスク割当てレポートの精度の保持

制御不能なシステム停止によって、ディスク割当てレポートが正確でなくなる可能性があります。

次の手順では、ファイル・システムの割当てデータベースを再構築する方法を示します。

  1. ファイル・システムのディスク割当てを無効にします。

    sudo quotaoff -guv filesystem
  2. ファイル・システムをアンマウントします。

    sudo umount filesystem
  3. 割当てデータベースを再構築します。

    sudo quotacheck -guv filesystem
  4. ファイル・システムをマウントします。

    sudo mount filesystem
  5. ファイル・システムのディスク割当てを有効にします。

    sudo quotaoff -guv filesystem

詳細は、quotacheck(8)マニュアル・ページを参照してください。