Solaris のシステム管理 (資源管理とネットワークサービス)

第 15 章 リモートファイルシステムの管理 (手順)

この章では、NFS サービスの設定、共有する新規ファイルシステムの追加、ファイルシステムのマウントなど、NFS の管理作業の実行方法について説明します。また、Secure NFS システムおよび WebNFS の機能の使用方法についても説明します。章の最後では障害追跡の手順を説明し、NFS のいくつかのエラーメッセージとその意味を示します。

NFS 管理者の責任は、サイトの要求やネットワーク上に存在するコンピュータの役割によって変わります。管理者がローカルネットワークのコンピュータすべてに責任を持つこともありえます。そのような場合は、以下の設定事項について判断する必要があります。

設定が完了したサーバーの保守には、以下の作業が必要です。

コンピュータは、サーバーとクライアントのどちらにもなれることに注意してください。ローカルファイルシステムをリモートコンピュータと共有したり、リモートファイルシステムをマウントしたりできます。

ファイルシステムの自動共有

NFS 環境でファイルシステムを共有することにより、サーバーのファイルシステムにアクセスできるようになります。共有するファイルシステムは、share コマンドや /etc/dfs/dfstab ファイルに指定します。

/etc/dfs/dfstab ファイルの項目は、NFS サーバーオペレーションを起動したときに自動的に共有されます。同じファイルシステムを定期的に共有する必要がある場合は、自動共有を設定しなければなりません。たとえばサーバーがホームディレクトリをサポートしている場合、ホームディレクトリを常に使用できるようにしておく必要があります。ファイルシステムの共有はほとんどが自動的に行われます。共有を手動で実行するのは、テストまたは障害追跡の場合だけです。

dfstab ファイルには、サーバーがクライアントと共有しているすべてのファイルシステムがリストされています。このファイルを使用して、ファイルシステムをマウントできるクライアントを制御します。dfstab ファイルを変更して、ファイルシステムを追加または削除したり、共有方法を変更したりできます。その場合は、vi などのサポートされているテキストエディタを使って dfstab ファイルを編集します。コンピュータが次に実行レベル 3 に入ったときに、システムが更新された dfstab を読み、ファイルシステムの共有方法が自動的に判断されます。

dfstab ファイルの各行は、share コマンドで構成されています。その share コマンドは、コマンド行プロンプトに入力してファイルシステムを共有するのと同じコマンドです。share コマンドは、/usr/sbin に保存されています。

表 15-1 ファイルシステムの共有 (作業マップ)

作業 

説明 

参照先 

自動ファイルシステムの共有を確立する 

 サーバーのリブート時、ファイルシステムが自動的に共有されるようにサーバーを設定する手順 ファイルシステム自動共有を設定する方法

WebNFS を有効にする 

 ユーザーが WebNFS でファイルにアクセスできるようにサーバーを設定する手順 WebNFS アクセスを有効にする方法

NFS サーバーログを有効にする 

 NFS ログが選択したファイルシステム上で動作するようにサーバーを設定する手順NFS サーバーログを有効にする方法

ファイルシステム自動共有を設定する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. 共有する対象の各ファイルシステムに関してエントリを追加します。

    /etc/dfs/dfstab を編集します。自動的に共有する各ファイルシステムのファイルにエントリを 1 つ追加します。各エントリは、ファイル中に 1 行で記述する必要があり、次のような構文を使用します。


    share [-F nfs] [-o specific-options] [-d description] pathname

    /etc/dfs/dfstab ファイルについては、dfstab(4) のマニュアルページ、全オプションのリストについては、share_nfs(1M) のマニュアルページを参照してください。

  3. NFS サービスがサーバー上で動作していることを確認します。

    share コマンドまたは share コマンドセットをはじめて実行する場合、NFS サービスが動作していないことがあります。次のコマンドを使用して、NFS デーモンのどれかが動作していることをチェックします。


    # pgrep nfsd
    318

    この例では、318nfsd のプロセス ID です。ID が表示されない場合は、サービスが動作していないことを意味します。次に、mountd が動作していることをチェックします。

  4. (省略可能) NFS サービスを起動します。

    前の手順を実行しても nfsd のプロセス ID が表示されない場合は、次のコマンドを使用して、NFS サービスを起動します。


    # /etc/init.d/nfs.server start
    

    このコマンドを実行すると、NFS サービスがサーバーで実行されます。リブート時にサーバーが実行レベル 3 であるときには、NFS サービスが自動的に再起動されます。

  5. (省略可能) ファイルシステムを共有します。

    エントリを /etc/dfs/dfstab に追加したあと、システムをリブートするか、shareall コマンドを使用して、ファイルシステムを共有可能にできます。NFS サービスを起動したすぐ後は、このコマンドはスクリプトにより実行されているため、実行する必要はありません。


    # shareall
    
  6. 情報が正しいことを確認します。

    share コマンドを実行し、適切なオプションが表示されていることを確認します。


    # share
    -        /export/share/man   ro   ""
    -        /usr/src     rw=eng   ""
    -        /export/ftp    ro,public  ""

次に進む手順

次の手順は、サーバー上で共有化したファイルシステムにクライアントがアクセスできるよう autofs マップを設定する手順です。autofs 管理作業の概要 を参照してください。

WebNFS アクセスを有効にする方法

Solaris 2.6 から、デフォルトでは、NFS のマウントが利用可能なファイルシステムはすべて、WebNFS アクセスも自動的に利用できます。この手順を使用する必要があるのは、次のいずれかの場合だけです。

WebNFS サービスを起動する際の注意事項については、WebNFS アクセスの計画 を参照してください。

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. WebNFS サービスを使用して、共有する各ファイルシステムのエントリを追加します。

    /etc/dfs/dfstab を編集します。各ファイルシステムごとにエントリを 1 つ追加します。次の例の public タグおよび index タグは省略できます。


    share -F nfs -o ro,public,index=index.html /export/ftp

    /etc/dfs/dfstab ファイルについては、dfstab(4) のマニュアルページ、全オプションのリストについては、share_nfs(1M) のマニュアルページを参照してください。

  3. NFS サービスがサーバー上で動作していることを確認します。

    share コマンドまたは share コマンドセットをはじめて実行する場合、NFS デーモンが動作していないことがあります。次のコマンドを使用して、いずれかの NFS デーモンが動作していることをチェックします。


    # pgrep nfsd
    318

    この例では、318nfsd のプロセス ID です。ID が表示されない場合は、サービスが動作していないことを意味します。次に、mountd が動作していることをチェックします。

  4. (省略可能) NFS サービスを起動します。

    前の手順を実行しても nfsd のプロセス ID が表示されない場合は、次のコマンドを使用して、NFS サービスを起動します。


    # /etc/init.d/nfs.server start
    

    このコマンドを実行すると、NFS サービスがサーバーで実行されます。ブート時にサーバーが実行レベル 3 になったときには、NFS サービスが自動的に再起動されます。

  5. (省略可能) ファイルシステムを共有します。

    エントリを /etc/dfs/dfstab に追加したあと、システムをリブートするか、shareall コマンドを使用して、ファイルシステムを共有可能にできます。NFS サービスを起動したすぐ後は、このコマンドはスクリプトにより実行されているため、実行する必要はありません。


    # shareall
    
  6. 情報が正しいことを確認します。

    share コマンドを実行し、適切なオプションが表示されていることを確認します。


    # share
    -        /export/share/man   ro   ""
    -        /usr/src     rw=eng   ""
    -        /export/ftp    ro,public,index=index.html  ""

NFS サーバーログを有効にする方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. (省略可能) ファイルシステム構成の設定を変更します。

    /etc/nfs/nfslog.conf で設定を変更する方法は 2 つあります。すべてのファイルシステムについてデフォルトの設定を編集するには、global タグに関連するデータを変更します。または、このファイルシステムについて新しいタグを追加します。これらの変更が必要でない場合には、このファイルを変更する必要はありません。/etc/nfs/nfslog.conf の書式については、nfslog.conf(4) を参照してください。

  3. NFS サーバーログを使用して、共有する各ファイルシステムについてエントリを追加します。

    /etc/dfs/dfstab を編集します。NFS サーバー記録を有効にするファイルシステムについてエントリを 1 つ追加します。log=tag オプションとともに使用するタグは、/etc/nfs/nfslog.conf にも記述する必要があります。次の例では、global タグ内のデフォルト設定を使用しています。


    share -F nfs -o ro,log=global /export/ftp

    /etc/dfs/dfstab ファイルについては、dfstab(4) のマニュアルページ、全オプションのリストについては、share_nfs(1M) のマニュアルページを参照してください。

  4. NFS サービスがサーバー上で動作していることを確認します。

    share コマンドまたは share コマンドセットをはじめて実行する場合、NFS デーモンが動作していないことがあります。次のコマンドを使用して、NFS デーモンのいずれかが動作していることをチェックします。


    # pgrep nfsd
    318

    この例では、318nfsd のプロセス ID です。ID が表示されない場合は、サービスが動作していないことを意味します。次に、mountd が動作していることをチェックします。

  5. (省略可能) NFS サービスを起動します。

    前の手順を実行しても nfsd のプロセス ID が表示されない場合は、次のコマンドを使用して、NFS サービスを起動します。


    # /etc/init.d/nfs.server start
    

    このコマンドを実行すると、NFS サービスがサーバーで実行されます。ブート時にサーバーが実行レベル 3 になったときには、NFS サービスが自動的に再起動されます。

  6. (省略可能) ファイルシステムを共有します。

    エントリを /etc/dfs/dfstab に追加したあと、システムをリブートするか、shareall コマンドを使用して、ファイルシステムを共有可能にできます。NFS サービスを起動したすぐ後は、このコマンドはスクリプトにより実行されているため、実行する必要はありません。


    # shareall
    
  7. 情報が正しいことを確認します。

    share コマンドを実行し、適切なオプションが表示されていることを確認します。


    # share
    -        /export/share/man   ro   ""
    -        /usr/src     rw=eng   ""
    -        /export/ftp    ro,log=global  ""
  8. (省略可能) NFS ログデーモン nfslogd がすでに実行されていなければ、起動します。

    nfs.server スクリプトを使用して NFS デーモンの再起動をすると、nfslog.conf ファイルが存在している場合、デーモンが起動されます。それ以外の場合は、サーバーのリブート時にコマンドが自動的に再起動されるように、一度手動でコマンドを実行してファイルを作成する必要があります。


    # /usr/lib/nfs/nfslogd
    

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

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

表 15-2 ファイルシステムのマウントの作業マップ

作業 

説明 

参照先 

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

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

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

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

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

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

大規模ファイルを避ける 

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

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

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

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

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

ファイアウォールを越えてファイルシステムにアクセスを提供する 

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

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

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

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

autofs マップを使用するのではなく、ブート時にファイルシステムをマウントするには、次の手順に従います。この手順は、すべてのローカルファイルシステムについて実行する必要がありますが、リモートファイルシステムについてはこの手順を使用しないでください。リモートファイルシステムでは、この手順をクライアントごとに行います。

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

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

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

special  fsckdev  mountp  fstype  fsckpass  mount-at-boot  mntopts

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


注意 - 注意 -

NFS サーバーに NFS vfstab ファイルのエントリを作成するとデッドロックが発生する可能性があるため、作成しないでください。/etc/vfstab のエントリが確認された後、NFS サービスが起動します。次のようなことが考えられます。互いにファイルシステムをマウントしている 2 つのサーバーが同時に停止した場合、リブート時にハングアップする可能性があります。


例 - vfstab エントリ

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


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

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

新規マウントポイントをテストするために、コマンド行からファイルシステムをマウントすることがあります。このようにしてマウントすると、オートマウンタでアクセスできないファイルシステムに、一時的にアクセスすることができます。

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

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


  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  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. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

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

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


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

    この構文は古いバージョンのオートマウンタでも指定できましたが、フェイルオーバー機能が使用できるのはサーバーが選択されているときだけで、ファイルシステムがマウントされるときには使用できませんでした。


    注 -

    NFS プロトコルの異なるバージョンを実行する複数のサーバーを、コマンド行や vfstab のエントリに混在させないでください。NFS バージョン 2 プロトコルとバージョン 3 プロトコルをサポートしているサーバーを混在して使用できるのは、autofs を使用する場合だけです。autofs では、バージョン 2 またはバージョン 3 のサーバーの最適なサブセットが使用されます。


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

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  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.example.com /export/share/man

    アクセスリストに関する補足的な情報については、share コマンドを使ってアクセスリストを設定するを参照してください。/etc/dfs/dfstab については、dfstab(4) のマニュアルページを参照してください。

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

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


    # shareall

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

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. 次のコマンドを使用して、ファイルシステムを手動でマウントします。


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

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


    注 -

    この手順では、NFS サーバーのファイルシステムを public オプションで共有する必要があります。また、クライアントとサーバー間のファイアウォールでは、ポート 2049 で TCP 接続できるようにする必要があります。Solaris 2.6 から、共有しているすべてのファイルシステムに、公共ファイルハンドルでアクセスできます。そのため、デフォルトでは、public オプションが適用されています。


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

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  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 オプションを指定すると、必ず公共ファイルハンドルを使用するように指定され、公共ファイルハンドルがサポートされていないとマウントは失敗します。

NFS サービスの設定

この節では、NFS サービスの初期化や使用に必要な作業をいくつか説明します。

表 15-3 NFS サービスの作業マップ

作業 

説明 

参照先 

NFS サーバーを起動する 

 NFS サービスが自動的に起動されていない場合に、NFS サービスを起動する手順NFS サービスの起動方法

NFS サーバーを停止する 

 NFS サービスを停止する手順。通常は、サービスを停止する必要はないNFS サービスの停止方法

オートマウンタを起動する 

 オートマウンタを起動する手順。オートマウンタマップが変更された場合、この手順が必要オートマウンタの起動方法

オートマウンタを停止する 

 オートマウンタを停止する手順。オートマウンタマップが変更された場合、この手順が必要オートマウンタの停止方法

NFS サービスの起動方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. NFS サービスデーモンを有効にします。

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


    # /etc/init.d/nfs.server start
    

    /etc/dfs/dfstab にエントリがあると、このコマンドはデーモンを起動します。

NFS サービスの停止方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. NFS サービスデーモンを無効にします。

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


    # /etc/init.d/nfs.server stop
    

オートマウンタの起動方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. autofs デーモンを有効にします。

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


    # /etc/init.d/autofs start
    

オートマウンタの停止方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. autofs デーモンを無効にします。

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


    # /etc/init.d/autofs stop
    

Secure NFS システムの管理

Secure NFS システムを使用するには、自分が責任を持つすべてのコンピュータにドメイン名が必要です。「ドメイン」とは管理上のエンティティであり、通常、大きなネットワークの一環となる複数のコンピュータから構成されます。ネームサービスを実行している場合、そのドメインに対してネームサービスを設定する必要があります。『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』 を参照してください。

Diffie-Hellman 認証を使用するように、Secure NFS 環境を設定できます。この認証サービスについては、Solaris のシステム管理 (セキュリティサービス)』の「認証サービスの使用 (手順)」で説明しています。

NFS サービスでは、Kerberos バージョン 5 認証もサポートされています。Kerberos サービスについては、『Solaris のシステム管理 (セキュリティサービス)』の「SEAM について」で説明しています。

DH 認証を使用して Secure NFS 環境を設定する方法

  1. ドメインにドメイン名を割り当て、そのドメイン名をドメイン内の各コンピュータに知らせます。

    NIS+ をネームサービスとして使用している場合は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

  2. newkey コマンドまたは nisaddcred コマンドを使用して、クライアントのユーザーの公開鍵と秘密鍵を設定します。chkey コマンドを使用して、各ユーザーに独自の Secure RPC パスワードを設定してもらいます。


    注 -

    これらのコマンドについての詳細は、newkey(1M)nisaddcred(1M)、および chkey(1) のマニュアルページを参照してください。


    公開鍵と秘密鍵が生成されると、公開鍵と暗号化された秘密鍵が publickey データベースに格納されます。

  3. ネームサービスが応答していることを確認します。NIS+ を実行している場合は、以下を入力してください。


    # nisping -u
    Last updates for directory eng.acme.com. :
    Master server is eng-master.acme.com.
            Last update occurred at Mon Jun  5 11:16:10 1995
    
    Replica server is eng1-replica-replica-58.acme.com.
            Last Update seen was Mon Jun  5 11:16:10 1995

    NIS を実行している場合は、ypbind デーモンが動作していることを確認してください。

  4. キーサーバーの keyserv デーモン が動作していることを確認します。

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


    # ps -ef | grep keyserv
    root    100     1  16    Apr 11 ?      0:00 /usr/sbin/keyserv
    root	  2215  2211   5  09:57:28 pts/0  0:00 grep keyserv

    keyserv デーモンが動作していない場合は、次の内容を入力してキーサーバーを起動します。


    # /usr/sbin/keyserv
    
  5. 秘密鍵の復号化と保存を実行します。

    通常、ログインパスワードはネットワークパスワードと同じです。この場合、keylogin は不要です。ログインパスワードとネットワークパスワードが異なる場合、ユーザーはログインしてから keylogin を実行しなければなりません。また、keylogin -rroot として実行し、復号化した秘密鍵を /etc/.rootkey に保存しなければなりません。


    注 -

    keylogin -r は、root の秘密鍵が変更されたか、/etc/.rootkey が損失した場合に、実行する必要があります。


  6. ファイルシステムに対するマウントオプションを更新します。

    Diffie-Hellman 認証を使用するには、/etc/dfs/dfstab ファイルを編集し、該当するエントリに sec=dh オプションを追加します。


    share -F nfs -o sec=dh /export/home
    

    /etc/dfs/dfstab については、dfstab(4) のマニュアルページを参照してください。

  7. ファイルシステムに対するオートマウンタマップを更新します。

    auto_master データを編集し、Diffie-Hellman 認証のエントリ内にマウントオプションとして sec=dh を含めます。


    /home	auto_home	-nosuid,sec=dh

    注 -

    Solaris 2.5 以前のリリースでは、その機能が制限されています。クライアントが、セキュリティ保護されている共有ファイルシステムにセキュリティモードでマウントしない場合、ユーザーは、そのユーザー自身ではなく、nobody ユーザーとしてアクセスすることになります。Solaris 2.5 以降の NFS バージョン 2 では、セキュリティモードが一致しないと、share コマンド行に -sec=none が指定されていないかぎり、NFS サーバーによってアクセスが拒否されます。NFS のバージョン 3 では、セキュリティ保護されていることを示すモードが NFS サーバーから引き継がれるので、クライアントが sec=dh を指定する必要はありません。ユーザーは、そのユーザー自身としてファイルにアクセスできます。


    コンピュータを設置し直したり、移設したり、アップグレードしたりするときに、新しい鍵を設定せず、root 用の鍵も変更しない場合は、必ず /etc/.rootkey を保存してください。/etc/.rootkey を削除するには、通常、次のコマンドを入力します。


    # keylogin -r
    

WebNFS の管理作業

この節では、WebNFS システムを管理する方法について説明します。次の表に、関連する作業を示します。

表 15-4 WebNFS 管理の作業マップ

作業 

説明 

参照先 

WebNFS に関する計画を作成する 

 WebNFS サービスを有効にする前に考慮する項目WebNFS アクセスの計画

WebNFS を有効にする 

 WebNFS プロトコルを使用して NFS ファイルシステムのマウントを有効にする手順WebNFS アクセスを有効にする方法

ファイアウォール経由で WebNFS を有効にする 

 WebNFS プロトコルを使用して、ファイアウォール経由でファイルへのアクセスを許可する手順ファイアウォール経由で WebNFS アクセスを有効にする方法

NFS URL を使ってブラウズする 

 Web ブラウザ内での NFS URL の使用についての説明 NFS URL を使ってブラウズする方法

autofs で公共ファイルハンドルを使用する 

 オートマウンタでファイルシステムをマウントする場合に、公共ファイルハンドルの使用を強制するための手順autofs で公共ファイルハンドルを使用する方法

autofs で NFS URL を使用する 

 オートマウンタマップに NFS URL を追加するための手順autofs で NFS URL を使用する方法

ファイアウォールを越えてファイルシステムにアクセスを提供する 

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

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

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

WebNFS アクセスの計画

WebNFS を使用するには、まずアプリケーションを実行して NFS URL (nfs://server/path など) を読み込む必要があります。次に、WebNFS アクセスのためにエクスポートするファイルシステムを選択します。アプリケーションが Web ブラウザの場合は、Web サーバーのドキュメントルートがよく使用されます。WebNFS アクセスのためにエクスポートするファイルシステムを選択するときは、次の事項を検討する必要があります。

  1. 各サーバーには公共ファイルハンドルが 1 つずつあり、このハンドルはデフォルトではサーバーのルートファイルシステムに結び付けられています。NFS URL に示されたパスは、この公共ファイルハンドルが結び付けられているディレクトリからの相対パスとして評価されます。その結果としてパスが示す先のファイルまたはディレクトリが、エクスポートされたファイルシステムの中にあると、サーバーによってアクセスが実現されます。share コマンドの public オプションを使用すると、エクスポートされる特定のディレクトリにこの公開ファイルハンドルを結び付けることができます。このオプションを使用すると、URL はサーバーのルートファイルシステムではなく公共ファイルシステムからの相対パスになります。ルートファイルシステムを共有しないと、ルートファイルシステムへの Web アクセスはできません。

  2. WebNFS 環境では、すでにマウント権限を持っているユーザーは、ブラウザからファイルにアクセスできます。ファイルシステムが public オプションを使ってエクスポートされているかどうかには関係ありません。ユーザーは NFS の設定によってファイルへのアクセス権を持っているため、ブラウザからのアクセスを許すことによって新たにセキュリティが損なわれる恐れはありません。ファイルシステムをマウントできないユーザーは、public オプションを使ってファイルシステムを共有するだけで、WebNFS アクセスを使用できるようになります。

  3. すでに公開されているファイルシステムは、public オプションを使用するのに適しています。たとえば、ftp アーカイブの最上位のディレクトリや Web サイトのメイン URL ディレクトリなどです。

  4. share コマンドで index オプションを使用すると、HTML ファイルを強制的に読み込むことができます。そうしない場合は、NFS URL がアクセスされたときにディレクトリがリストされます。

    ファイルシステムを選択したらファイルを確認し、必要に応じてファイルやディレクトリの表示を制限するようにアクセス権を設定します。アクセス権は、共有される NFS ファイルシステムに合わせて設定します。多くのサイトでは、ディレクトリに対しては 755、ファイルに対しては 644 が適切なアクセスレベルです。

    また、NFS と HTTP URL の両方を使用して 1 つの Web サイトにアクセスする場合は、その他の事項も検討する必要があります。これについては、Web ブラウザの使用と比較した場合の WebNFS の制約で説明します。

NFS URL を使ってブラウズする方法

ブラウザが WebNFS サービスをサポートしている場合は、次のような NFS URL にアクセスできます。


nfs://server<:port>/path

server

ファイルサーバー名 

port

使用するポート番号 (デフォルト値は 2049)

path

公共ファイルハンドラまたはルートファイルシステムに関連するファイルへのパス 


注 -

ほとんどのブラウザでは、前のトランザクションで使用した URL サービスのタイプ (NFS や HTTP など) を次のトランザクションでも使用します。例外は、異なるタイプのサービスを含む URL を読み込んだ場合は、前のトランザクションで使用した URL サービスのタイプが使われることがあります。NFS URL を使用した後に、HTTP URL に対する参照が読み込まれることがあります。その場合、次のページは、NFS プロトコルではなく HTTP プロトコルを使って読み込まれます。


ファイアウォール経由で WebNFS アクセスを有効にする方法

ローカルのサブネットに属していないクライアントに対して WebNFS アクセスを有効にするには、ポート 2049 での TCP 接続を許可するようにファイアウォールを設定します。httpd に対してアクセスを許可するだけでは、NFS URL が使えるようにはなりません。

autofs 管理作業の概要

この節では、ユーザー自身の環境で遭遇する可能性のあるもっとも一般的な作業について説明します。各シナリオについて、ユーザーのクライアントで必要とする条件に最も適合するように autofs を設定するために推奨される手順も示します。


注 -

この節で説明する作業を実行するには、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。


autofs 管理の作業マップ

次の表に、autofs に関連する作業についての説明と参照箇所を示します。

表 15-5 autofs 管理の作業マップ

作業 

説明 

参照先 

autofs を起動する 

 システムをリブートすることなくオートマウントサービスを起動するオートマウンタの起動方法

autofs を停止する 

 他のネットワークサービスを使用不可にすることなくオートマウントサービスを停止するオートマウンタの停止方法

autofs でファイルシステムにアクセスする 

 オートマウントサービスを使ってファイルシステムにアクセスするオートマウンタによるマウント

autofs マップを修正する 

 他のマップをリストするために使用されるマスターマップの修正を行う手順マスターマップの修正方法

 

 ほとんどのマップに対して使用される間接マップの修正を行う手順間接マップの修正方法

 

 クライアント上のマウントポイントとサーバー間の直接の関係が必要な場合に使用される直接マップの修正を行う手順直接マップの修正方法

非 NFS ファイルシステムにアクセスするために autofs マップを修正する 

 CD-ROM アプリケーション用のエントリで autofs マップを設定する手順autofs で CD-ROM アプリケーションにアクセスする

 

 PC-DOS フロッピーディスク用のエントリで autofs マップの設定を行う手順 autofs で PC-DOS データフロッピーディスクにアクセスする方法

 

 autofs を使用して CasheFS ファイルシステムにアクセスする手順 CasheFS を使用して NFS ファイルシステムにアクセスする方法

/home を使用する

共通の /home マップの設定方法の例/home の共通表示の設定

 

複数のファイルシステムを参照する /home マップを設定する手順複数のホームディレクトリファイルシステムで /home を設定する方法

新しい autofs マウントポイントを使用する 

 プロジェクト関連の autofs マップを設定する手順/ws 下のプロジェクト関連ファイルを統合する方法

 

 異なるクライアントアーキテクチャをサポートする autofs マップを設定する手順共有名前空間にアクセスするために異なるアーキテクチャを設定する方法

 

 異なるオペレーティングシステムをサポートする autofs マップを設定する手順非互換のクライアントオペレーティングシステムのバージョンをサポートする方法

autofs でファイルシステムを複製する 

 フェイルオーバーしたファイルシステムへのアクセスを提供する複数のサーバーを通じて共用ファイルを複製する方法

autofs でセキュリティ制限を使用する 

ファイルへのリモート root アクセスを制限する一方でファイルシステムへのアクセスを提供するautofs セキュリティ制限を適用する方法

autofs で公共ファイルハンドルを使用する 

 ファイルシステムのマウント時に公共ファイルハンドルの使用を強制するautofs で公共ファイルハンドルを使用する方法

autofs で NFS URL を使用する 

 オートマウンタが使用できるように、NFS URL を追加するautofs で NFS URL を使用する方法

autofs のブラウズ機能を無効にする 

 autofs マウントポイントが 1 つのクライアント上で自動的に生成されないように、ブラウズ機能を無効にする手順1 つの NFS クライアントの autofs ブラウズ機能を完全に無効にする方法

 

 autofs マウントポイントがすべてのクライアント上で自動的に生成されないように、ブラウズ機能を無効にする手順すべてのクライアントの autofs ブラウズ機能を無効にする方法

 

 特定の autofs マウントポイントがある 1 つのクライアント上で自動的に生成されないように、ブラウズ機能を無効にする手順選択したファイルシステムの autofs ブラウズ機能を無効にする方法

マップの管理作業

表 15–6 は、autofs マップの管理時に認識しておく必要のある事項について示したものです。選択したマップのタイプおよびネームサービスにより、autofs マップへの変更を行うために使用する必要があるメカニズムが異なります。

表 15–6 に、マップのタイプとその使用方法を示します。

表 15-6 autofs マップのタイプとその使用方法

マップのタイプ 

使用方法 

マスター

ディレクトリをマップに関連付ける 

直接

autofs を特定のファイルシステム向けにする 

間接

autofs をリファレンス指向のファイルシステム向けにする 

表 15–7 は、ネームサービスに基づいて autofs 環境に変更を加える方法を示したものです。

表 15-7 マップの保守

ネームサービス 

メソッド 

ローカルファイル 

テキストエディタ

NIS 

make ファイル

NIS+ 

nistbladm

表 15–8 に、マップのタイプについて行なった修正に応じた automount コマンドを実行する場合を示します。たとえば、直接マップに対する追加または削除を行なった場合、ローカルシステム上で automount コマンドを実行する必要があります。automount コマンドを実行すると、変更が反映されます。ただし、既存のエントリを修正した場合は、変更を反映するために automount コマンドを実行する必要はありません。

表 15-8 automount コマンドを実行する場合

マップのタイプ 

automount を再実行するか否か

 

追加または削除 

修正 

auto_master

Y

Y

direct

Y

N

indirect

N

N

マップの修正

次の手順では、NIS+ をネームサービスとして使用している必要があります。

マスターマップの修正方法

  1. マップを変更する権限を持つユーザーとしてログインします。

  2. nistbladm コマンドを使用して、マスターマップへの変更を行います。

    Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

  3. 各クライアントで、スーパーユーザーになるか、それと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  4. 各クライアントで、automount コマンドを実行し、変更が反映されるようにします。

  5. マップを変更したことを他のユーザーに通知します。

    他のユーザーがコンピュータ上でスーパーユーザーとして automount コマンドを実行できるように、通知が必要になります。

automount コマンドは、実行時にマスターマップから情報を収集します。

間接マップの修正方法

    マップを変更する権限を持つユーザーとしてログインします。

    nistbladm コマンドを使用して、間接マップへの変更を行います。

    Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

変更は、マップを次に使用する時、つまり次回のマウント実行時に反映されます。

直接マップの修正方法

  1. マップを変更する権限を持つユーザーとしてログインします。

  2. nistbladm コマンドを使用して、直接マップに対する変更点の追加または削除を行います。

    Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

  3. 手順 1 でマウントポイントエントリの追加または削除を行なった場合は、automount コマンドを実行します。

  4. マップを変更したことを他のユーザーに通知します。

    他のユーザーがコンピュータ上でスーパーユーザーとして automount コマンドを実行できるように、通知が必要になります。


    注 -

    既存の直接マップエントリの内容の変更だけを行なった場合は、automount コマンドを実行する必要はありません。


    たとえば、異なるサーバーから /usr/src ディレクトリがマウントされるように auto_direct マップを修正するとします。/usr/src がその時点でマウントされていない場合、/usr/src にアクセスするとすぐにその新しいエントリが反映されます。/usr/src がその時点でマウントされている場合、オートアンマウントが実行されるまで待ちます。その後、アクセスが可能になります。


    注 -

    できるだけ間接マップを使用してください。間接マップは構築が容易であり、コンピュータのファイルシステムへの要求が少なくて済みます。また、間接マップは直接マップよりもマウントテーブル内のスペースを必要としません。


マウントポイントの重複回避

/src 上にマウントされたローカルなディスクパーティションがあり、他のソースディレクトリのマウントにもその autofs サービスを使用する場合、問題が発生する可能性があります。マウントポイント /src を指定する場合、ユーザーがアクセスするたびに、NFS サービスが対象のローカルパーティションを隠すことになります。

たとえば /export/src などの他の場所に、パーティションをマウントする必要があります。その後、次のようなエントリを /etc/vfstab に含める必要があります。


/dev/dsk/d0t3d0s5 /dev/rdsk/c0t3d0s5 /export/src ufs 3 yes - 

このエントリは、auto_src にも必要です。


terra		terra:/export/src 

terra はコンピュータ名です。

非 NFS ファイルシステムへのアクセス

autofs は NFS ファイル以外のファイルもマウントすることができます。autofs は、フロッピーディスクや CD-ROM など、削除可能な媒体上のファイルをマウントします。通常は、ボリュームマネージャを使って削除可能な媒体上のファイルをマウントすることになります。次の例では、autofs を利用してこのマウントがどのように行われるかを示します。ボリュームマネージャと autofs は同時に動作することができないため、まずボリュームマネージャを終了してから次に示すエントリを使用する必要があります。

サーバーからファイルシステムのマウントを行う代わりに、ドライブに媒体を配置してマップから参照します。autofs を使用して非 NFS ファイルシステムにアクセスする場合は、次の手順を参照してください。

autofs で CD-ROM アプリケーションにアクセスする


注 -

ボリュームマネージャを使用していない場合に、この手順を行なってください。


  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. autofs マップを更新します。

    次のような CD-ROM のファイルシステム用のエントリを追加します。


    hsfs     -fstype=hsfs,ro     :/dev/sr0

    マウントする CD-ROM 装置の名前が、コロンの後に続けて表示されます。

autofs で PC-DOS データフロッピーディスクにアクセスする方法


注 -

ボリュームマネージャを使用していない場合に、この手順を行なってください。


  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. autofs マップを更新します。

    次のようなフロッピーディスクのファイルシステム用のエントリを追加します。


     pcfs     -fstype=pcfs     :/dev/diskette

CasheFS を使用して NFS ファイルシステムにアクセスする

キャッシュファイルシステム (CacheFS) は、汎用不揮発性キャッシュメカニズムで、小型で高速なローカルディスクを利用して、特定のファイルシステムのパフォーマンスを向上させます。

CacheFS を使ってローカルディスク上に NFS ファイルシステムからデータをキャッシュすることにより、NFS 環境のパフォーマンスを改善できます。

CasheFS を使用して NFS ファイルシステムにアクセスする方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. cfsadmin コマンドを実行して、ローカルディスク上にキャッシュディレクトリを作成します。


    # cfsadmin -c /var/cache
    
  3. 任意のオートマウンタマップに cachefs エントリを追加します。

    たとえば、次に示すエントリをマスターマップに追加して、すべてのディレクトリがキャッシュされます。


    /home auto_home -fstype=cachefs,cachedir=/var/cache,backfstype=nfs

    以下のエントリを auto_home マップに追加すると、rich という名称のユーザーのホームディレクトリのキャッシュだけが行われます。


    rich -fstype=cachefs,cachedir=/var/cache,backfstype=nfs dragon:/export/home1/rich

    注 -

    後から検索されるマップ内のオプションは、先に検索されたマップ内のオプションを無効にします。そのため、最後に検出されたオプションが使用されます。前述の例では、auto_home マップに追加されたエントリにマスターマップのオプションを含むのは、変更が必要なオプションがあった場合だけです。


オートマウンタのカスタマイズ

オートマウンタマップの設定方法はいくつかあります。次に、オートマウンタマップをカスタマイズして簡単に使用できるディレクトリ構造を実現する方法について詳細に説明します。

/home の共通表示の設定

ネットワークユーザーすべてにとって理想的なのは、自分自身のホームディレクトリ、または他の人のホームディレクトリを /home の下に配置できるようにすることです。この表示方法は通常、クライアントでもサーバーでも、すべてのコンピュータを通じて共通です。

Solaris をインストールすると、常にマスターマップ /etc/auto_master もインストールされます。


# Master map for autofs
#
+auto_master
/net     -hosts     -nosuid,nobrowse
/home    auto_home  -nobrowse
/xfn     -xfn

auto_home 用のマップも、/etc の下にインストールされます。


# Home directory map for autofs
#
+auto_home

外部 auto_home マップに対する参照を除き、このマップは空になります。/home に含まれるディレクトリをすべてのコンピュータに対して共通にする場合、この /etc/auto_home マップは修正しないでください。すべてのホームディレクトリのエントリは、NIS または NIS+ のネームサービスファイルで表示されなくてはなりません。


注 -

ユーザーは、各ホームディレクトリから setuid 実行可能ファイルを実行することが許可されていません。この制限がないと、すべてのユーザーがすべてのコンピュータ上でスーパーユーザーの権限を持つことになります。


複数のホームディレクトリファイルシステムで /home を設定する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. /export/home の下にホームディレクトリパーティションをインストールします。

    システムに複数のパーティションがある場合は、/export/home1/export/home2 のように、別のディレクトリにそれぞれインストールを行います。

  3. auto_home マップを作成して維持します。

    新しいユーザーアカウントを作成する場合は、そのユーザーのホームディレクトリの場所を auto_home マップに入力します。マップのエントリは、次のように単純な形式にすることができます。


    rusty        dragon:/export/home1/&
    gwenda       dragon:/export/home1/&
    charles      sundog:/export/home2/&
    rich         dragon:/export/home3/&

    マップキーを置換する & (アンパサンド) の使い方に注意してください。このアンパサンドは、次の例の 2 つ目の rusty の使用を省略した形式です。


    rusty     	dragon:/export/home1/rusty

    auto_home マップを配置すると、ユーザーは、/home/user というパスを使用して、ユーザー自身のホームディレクトリを含むあらゆるホームディレクトリを参照できます。user はログイン名で、マップ内でのキーになります。すべてのホームディレクトリを共通に表示するしくみは、他のユーザーのコンピュータにログインする場合に便利です。autofs は、ユーザー自身のホームディレクトリをマウントします。同様に、他のコンピュータ上でリモートのウィンドウシステムクライアントを実行するとウィンドウシステムクライアントと同じ /home ディレクトリが表示されます。

    この共通表示は、サーバーにも拡張されています。前の例を使用すれば、rusty がサーバー dragon にログインする場合、autofs は、/export/home1/rusty/home/rusty にループバックマウントすることにより、ローカルディスクへの直接アクセスを提供します。

    ユーザーは、各ホームディレクトリの実際の位置を意識する必要はありません。rusty がさらにディスクスペースを必要とし、rusty 自身のホームディレクトリを他のサーバーに再配置する必要がある場合には、auto_home マップ内の rusty のエントリを新しい場所を反映するように変更することだけが必要になります。他のユーザーは、/home/rusty パスを継続して使用することができます。

/ws 下のプロジェクト関連ファイルを統合する方法

大きなソフトウェアの開発プロジェクトの管理者を想定してください。そこで、プロジェクト関連のファイルをすべて /ws というディレクトリの下で利用できるようにすると仮定します。このようなディレクトリは、そのサイトのすべてのワークステーションで共通である必要があります。

  1. /ws ディレクトリに対するエントリを、サイトの NIS または NIS+ の auto_master マップに追加します。


    /ws     auto_ws     -nosuid 

    auto_ws マップが、/ws ディレクトリの内容を決定します。

  2. -nosuid オプションを用心のために追加しておきます。

    このオプションは、すべての作業空間に存在する可能性のある setuid プログラムをユーザーが実行できないようにします。

  3. auto_ws マップにエントリを追加します。

    auto_ws マップは、各エントリがサブプロジェクトを記述するように構成されています。最初の操作により、マップが次のようになります。


    compiler   alpha:/export/ws/&
    windows    alpha:/export/ws/&
    files      bravo:/export/ws/&
    drivers    alpha:/export/ws/&
    man        bravo:/export/ws/&
    tools      delta:/export/ws/&

    各エントリの最後のアンパサンド (&) は、エントリーキーを省略したものです。たとえば、最初のエントリは次のエントリと同じ意味です。


    compiler		alpha:/export/ws/compiler 

    この最初の操作により、マップはシンプルなものになりますが、このマップでは不十分です。プロジェクトのオーガナイザーが、man エントリ内のドキュメントを各サブプロジェクトの下のサブディレクトリとして提供しようとしているとします。さらに、各サブプロジェクトは、ソフトウェアの複数のバージョンを記述するために、複数のサブディレクトリを必要とします。この場合、サーバー上のディスクパーティション全体に対して、これらのサブディレクトリをそれぞれ割り当てる必要があります。

    次のように、マップ内のエントリを修正してください。


    compiler \
        /vers1.0    alpha:/export/ws/&/vers1.0 \
        /vers2.0    bravo:/export/ws/&/vers2.0 \
        /man        bravo:/export/ws/&/man
    windows \
        /vers1.0    alpha:/export/ws/&/vers1.0 \
        /man        bravo:/export/ws/&/man
    files \
        /vers1.0    alpha:/export/ws/&/vers1.0 \
        /vers2.0    bravo:/export/ws/&/vers2.0 \
        /vers3.0    bravo:/export/ws/&/vers3.0 \
        /man        bravo:/export/ws/&/man
    drivers \
        /vers1.0    alpha:/export/ws/&/vers1.0 \
        /man        bravo:/export/ws/&/man
    tools \
        /           delta:/export/ws/&

    現在のマップはかなり長くなっていますが、まだ 5 つのエントリを含んでいるだけです。各エントリは、複数のマウントがあるために長くなっています。たとえば、/ws/compiler に対する参照は、vers1.0vers2.0、および man ディレクトリ用に 3 つのマウントを必要とします。各行の最後のバックスラッシュは、エントリが次の行まで続いていることを autofs に伝えるものです。実際、エントリは 1 つの長い行となっていますが、行ブレークやインデントのいくつかはエントリを読みやすくする目的で使用されています。tools ディレクトリには、すべてのサブプロジェクトに対するソフトウェア開発ツールが含まれているため、同じサブディレクトリ構造の対象とはなっていません。tools ディレクトリは単一のマウントのままです。

    この配置は、システムの管理者に大きな柔軟性を提供します。ソフトウェアプロジェクトでは、非常に大きなディスクスペースを消費します。プロジェクトのすべての過程を通じて、さまざまなディスクパーティションを再配置し、拡張することになる可能性もあります。このような変更が auto_ws マップに反映される場合は、/ws 下のディレクトリ階層構造が変更されることもなく、ユーザーに対する通知の必要はありません。

    サーバー alphabravo が同一の autofs マップを参照するため、それらのコンピュータにログインするすべてのユーザーは期待通りに /ws 名前空間を発見できます。このようなユーザーには、NFS マウントではなく、ループバックマウントを通じてのローカルファイルへの直接アクセスが提供されます。

共有名前空間にアクセスするために異なるアーキテクチャを設定する方法

表計算アプリケーションやワードプロセッサパッケージのようなローカルの実行可能ファイルやアプリケーションについて、共有名前空間を作成する必要があります。この名前空間のクライアントは、異なる実行可能フォーマットを必要とする複数の異なるワークステーションアーキテクチャを使用します。また、ワークステーションには、異なるリリースのオペレーシングシステムを使用するものもあります。

  1. nistabladm コマンドで auto_local マップを作成します。

    Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

  2. 共有名前空間について、サイト固有の名称を 1 つ選択します。この名称により、その名前空間に属するファイルとディレクトリが簡単に識別できるようになります。

    たとえば、その名称として /usr/local を選択した場合、/usr/local/bin パスは明らかにこの名前空間の一部です。

  3. ユーザーのコミュニティ識別を簡単にするため、autofs 間接マップを作成します。autofs 間接マップを /usr/local にマウントします。NIS (または NIS+) の auto_master マップ内で、次のエントリを設定します。


    /usr/local     auto_local     -ro

    なお、-ro マウントオプションは、クライアントがファイルやディレクトリのすべてに対して書き込みができないことを示します。

  4. サーバー上の任意のディレクトリをエクスポートします。

  5. auto_local マップ内に bin エントリを 1 つ含めます。

    ディレクトリ構造は、次のようになります。


     bin     aa:/export/local/bin 
  6. (省略可能) 異なるアーキテクチャのクライアントを処理するため、autofs CPU 変数を加えて、エントリの変更を行います。


    bin     aa:/export/local/bin/$CPU 
    • SPARC クライアント – 実行可能ファイルを /export/local/bin/sparc に配置する

    • IA クライアント – 実行可能ファイルを /export/local/bin/i386 に配置する

非互換のクライアントオペレーティングシステムのバージョンをサポートする方法

  1. クライアントのオペレーティングシステムのタイプを決定する変数と、アーキテクチャタイプを結合します。

    autofs OSREL 変数と CPU 変数を結合して、CPU タイプと OS リリースの両方を示す名前を作成することができます。

  2. 次のようなマップエントリを作成します。


    bin     aa:/export/local/bin/$CPU$OSREL

    SunOS 5.6 を動作させているクライアントについて、次のファイルシステムをエクスポートします。

    • SPARC クライアント – /export/local/bin/sparc5.6 をエクスポートする

    • IA クライアント – 実行可能ファイルを /export/local/bin/i3865.6 に配置する

複数のサーバーを通じて共用ファイルを複製する方法

読み取り専用の複製されたファイルシステムを共有する最良の方法は、フェイルオーバーの利用です。フェイルオーバーについての説明は、クライアント側フェイルオーバー機能を参照してください。

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. autofs マップ内のエントリを修正します。

    すべての複製サーバーのリストを、コンマ区切りのリストとして、次のように作成します。


    bin     aa,bb,cc,dd:/export/local/bin/$CPU
    

    autofs は、最も近いサーバーを選択します。サーバーが複数のネットワークインタフェースを持っている場合は、各インタフェースのリストを作成してください。autofs はクライアントに最も近接したインタフェースを選択し、NFS トラフィックの不必要なルーティングを避けるようにしています。

autofs セキュリティ制限を適用する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. NIS または NIS+ のネームサービス auto_master ファイル内に次のようなエントリを作成します。


    /home     auto_home     -nosuid
    

    nosuid オプションは、setuid または setgid ビットを設定したファイルをユーザーが作成できないようにします。

    このエントリは、汎用ローカルファイル /etc/auto_master 内の /home のエントリを無効にします。前述の例を参照してください。これは、+auto_master が、ファイル内の /home エントリより先に、外部のネームサービスマップを参照するためです。auto_home マップ内のエントリにマウントオプションがある場合、nosuid オプションは無効になります。そのため、auto_home マップ内でオプションを使用しないようにするか、nosuid オプションを各エントリに含める必要があります。


    注 -

    サーバー上の /home またはその下に、ホームディレクトリのディスクパーティションをマウントしないでください。


autofs で公共ファイルハンドルを使用する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. autofs マップに、次のようなエントリを作成します。


    /usr/local     -ro,public    bee:/export/share/local

    public オプションは、公共ハンドルの使用を強制します。NFS サーバーが公共ファイルハンドルをサポートしない場合、マウントは失敗します。

autofs で NFS URL を使用する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. 次のような autofs エントリを作成します。


    /usr/local     -ro    nfs://bee/export/share/local

    サービスは、NFS サーバー上で公共ファイルハンドルの使用を試みます。サーバーが公共ファイルハンドルをサポートしない場合、MOUNT プロトコルが使用されます。

autofs のブラウズ機能を無効にする

Solaris 2.6 から、インストールされる /etc/auto_master のデフォルトバージョンには、/home/net 用のエントリに追加された -nobrowse オプションが含まれます。さらに、アップグレード手順により、/home/net のエントリが修正されていない場合は、-nobrowse オプションがそれらのエントリに追加されます。ただし、このような変更を手動で加えるか、あるいはインストール後にサイト固有の autofs マウントポイントに対するブラウズ機能をオフにすることが必要な場合もあります。

ブラウズ機能をオフにする方法はいくつかあります。automountd デーモンに対してコマンド行オプションを使用してブラウズ機能を無効にすると、そのクライアントに対する autofs ブラウズ機能は完全に無効になります。あるいは、NIS 名前空間または NIS+ 名前空間の autofs マップを使用して、すべてのクライアントにおける各マップエントリのブラウズ機能を無効にします。また、ネットワーク規模の名前空間を使用していない場合は、ローカルな autofs を使用して、各クライアントにおける各マップエントリのブラウズ機能を無効にすることができます。

1 つの NFS クライアントの autofs ブラウズ機能を完全に無効にする方法

  1. NFS クライアント上で、スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. -n オプションを起動スクリプトに追加します。

    root として、/etc/init.d/autofs スクリプトを編集して、autmountd デーモンを開始する行に -n オプションを次のように追加します。


    /usr/lib/autofs/automountd -n \
                    < /dev/null> /dev/console 2>&1  # start daemon
  3. autofs サービスを再起動します。


    # /etc/init.d/autofs stop
    # /etc/init.d/autofs start
    

すべてのクライアントの autofs ブラウズ機能を無効にする方法

すべてのクライアントに対するブラウズ機能を無効にするには、NIS または NIS+ のようなネームサービスを使用する必要があります。それ以外の場合には、各クライアント上でオートマウンタマップを手動で編集する必要があります。この例では、/home ディレクトリのブラウズ機能が無効にされています。無効にする必要がある各間接 autofs ノードに対して、この手順を実行してください。

  1. ネームサービス auto_master ファイル内の /home エントリに -nobrowse オプションを追加します。


    /home     auto_home     -nobrowse 
    
  2. すべてのクライアント上で、automount コマンドを実行します。

    新規の動作は、クライアントシステム上で automount コマンドを実行した後、またはリブートした後に反映されます。


    # /usr/sbin/automount
    

選択したファイルシステムの autofs ブラウズ機能を無効にする方法

この例では、/net ディレクトリのブラウズ機能を無効にします。/home または他の autofs マウントポイントにも、同じ手順を使用できます。

  1. automount エントリが /etc/nsswitch.conf にあることを確認します。

    優先するローカルファイルエントリについては、ネームサービススイッチファイル内のエントリがネームサービスの前に files をリストする必要があります。たとえば :


    automount:  files nisplus

    これは、標準的な Solaris にインストールされるデフォルトの構成を示します。

  2. /etc/auto_master 内の +auto_master エントリの位置を確認します。

    名前空間内のエントリに優先するローカルファイルへの追加については、+auto_master エントリが /net の下に移動されている必要があります。


    # Master map for automounter
    #
    /net    -hosts     -nosuid
    /home   auto_home
    /xfn    -xfn
    +auto_master
    

    標準的な構成では、+auto_master エントリがファイルの先頭に配置されます。このように配置することにより、ローカルな変更が使用されなくなります。

  3. /etc/auto_master ファイル内の /net エントリに -nobrowse オプションを追加します。


    /net     -hosts     -nosuid,nobrowse 
    
  4. すべてのクライアント上で、automount コマンドを実行します。

    新規の動作は、クライアントシステム上で automount コマンドを実行した後、またはリブートした後に反映されます。


    # /usr/sbin/automount
    

NFS の障害追跡の方法

NFS の問題を追跡するには、問題が発生する可能性があるのは主に、サーバー、クライアント、およびネットワークであることを覚えておいてください。この節で説明するのは、個々の構成要素を切り離して、正常に動作しない部分を見つけ出そうというものです。リモートマウントを正常に実行するには、サーバー上で mountdnfsd が動作している必要があります。


注 -

/etc/dfs/dfstab ファイルに NFS 共有エントリがある場合、mountdnfsd はブート時に自動的に起動します。そのため、はじめて共有を設定する場合は、mountd および nfsd を手動で起動する必要があります。


デフォルトでは、すべてのマウントに -intr オプションが設定されます。プログラムが「server not responding」(サーバーが応答しません) というメッセージを出してハングした場合、これはキーボード割り込み (Ctrl-C) で終了できます。

ネットワークまたはサーバーに問題がある場合、ハードマウントされたリモートファイルにアクセスするプログラムの障害と、ソフトマウントされたリモートファイルにアクセスするプログラムの障害とは異なります。ハードマウントされたリモートファイルシステムの場合、クライアントのカーネルは、サーバーがふたたび応答するまで要求を再試行します。ソフトマウントされたリモートファイルシステムの場合、クライアントのシステムコールは、しばらく試行した後にエラーを返します。このエラーによって予想外のアプリケーションエラーやデータ破壊が発生する恐れがあるため、ソフトマウントは行わないでください。

ファイルシステムがハードマウントされていると、サーバーが応答に失敗した場合は、これにアクセスしようとするプログラムはハングします。この場合、NFS は次のメッセージをコンソールに表示します。


NFS server hostname not responding still trying

サーバーが少し後に応答すると、次のメッセージがコンソールに表示されます。


NFS server hostname ok

サーバーが応答しないような、ソフトマウントされたファイルシステムにアクセスしているプログラムは、次のメッセージを表示します。


NFS operation failed for server hostname: error # (error_message)

注 -

読み取りと書き込みをするデータを持つファイルシステム、または実行可能ファイルを持つファイルシステムは、ソフトマウントしないでください。エラーが発生する可能性があります。アプリケーションがそのようなソフトエラーを無視すれば、書き込み可能なデータが破壊される恐れがあります。またマウントされた実行可能ファイルが正常にロードされず、動作も正常に行われない可能性があります。


NFS の障害追跡の手順

NFS サービスがエラーになった場所を判断するには、いくつかの手順を踏まなければなりません。次の項目をチェックしてください。

上記の項目をチェックする過程で、ネットワークの他の部分が機能していないことに気づく場合があります。たとえば、ネームサービスやネットワークのハードウェアが機能していない場合があります。複数のネームサービスでのデバッグ手順については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』 で説明しています。また、上記の項目をチェックする過程で、クライアント側には問題がないことが判明することもあります。たとえば、作業領域のすべてのサブネットから、少なくとも 1 つの障害が発生したことが通知された場合などです。このような場合は、問題がサーバーかサーバー周辺のネットワークハードウェアで発生しているとみなし、クライアントではなく、サーバーでデバッグを開始する必要があります。

NFS クライアントの接続性を確認する方法

  1. クライアントから NFS サーバーに到達できることを確認します。クライアントで次のコマンドを入力します。


    % /usr/sbin/ping bee
    bee is alive

    コマンドを入力した結果、サーバーが動作していることがわかったら、NFS サーバーをリモートで確認します。NFS サーバーをリモートで確認する方法 を参照してください。

  2. クライアントからサーバーに到達できない場合は、ローカルネームサービスが動作していることを確認します。

    NIS+ クライアントで次のコマンドを入力します。


    % /usr/lib/nis/nisping -u
    Last updates for directory eng.acme.com. :
    Master server is eng-master.acme.com.
            Last update occurred at Mon Jun  5 11:16:10 1995
    
    Replica server is eng1-replica-58.acme.com.
            Last Update seen was Mon Jun  5 11:16:10 1995
  3. ネームサービスが実行されている場合は、クライアントが正しいホスト情報を受け取るために次のように入力します。


    % /usr/bin/getent hosts bee
    129.144.83.117	bee.eng.acme.com
  4. ホスト情報に誤りがなく、クライアントからサーバーに接続できない場合は、別のクライアントから ping コマンドを実行します。

    ping コマンドが失敗したら、サーバーで NFS サービスを確認する方法 を参照してください。

  5. 別のクライアントからサーバーに到達できる場合は、ping コマンドを使って元のクライアントとローカルネット上の他のシステムとの接続性を確認します。

    エラーになる場合は、そのクライアントのネットワークソフトウェアの構成を確認します (/etc/netmasks/etc/nsswitch.conf など)。

  6. ソフトウェアに問題がない場合は、ネットワークハードウェアを確認します。

    クライアントをネットワークの別の場所へ移動して確認します。

NFS サーバーをリモートで確認する方法

  1. NFS サーバーで NFS サービスが実行されていることを、次のコマンドを入力して確認します。


    % rpcinfo -s bee|egrep 'nfs|mountd'
     100003  3,2    tcp,udp,tcp6,upd6                nfs     superuser
     100005  3,2,1  ticots,ticotsord,tcp,tcp6,ticlts,udp,upd6  mountd  superuser

    デーモンが起動していない場合、NFS サービスを再起動する方法 を参照してください。

  2. サーバーで nfsd プロセスが応答することを確認します。

    クライアント上で、次のコマンドを入力し、サーバーからの UDP NFS 接続をテストします。


    % /usr/bin/rpcinfo -u bee nfs
    program 100003 version 2 ready and waiting
    program 100003 version 3 ready and waiting

    サーバーが動作している場合、プログラムとバージョン番号が表示されます。-t オプションを使用すると、TCP 接続を検査できます。上記コマンドでエラーになる場合は、サーバーで NFS サービスを確認する方法 に進んでください。

  3. サーバーで mountd が応答することを確認します。次のコマンドを入力します。


    % /usr/bin/rpcinfo -u bee mountd
    program 100005 version 1 ready and waiting
    program 100005 version 2 ready and waiting
    program 100005 version 3 ready and waiting

    サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。-t オプションを使用すると、TCP 接続を検査できます。エラーになる場合は、サーバーで NFS サービスを確認する方法 に進んでください。

  4. ローカル autofs サービスを使用していた場合は、そのサービスを確認します。


    % cd /net/wasp
    

    /net/home マウントポイントのうち、適切に動作する方を確認します。エラーになる場合は、次のコマンドを root としてクライアントから入力し、autofs サービスを再起動します。


    # /etc/init.d/autofs stop
    # /etc/init.d/autofs start
    
  5. サーバーのファイルシステムの共有が正常に行えることを確認します。


    % /usr/sbin/showmount -e bee
    /usr/src										eng
    /export/share/man						(everyone)

    サーバーの項目とローカルマウントエントリにエラーがないことをチェックします。名前空間も確認します。この例で最初のクライアントが eng ネットグループの中にない場合、/usr/src ファイルシステムはマウントできません。

    すべてのローカルファイルを調べて、マウント情報を含むエントリをすべて検査します。リストには、/etc/vfstab とすべての /etc/auto_* ファイルが含まれています。

サーバーで NFS サービスを確認する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. サーバーがクライアントに到達できることを確認します。


    # ping lilac
    lilac is alive
  3. サーバーからクライアントに到達できない場合は、ローカルネームサービスが動作していることを確認します。NIS+ クライアントで次のコマンドを入力します。


    % /usr/lib/nis/nisping -u
    Last updates for directory eng.acme.com. :
    Master server is eng-master.acme.com.
            Last update occurred at Mon Jun  5 11:16:10 1995
    
    Replica server is eng1-replica-58.acme.com.
            Last Update seen was Mon Jun  5 11:16:10 1995
  4. ネームサービスが動作している場合は、サーバーにあるネットワークソフトウェアの構成を確認します (/etc/netmasks/etc/nsswitch.conf など)。

  5. 次のコマンドを入力し、nfsd デーモンが動作していることを確認します。


    # rpcinfo -u localhost nfs
    program 100003 version 2 ready and waiting
    program 100003 version 3 ready and waiting
    # ps -ef | grep nfsd
    root    232      1  0  Apr 07     ?     0:01 /usr/lib/nfs/nfsd -a 16
    root   3127   2462  1  09:32:57  pts/3  0:00 grep nfsd

    サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。rpcinfo-t オプションを指定し、TCP 接続も確認します。これらのコマンドを使用するとエラーになる場合は、NFS サービスを再起動します。NFS サービスを再起動する方法 を参照してください。

  6. 次のコマンドを入力し、mountd デーモンが動作していることを確認します。


    # /usr/bin/rpcinfo -u localhost mountd
    program 100005 version 1 ready and waiting
    program 100005 version 2 ready and waiting
    program 100005 version 3 ready and waiting
    # ps -ef | grep mountd
    root    145      1 0 Apr 07  ?     21:57 /usr/lib/autofs/automountd
    root    234      1 0 Apr 07  ?     0:04  /usr/lib/nfs/mountd
    root   3084 2462 1 09:30:20 pts/3  0:00  grep mountd

    サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。rpcinfo-t オプションを指定し、TCP 接続も確認します。これらのコマンドを使用するとエラーになる場合は、NFS サービスを再起動します。NFS サービスを再起動する方法 を参照してください。

  7. 次のコマンドを入力し、rpcbind デーモンが動作していることを確認します。


    # /usr/bin/rpcinfo -u localhost rpcbind
    program 100000 version 1 ready and waiting
    program 100000 version 2 ready and waiting
    program 100000 version 3 ready and waiting

    サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。rpcbind がハングしている場合は、サーバーをリブートするか、rpcbind をウォームスタートする方法 に示す作業を行なってください。

NFS サービスを再起動する方法

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. リブートせずにデーモンを有効にするために、次のコマンドを入力します。


# /etc/init.d/nfs.server stop
# /etc/init.d/nfs.server start

/etc/dfs/dfstab に項目がある場合、デーモンは停止してから再起動します。

rpcbind をウォームスタートする方法

実行中の処理があるために NFS サーバーをリブートできなかった場合に、RPC を使用するすべてのサービスを再起動することなく rpcbind を再実行できます。この手順に従ってウォームスタートを完了します。

  1. スーパーユーザー、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. rpcbind の PID を確認します。

    ps を実行すると、PID の値が 2 列目に表示されます。


    # ps -ef |grep rpcbind
        root   115     1  0   May 31 ?        0:14 /usr/sbin/rpcbind
        root 13000  6944  0 11:11:15 pts/3    0:00 grep rpcbind
  3. SIGTERM シグナルを rpcbind プロセスに送ります。

    以下の例では、送信するシグナルは term で、プログラムの PID は 115 です (kill(1) のマニュアルページを参照)。このコマンドより、rpcbind/tmp/portmap.file/tmp/rpcbind.file に現在登録されているサービスのリストを作成します。


    # kill -s term 115
    

    注 -

    -s term オプションを使用して rpcbind プロセスを終了させないと、rpcbind のウォームスタートを完了できません。その場合は、サーバーをリブートすることによってサービスを再開する必要があります。


  4. rpcbind を再起動します。

    rpcbind を再度ウォームスタートして、 kill コマンドにより作成されたファイルが参照されるようにします。ウォームスタートすると、すべての RPC サービスを再起動することなくプロセスを再開することができます。rpcbind(1M) のマニュアルページを参照してください。


    # /usr/sbin/rpcbind -w
    

NFS ファイルサービスを提供しているホストを確認する方法

-m オプションを指定して nfsstat コマンドを実行し、最新の NFS 情報を取得します。現在のサーバー名は、「currserver=」の後に表示されます。


% nfsstat -m
/usr/local from bee,wasp:/export/share/local
 Flags: vers=3,proto=tcp,sec=sys,hard,intr,llock,link,synlink,
		acl,rsize=32768,wsize=32678,retrans=5
 Failover: noresponse=0, failover=0, remap=0, currserver=bee

mount コマンドに使用されたオプションを確認する方法

Solaris 2.6 およびそれ以降のリリースに出たパッチに置き換えられた mount コマンドでは、無効なオプションを指定しても警告されません。コマンド行に入力したオプション、または /etc/vfstab から指定したオプションが有効であるかどうかを判断するには、次の手順に従います。

たとえば、次のコマンドが実行されたとします。


# mount -F nfs -o ro,vers=2 bee:/export/share/local /mnt
  1. 次のコマンドを実行し、オプションを確認します。


    % nfsstat -m
    /mnt from bee:/export/share/local
    Flags:  vers=2,proto=tcp,sec=sys,hard,intr,dynamic,acl,rsize=8192,wsize=8192,
            retrans=5

    bee からマウントされたファイルシステムは、プロトコルのバージョンが 2 に設定されています。 nfsstat コマンドを使用しても、一部のオプションの情報は表示されませんが、オプションを確認するにはこれが最も正確な方法です。

  2. /etc/mnttab でエントリを確認します。

    mount コマンドは、無効なオプションをマウントテーブルに追加することができません。そのため、mnttab ファイルに記述されているオプションとコマンド行のオプションが一致していることを特定してください。このようにすると、nfsstat コマンドにより報告されなかったオプションを特定することができます。


    # grep bee /etc/mnttab
    bee:/export/share/local /mnt nfs	ro,vers=2,dev=2b0005e 859934818

autofs の障害追跡

autofs の使用時、問題に遭遇することがあります。この節では、問題解決プロセスについてわかりやすく説明します。この節は、2 つのパートに分かれています。

この節では、autofs が生成するエラーメッセージのリストを示します。このリストは、2 つのパートに分かれています。

各エラーメッセージの後には、そのメッセージの説明と考えられる原因が続きます。

障害追跡時には、詳細形式 (-v) オプションで autofs プログラムを開始します。そうしないと、理由がわからないまま問題に遭遇することになります。

次の節は、autofs のエラー時に表示されがちなエラーメッセージと、起こりうる問題についての説明です。

automount -v により生成されるエラーメッセージ


bad key key in direct map mapname

直接マップのスキャン中、autofs が接頭辞 / のないエントリーキーを発見しました。直接マップ内のキーは、完全パス名でなくてはなりません。


bad key key in indirect map mapname

間接マップのスキャン中、autofs が / を含むエントリーキーを発見しました。間接マップのキーは、パス名ではなく、単なる名称でなくてはなりません。


can't mount server:pathname: reason

サーバー上のマウントデーモンが、server:pathname により (1 つまたは複数) 指定されます。サーバー上のエクスポートテーブルを確認してください。


couldn't create mount point mountpoint: reason

autofs は、マウントに必要なマウントポイントを作成することができませんでした。この問題は、すべてのサーバーのエクスポートされたファイルシステムを階層的にマウントしようとする場合に頻繁に生じます。必要なマウントポイントは、マウントできないファイルシステム内にだけ存在するため、ファイルシステムはエクスポートできません。エクスポートされる親ファイルシステムは、読み取り専用でエクスポートされるため、マウントポイントを作成できません。


leading space in map entry entry text in mapname

autofs はオートマウントマップ内に先頭にスペースを含むエントリを発見しました。この問題は、通常、マップエントリが不当である場合に発生します。次のような例があります。


fake
/blat   		frobz:/usr/frotz 

この例では、autofs が 2 つ目の行に遭遇した場合に警告が生成されます。これは、最初の行がバックスラッシュ (\) で終端されていないためです。


mapname: Not found

必要とされるマップが配置されていません。このメッセージは、-v オプションが使用されている場合にだけ生成されます。マップ名のスペルとパス名を確認してください。


remount server:pathname on mountpoint: server not responding

autofs が、アンマウントしたファイルシステムの再マウントに失敗しました。


WARNING: mountpoint already mounted on

autofs が、既存のマウントポイント上にマウントしようとしました。このメッセージは、autofs 内で内部エラー (異常) が生じたことを意味しています。

その他のエラーメッセージ


dir mountpoint must start with '/'

オートマウンタのマウントポイントは、完全パス名で指定しなくてはなりません。マウントポイントのスペルとパス名を確認してください。


hierarchical mountpoints: pathname1 and pathname2

autofs は、マウントポイントが階層的な関係を持つことを許可しません。autofs マウントポイントは、他のオートマウントされたファイルシステムに含まれていてはなりません。


host server not responding

autofs が、server で示されるサーバーにコンタクトしようとしましたが、応答がありません。


hostname: exports: rpc_err

このエラーは、hostname からエクスポートリストを取得する場合に発生します。このメッセージは、サーバーまたはネットワークに問題があることを示します。


map mapname, key key: bad

マップエントリが不適切な形式であり、autofs が処理できません。そのエントリを再確認してください。そのエントリにエスケープする必要のある文字が含まれている可能性があります。


mapname: nis_err

このエラーは、NIS マップのエントリを参照する場合に発生します。このメッセージは、NIS に問題がある可能性があることを示しています。


mount of server:pathname on mountpoint:reason

autofs がマウントに失敗しました。サーバーまたはネットワークに問題のある可能性があります。


mountpoint: Not a directory

autofs は、ディレクトリではない mountpoint に示される場所に自分自身をマウントすることができません。マウントポイントのスペルとパス名を確認してください。


nfscast: cannot send packet: reason

autofs が、複製されたファイルシステムの場所を示すリスト内にあるサーバーへの照会パケットを送信できません。


nfscast: cannot receive reply: reason

autofs が、複製されたファイルシステムの場所を示すリスト内にあるいずれのサーバーからも応答を受けられません。


nfscast: select: reason

このようなエラーメッセージはすべて、複製されたファイルシステムのサーバーに対して ping を実行した際に問題が発生したことを示します。このメッセージは、ネットワークに問題がある可能性があることを示しています。


pathconf:pathconf: no info for server:pathname

autofs が、パス名に関する pathconf 情報の取得に失敗しました。(fpathconf(2) のマニュアルページを参照。)


pathconf: server: server not responding

autofs が、pathconf(2) に情報を提供する server に示されるサーバー上のマウントデーモンにコンタクトできませんでした。

autofs のその他のエラー

/etc/auto* ファイルが実行ビットセットを持っている場合、オートマウンタは次のようなメッセージを生成するマップの実行を試みます。

/etc/auto_home: +auto_home: not found

この場合、auto_home ファイルは不適切な権限をもつことになります。このファイル内の各エントリは、よく似たエラーメッセージを生成します。ファイルへのこのような権限は、次のコマンドを入力することにより取り消す必要があります。


# chmod 644 /etc/auto_home

NFS のエラーメッセージ

この節では、エラーメッセージとそのエラーを発生させる原因となった状態について説明し、1 つ以上の解決策を提供しています。



Bad argument specified with index option - must be a file

index オプションにはファイル名を指定する必要があります。ディレクトリ名は使用できません。


Cannot establish NFS service over /dev/tcp: transport setup problem

このメッセージは、名前空間の中のサービス情報が更新されなかったときによく発生します。またこのメッセージは、UDP の状態を示すことがあります。この問題を解決するには、名前空間の中のサービスデータを更新します。NIS+ の場合、エントリは以下のとおりです。


nfsd nfsd tcp 2049 NFS server daemon
nfsd nfsd udp 2049 NFS server daemon

NIS と /etc/services の場合、エントリは以下のとおりです。


nfsd    2049/tcp    nfs    # NFS server daemon
nfsd    2049/udp    nfs    # NFS server daemon

Cannot use index option without public option

share コマンドの index オプションに public オプションを指定してください。index オプションを使用するには、公開ファイルハンドルを定義する必要があります。


注 -

Solaris 2.6 より前の Solaris では、share コマンドを使って公共ファイルハンドルを設定する必要があります。Solaris 2.6 以降では、公共ファイルハンドルはデフォルトで / に設定されるため、このエラーメッセージは出力されません。



Could not start daemon : error

このメッセージは、デーモンが異常終了するか、システムコールにエラーが発生した場合に表示されます。error の文字列によって、問題が特定されます。


Could not use public filehandle in request to server

このメッセージは、public オプションが指定されているにもかかわらず NFS サーバーが公共ファイルハンドルをサポートしていない場合に表示されます。この場合、マウントが失敗します。この問題を解決するには、公共ファイルハンドルを使用しないでマウント要求を行うか、NFS サーバーが公共ファイルハンドルをサポートするように設定し直します。


daemon running already with pid pid

デーモンがすでに実行されています。新たにデーモンを実行する場合は、現在のデーモンを終了し、新しいデーモンを開始します。


error locking lock file

このメッセージは、デーモンに関連付けられているロックファイルを正しくロックできなかった場合に表示されます。


error checking lock file : error

このメッセージは、デーモンに関連付けられているロックファイルを正しく開くことができなかった場合に表示されます。


NOTICE: NFS3: failing over from host1 to host2

このメッセージは、フェイルオーバーが発生するとコンソールに表示されます。報告のためだけのメッセージです。


filename: File too large

NFS バージョン 2 クライアントが、2G バイトを超えるサイズのファイルにアクセスしようとしています。


mount: ... server not responding:RPC_PMAP_FAILURE - RPC_TIMED_OUT

実行レベルの誤りか、rpcbind の停止かハングのため、マウント先のファイルシステムを共有しているサーバーがダウンしているかまたは到達できないことを示すメッセージです。


mount: ... server not responding: RPC_PROG_NOT_REGISTERED

マウント要求が rpcbind によって登録されているにもかかわらず、NFS マウントデーモン (mountd) が登録されていないことを示すメッセージです。


mount: ... No such file or directory

リモートディレクトリまたはローカルディレクトリが存在しないことを示すメッセージです。ディレクトリ名のスペルをチェックするか、リモートディレクトリとローカルディレクトリの両方で ls コマンドを実行してください。


mount: ...: Permission denied

コンピュータ名が、クライアントのリストに載っていないか、マウントするファイルシステムにアクセスできるネットグループに含まれていないことを示すメッセージです。showmount -e を実行し、アクセスリストを確認してください。


nfs mount: ignoring invalid option "-option"

-option フラグが無効です。正しい構文を mount_nfs(1M) のマニュアルページで確認してください。


注 -

このエラーメッセージは、Solaris 2.6 以降、または Solaris 2.6 より前のバージョンにパッチを適用した状態で mount コマンドを実行したときには表示されません。



nfs mount: NFS can't support "nolargefiles"

NFS クライアントが、-nolargefiles オプションを使用して NFS サーバーからファイルシステムをマウントしようとしました。このオプションは、NFS ファイルシステムに対してはサポートされていません。


nfs mount: NFS V2 can't support "largefiles"

NFS バージョン 2 プロトコルでは、大規模ファイルを処理できません。大規模ファイルを扱う必要がある場合は、バージョン 3 を使用してください。


NFS server hostname not responding still trying

ファイル関連の作業中にプログラムがハングすると、NFS サーバーは停止します。このメッセージは、NFS サーバー (hostname) がダウンしているか、サーバーかネットワークに問題があることを示すものです。フェイルオーバー機能を使用している場合、hostname はサーバー名のリストになります。NFS クライアントの接続性を確認する方法を参照してください。


NFS fsstat failed for server hostname: RPC: Authentication error

さまざまな状況で発生するエラーです。もっともデバッグが困難なのは、ユーザーの属しているグループが多すぎる場合です。現在、ユーザーは最大 16 個のグループに属すことができますが、NFS マウントでファイルにアクセスしている場合は、それ以下になります。ただし、ユーザーが 17 個以上のグループに所属する方法もあります。NFS サーバーおよび NFS クライアントで Solaris 2.5 以降のリリースが動作している場合は、アクセス制御リストを使用して、必要なアクセス特権を与えることができます。


port number in nfs URL not the same as port number in port option

NFS URL のポート番号は、マウントの -port オプションのポート番号と一致していなければなりません。一致していないと、マウントは失敗します。同じポート番号にしてコマンドを再実行するか、ポート番号の指定を省略してください。原則として、NFS URL と -port オプションの両方にポート番号を指定しても意味がありません。


replicas must have the same version

NFS フェイルオーバー機能が正しく機能するためには、複製の NFS サーバーが同じバージョンの NFS プロトコルをサポートしていなければなりません。バージョン 2 とバージョン 3 のサーバーが混在することは許されません。


replicated mounts must be read-only

NFS フェイルオーバー機能は、読み書き可能としてマウントされたファイルシステムでは動作しません。ファイルシステムを読み書き可能としてマウントすると、ファイルが変更される可能性が高くなるためです。NFS のフェイルオーバー機能は、ファイルシステムがまったく同じであることが前提です。


replicated mounts must not be soft

複製されるマウントの場合、フェイルオーバーが発生するまでタイムアウトを待つ必要があります。soft オプションを指定すると、タイムアウトが開始してすぐにマウントが失敗するため、複製されるマウントには -soft オプションは指定できません。


share_nfs: Cannot share more than one filesystem with 'public' option

/etc/dfs/dfstab ファイルを調べて、-public オプションによって共有するファイルシステムを複数選択していないか確認してください。公開ファイルハンドルは、サーバーあたり 1 つしか設定できません。したがって、-public オプションで共有できるファイルシステムは 1 つだけです。


WARNING: No network locking on hostname:path: contact admin to install server change

NFS クライアントが、NFS サーバー上のネットワークロックマネージャと接続を確立できませんでした。この警告は、マウントできなかったことを知らせるためではなく、ロックが機能しないことを警告するために出力されます。