Red Hat Training

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

第17章 ディスククォータ

ディスク領域は、ユーザーがディスク領域を過剰に消費する前にシステム管理者に警告を出すディスククォータを実装し、パーティションが満杯になることで制限できます。
ディスククォータは、個々のユーザーおよびユーザーグループに設定できます。これにより、ユーザー固有のファイル(電子メールなど)に割り当てられる領域を、ユーザーが作業するプロジェクトに割り当てられた領域とは別に管理できます(プロジェクトに独自のグループが割り当てられます)。
さらに、クォータは、消費されるディスクブロックの数を制御するだけでなく、inode の数を制御する(UNIX ファイルシステムのファイルを含むデータ構造)を制御するように設定することができます。inode はファイル関連の情報を含めるため、作成できるファイルの数を制御できます。
クォータ RPM をインストールしてディスククォータを実装する必要があります。
注記
本章ではすべてのファイルシステムについて説明しますが、一部のファイルシステムには独自のクォータ管理ツールがあります。適用可能なファイルシステムに対応するドキュメントを参照してください。
Btrfs にはディスククォータがないため、対象外です。

17.1. ディスククォータの設定

ディスククォータを実装するには、以下の手順を行います。
  1. /etc/fstab ファイルを変更して、ファイルシステムごとにクォータを有効にします。
  2. ファイルシステムを再マウントします。
  3. クォータデータベースファイルを作成して、ディスク使用状況テーブルを生成します。
  4. クォータポリシーを割り当てます。
これらの各ステップは、以下のセクションで詳しく解説しています。

17.1.1. クォータの有効化

手順17.1 クォータの有効化

  1. root でログインします。
  2. /etc/fstab ファイルを編集します。
  3. クォータが必要なファイルシステムに、usrquota または grpquota のいずれかのオプションを追加します。

例17.1 /etc/fstabの編集

たとえば、テキストエディターの vim を使用する場合は、以下を入力します。
# vim /etc/fstab

例17.2 クォータの追加

/dev/VolGroup00/LogVol00 /         ext3    defaults        1 1
LABEL=/boot              /boot     ext3    defaults        1 2
none                     /dev/pts  devpts  gid=5,mode=620  0 0
none                     /dev/shm  tmpfs   defaults        0 0
none                     /proc     proc    defaults        0 0
none                     /sys      sysfs   defaults        0 0
/dev/VolGroup00/LogVol02 /home     ext3    defaults,usrquota,grpquota  1 2
/dev/VolGroup00/LogVol01 swap      swap    defaults        0 0 . . .
この例では、/home ファイルシステムでは、ユーザーとグループのクォータの両方が有効になっている。
注記
以下の例では、Red Hat Enterprise Linux のインストール時に別の /home パーティションが作成されたことを前提としています。ルート(/)パーティションを/ etc/fstabファイルにクォータポリシーを設定するために使用できます。

17.1.2. ファイルシステムの再マウント

usrquota または grpquota または両方のオプションを追加したら、fstab エントリーが変更された各ファイルシステムを再マウントします。いずれのプロセスでファイルシステムも使用されていない場合は、以下のいずれかの方法を使用します。
  • umount コマンドの後に mount コマンドを実行して、ファイルシステムを再マウントします。さまざまなファイルシステムタイプのマウントおよびアンマウントに関する特定の構文の umount および mount の両方については、man ページを参照してください
  • mount -o remount file-system コマンドを実行します (file-system はファイルシステムの名前に置き換えます)、ファイルシステムを再マウントします。たとえば、/home ファイルシステムを再マウントするには、mount -o remount /home コマンドを実行します。
ファイルシステムが現在使用中の場合は、ファイルシステムを再マウントする最も簡単な方法です。

17.1.3. クォータデータベースファイルの作成

クォータが有効な各ファイルシステムを再マウントしたら、quotacheck コマンドを実行します。
quotacheck コマンドは、クォータが有効になっているファイルシステムを調べ、ファイルシステムごとの現在のディスク使用量の表を作成します。このテーブルは、ディスク使用状況のオペレーティングシステム用コピーを更新するのに使用されます。さらに、ファイルシステムのディスククォータファイルが更新されます。
注記
quotacheck コマンドは、ディスクの使用状況の表がマウント時に自動的に完了されるため、XFS には影響しません。詳細は、man ページの xfs_quota(8) を参照してください。

手順17.2 クォータデータベースファイルの作成

  1. 以下のコマンドを使用して、ファイルシステムにクォータファイルを作成します。
    # quotacheck -cug /file system
  2. 以下のコマンドを使用して、ファイルシステムごとの現在のディスク使用量の表を生成します。
    # quotacheck -avug
クォータファイルの作成に使用されるオプションを以下に示します。
c
クォータファイルが、クォータを有効化して各ファイルシステムに作成される必要があることを指定します。
u
ユーザークォータを確認します。
G
グループクォータをチェックします。-g のみを指定すると、グループクォータファイルのみが作成されます。
-u オプションまたは -g オプションがいずれも指定されていないと、ユーザーのクォータファイルのみが作成されます。
次のオプションは、現在のディスク使用量の表を生成するために使用されます。
a
クォータが有効にされた、ローカルマウントのファイルシステムをすべてチェック
v
クォータチェックの続行時に詳細なステータス情報を表示します。
u
ユーザーディスククォータ情報の確認
G
グループディスククォータ情報の確認
quotacheck の実行が終了すると、有効なクォータ(ユーザーまたはグループまたは両方) に対応するクォータファイルには、/home などのローカルマウントされた各ファイルシステムのデータが設定されます。

17.1.4. ユーザーあたりのクォータの割り当て

最後の手順では、edquota コマンドでディスククォータを割り当てます。
前提条件
  • ユーザーは、ユーザークォータを設定する前に存在している必要があります。

手順17.3 ユーザーあたりのクォータの割り当て

  1. ユーザーにクォータを割り当てるには、次のコマンドを使用します。
    # edquota username
    username を、クォータを割り当てるユーザーに置き換えます。
  2. ユーザーのクォータが設定されていることを確認するには、次のコマンドを使用します。
    # quota username

例17.3 ユーザーへのクォータの割り当て

たとえば、/etc/fstab でクォータが /etc/fstab で有効になっている場合(以下の例では /dev/VolGroup00/LogVol02) 、edquota testuser コマンドを実行すると、システムのデフォルトとして設定されたエディターに次のように表示されます。
Disk quotas for user testuser (uid 501):
		Filesystem                blocks     soft     hard    inodes   soft   hard
		/dev/VolGroup00/LogVol02  440436        0        0     37418      0      0
注記
EDITOR 環境変数により定義されたテキストエディターは、edquota により使用されます。エディターを変更するには、~/.bash_profile ファイルの EDITOR 環境変数を、使用するエディターのフルパスに設定します。
最初の列は、クォータが有効になっているファイルシステムの名前です。2 列目には、ユーザーが現在使用しているブロック数が示されます。次の 2 列は、ファイルシステム上のユーザーのソフトブロック制限およびハードブロック制限を設定するのに使用されます。inodes 列には、ユーザーが現在使用している inode 数が表示されます。最後の 2 列は、ファイルシステムのユーザーに対するソフトおよびハードの inode 制限を設定するのに使用されます。
ハードブロック制限は、ユーザーまたはグループが使用できる最大ディスク容量(絶対値)です。この制限に達すると、それ以上のディスク領域は使用できなくなります。
ソフトブロック制限は、使用可能な最大ディスク容量を定義します。ただし、ハード制限とは異なり、ソフト制限は一定時間超過する可能性があります。この時間は 猶予期間 として知られています。猶予期間の場合は、秒、分、時間、日、週、または月で表されます。
いずれかの値が 0 に設定されていると、その制限は設定されません。テキストエディターで必要な制限を変更します。

例17.4 Desired Limits の変更

以下に例を示します。
Disk quotas for user testuser (uid 501):
Filesystem                blocks     soft     hard   inodes   soft   hard
/dev/VolGroup00/LogVol02  440436   500000   550000    37418      0      0
ユーザーのクォータが設定されていることを確認するには、次のコマンドを使用します。
# quota testuser
Disk quotas for user username (uid 501):
   Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
     /dev/sdb    1000*   1000    1000               0       0       0

17.1.5. グループごとのクォータの割り当て

クォータは、グループごとに割り当てることもできます。
前提条件
  • グループは、グループクォータを設定する前に存在している必要があります。

手順17.4 グループごとのクォータの割り当て

  1. グループクォータを設定するには、次のコマンドを使用します。
    # edquota -g groupname
  2. グループクォータが設定されていることを確認するには、次のコマンドを使用します。
    # quota -g groupname

例17.5 クォータのグループへの割り当て

たとえば、devel グループのグループクォータを設定するには、以下のコマンドを使用します。
# edquota -g devel
このコマンドにより、グループの既存のクォータがテキストエディターに表示されます。
Disk quotas for group devel (gid 505):
Filesystem                blocks    soft     hard    inodes    soft    hard
/dev/VolGroup00/LogVol02  440400       0        0     37418       0       0
この制限を変更して、ファイルを保存します。
グループクォータが設定されていることを確認するには、次のコマンドを使用します。
# quota -g devel

17.1.6. Soft 制限のための Grace Period の設定

特定のクォータにソフト制限がある場合、猶予期間(ソフト制限の超過時間など)を編集できます。
# edquota -t
このコマンドは、inode または block のクォータで機能し、ユーザーまたはグループのいずれかで機能します。
重要
他の edquota コマンドは特定のユーザーまたはグループのクォータで機能しますが、-t オプションはクォータが有効になっているすべてのファイルシステムで動作します。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。