マウント nfs がクライアントを停止します。

マウント nfs がクライアントを停止します。

サーバー側には次のものがあります。

CentOS 7 updated
Kernel 4.13.12-1.el7.elrepo.x86_64
nfs-utils-1.3.0-0.48.el7_4.x86_64
libnfsidmap-0.25-17.el7.x86_64

クライアント側ではまったく同じ環境です。

私たちはiptablesを持っていますが、クライアントとサーバー(すべてのプロトコルのすべてのポート)間のすべての通信を可能にします。

ほとんどのクライアントは、問題なくエクスポートしたNFS共有を接続してマウントできます。彼らは同じ環境と同じiptableルールを持っています。

そのうちのいくつかはNFS共有をマウントできませんでした。これに関するログはありません。

問題のクライアントの1つであるCLIENT-Aに電話をかけてNFSを手動でマウントしようとすると、エラーや警告、またはログの種類は表示されません。

[root@]#  mount -vvv -t nfs MYSERVER:/home/shared/ /home/shared/

時々、このコマンドは端末を停止したり、そうでないこともあります。コマンドをキャンセルするか、新しいsshを実行して/ homeでlsを実行しようとすると、端末は停止します。

[root@]# ls /home/sha

(Tabを押すとエラーなしでクラッシュします。)手動で作成してEnterを押しても同じ状況が発生します。競合は、サーバーを再起動した後にのみ停止します。 "lsof"コマンドも中断されます。

そして、上記のいずれの場合も、タイムアウトエラーはありません。彼らは決して終わりません。再起動して再試行しましたが、成功しませんでした。繰り返します。彼らは同じ環境を持っています。ハードウェアとIPは異なりますが、ソフトウェアは同じレプリカと考えることができます。はい、同じ結果を保証するわけではありませんが、通常、ソフトウェアのアイデアは同じ結果を表示することです。

NFSサーバーへのTCP接続を手動で作成できます。

[root@localhost]# telnet MYSERVER 2049
Trying MYSERVERIP...
Connected to MYSERVER.
Escape character is '^]'.

私も何が起こっているのかについての記録はありません。私は彼らがnfsバージョン4.1(このモジュールの最後のバージョン)への接続を作成しようとしていると思います。バージョン3を手動で試しましたが、成功しませんでした。

サーバー側で「rpcinfo -p localhost」を実行しましたが、奇妙な問題が見つかりました。一部のクライアントはバージョン4を使用し、一部は3、2、または1(2または1???!!!)を使用していました。

[root@ ~]# rpcinfo -p  localhost
program vers proto   port  service
100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp  59356  status
100024    1   tcp  50117  status
100005    1   udp  20048  mountd
100005    1   tcp  20048  mountd
100005    2   udp  20048  mountd
100005    2   tcp  20048  mountd
100005    3   udp  20048  mountd
100005    3   tcp  20048  mountd
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100227    3   tcp   2049  nfs_acl
100003    3   udp   2049  nfs
100227    3   udp   2049  nfs_acl
100021    1   udp  58205  nlockmgr
100021    3   udp  58205  nlockmgr
100021    4   udp  58205  nlockmgr
100021    1   tcp  38641  nlockmgr
100021    3   tcp  38641  nlockmgr
100021    4   tcp  38641  nlockmgr

そのため、NFSV3を使用するクライアントを見つけて、次のようにしました。

[root@ ~]# mount -vvv -t nfs -o vers=4     MYSERVER:/home/shared/ /home/shared/
mount.nfs: timeout set for Sun Nov 12 14:03:02 2017
mount.nfs: trying text-based options 'vers=4.1,addr=MYSERVER,clientaddr=MYCLIENTIP'

停止します。しかし、vers = 3を試してみるとうまくいきます。

[root@ ~]# mount -vvv -t nfs -o vers=3 MYSERVER:/home/shared/ /home/shared/
mount.nfs: timeout set for Sun Nov 12 14:03:12 2017
mount.nfs: trying text-based options 'vers=3,addr=MYSERVERIP'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying MYSERVERIP prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying MYSERVERIP prog 100005 vers 3 prot UDP port 20048

サーバー側では、ディレクトリは同じパラメータを使用して1行ずつ別のIPにエクスポートされます。

(ro,async,all_squash)

CLIENT-A の問題に戻り、CLIENT-A の tcp および udp ポートで新しい接続が発生するたびにサーバー側にログを記録しようとしました。 CLIENT-Aがポートを開こうとしている様子が見えます。そして、多くの努力をしてきました。だから問題は顧客ではないと思います。おそらく。

だから私の質問は次のようになります

  1. これから問題を解決するには?リモートマウントが成功した場合にのみ、サーバー側RPCのログがあります。
  2. rpcinfo -pがnfs4のすべてのバージョンを表示するのはなぜですか?
  3. ((1)に関して)同じ構成サーバーがnfs v4.1では中断されますが、3では中断されないのはなぜですか?さて、信頼性の問題は知っていますが、エラーのログがないことが最大の問題です。

時間をいただきありがとうございます:)

関連情報