我目前正在帮助建立一个实验室,该实验室将使用无盘节点进行一些 MPI 和 CUDA 计算。
选择的发行版是 CentOS 7。为了设置无盘节点,我遵循了指南这里。
我成功启动了无盘节点,甚至运行了一些 MPI 测试程序。因此,在连接、防火墙、nfs 导出等方面一切正常。
问题是,在启动无盘节点约 12 小时后,充当 dhcp、tftp 和 nfs 服务器的主服务器似乎从 nfs 服务中踢出无盘节点,从而导致kernel: nfs: server <servername> not responding, still trying
客户端上出现消息。那时我也停止从无盘客户端收到 ping 回复。由于客户端的根文件系统是通过 NFS 获取的,我想这会使客户端处于“损坏”状态,只允许我使用 Ctrl+Alt+Del 或机器的重置开关重新启动。无论经过多少次,客户端都不会重新连接。检查主服务器上的 /var/log/messages 我在我的观点中发现了这一点
Oct 8 23:30:50 myhostname kernel: NFSD: purging unused client (clientid e87d62f6)
:
这是日志的较大部分:
Oct 8 23:30:17 myhostname kernel: nfsv4 compound op ffff885c713d4080 opcnt 4 #3: 3: status 0 Oct 8 23:30:17 myhostname kernel: nfsv4 compound op #4/4: 9 (OP_GETATTR) Oct 8 23:30:17 myhostname kernel: nfsd: fh_verify(36: 01070001 00260308 00000000 996a1153 334c49c8 b8768c81) Oct 8 23:30:17 myhostname kernel: nfsv4 compound op ffff885c713d4080 opcnt 4 #4: 9: status 0 Oct 8 23:30:17 myhostname kernel: nfsv4 compound returned 0 Oct 8 23:30:17 myhostname kernel: --> nfsd4_store_cache_entry slot ffff885c72a66000 Oct 8 23:30:17 myhostname kernel: renewing client (clientid 5bbb153f/e87d62f7) Oct 8 23:30:50 myhostname kernel: NFSD: laundromat service - starting Oct 8 23:30:50 myhostname kernel: NFSD: purging unused client (clientid e87d62f6) Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: cmd: remove Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: arg: 4c696e7578204e465376342e31206e6f64653033 Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: env0: (null) Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: env1: (null) Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: /sbin/nfsdcltrack return value: 0 Oct 8 23:30:50 myhostname kernel: NFSD: laundromat_main - sleeping for 57 seconds Oct 8 23:31:48 myhostname kernel: NFSD: laundromat service - starting Oct 8 23:31:48 myhostname kernel: NFSD: purging unused client (clientid e87d62f7) Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: cmd: remove Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: arg: 4c696e7578204e465376342e31206e76696469613031 Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: env0: (null) Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: env1: (null) Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: cmd: remove Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: arg: 4c696e7578204e465376342e31206e6f64653033 Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: env0: (null) Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: env1: (null) Oct 8 23:30:50 myhostname kernel: nfsd4_umh_cltrack_upcall: /sbin/nfsdcltrack return value: 0 Oct 8 23:30:50 myhostname kernel: NFSD: laundromat_main - sleeping for 57 seconds Oct 8 23:31:48 myhostname kernel: NFSD: laundromat service - starting Oct 8 23:31:48 myhostname kernel: NFSD: purging unused client (clientid e87d62f7) Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: cmd: remove Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: arg: 4c696e7578204e465376342e31206e76696469613031 Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: env0: (null) Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: env1: (null) Oct 8 23:31:48 myhostname kernel: nfsd4_umh_cltrack_upcall: /sbin/nfsdcltrack return value: 0 Oct 8 23:31:48 myhostname kernel: NFSD: laundromat_main - sleeping for 90 seconds Oct 8 23:33:18 myhostname kernel: NFSD: laundromat service - starting Oct 8 23:33:18 myhostname kernel: NFSD: laundromat_main - sleeping for 90 seconds Oct 8 23:34:48 myhostname kernel: NFSD: laundromat service - starting Oct 8 23:34:48 myhostname kernel: NFSD: laundromat_main - sleeping for 90 seconds
之后,它只是继续永远循环自助洗衣店服务启动/睡眠消息。
nfsstat 不会显示服务器上任何奇怪的内容,例如 badcalls 等。我也尝试强制使用 NFSv3 版本。我遇到了同样的问题,但是清除未使用的客户端和自助洗衣店消息现在不会出现在日志中(猜测它是在 v4 中添加的?)。
现在介绍有关连接方式的一些详细信息。主服务器有 2 个网络接口。一台是 realtek 的(默认与内核驱动程序一起工作),另一台是 nvidia nforce,需要来自 elrepo 的 kmod-forcedeth。所有服务器服务都位于 nvidia-nforce 卡上。无盘节点和服务器通过千兆交换机连接(抱歉不记得品牌名称/型号)。
答案1
你解决这个问题了吗?我在使用 Centos7 无盘客户端时也遇到同样的问题 —— 12 个多小时内一切正常,然后所有客户端或多或少同时掉线。
我发现通过将以下内容添加到 dhcpd.conf 文件的相关部分,问题就消失了:
default-lease-time infinite;
max-lease-time infinite;
我从centos6迁移到centos7后遇到了这个问题,我想是因为dhcpd默认ip租用时间已经改变了。您可能想要选择不同的值。 dhcpd 手册页也涵盖了它。