玩转GaussDB(DWS)资源负载管理系列 -- 配置时候报错了,租户创建失败?看这篇文章,就可以自行解决

举报
Malick 发表于 2021/02/20 11:27:55 2021/02/20
【摘要】 本文主要总结下配置时(建租户,改资源等)常见的问题以及处理办法,并会简单介绍下原理方便后续处理。

资源负载管理从前台到后台的配置链路比较复杂,而且依赖于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节点:

    1. 所有的多租户页面运维操作、监控显示首先会下发rest请求至FIM Web模块,web模块的日志在/var/log/Bigdata/tomcat/web.log
    2. 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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。