概要描述
本文主要介绍在shiva或argodbstorage组件的shiva webserver角色在启动异常时的排查及修复方法。
详细说明
问题描述
webserver启动失败,describe pod查看日志,报错:init master group failed,如图:

排查思路
webserver启动失败, 一般是因为shiva master group没有正常工作。碰到这种情况,可以按照如下步骤逐条检查:
1、manager上master没启动
检查manager上的master状态, 确保所有master都已经启动。
2、manager上master状态正常,但master的pod没启动
2.1 检查master的pod状态。确保所有的master的pod都启动 (状态为 1/1 running);
2.2 如果没起来, 就等待一会。 但如果长时间都没能起来, 就去观察未启动的master的stderr日志和pod日志。
3、manager上状态正常, master pod启动正常, 但是webserver依旧起不来, 可能是部分master的metadb丢失:
3.1 查看每个master的INFO日志 (如果日志信息不够, 可能需要调整log_v_level日志级别, 从0调整到1);
3.2 观察哪些master的metadb丢了,可以到master的数据目录下去检查,数据目录可以查看参数:shiva.master.master.data_path;
3.3 如果只有少数的master出现了问题(比如3个master, 只有1个出了问题), 就在manager上将出现问题的master关闭。 然后再启动webserver, webserver就可以启动成功。
【以上, webserver已经启动了, 下面的操作就是重新初始化shiva 的master group】
4、进入shiva webui的home页面, 可以看到master group中都包含哪些master, 是不是与manager中的期望的master相对应

如果master group中的master与manager中的master相对应, 那么就对第三步中有问题的master重新初始化,步骤如下:
4.1 清除master的残留数据,清理过程:
- 通过tdh查找shiva.master.master.data_path配置项确定master数据目录;
- 清空数据目录内容,例如清空/mnt/disk1/shiva-master-argodbstorage1/data目录下所有文件和隐藏文件。删除操作反复确认,不要误删除;
- 通过tdh点击配置服务。
4.2 在manager启动这个master
4.3 通过shiva tool或者rest api 先remove master member,以shiva tool为例:
进入shiva tool页面(webserver页面link后加tool,如:http://ip:4567/tool)

在remove master member界面移除需要初始化的master
输入栏中填入指定master ip:端口即可,如为10.1.94。103:9630

移除成功会有success提示

4.4 再add master member,将刚才remove的master再添加回去:

添加成功会有success提示

如果master group中的master与manager中的master不对应, 那么就将在manager中不存在但在master group中存在的master从master group移除, 将在manager中存在但在master group中不存在的master加入到master group中。
至此,shiva webserver修复完成。