web-dev-qa-db-ja.com

これらすべてのrpc.statdプロセスを起動するのは何ですか?

CentOS 6 x86_64を実行しているサーバーでは、rpc.statdで異常なアクティビティが多数発生しています。 rpc.statdを介して静的ポートで実行するように/etc/sysconfig/nfsを構成しました。

MOUNTD_PORT=892
STATD_PORT=662
QUOTAD_PORT=875

そして、これは期待どおりにrpc.statdを実行し、このポートでリッスンすることになります:

# ps -fe | grep rpc.statd | grep 662
rpcuser  23129     1  0 Apr30 ?        00:00:00 rpc.statd -p 662

奇妙なことに、このシステムでは、rpc.statdフラグで実行されている他の--no-notifyインスタンスも多数あります。

rpcuser    808     1  0 02:23 ?        00:00:00 rpc.statd --no-notify
rpcuser   2052     1  0 07:17 ?        00:00:00 rpc.statd --no-notify
rpcuser   3558     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser   5787     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser   6499     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser   8834     1  0 03:21 ?        00:00:00 rpc.statd --no-notify
rpcuser   9661     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser  13702     1  0 00:08 ?        00:00:00 rpc.statd --no-notify
rpcuser  14813     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser  15375     1  0 08:39 ?        00:00:00 rpc.statd --no-notify
rpcuser  15376     1  0 04:26 ?        00:00:00 rpc.statd --no-notify
rpcuser  19782     1  0 09:36 ?        00:00:00 rpc.statd --no-notify
rpcuser  20491     1  0 05:36 ?        00:00:00 rpc.statd --no-notify
rpcuser  23136     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser  23320     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser  26145     1  0 10:10 ?        00:00:00 rpc.statd --no-notify
rpcuser  26480     1  0 06:24 ?        00:00:00 rpc.statd --no-notify
rpcuser  26598     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify
rpcuser  26821     1  0 01:15 ?        00:00:00 rpc.statd --no-notify
rpcuser  28255     1  0 Apr30 ?        00:00:00 rpc.statd --no-notify

また、奇妙なことに、rpcbindに関する限り、これらのプロセスの1つが元のrpc.statdプロセスを奪ったようです。 rpcinfoを実行すると、次のポートでstatdが報告されます。

# rpcinfo -p
...
100024    1   udp  34322  status
100024    1   tcp  41686  status

これらはPID 26145に対応します(これは、上記のpsからの出力のrpc.statdインスタンスの1つです)。

すべてが機能していればこれは問題になりませんが、昨日システムでNFSマウントの問題が発生し始めました...新しいファイルシステムをマウントしようとすると、次のような結果になります。

mount.nfs: mount system call failed

すべてのrpc.statdサービスを終了することで問題は「解決」されましたが、ここで何が行われているのかについては困惑しています。同様に構成されたCentOS 5システムでこの動作を確認したことはありません。

4
larsks

まあ、これは一部には私たちのせいであり、一部にはRedHatのauthconfigコマンドのバグのようです。私たちの人形の設定が原因でしたauthconfig --updateallは1時間ごとに実行されます。これは不要でしたが、通常は問題にはなりません... authconfigrpcbindサービスを再起動することを除きます。

rpcbindを再起動すると、登録されているすべてのサービスが失われます。 authconfigはNIS関連のサービスを再起動しますが、これによりrpc.statdはまだ実行中ですが、rpcbindに登録されていません。これにより、rpcbindを介してアプリケーションを見つけようとするアプリケーションからは、事実上見えなくなります。

このようにauthconfigを呼び出さないようにPuppet設定を修正し、RedHatでバグ 818246 を開きました。

2
larsks