Solaris のシステム管理

ディスク割り当ての設定

ディスクの割り当てを設定することにより、ユーザーが利用できるディスク容量と、i ノードの数 (おおよそファイルの数に相当) を制限できます。これらの割り当ては、ファイルシステムがマウントされるたびに自動的に有効になります。この節ではファイルシステム用にディスク割り当てを構成し、設定し、有効にする手順を説明します。

ディスク割り当ての設定には、次の一般的な手順が含まれます。

  1. システムをリブートしてファイルシステムをマウントするごとにディスク割り当てが実施されるように、一連のコマンドを使用して、ファイルシステムでディスク割り当てを利用できるようにするための準備をします。エントリは、/etc/vfstab ファイルに追加しなければなりません。また、quotas ファイルは、ファイルシステムの一番上のディレクトリで作成しなければなりません。

  2. 1 人のユーザーに対してディスク割り当てを作成した後、そのディスク割り当てをプロトタイプとして、他のユーザーのディスク割り当てを設定できます。

  3. ディスク割り当てを実際に有効にする前に、他のコマンドを使用して、整合性をチェックします。このチェックでは、提案したディスク割り当てと現在のディスク使用率を比較して、衝突がないことを確認します。

  4. 最後に、他のコマンドを使用して、1 つまたは複数のファイルシステム全体のディスク割り当てを有効にします。

上記の手順により、ファイルシステムがマウントされるたびに、そのファイルシステム上でディスク割り当てが自動的に有効になります。上記手順の特定の情報については、「割り当ての設定」を参照してください。

表 58-1 で、ディスク割り当てを設定するコマンドを説明します。

表 58-1 割り当てを行うコマンド

コマンド 

機能 

edquota(1M)

各ユーザーに対する i ノード数とディスク容量のハード制限とソフト制限を設定する。 

quotacheck(1M)

マウントされている各 UFS ファイルシステムを調べ、ファイルシステムのディスク割り当てファイルにある情報と比較し、矛盾があれば報告する。 

quotaon(1M)

指定したファイルシステムの割り当てを有効にする。 

quota(1M)

マウントされているファイルシステムのユーザーの割り当てを表示し、割り当てが正しく設定されていることを確認する。 

割り当て設定のガイドライン

ユーザーの割り当てを設定する前に、各ユーザーに割り当てるディスク容量の大きさとファイル数を決定する必要があります。ファイルシステムの合計領域サイズを決して超えないようにする場合は、ファイルシステムの合計サイズをユーザーの数に等分すればよいでしょう。たとえば、3 人のユーザーが 100M バイトのスライスを共有し、それぞれが同じディスク容量のサイズを必要とする場合は、各ユーザーに 33M バイトずつ割り当てます。すべてのユーザーがそれぞれに割り当て制限を押し上げることがないような環境では、割り当ての合計がファイルシステムの合計サイズを超えるように個々の割り当てを設定することも可能です。たとえば、3 人のユーザーが 100M バイトのスライスを共有する場合は、それぞれに 40M バイトを割り当ててもよいということです。

あるユーザーについて edquota コマンドを使用して割り当てを決定すると、同じファイルシステム上の他のユーザーにも同じ割り当てプロトタイプとして利用できます。

UFS ファイルシステムの割り当てを構成し、各ユーザーに対する割り当てを終了したら、実際に割り当てを有効にする前に、quotacheck コマンドを使用して整合性をチェックしてください。システムがリブートされる機会がそれほど多くない場合、quotacheck を定期的に実行するようお勧めします。

edquota により設定した割り当ては、quotaon コマンドを使用して有効にしなければ強制的に設定されません。割り当てファイルを正しく構成したら、システムがリブートし、そのファイルシステムがマウントされるたびに、割り当ては自動的に有効になります。

割り当ての設定

表 58-2 作業マップ: 割り当ての設定
  作業  説明  手順の説明
 

ファイルシステムの割り当ての構成 

 

/etc/vfstab を編集して、ファイルシステムがマウントされるたびに割り当てが有効になるようにする。また、quotas ファイルを作成する。

 

「割り当て用にファイルシステムを構成する方法」

 
        
 

1 ユーザー用の割り当ての設定 

 

edquota を使用して 1 ユーザーアカウント用にディスクと i ノードの割り当てを行う。

 

「1 ユーザー用の割り当てを設定する方法」

 
          
 

複数ユーザー用の割り当ての設定 

 

オプション。edquota を使用して、その他のユーザーアカウント用にプロトタイプの割り当てを適用する。

 

「複数ユーザーに対して割り当てを設定する方法」

 
          
 

整合性のチェック 

 

quotacheck を使用して、1 つまたは複数のファイルシステムの整合性について、現在の使用状況とディスクの割り当てを比較する。

 

「割り当ての整合性を確認する方法」

 
          
 

割り当てを有効にする 

 

quotaon を使用して、1 つまたは複数のファイルシステムの割り当てを有効にする。

 

「割り当てを有効にする方法」

 
   

割り当て用にファイルシステムを構成する方法

  1. スーパーユーザーになります。

  2. エディタを選んで /etc/vfstab ファイルを編集します。割り当てを設定しようとする各 UFS ファイルシステムに対して「mount options」フィールドに rq を追加します。

  3. /etc/vfstab ファイルをクローズして、変更結果を保存します。

  4. 割り当てを格納しようとするファイルシステムの最上位ディレクトリに変更します。

  5. 次のように入力して、quotas というファイルを作成します。

    # touch quotas
    
  6. root のみ、読み取り/書き込み権を与えます。

    # chmod 600 quotas
    

例 - 割り当て用にファイルシステムを構成する

次の例は、/etc/vfstab の 1 行は、システム pluto のディレクトリ /export/home が NFS ファイルシステムとして、割り当てを有効にしたローカルシステム上のマウントポイント /usr/home にマウントされていることを示しています。

#device          device   mount       FS    fsck   mount   mount
#to mount         to fsck  point       type  pass   at boot options
#
pluto:/export/home -       /export/home nfs    -     yes    rq

次の例は、/etc/vfstab の行です。ディスク割り当てが有効であるローカル UFS ファイルシステムが /work ディレクトリにマウントされていることを示しています。

#device          device            mount  FS   fsck mount   mount
#to mount         to fsck           point  type pass at boot options
#

/dev/dsk/c0t4d0s0 /dev/rdsk/c0t4d0s0 /work ufs  3    yes     rq

1 ユーザー用の割り当てを設定する方法

  1. スーパーユーザーになります。

  2. 次のように入力して割り当てエディタを使用して、quotas ファイルが最上位ディレクトリにある各マウント済み UFS ファイルシステムに対して、1 行の割り当て情報を含む一時ファイルを作成します。

    # edquota username
    

    username

    割り当てを設定しようとするユーザー名 

  3. 1K バイトディスクブロック数の弱い制限値と強い制限値、および i ノード数の弱い制限値と強い制限値を、それぞれ 0 (デフォルト) から各ファイルシステム用に指定されている割り当て値に変更します。

  4. エディタを終了して、変更結果を保存します。

  5. ユーザーの割り当てを設定できたかどうかを確認するには、次のように quota コマンドを使用します。

    # quota -v username
    

    -v

    ディスク割り当てがある、マウント済みのファイルシステム上の、ユーザーのディスク割り当て情報を表示する。 

    username

    ディスク割り当て制限を表示するユーザー名を指定する。 

例 - 1 ユーザー用の割り当てを設定する

次の例は、/files だけがマウント済みファイルシステムで、edquota によってオープンされた一時ファイルの内容を示しています。このファイルシステムの最上位ディレクトリに quotas ファイルが含まれています。

fs /files blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)

次の例は、割り当て設定後の一時ファイルの上と同じ行を示しています。

fs /files blocks (soft = 50, hard = 60) inodes (soft = 90, hard = 100)

複数ユーザーに対して割り当てを設定する方法

  1. スーパーユーザーになります。

  2. 次のように割り当てエディタを使用して、すでにプロトタイプユーザー用に設定した割り当てを指定するその他のユーザーに適用します。

    # edquota -p prototype-user username ...
    

    prototype-user

    すでに割り当てを設定してあるアカウントのユーザー名 

    username ..

    1 人以上の追加アカウントのユーザー名を指定する 

例 - 複数ユーザーに対してプロトタイプ割り当てを設定する

次の例は、ユーザー bob に対して設定されている割り当てをユーザー maryjohn に適用します。

# edquota -p bob mary john

割り当ての整合性を確認する方法


注 -

ディスクのデータの正確さを保つには、quotacheck コマンドを実行するとき、チェックするファイルシステムが他のユーザーによって使用できないようにしてください。システムをリブートするとき、quotacheck コマンドが自動的に実行されます。


  1. スーパーユーザーになります。

  2. 次のように UFS ファイルシステム上の整合性チェックを実行し、ファイルシステムに正しい初期値を割り当てます。

    # quotacheck [ -v ] -a | filesystem 
    

    -v

    (省略可能) 特定のファイルシステム上の各ユーザーのディスク割り当てを示す。 

    -a

    /etc/vfstab ファイルに rq エントリがある全ファイルシステムをチェックする。

    filesystem

    チェックするファイルシステムを指定する。 

例 - 割り当ての整合性を確認する

次の例は、スライス /dev/rdsk/c0t0d0s7 上の /export/home ファイルシステムのディスク割り当てをチェックしています。/export/home ファイルシステムは、/etc/vfstab ファイルに rq エントリを持つ、唯一のファイルシステムです。

# quotacheck -va
*** Checking quotas for /dev/rdsk/c0t0d0s7 (/export/home)

割り当てを有効にする方法

  1. スーパーユーザーになります。

  2. 次のように quotaon コマンドを使用して、ファイルシステムの割り当てを有効にします。

    # quotaon [-v] -a | ffilesystem ...]

    -v

    (省略可能) 詳細形式オプション。 

    -a

    /etc/vfstab ファイル内に rq エントリがある全ファイルシステムの割り当てを有効にする。

    filesystem ...

    指定する 1 つ以上のファイルシステムの割り当てを有効にする。 

例 - 割り当てを有効にする

次の例は、スライス /dev/dsk/c0t4d0s2/dev/dsk/c0t3d0s2 上のファイルシステムのディスク割り当てを有効にしています。

# quotaon -v /dev/dsk/c0t4d0s2 /dev/dsk/c0t3d0s2/dev/dsk/c0t4d0s2: quotas turned on
/dev/dsk/c0t3d0s2: quotas turned on