是什么启动了所有这些 rpc.statd 进程?

是什么启动了所有这些 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

rpc.statd同样奇怪的是,就 rpcbind 而言, 其中一个进程显然已经篡夺了原始进程。运行rpcinfo报告在以下端口上显示 statd:

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

rpc.statd这些对应于 PID 26145(您可以看到它是上面输出中的一个 实例ps)。

如果一切正常,这不会是个问题,但是昨天系统开始遇到 NFS 挂载问题……任何尝试挂载新文件系统都会导致:

mount.nfs: mount system call failed

终止所有rpc.statd服务“解决”了这个问题,但我们对这里发生的事情感到困惑。我们从未在类似配置的 CentOS 5 系统上看到过这种行为。

答案1

好吧,这似乎部分是我们的错,部分是 RedHatauthconfig命令中的错误。我们的 Puppet 配置导致authconfig --updateall每小时运行一次。这是不必要的,但通常不应该是个问题……除非authconfig重新启动rpcbind服务。

重新启动rpcbind会导致它忘记所有已注册的服务。虽然随后authconfig会重新启动与 NIS 相关的服务,但这会导致rpc.statd仍在运行但不再注册的情况rpcbind——这使得它从尝试通过 找到它的应用程序的角度来看实际上是不可见的rpcbind

我已经修复了我们的 Puppet 配置,所以它不再authconfig像这样调用,并且我已经打开了 bug818246与 RedHat。

相关内容