NFSとAutoFSの設定

動作確認OSは、Solaris 9である。

NFSサーバーの設定

NFSリソースをシェアするには shareコマンド、シェアを解除するには unshareコマンドを使用する。また、システムのブート時や shareall コマンドの使用時は、/etc/dfs/dfstabファイルで識別されるリソースは自動的にシェアされる。
  1. NFSデーモンの起動
  2. nfsd デーモンと mountd デーモンが動いてなければ、起動する。

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

  3. シェアするディレクトリの決定

  4. シェアするディレクトリを決める。新しいディレクトリを使用したい場合は、作成しておく。
  5. /etc/dfs/dfstabファイルの編集

  6. ファイルは存在するが、デフォルトでは何も設定されていない。shareコマンド行を追加する。

    例)
      share  -F nfs  -d "project dirs"  /share_dir
    
      引数は、以下の通り。
    
        -F : ファイルシステムのタイプ
        -o : NFS固有オプション
        -d : シェアデータの説明
        shareするディレクトリのパス名

  7. シェアの実行
  8.   # /usr/sbin/shareall

    環境によっては、rootユーザーが suコマンド実行前のユーザーの環境設定を引き継いでいることがある。この場合は"share: not found"のエラーが出るので、自分のプロファイルのパス設定に/usr/sbinを加える。



NFSクライアントの設定

NFSサーバーがシェアしているリソースをマウントするには mountコマンド、マウントを解除するには umountコマンドを使用する。また、システムのブート時や mountall コマンドの使用時は、/etc/vfstabファイルで識別されるリソースは自動的にマウントされる。
  1. マウントポイントの決定
  2. マウントポイントを決める。新しいディレクトリを使用したい場合は、作成しておく。
  3. /etc/vfstabファイルの編集
  4. エントリを追加する。

    例)
      HOST_NAME:/share_dir -  /point_dir    nfs -   yes -
    
      フィールドは、以下の通り。
    
      Device To Mount: シェアディレクトリのホスト名と
                       パス名(host:Path)
      Device To fsck : 使用しないので、'-'を指定
      Mount Point    : マウントポイント
      FS Type        : ファイルシステムのタイプは、
                       nfsを指定
      fsck Pass      : 使用しないので、'-'を指定
      Mount At Boot  : ブート時またはmountall実行時に
                       マウントする場合はyes、
                       それ以外はnoを指定
      Mount Option   : NFS固有オプション
           soft      : サーバーの応答がない場合、
                       エラーを返して終了する
           hard      : サーバーの応答がない場合、リソース
                       をマウントする試行を続ける
           intr      : hardマウントの待機中にキーボード
                       からの割り込みでプロセスを終了可
           nointr    : hardマウントの待機中にキーボード
                       からの割り込みでプロセスを終了不可
           retry=n   : マウント操作をn回再試行する
           retrans=n : NFS要求をn回再送する
           timeo=n   : NFSのタイムアウトを0.n秒に設定する
           ro        : リソースを読み取り専用でマウント
           rw        : リソースを読み書き可でマウント

  5. マウントの実行

  6. 明示的にマウント/アンマウント

      # mount -F nfs -o soft HOST_NAME:/share_dir /point_dir
      # unmount point_dir

    /etc/vfstabファイルに記述したシェアディレクトリをすべてマウント

      # mountall
      または
      システムのリブート



AutoFSの設定

AutoFS(Auto File System)サービスは、必要に応じてNFSリソースを自動的にマウント及びマウント解除する場合に使用するクライアント側のサービスである。
AutoFSは、NIS, NIS+のようなネーミングサービスと同時に導入されることが多いようである。例えば、ユーザーアカウントやホームディレクトリを一元管理するのに、ネーミングサービスとAutoFSが使用される。各マシンに別のホームディレクトリが存在する場合は、必要性は低いのかもしれない。


AutoFSの利点

  • ネットワークトラフィックを削減し、ブートとシャットダウンが高速化される。
  • すべてのユーザーが NFSリソースをマウントできる。
  • cd コマンド等でマウントポイントにアクセスするだけで、オートマウンタによりマウントが行われる。
  • マウント解除は自動的に行われるので、作業の終了後、ファイルシステムのマウントを解除する必要はない。デフォルトでは 10分間アクセスがないと、マウントは解除される。ただし、いずれかのユーザーがオートマウントされたディレクトリ上にいる場合は、解除されない。



AutoFSの設定方法
  1. AutoFSの起動
  2. automountd デーモンが動いてなければ、起動する。

      # /etc/init.d/autofs start

  3. AutoFSマップの設定

  4. AutoFSサービスの構成は、AutoFSマップで定義する。
    /etc/auto_master ファイルや直接マップに変更を加えた場合は、automount コマンドの手動による実行が必要となる(間接マップの場合は必要なし)。
    以下に、それぞれのマップの概略を記述する。

    /etc/auto_masterファイル
    マップのマスターファイル。ディレクトリと間接マップを関連付け、直接マップを参照する。

    例)
      +auto_master
      /net        -hosts      -nosuid,nobrowse
      /home       auto_home   -nobrowse         → 間接マップ
      /xfn        -xfn
      /-          auto_direct                   → 直接マップ
    
    マウントポイント :
        マウントポイントのフルパス名の先頭部分のパス
        '/-'なら直接マップ
    
    サービスマップ名 :
        直接/間接マップ
        '-'で始まる場合はネームサービスからマップが検索される。
        それ以外の場合はローカルの/etcからマップが検索される。
    
    マウントオプション :
        NFS固有のマウントオプション

    間接マップ(/etc/auto_home)

    例)
      guest    -rw,nosuid   nfsserver:/usr/home/guest
    
    キー :
        マウントポイントのフルパス名の残りの部分
        フルパス名の先頭部分のパスは、/etc/auto_masterに
      記述されている。
    
    マウントオプション :
        NFS固有のマウントオプション
    
    NFSリソース :
        NFSサーバーがシェアするファイルシステム

    直接マップ(/etc/auto_direct)

    例)
      /usr/games    -ro   nfsserver:/usr/games
    
    キー              : マウントポイントのフルパス名
    マウントオプション: NFS固有のマウントオプション
    NFSリソース       : NFSサーバーがシェアするファイルシステム

  5. オートマウントの運用方法

  6. 設定を行った後で、ls でマウントポイントがあるディレクトリを表示してもマウントは実行されないので、その下にマウントされているべきディレクトリは見えない。
    次のように、cd コマンドで直接ディレクトリにアクセスするか、vi 等のコマンドでリソースに直接アクセスする必要がある。

    例)
      $ cd /home/guest
      $ vi /home/guest/hoge.txt