签到成功

知道了

CNDBA社区CNDBA社区

DM7 达梦 共享存储数据库集群 (3) -- DMCSS 说明

2019-09-15 01:39 3359 0 转载 DM 达梦
作者: dave

上篇我们了解了DMDSC的概念,如下:

DM7 达梦 共享存储数据库集群 (1) — DMDSC 概述
https://www.cndba.cn/dave/article/3685

  DMCSS(Dameng Cluster Synchronization Services)达梦集群同步服务,使用 DMASM 集群或 DMDSC 集群都必须要配置 DMCSS 服务。在 DMASM 集群或 DMDSC 集群中,每个节点都需要配置一个 DMCSS 服务。这些 DMCSS 服务自身也构成一个集群,DMCSS集群中负责监控、管理整个 DMASM 集群和 DMDSC 集群的节点称为主节点,其他 DMCSS 节点称为从节点。
  DMCSS 从节点不参与 DMASM 集群和 DMDSC 集群管理,当 DMCSS 主节点故障时,会从活动的从节点中重新选取一个 DMCSS 主节点。http://www.cndba.cn/cndba/dave/article/3687

  DMCSS 工作的基本原理是:在 Voting disk 中,为每个被监控对象(dmasmsvr、dmserver、DMCSS)分配一片独立的存储区域,被监控对象定时向 Voting Disk 写入信息(包括时间戳、状态、命令、以及命令执行结果等);DMCSS 主节点定时从 Voting Disk读取信息,检查被监控对象的状态变化,启动相应的处理流程;被监控对象只会被动的接收DMCSS 主节点命令,执行并响应。http://www.cndba.cn/cndba/dave/article/3687

  DMCSS 主要功能包括:写入心跳信息、选举 DMCSS 主节点、选取 DMASM/DMDSC 主节点、管理被监控对象的启动流程、集群状态监控、节点故障处理、节点重加入等,DMCSS还可以接收并执行 DMCSSM 指令。

1 启动命令

[dave@www.cndba.cn3 bin]$ dmcss help
Format:  ./dmcss KEYWORD=value

Example: ./dmcss DCR_INI=/opt/data/DAMENG/dmdcr.ini

Keyword              Explanation
--------------------------------------------------------------------------------
DCR_INI              ini file path
-NOCONSOLE           start in service mode
HELP                 Show this help info
[dave@www.cndba.cn3 bin]$

2 心跳信息

DMCSS 实例启动后,每间隔 1 秒向 Voting Disk 指定区域写入心跳信息(包括自身的状态、时间戳等),表示 DMCSS 节点处于活动状态。

3 选举 DMCSS 主节点

DMCSS 启动后向 Voting Disk 写入信息,并读取其他 DMCSS 节点的信息,如果 DMCSS集群中还没有活动的主节点,则选举 DMCSS 主节点。http://www.cndba.cn/cndba/dave/article/3687

DMCSS 选举的原则有两条:

  1. 先启动的 DMCSS 作为主节点
  2. DMCSS 同时启动,则选择节点号小的节点为主节点

4 选取监控对象主节点

DMCSS 主节点启动后,会为基于 DMASM/裸设备的 DMDSC 集群指定主节点。DMCSS 选取监控对象主节点的原则有两条:

  1. 只有一个活动节点,则设置活动节点为主节点。
  2. 存在多个活动节点,则选择节点号小的节点为主节点。

5 启动流程管理

  DMASM 和 DMDSC 集群中的实例启动后,一直处于 waiting 状态,等待 DMCSS 的启动命令。DMCSS 主节点在选取监控对象主节点后,通知主节点启动,在主节点启动完成后,再依次通知其他从节点启动。http://www.cndba.cn/cndba/dave/article/3687

6 状态检测

  DMCSS 维护集群状态,随着节点活动信息的变化,集群状态也会产生变化,DMCSS 主节点会通知被监控节点执行不同命令,来控制节点启动、故障处理、故障重加入等操作。
  DMCSS 主节点每秒从 Voting Disk 读取被监控对象的心跳信息。一旦被监控对象的时间戳在 DCR_GRP_DSKCHK_CNT 秒内没有变化,则认为被监控对象出现异常。
  DMCSS 从节点定时读取 DMCSS 主节点的心跳信息,监控 DMCSS 运行状态。

7 故障处理

  DMCSS 主节点检测到实例故障后,首先向故障实例的 Voting disk 区域写入 Kill命令(所有实例一旦发现 Kill 命令,无条件自杀),避免故障实例仍然处于活动状态,引发脑裂,然后启动故障处理流程,不同类型实例的故障处理流程存在一些差异。

DMCSS 主节点故障处理流程

  1. 活动节点重新选举 DMCSS 主节点
  2. 新的 DMCSS 主节点通知出现 DMCSS 故障节点对应的 dmasmsvr、dmserver 强制退出

DMASMSVR 实例故障处理流程

  1. 挂起工作线程
  2. 更新 DCR 的节点故障节点信息
  3. 通知故障节点对应 dmserver 强制退出
  4. dmasmsvr 进行故障恢复
  5. 恢复工作线程

DMSERVER 实例故障处理流程

  1. 更新 DCR 故障节点信息
  2. 重新选取一个主节点
  3. 通知 dmserver 主节点启动故障处理流程
  4. 等待 dmserver 故障处理结束

8 节点重加入

如果检测到故障节点恢复,DMCSS 会通知主节点启动节点重加入流程。 

数据库实例重加入:http://www.cndba.cn/cndba/dave/article/3687http://www.cndba.cn/cndba/dave/article/3687

  1. 挂起工作线程
  2. 修改节点的状态
  3. 执行恢复操作
  4. 重新进入 STARTUP 状态,准备启动
  5. OPEN 重加入的节点
  6. 重启工作线程
  7. 执行 OPEN 数据库实例的操作

DMASM 实例重加入:

http://www.cndba.cn/cndba/dave/article/3687
http://www.cndba.cn/cndba/dave/article/3687

  1. 挂起工作线程
  2. 修改节点的状态
  3. 执行恢复操作
  4. 重新进入 STARTUP 状态,准备启动
  5. OPEN 重加入的节点
  6. 重启工作线程

9 集群指令

  DMCSS 主节点通过一系列的集群指令,控制被监控对象的启动、故障处理、状态切换等。DMCSS 主节点向目标对象的 Voting disk 指令区写入命令,通知目标对象执行相应命令,并等待执行响应。
  每条指令的功能都比较单一,比如修改状态、设置主节点、执行一条 SQL 等,复杂的集群流程控制就是由这些简单的指令组合起来完成的。

10 状态查看

在 DMCSS 控制台输入 show 命令可以看到所监控的集群状态,如下所示。

http://www.cndba.cn/cndba/dave/article/3687
http://www.cndba.cn/cndba/dave/article/3687

group[]行显示的内容为

1)name: 集群名称
2)seq: 集群编号
3)type: 集群类型[CSS/ASM/DB]
4)master_ep: 集群内主节点

ep 行显示的内容为:

1)inst_name: 节点实例名
2)seqno: 节点编号
3)mode: 模式[MASTER/SLAVE]
4)sys_status: 实例系统状态[MOUNT/OPEN 等]
5)vtd_status: 实例的集群状态[WORKING/SHUTDOWN/SYSHALT 等]
6)is_ok: 实例在集群内是否正常,ERROR 的节点暂时从集群内剔除
7)active: 实例是否活动
8)guid: 实例的 guid 值
9)ts: 实例的时间戳

11 主从节点显示信息差异

  DMCSS 主节点会显示 DMCSS、DMASM、DMDSC 三个集群的信息,而从节点只会显示DMCSS 集群的信息。

12 配置 VIP

如果为集群环境 DB 节点配置了 VIP,则 CSS 会在不同时机配置 VIP(假设节点为 EP1, EP2):

1)DB 启动前,各节点 CSS 会配置对应的 VIP。
2)节点 DB1 故障,则故障节点对应的 CSS1 会取消配置的的 VIP1,活动节点 EP2 对应的 CSS2 会配置故障节点的 VIP1,此时活动节点 EP2 会有两个 VIP(VIP2,已经故障节点的 VIP1)。原来连接 DB1 的应用,重新连接时会连接到 DB2。
3)故障节点 DB1 重加入,则 EP2 对应的 CSS2 会取消 VIP1,之后 EP1 对应的 CSS1会重新配置 VIP1,这样 VIP 配置信息就恢复最开始的状态了。

13 注意事项

  1. 如果节点 A 的 DMCSS 退出或者故障,活动 DMCSS 会给节点 A 上所监控的 asmsvr和 dmserver 发送 halt 命令,确保节点 A 上的 asmsvr 和 dmserver 自动退出。
  2. 配置 VIP 信息需要 root 权限,所以要确保 dmcss 已 root 权限启动。
用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2283
    原创
  • 3
    翻译
  • 579
    转载
  • 196
    评论
  • 访问:8168660次
  • 积分:4428
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ