2台のマシン間で基本的なnfs4を動作させようとしています(それらをserverおよびclientと呼びましょう)。私は このマニュアルを文字で追ってみましたが、役に立ちませんでした。ここに私が得ているものがあります:
root@server#: tail -n 2 /etc/exports
/export client-ip/24(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
/export/users client-ip/24(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
root@server#: showmount --exports
Export list for server-ip:
/export/users client-ip/24
/export client-ip/24
サーバー側は問題ないようです。ディレクトリが存在し、その許可が付与されます(775)。アドレス(client-ipおよびserver-ip)は数値です-明白な理由でここでは頭字語に置き換えられます。次に、クライアント:
root@client#: mount -v -t nfs4 server-ip:/export /opt/nfstest
mount.nfs4: timeout set for Thu Apr 14 15:52:31 2011
mount.nfs4: text-based options: 'clientaddr=client-ip,addr=server-ip'
mount.nsf4: mount(2): No such file or directory
mount.nfs4: mounting server-ip:/export failed, reason given by server:
No such file or directory
リモートフォルダを受け入れないだけです。上記の1つとは別に、server-ip:/export/users
、server-ip:/
を試しました-同じ結果が得られました。クライアントはサーバーにアクセスできます:
root@client#: telnet server-ip 2049
Trying server-ip...
Connected to server-ip.
Escape character is '^]'.
root@client#: showmount -e server-ip
Export list for server-ip:
/export/users client-ip/24
/export client-ip/24
ローカルディレクトリ/opt/nfstest
が存在します。モジュールnfs
がnfsクライアントにロードされます。サーバーとクライアントの間にファイアウォールはありません。他に何を確認する必要がありますか?
追加情報:Amazon ec2ボックスで実行されているUbuntu Lucid(10.04.2)。 NFSバージョン(nfs-common
、nfs-kernel-server
)は1:1.2.0-4ubuntu4.1です。
NFSv4で使用する場合、値0は特別な意味を持ちます。 NFSv4には、エクスポートされたファイルシステム全体のルートという概念があります。 fsid = 0でエクスポートされたエクスポートポイントがこのルートとして使用されます。
したがって、/ etc/exportsにfsid = 0を含めてから、次を実行します。
mount -t nfs4 <serverip>:/ /localmount/point
およびnot
mount -t nfs4 <serverip>:/exports /localmount/point
それでおしまい。
私の経験では、NFSv4では大文字と小文字が区別されるため、nfsv3からnfsv4(クライアントlinux、サーバーwintel)に切り替えることを余儀なくされたとき、サーバーからエクスポートされたパスを修正する必要がありました。