我们目前在 Gluster 3.6.4 上运行一个三节点集群。
在我们的一个节点上,我们注意到 glusterd 守护进程已死。
但是 glusterfsd 守护进程仍在运行,我们相信客户端正在连接和检索数据
我们注意到守护进程已经死了一个星期,而我们没有看到它。NFS 分布式挂载继续正常工作
我们想知道我们是否可以安全地继续并再次启动 glusterd 服务?
如果是这样,这会触发所有卷的自我修复吗?因为这会导致性能问题。
该节点的日志如下:
[2016-08-19 18:01:52.804453] E [rpc-clnt.c:362:saved_frames_unwind] (--> /usr/lib64/libglusterfs.so.0(_gf_log_callingfn+0x1e0)[0x7f4f3ffca550] (--> /usr/lib64/libgfrpc.so.0(saved_frames_unwind+0x1e7)[0x7f4f3fd9f787] (--> /usr/lib64/libgfrpc.so.0(saved_frames_destroy+0xe)[0x7f4f3fd9f89e] (--> /usr/lib64/libgfrpc.so.0(rpc_clnt_connection_cleanup+0x91)[0x7f4f3fd9f951] (--> /usr/lib64/libgfrpc.so.0(rpc_clnt_notify+0x15f)[0x7f4f3fd9ff1f] ))))) 0-DAOS-client-4: forced unwinding frame type(GF-DUMP) op(DUMP(1)) called at 2016-08-19 18:01:51.886737 (xid=0x144a1d)
[2016-08-19 18:01:52.804480] W [client-handshake.c:1588:client_dump_version_cbk] 0-DAOS-client-4: received RPC status error
[2016-08-19 18:01:52.804504] W [socket.c:620:__socket_rwv] 0-glusterfs: readv on 127.0.0.1:24007 failed (No data available)
[2016-08-19 18:02:02.900863] E [socket.c:2276:socket_connect_finish] 0-glusterfs: connection to 127.0.0.1:24007 failed (Connection refused)
如果我们这样做不安全,我们还应该做些什么来解决这个问题
是的,如果没有必要数量的节点对该问题进行投票,您的卷就无法自我修复。是的,当您启动 glusterd.service 时,它应该重新启动自我修复过程。但是,它只会修复已标记为需要修复的文件。
由于您没有注意到缺少 glusterd 守护程序,因此我假设您不会在此集群上大量修改砖块/卷。但是,glusterfsd 守护进程都在运行,这意味着大部分情况下不需要自我修复。
要考虑的最重要的事情是,自我修复不像巡逻读取,更像是选择性擦洗 - 因为它只适用于已标记为脏的文件。考虑到这一点,启动 glusterd 守护进程并不是什么大问题。