Solaris のシステム管理 (第 3 巻)

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

ファイルシステムをマウントするには、いくつかの方法があります。システムをブートするときに自動的にマウントされるようにするか、コマンド行から必要に応じてマウントするか、オートマウンタを使用します。オートマウンタには、ブート時のマウントやコマンド行からのマウントに比較していくつもの利点がありますが、状況によってこれら 3 つを組み合わせることが必要です。このような 3 つのファイルシステムのマウント方法に加え、ファイルシステムのマウント時に使用するオプションに応じて、プロセスを有効または無効にする方法がいくつかあります。ファイルシステムのマウントに関するすべての作業のリストについては、表 30-2 を参照してください。

表 30-2 ファイルシステム作業マップ

作業 

説明 

参照個所 

ブート時にファイルシステムをマウントする 

 システムがリブートされる時に必ずファイルシステムがマウントされるようにする手順「ブート時のファイルシステムのマウント方法」

コマンドを使用してファイルシステムをマウントする 

 システムの動作時にファイルシステムをマウントする手順。この手順はテストに有効「コマンド行からファイルシステムをマウントする方法」

オートマウンタによりマウントする 

 コマンド行を使用せずに、要求に応じてファイルシステムにアクセスする手順「オートマウンタによるマウント」

大型ファイルを不許可にする 

 ファイルシステム上に大型ファイルが作成されないようにする手順「NFS サーバー上で大型ファイルを無効にする方法」

クライアント側フェイルオーバーを使用する 

 サーバーの不良時、動作中のファイルシステムへの自動切り換えを有効にする手順「クライアント側フェイルオーバーを使用する方法」

クライアントに対するマウントアクセスを無効にする 

 任意のクライアントがリモートシステムにアクセスする機能を無効にする手順「1 つのクライアントに対するマウントのアクセスを無効にする方法」

ファイアウォール経由のファイルシステムへのアクセスを提供する 

 WebNFS プロトコルを使用してファイアウォールを越えてファイルシステムへのアクセスを許可する手順「ファイアウォールを越えて NFS ファイルシステムをマウントする方法」

NFS URL を使用してファイルシステムをマウントする 

 NFS URL を使用してファイルシステムへのアクセスを許可する手順。このプロセスによって、MOUNT プロトコルを使用しないでファイルシステムへのアクセスが可能になる「NFS URL を使用して NFS ファイルシステムをマウントする方法」

ブート時のファイルシステムのマウント方法

autofs マップを使用するのではなく、ブート時にファイルシステムをマウントするには、次の手順に従います。この手順は、すべてのローカルファイルシステムで実行しなければなりません。すべてのクライアントで実行しなければならないので、リモートファイルシステムでの実行は推奨できません。

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

  2. ファイルシステムに関するエントリを /etc/vfstab に追加します。

/etc/vfstab ファイルのエントリ構文は、次のとおりです。


special  fsckdev  mountp  fstype  fsckpass  mount-at-boot  mntopts

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


注意 - 注意 -

NFS サーバーに NFS vfstab ファイルのエントリを作成するとデッドロックが発生する可能性があるため、作成しないでください。NFS サービスは、/etc/vfstab のエントリがチェックされてから起動されます。そのため、互いのファイルシステムをマウントしている 2 台のサーバーが同時にダウンすると、リブート中にシステムがハングする可能性があります。


vfstab ファイルの項目の例

wasp サーバーの /var/mail ディレクトリをクライアントに /var/mail としてマウントするとします。そのためには、クライアント側で、ファイルシステムを /var/mail としてマウントし、読み出しと書き込みの両方ができるようにします。この場合は、以下の項目をクライアントの vfstab ファイルに追加します。


wasp:/var/mail - /var/mail nfs - yes rw

コマンド行からファイルシステムをマウントする方法

コマンド行からのファイルシステムのマウントは多くの場合、新しいマウントポイントのテスト、またはオートマウンタを使用しては利用することができないファイルシステムへの一時的なアクセスを許可するために行われます。

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

  2. ファイルシステムをマウントします。

    次のコマンドを入力します。


    # mount -F nfs -o ro bee:/export/share/local /mnt
    

    上の例では、bee サーバーの /export/share/local ファイルシステムが、ローカルシステムの /mnt に読み取り専用でマウントされます。コマンド行からこのようにマウントすることにより、ファイルシステムを一時的に表示することができます。umount を実行するかローカルホストをリブートすると、このマウントは解除されます。


    注意 - 注意 -

    Solaris 2.6 およびそれ以降に出たパッチに置き換えられた mount コマンドでは、無効なオプションを指定しても警告されません。解釈できないオプションがあると無視されるだけです。予想外の結果が生じるのを避けるために、使用するオプションはすべて確認してください。


オートマウンタによるマウント

「autofs 管理作業の概要」では、オートマウンタによるマウントの確立とサポートについて詳細に説明します。通常のシステムに変更を加えずに、リモートファイルシステムが /net マウントポイントでアクセスできるようになります。前の例のように /export/share/local ファイルシステムをマウントする場合、次の内容を入力するだけです。


% cd /net/bee/export/share/local

オートマウンタでは、すべてのユーザーがファイルシステムをマウントできるので、root としてアクセスする必要はありません。またファイルシステムのマウントを自動的に解除できるので、作業の終了後、ファイルシステムのマウントを解除する必要はありません。

NFS サーバー上で大型ファイルを無効にする方法

2G バイトを越えるファイルを処理できないクライアントをサポートしているサーバーについては、大型のファイルを作成する機能を無効にしておく必要があります。


注 -

以前のバージョンの Solaris による動作環境では、大型のファイルは使用できません。クライアントが大型のファイルにアクセスする必要がある場合には、NFS サーバーのクライアントが 2.6 以降のリリースで動作していることを確認してください。


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

  2. ファイルシステム上に大型のファイルが存在していないことを確認してください。

    次の例は、大型のファイルを検索するためのコマンドです。


    # cd /export/home1
    # find . -xdev -size +2000000 -exec ls -l {} ¥;
    

    システム上に大型のファイルが存在する場合には、削除するか、他のファイルシステムに移動する必要があります。

  3. ファイルシステムをアンマウントします。


    # umount /export/home1
    
  4. ファイルシステムがマウントされている場合には、-largefiles を使用してファイルシステムをリセットします。

    fsck は、ファイルシステム上に大型のファイルが存在しない場合に、ファイルシステムの状態をリセットします。


    # fsck /export/home1
    
  5. nolargefiles を使用して、ファイルシステムをマウントします。


    # mount -F ufs -o nolargefiles /export/home1
    

    コマンド行からこの操作を行うことができますが、オプションをさらに固定的にするために、/etc/vfstab に次のようなエントリを追加してください。


    /dev/dsk/c0t3d0s1 /dev/rdsk/c0t3d0s1 /export/home1  ufs  2  yes  nolargefiles

クライアント側フェイルオーバーを使用する方法

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

  2. NFS クライアント上で、ro オプションを使用してファイルシステムをマウントします。

    これは、コマンド行からも、オートマウンタを使用しても、または /etc/vfstab ファイルに次のようなエントリを追加することによっても実現できます。


    bee,wasp:/export/share/local  -  /usr/local  nfs  -  no  -o ro

    この構文は古いバージョンのオートマウンタでも受け入れられていましたが、ファイルシステムはマウントされてもフェイルオーバー機能は使用できなかったため、サーバーが選択されるだけでした。


    注 -

    異なるバージョンの NFS プロトコルを実行しているサーバーを、コマンド行や vfstab のエントリに混在させないでください。サポートしているプロトコルが NFS V2 のサーバーと V3 のサーバーとを混在できるのは、autofs を使用するときだけです。この場合、バージョン 2 かバージョン 3 のサーバーのうち、多い方が使用されます。


1 つのクライアントに対するマウントのアクセスを無効にする方法

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

  2. /etc/dfs/dfstab にエントリを追加します。

    最初の例では、rose という名称のホストを除き、eng ネットグループ内のすべてのクライアントへのマウントアクセスを許可しています。2 つ目の例では、rose を除き、eng.sun.com DNS ドメイン内にあるすべてのクライアントへのマウントアクセスを許可しています。


    share -F nfs -o ro=-rose:eng /export/share/man
    share -F nfs -o ro=-rose:.eng.sun.com /export/share/man

    アクセスリストに関する補足的な情報については、share コマンドを使用してアクセスリストを設定する」を参照してください。

  3. ファイルシステムを共有します。

    /etc/dfs/dfstab への変更は、このファイルシステムがもう 1 度共有されるかサーバーがリブートされるまでは NFS サーバーに反映されません。


    # shareall
    

ファイアウォールを越えて NFS ファイルシステムをマウントする方法

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

  2. 手動でファイルシステムをマウントします。たとえば、次のようなコマンドを入力します 。


    # mount -F nfs -o public bee:/export/share/local /mnt
    

    この例では、/export/share/local というファイルシステムは、公共ファイルハンドルを使用してローカルクライアントにマウントしています。標準のパス名の代わりに、NFS URL を使用することができます。ただし bee サーバーで公共ファイルハンドルがサポートされていないと、マウント操作は失敗します。


    注 -

    この手順は、NFS サーバー上のファイルシステムが public オプションを使用して共有されていることと、クライアントとサーバーの間のすべてのファイアウォールでポート 2049 による TCP 接続が可能であることが前提です。Solaris 2.6 からは、共有されているファイルシステムはすべて公共ファイルハンドルによるアクセスが可能です。


NFS URL を使用して NFS ファイルシステムをマウントする方法

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

  2. 手動でファイルシステムをマウントします。たとえば、次のようなコマンドを入力します 。


    # mount -F nfs nfs://bee:3000/export/share/local /mnt
    

    この例では、bee というサーバーの /export/share/local というファイルシステムが、NFS ポート番号 3000 を使用してマウントされます。ポート番号は指定しなくてもかまいません。その場合、デフォルトの NFS ポート番号である 2049 が使用されます。NFS URL には public オプションを指定できます。public オプションを指定しない場合、サーバーが公共ファイルハンドルをサポートしていなければ、MOUNT プロトコルが使用されます。public オプションを指定すると、必ず公共ファイルハンドルを使用するように指定され、公共ファイルハンドルがサポートされていないとマウントは失敗します。