Red Hat Training

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

4.5. GFS2 のクォータ管理

ファイルシステムのクォータは、ユーザーやグループが使用できるファイルシステムのサイズを制限するのに使われます。これが設定されるまでは、ユーザーやグループのクォータには上限がありません。quota=on または quota=account のオプションで GFS2 ファイルシステムがマウントされると、上限が設定されていない場合でも、GFS2 は 各ユーザーとグループが使用する領域を追跡します。GFS2 は、システムがクラッシュしてもクォータの使用状況を再構築する必要がないように、トランザクションの形でクォータ情報を更新します。
GFS2 ノードは、パフォーマンスの低下を防ぐために、クォータファイルへ更新の同期は定期的にしか行いません。ファジークォータアカウントでは、ユーザーやグループは設定上限を若干超過することができます。GFS2 はこれを最低限に抑えるために、クォータのハードリミットに近づくと、動的に同期の間隔を短縮します。

注記

Red Hat Enterprise Linux 6.1 リリースからは GFS2 で Linux 標準のクォータ機能に対応するようになります。このクォータ機能を使用するには quota RPM をインストールする必要があります。GFS2 でクォータを管理する場合は推奨の管理方法になります。また、GFS2 の新規導入でクォータを使用する場合はこのクォータ機能を使用してください。このセクションでは、この機能を使用した GFS2 クォータ管理について説明します。
Red Hat Enterprise Linux の旧バージョンでは、GFS2 でクォータを管理するには gfs2_quota コマンドを使用する必要がありました。gfs2_quota コマンドの使い方については 付録A gfs2_quota コマンドを使用した GFS2 のクォータ管理 を参照してください。

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

以下の手順にしたがってディスククォータを実装します。
  1. 施行モードまたはアカウントモードでクォータを設定します。
  2. 現在のブロック使用率の情報が含まれるクォータデータベースファイルを初期化します。
  3. クォータポリシーを割り当てます (アカウントモードの場合はポリシーは適用されません)。
各ステップについて詳しく見ていきます。

4.5.1.1. 施行モードまたはアカウントモードでクォータを設定する

GFS2 ファイルシステムでは、クォータはデフォルトでは無効になっています。クォータを施行するには、quota=on オプションを指定してファイルシステムをマウントします。
上限や警告の値は施行せずディスクの使用状況を追跡し全ユーザーおよびグループのクォータアカウント情報を維持することもできます。quota=account オプションを指定してファイルシステムをマウントします。
使用法
クォータ施行モードでファイルシステムをマウントするには、quota=on オプションを指定してファイルシステムをマウントします。
mount -o quota=on BlockDevice MountPoint
クォータの上限は施行せずにクォータアカウント情報の維持モードでファイルシステムをマウントするには、quota=account オプションを指定してファイルシステムをマウントします。
mount -o quota=account BlockDevice MountPoint
クォータ無効モードでファイルシステムをマウントするには、quota=off オプションを指定してファイルシステムをマウントします。これがデフォルトの設定です。
mount -o quota=off BlockDevice MountPoint
quota={on|off|account}
on - ファイルシステムをマウントしたときクォータが有効になります。
off - ファイルシステムをマウントしたときクォータが無効になります。
account - ファイルシステムでユーザーとグループのディスク使用状況の統計を維持管理します。クォータの上限は施行されません。
BlockDevice
GFS2 ファイルシステムが存在しているブロックデバイス
MountPoint
GFS2 ファイルシステムのマウント先となるディレクトリー
以下の例では、/dev/vg01/lvol0 にある GFS2 ファイルシステムが /mygfs2 ディレクトリーにマウントされクォータが施行されます。
mount -o quota=on /dev/vg01/lvol0 /mygfs2
以下の例では、/dev/vg01/lvol0 にある GFS2 ファイルシステムが /mygfs2 ディレクトリーにマウントされクォータアカウント情報が維持管理されますが上限は施行されません。
mount -o quota=account /dev/vg01/lvol0 /mygfs2

4.5.1.2. クォータデータベースファイルを作成する

各ファイルシステムをクォータ有効モードでマウントすると、システムはディスククォータ付きで動作することができるようになります。ただし、ファイルシステム自体はまだクォータに対応する準備が整っていない状態です。次のステップは quotacheck コマンドの実行です。
quotacheck コマンドは、クォータが有効になるファイルシステムを検証し、ファイルシステムごとの現在のディスク使用状況一覧を構築します。この表を使ってディスク使用状況に関するオペレーティングシステムのコピーが更新されます。また、ファイルシステムのディスククォータファイルが更新されます。
ファイルシステムにクォータファイルを作成するには、quotacheck コマンドの -u-g のオプションを使用します。ユーザーおよびグループ両方のクォータを初期化するため両オプションを指定する必要があります。たとえば、/home ファイルシステムにクォータを実施している場合には、/home ディレクトリーにファイルを作成します。
quotacheck -ug /home

4.5.1.3. ユーザーごとのクォータ割り当て

最後のステップは、edquota コマンドを使ってディスククォータを割り当てる作業です。ファイルシステムをアカウントモードでマウントしている場合には (quota=account オプションを指定) クォータは施行されないので注意してください。
ユーザーのクォータを設定するには、シェルプロンプトで root として以下のコマンドを実行します。
edquota username
クォータを必要とするユーザーごとにこのステップを実行します。たとえば、クォータを /etc/fstab 内で /home パーティションに対して有効にしている場合 (以下の例では /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

注記

edquota は、EDITOR 環境変数で定義されているテキストエディターを使用します。このエディターを変更するには、~/.bash_profile ファイルの EDITOR 環境変数を任意のエディターのフルパスに設定してください。
第 1 列はクォータを有効化にしているファイルシステムの名前です。第 2 列はユーザーが現在使用中のブロック数です。その後の 2 列はファイルシステム上のユーザーにソフトおよびハードのブロックリミット (上限) を設定する場合に使用されます。
ソフトブロックリミットは、使用可能な最大ディスク容量を定義します。
ハードブロックリミットは、ユーザーまたはグループが使用可能な絶対最大ディスク容量です。この上限に達すると、それ以上のディスク容量を使用できなくなります。
GFS2 ファイルシステムは、inode 用のクォータは維持管理しないため、これらの列は GFS2 ファイルシステムには該当せず、空欄となります。
いずれかの値が 0 にセットされている場合、そのリミットは設定されていないことになります。テキストエディターで希望の上限に変更します。例を示します。
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440436   500000   550000
ユーザーのクォータが設定されていることを確認するには、以下のコマンドを使用します。
quota testuser

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

クォータはグループごとに割り当てることも可能です。ファイルシステムをアカウントモードでマウントしている場合は (quota=account オプションを指定) クォータは施行されないので注意してください。
devel グループにグループクォータを設定するには (グループクォータを設定する前にグループが存在している必要があります)、以下のコマンドを使用します。
edquota -g devel
このコマンドにより、グループの既存クォータがテキストエディターに表示されます。
Disk quotas for group devel (gid 505):   
Filesystem                blocks    soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440400       0        0
GFS2 ファイルシステムは、inode 用のクォータは維持管理しないため、これらの列は GFS2 ファイルシステムには該当せず、空欄となります。上限を変更してファイルを保存します。
グループクォータが設定されていることを確認するには、以下のコマンドを使用します。
quota -g devel