南大通用GBase8a运维案例分析,用操作系统root用户启动952集群后,导致gcware服务无法启动

GBase 8a从V95开始,全部运行在非操作系统root用户下,一般是gbase。但如果用户尝试用root启动,则可能生成一下root属主的日志,pid文件等,造成后续在gbase用户下,无法访问该文件,造成服务失败。

现象

客户反馈集群一个节点的gcware服务一直CLOSE,查看日志,一直在不断的启动,退出。截图如下

分析

两行ERROR信息中,第一行指向了报错原因

Corosync Executive couldn't create lock file.

不能创建lock文件。

查看磁盘空间

未见空间满等问题

查看操作系统日志

/var/log/messages,也没看到磁盘报错。

查看gcware的pid文件目录

发现gcware/run/gcware.pid文件,属主为root:root

结论

用户曾经用操作系统root用户启动gcware服务,并生成了pid文件。之后再次启动时,又变成了gbase用户。由于该文件gbase用户无权限访问,造成无法创建lock文件,启动失败。

处理方案

切换到操作系统root用户,将pid文件的属主改成gbase:gbase,然后重启gcware服务。