1、DMDSC集群

DMDSC 集群由若干数据库实例组成,这些实例间通过网络(MAL 链路)连接,通过一个特殊的软件(DMCSS,集群同步服务)的协助,共同操作一个数据库。从外部用户视角来看,他们看到的只是一个数据库。所有节点平等地使用数据文件。这份数据一般放在共享存储上,每个服务器通过光纤连接到共享存储上。

2、DMASM(DM Auto Storage Manager)

DM Auto Storage Manager,专用的分布式文件系统,支持多节点同时访问、修改数据文件,可以将指定的裸设备打包管理,能方便快捷地创建、删除、扩展、截断文件,不用担心空间不足或空间浪费。

DMDSC集群中若配置DMASM,则要求DMASM站点数和DMCSS站点数一致,且只能存在一个DMCSS组和一个DMASM组。这些DMASM站点共同构成了一个DMASM集群。

1)分布式管理

支持多台机器并发访问 DMASM 磁盘和文件,提供全局并发控制。

2)磁盘组管理

支持创建和删除磁盘组,将裸设备格式化为 DMASM 格式,并由 dmasmsvr 统一管理;一个磁盘组可以包含一个或者多个 DMASM 磁盘;磁盘组支持在线增加 DMASM 磁盘,实现动态存储扩展。

3)文件管理

支持创建、删除、截断文件等功能;支持创建目录;支持动态扩展文件;文件可以存放在一个磁盘组的多个磁盘中,文件大小不再受限于单个磁盘大小。

4)完善、高效的访问接口

通过 dmasmapi 可以获得各种文件管理功能。

5)通用功能的管理工具

dmasmtool提供一套类Linux的文件操作命令用于管理DMASM文件,降低用户学习、使用 DMASM 文件系统的难度。

3、DMCSS(DM Cluster Synchronization Services)

DM集群同步服务,是DMDSC集群应用的基础,使用DMDSC集群或者DMASM集群都必须要配置DMCSS。DMCSS负责集群环境中节点的启动、故障处理、节点重加入等操作。

每个集群节点都需要有一个DMCSS服务。这些DMCSS服务又共同构成一个DMCSS集群。单节点应用时,可以不配置DMCSS。

4、DMCSSM(DM Cluster Synchronization Services Monitor)

DM集群监视器,DMCSSM与DMCSS相互通信,获取并监控整个集群系统的状态信息。DMCSSM还提供了一系列的命令来管理、维护集群。同一个集群中,允许最多同时启动10个监视器,一般建议将监视器放在独立的第三方机器上。

5、DCR(DM Clusterware Registry)

DCR是DM集群注册表的简称,用于存储、维护集群配置的详细信息,整个集群环境共享DCR配置信息,包括DMDSC、DMASM、DMCSS资源,包括实例名、监听端口、集群中故障节点信息等。DCR必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸设备。在一个集群环境中只能配置一个DCR磁盘。

6、表决磁盘(Voting Disk) 

表决磁盘记录了集群成员信息,DM集群通过Voting Disk进行心跳检测,确定集群中节点的状态,判断节点是否出现故障。当集群中出现网络故障时,使用Voting Disk来确定哪些DMDSC节点应该被踢出集群。表决磁盘还用来传递命令,在集群的不同状态(启动、节点故障、节点重加入等)DMCSS通过Voting Disk传递控制命令,通知节点执行相应命令。Voting Disk必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸设备。在一个集群环境中只能配置一个表决磁盘。

7、HeartBeat(心跳机制)

DMCSS 的心跳机制是通过 Voting Disk 的 Disk Heartbeat。这种机制有最大时延,只有超过最大时延,才认为监测对象故障。

8、MAL链路

MAL系统是达梦数据库基于TCP协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。使用DMASM文件系统的DMDSC集群中存在两套MAL系统,DMASM服务器之间配置一套MAL系统,dmserver服务器之间配置一套MAL系统。一旦MAL链路出现异常,DMCSS会进行裁定,并从集群中踢出一个节点,保证集群环境正常运行。

9、共享内存

共享内存是一种快速、高效的进程间通信手段。所谓共享内存,就是同一块物理内存被映射到多个进程的地址空间,进程A可以即时看到进程B对共享内存的修改,反之亦然。DMASM 服务器进程和DMASM客户端进程之间通过共享内存方式共享DMASM文件到实际磁盘的映射关系。