NFSv4 エラーがありますが、NFSv3 にエラーはありません。

NFSv4 エラーがありますが、NFSv3 にエラーはありません。

私はRHEL6.5およびRHEL7ホストを使用してRHEL6.5クライアント(すべての仮想マシン)用のNFSソリューションを開発しています。現在、RHEL7 ホストと RHEL6.5 クライアントは正常に動作します。問題はRHEL6.5ホストにあります。

この問題は、昨年はなかった問題が最近サーバーで発生したため、制御できないサーバーのいくつかの側面が原因で発生する可能性があります。これが問題だと思われる場合は、上司にこれを証明する方法を提案してください。新しい機械購入手順を開始してください。

ソリューションはもともとNFSv4を使用するように設計されており、ソリューションはうまく機能しました。しかし、RHEL6.5ホストはRHEL7ホストほど情熱的ではありません。マウントは成功しましたが、ファイルアクセスは機能しません。たとえば、端末cpで停止します。 - お客様のショーをご覧ください。標準によると、このエラーコードは文書化されています。lesstail/var/log/messagesstate manager: lease expired failed on NFSv4 server nfs_master with error 10018NFS4ERR_RESOURCEここ。リソースの問題を解決する試みは、nfsdコマンドラインでプロセス数を増やすことでしたが、/etc/sysconfig/nfs役に立ちませんでした。エクスポートされたディレクトリがNFSサーバー自体にマウントされている場合でも、この問題が発生する可能性があります。

ホストまたはクライアントのログに表示されないことは、別のエラーである10022か、少なくともNFSv4エラーコードであると仮定します。tcpdumpNFS トラフィックが通過するインターフェイスの場合にのみ表示されます。IP test-host.nfs > test_client-1.3297002672: reply ok 52 getattr ERROR: unk 10022このエラーコードが実際にNFSv4エラーコードである場合は記録してくださいNFS4ERR_STALE_CLIENTIDここ

mountコマンドがsetに変更されると、nfsvers=3同様の操作がcp成功し、クライアントまたはホストにエラーは生成されません。最初の試行には約5秒かかり、その後の動作ははるかに高速になります。

一度に最大4つのクライアントインストールをエクスポートして読み取ることができ、同じファイルがある可能性があります。

だから私の質問は次のとおりです。

  1. 説明ではどのサーバー側のリソースが参照されますかNFS4ERR_RESOURCE
  2. NFS4ERR_RESOURCEエラーをどのように解決しますかNFS4ERR_STALE_CLIENTID
  3. NFSv3は期待どおりに機能しますが、NFSv4は機能しないのはなぜですか?

nfs-utilsバージョンとリリース(クライアントおよびRHEL6.5ホスト用):1.2.3.39.el6

mount注文する:

  • mount -n -t nfs -o ro,noexec,timeo=10,retrans=3,retry=0,soft,rsize=32768,intr,noatime
  • mount -n -t nfs -o nfsvers=3,ro,noexec,timeo=10,retrans=3,retry=0,soft,rsize=32768,intr,noatime

編集する:この問題の解決策は、NFSv3プロトコルに置き換えることです。みんな大丈夫です。私はこの質問に「NFSv3へのフォールバック」と答えません。しかし、この質問はおそらく答えを見つけるにはあまりにもニッチな質問でしょう。

答え1

問題のRHEL 6.5を制御できないと言われましたが、NFSドメインが一致していることを確認しましたか? NFSv3にはそのようなものはありませんが、NFSv4では必要です。それ以外の場合、マウントは引き続き機能しますが、説明どおりにファイルアクセスは奇妙に機能します。

/etc/idmapd.conf で NFS ドメインを設定すると、見てみる価値があります。

答え2

テストを試し-fstype=nfs4,rw,intr,hard,proto=tcp,port=2049,aclて、2049/tcp がサーバーのクライアントで開いていることを確認してください。途中にファイアウォールがある場合は、2049/tcp も通過する必要があります。

関連情報