因磁阵权限异常导致集群启动失败的问题

一、问题现象

若openGauss资源池化集群启动或重启失败,有如下报错信息:

cm_ctl: start cluster failed in (601)s!

HINT: Maybe the cluster is continually being started in the background.

You can wait for a while and check whether the cluster starts, or increase the value of parameter "-t", e.g -t 600.

报告启动集群失败,10min 超时。

使用cm_ctl query -Cvipd查询集群状态后显示CMServer State中所有节点为Down

二、定位方法

  1. 进入$GAUSSLOG/cm/cm_agent目录下,寻找该节点最近时间点的cm_agent日志,发现如下报错信息:

    2024-10-09 10:03:34.593 tid=82953 VotingDisk ERROR: [InitVotingDiskHandler] open disk /dev/xxx failed, errno 13.
    

    errno 13 表示权限不足。

    使用ll /dev/xxx命令查到的权限为root disk

  2. 查看其他磁盘的权限,发现用户没有了共享存储使用的盘的权限。

    ll /dev | grep $USER 返回的结果为空
    
  3. 在 root 用户下,修改没有权限的磁盘权限,数据库正常或重启成功,以 omm 用户为例。

    查看用户的 xml 文件,获取共享存储使用的磁盘。(建议使用 lsscsi -is 查看设备标识符,确定对应的盘符。)
    
    chown -R omm:omm /dev/xxx
    
    如果多个节点权限异常,每个节点都需要修改。
    
  4. 使用cm_ctl query -Cvipd命令查询集群状态,显示状态正常。若还存在异常,使用cm_ctl stopcm_ctl start命令重启集群后再次查询,显示状态正常。

三、问题根因

用户对磁盘没有权限。

四、解决方案

需要以 root 用户登录对应机器,使用chmodchown修改对应磁盘权限为子用户,再重启集群即可。

意见反馈
编组 3备份
    openGauss 2024-12-23 00:51:56
    取消