■ Linux NFSサーバの設定 2010/03/04 更新
設定手順
  1. 必要なサービスの確認
    # /etc/init.d/portmap status
    portmap (pid 2500) を実行中...

    # /etc/init.d/nfs status
    rpc.mountd (pid 27884) を実行中...
    nfsd (pid 27881 27880 27879 27878 27877 27876 27875 27874) を実行中...
    rpc.rquotad (pid 27869) を実行中...

    # /etc/init.d/nfslock status
    rpc.statd (pid 2546) を実行中...

    # rpcinfo -p
    プログラム バージョン プロトコル ポート
    100000 2 tcp 111 portmapper
    100000 2 udp 111 portmapper
    100024 1 udp 10002 status
    100024 1 tcp 10002 status
    100011 1 udp 10005 rquotad
    100011 1 tcp 10005 rquotad
    100003 2 tcp 2049 nfs
    100003 2 udp 2049 nfs
    100021 1 udp 10011 nlockmgr
    100021 1 tcp 10010 nlockmgr
    100005 1 udp 10004 mountd
    100005 1 tcp 10004 mountd
      
  2. エクスポートファイルの編集 (共有設定)
    # vi /etc/exports
    緑:デフォルト、オレンジ:変更箇所
     
    /data1※1 192.168.254.0/255.255.255.0※2(rw※3,sync※4,no_root_squash※5)
    /data2    192.168.100.33(rw,sync,no_root_squash,insecure※7)
    ※1 共有するディレクトリ。
    ※2 使用 (マウント) を許可するクライアント。
    ※3 「rw」 はクライアントに書き込みを許可する。 デフォルトは 「ro」 でリードオンリー。
    ※4 「sync」 はファイルシステムへの書き込みを同期して行う。 デフォルトは 「async」 で非同期書き込み。
    信頼できるネットワークが無い場合は、スループットは低下するが同期書き込みを選ぶ。
    ※5 スカッシュの設定。 デフォルトは 「root_squash」 でクライアントのスーパユーザは、NFSサーバにアクセスした際にNFSサーバ上の 「nfsnobody」 ユーザとしてアクセスされる。 これにより重要なファイルをネットワークユーザから保護している。 「no_root_squash」 によりスーパーユーザの権限でアクセス可能となる。
    anonuid=500 anonymous アクセスする場合の uid を明示する。 デフォルトは nfsnobody(65534) となる。
    squash_uids=600-700 指定した uid を anonymous にマッピングする。 uid=600~700 は nfsnobody となる。
    all_squash 全ての uid とgid を anonymous にマッピングする。
    no_root_squash クライアントの root のアクセスをサーバ上の root として扱う。 他のsquash設定よりも優先される。
    ※6 このオプションが設定されたクライアントはそのディレクトリにアクセスできなくなる。
    ※7 「insecure」 はクライアントからのアクセスに使用するポートを制限しない。 デフォルトは 「secure」 で 1023 以下の well known port からの接続のみを許可する。 NFSクライアントがMACの場合はこのオプションが必要。
      
  3. エクスポートの実行と確認 (共有設定を反映)
    # exportfs -rv ※1
    exporting 192.168.254.0/255.255.255.0:/data1
    exporting 192.168.100.33:/data2

    # exportfs -v
    /data1 192.168.254.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check,
    anonuid=65534,anongid=65534)
    /data2 192.168.100.33(rw,wdelay,insecure,no_root_squash,no_subtree_check,
    anonuid=65534,anongid=65534)

    # showmount -e ※2
    Export list for rhel53-cl1.localdomain:
    /data2 192.168.100.33
    /data1 192.168.254.0/255.255.255.0
    ※1 /etc/exports の記述どおりにエクスポートを実施する。 エントリを削除した場合、アンエクスポートされる。
      a : /etc/exports の記述を追加する。 アンエクスポートは行われない。
      r : /etc/exports の記述と同期する。 削除したエントリはアンエクスポートされる。
      u : アンエクスポートを行う。
      v : エクスポート中の情報を詳細に表示する。
    ※2 自分をNFSマウントしているホストを表示する。
 
 

 ■ Linux NFSクライアントの設定 2010/03/04 更新
設定手順
  1. 一時的な手動マウント
    # mount -t nfs -o soft 192.168.10.10:/home /home

    # mount -t nfs -o hard,intr 192.168.10.10:/home /home
      
  2. 起動時にマウントする。 (見やすくするために fstab の列を揃えています。)
    # vi /etc/fstab
    緑:デフォルト、オレンジ:変更箇所
     
    LABEL=/                /         ext3   defaults                   1 1
    LABEL=/var             /var      ext3   defaults                   1 2
    LABEL=/boot            /boot     ext3   defaults                   1 2
    tmpfs                  /dev/shm  tmpfs  defaults                   0 0
    devpts                 /dev/pts  devpts gid=5,mode=620             0 0
    sysfs                  /sys      sysfs  defaults                   0 0
    proc                   /proc     proc   defaults                   0 0
    LABEL=SWAP-sda3        swap      swap   defaults                   0 0
    LABEL=/home            /home     ext3   defaults,usrquota,grpquota 0 0
    192.168.100.20:/data   /data     nfs    hard,intr,bg               0 0
    マウントオプション
    soft ネットワーク障害が発生した場合、タイムアウトし接続は解除される。
    hard ネットワーク障害が発生した場合でも、接続は解除されず回復を待つが、その間ソフトウェアはハングアップする。
    intr 割り込みにより、強制的に接続を解除を可能にする。
    bg マウントをバックグラウンドで行う。 起動時にマウント処理を待たずに、処理を進めることが可能。