玩转GaussDB(DWS)资源负载管理系列 -- 配置时候报错了,租户创建失败?看这篇文章,就可以自行解决
资源负载管理从前台到后台的配置链路比较复杂,而且依赖于cgroup,cgroup这个东西又和OS关联性比较强。这样就可能不是很可靠,举个例子,任何一个dn的内存中没有加载到cgroup,或者任何一个dn服务器的cgroup有问题,都会造成创建租户,修改资源配比等操作出现报错的情况。有时候属实头疼。
本文主要总结下配置时(建租户,改资源等)常见的问题以及处理办法,并会简单介绍下原理方便后续处理。
本文主要针对配置流程的介绍:介绍整体流程,说明各个环节可能的问题,并给出解决办法。
- 界面下发的配置流程如下:
-
简单讲解:如上图,界面创建租户对应后台会在cms节点下发命令,在每个节点创建cgroup,之后高斯的实例进程将cgroup的配置加载到内存中去,接下来由第一个cn下发sql去创建资源池,将资源池和cgroup进行绑定(组资源池绑定父cgroup,业务资源池绑定业务cgroup),语法为:
CREATE RESOURCE POOL pool_name
[WITH ({MEM_PERCENT=pct | CONTROL_GROUP="group_name"})];
即资源池和控制组是一一对应的。并且每个服务器都有自己的cgroup,该服务器的所有dn共享一份系统级别的cgroup。
因此,在配置(增删改)租户时可能出问题的点如下:
1)界面下发到oms节点时有问题;
2)oms节点下发命令到CMS主节点有问题(一般问题不大,主要是一个转发作用,不容易出问题);
3)从OMS主节点下发命令到CMS主节点使用gs_ssh到各个节点创建cgroup有问题(一个节点失败则创建失败)
4) CMS主节点下发命令到第一个cn节点上执行创建/修改资源池配置的sql失败(下发到所有实例执行,任何实例执行失败则整体失败)。
以下分别举例说明各个环节的问题,后续持续更新案例:
-
1. 界面下发到oms的问题
- 现象1:界面直接报错:无效的服务名/内部未知异常/CPU配额不足 等
- 相关日志:
主OMS节点:
- 所有的多租户页面运维操作、监控显示首先会下发rest请求至FIM Web模块,web模块的日志在/var/log/Bigdata/tomcat/web.log
- web模块收到页面请求之后将请求转发给aos模块处理,aos模块的日志在/var/log/Bigadata/controller/aos/aos.log
3.aos模块收到web发来的请求之后,做一些通用处理,然后对调用各组件的插件aos-plugin,各组件在自己的插件中实现自己的多租户机制,插件的日志在 /var/log/Bigdata/controller/aos/plugin.log
案例一:界面显示的CPU配额还足够,但是创建租户报错:该租户可用的MPPDB服务的剩余CPU配额不足
参考案例链接:https://bbs.huaweicloud.com/forum/thread-70297-1-1.html
使用命令将残留或者多余后台创建的cgroup清除即可:
gs_ssh -c "gs_cgroup -d -S xxx"
2.oms到主CMS节点的问题
oms节点会下发sql到第一个cn节点需要时可以查看以下日志判断:
MPPDB组件,aos-plugin会ssh到cm_ctl -Cv查询结果的第一个CN节点执行mpp-userpermission.sh脚本,该脚本的日志在/var/log/Bigdata/mpp/scriptlog/permission/userpermission.log
该步骤主要用来初始化各类sql语句,下发给第一个cn节点后执行sql。
3. 从OMS主节点下发命令到CMS主节点使用gs_ssh到各个节点创建cgroup
此处可以查看的日志:
主OMS节点:/var/log/Bigdata/controller/aos/plugin.log
创建/修改/删除租户一般会从cms下发如下命令:
gs_ssh -c “gs_cgroup -c ClassName”,此命令会在所有节点创建cgroup,因此在任何一个节点创建失败都会导致该创建租户的操作失败。
案例一 创建租户失败,后台日志报错权限不足
此时可以重新挂载一下报错节点的cgroup后重新创建租户即可,挂载命令:
对于问题节点,使用root用户执行以下命令:
gs_cgroup -d -U omm && gs_cgroup -c -U omm -H $GAUSSHOME --upgrade
4. 从主CMS下发命令到第一个cn节点时出现问题
相关日志:
第一个cn节点:/var/log/Bigdata/mpp/scriptlog/sqlexecutor.log
案例一 创建租户失败,日志报错修改资源池失败
如上述日志中报错:建资源池报cgroup invalid类似字样
第一步:排查是否报错节点存在该报错的cgroup:
gs_cgroup -p
第二步:如果存在该cgroup,代表内核内存没有加载到,重启一下问题实例即可:
kill -9 cnpid/dnpid
第三步:如果不存在该cgroup,那么重新挂载即可。
对于问题节点,使用root用户执行以下命令:
gs_cgroup -d -U omm && gs_cgroup -c -U omm -H $GAUSSHOME --upgrade
- 点赞
- 收藏
- 关注作者
评论(0)