Linux NFSサーバにOpenSolaris/Solaris10をNFSクライアントとして接続する方法(NFS v3)
NFSv4でのNFS運用は今のところ行っていないので、、、
LinuxのNFSサーバからエクスポートされたディレクトリをOpenSolaris/Solaris10 NFSクライアントでマウントしようとすると、マウントできない。原因詳細は不明だが、Linux NFSサーバとSolaris NFSクライアントでの、NFSバージョン確認処理がうまく動作しないらしい。
まず、NFSv4は利用していないので、NFSv3を使用することにする。
Linux NFSサーバでは、/etc/exportsファイルに、
/export_dir solaris_client(rw,no_subtree_check)
のように記述する。そして、exportfs -aを実行する。設定変更後の反映時には、exportfs -raを実行する。
OpenSolaris NFSクライアントは、上記でエクスポートされたファイルを、NFSv3でマウントしてやればよい。
コマンドラインからだと、
OpenSolaris# mount -F nfs -o vers=3 linux_nfs_server:/export_dir /mount_point
また、デフォルトでNFSv3を使用するようにするには、/etc/default/nfsファイルでNFSクライアントのマウント要求バージョンでNFSv3以下にすればよい。以下の行はインストール直後はバージョンが4、かつ'#'でコメントアウトされているので、これを以下の記述に変更する。
NFS_CLIENT_VERSION=3
そして、svcadm enable nfs/clientすると、以下のように、versオプション指定なしでマウントできるようになる。既にnfs/clientが動作している時の設定反映はsvcadm restart nfs/clientで行える。
OpenSolaris# mount -F nfs linux_nfs_server:/export_dir /mount_point
Solaris10の場合は、上記設定だけではうまく行かない。LinuxのNFSサーバは、デフォルトではポート番号1024より小さなinternetポートから発したマウント要求しか受け付けない。ところが、Solaris10は、これより大きな値のポートからマウント要求を発行する、というのが原因のようだ。なので、Linux NFSサーバの/etc/exportsファイルにinsecureオプションを追加する。
/export_dir solaris10_client(rw,insecure,no_subtree_check)
Solaris10 NFSクライアントのマウント方法は、OpenSolarisと同様で良い。
なお、OpenSolarisとSolaris10の動作の違いを、Linuxならtcpdump/Solarisならsnoopで調べると、OpenSolarisはTCPプロトコルでNFSサーバにマウント要求を発行するが、Solaris10はUDPプロトコルで、ポートマッパを利用してマウント要求をする、ということがわかる。恐らく、このポートマッパ関連の動作の影響で、Solaris10は1024より大きなポートからマウント要求を発行していると思われる。