签到成功

知道了

CNDBA社区CNDBA社区

DM7 达梦 共享存储数据库集群 (1) -- DMDSC 概述

2019-09-15 00:28 5492 0 转载 DM 达梦
作者: dave

1 DMDSC 概述

  DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。

  DM 支持的共享存储有两种:裸设备和DMASM。为了方便对裸设备上的磁盘或文件进行管理,推荐用户使用后者。
  DMDSC集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS 组成。

下面以 部署了 DMASM 的 DMDSC 集群为例,展示 DMDSC集群系统结构。

数据库和数据库实例

  数据库(Database)是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件等),保存在物理磁盘或文件系统中。
  数据库实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。通过数据库实例,可以操作数据库,一般情况下,我们访问、修改数据库都是通过数据库实例来完成的。http://www.cndba.cn/cndba/dave/article/3685http://www.cndba.cn/cndba/dave/article/3685

共享存储

  DMDSC集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、日志文件保存在共享存储上。DMDSC 支持使用裸设备或 DMASM 文件系统作为共享存储。
  配置 DMDSC 集群需要的 DCR、Voting disk 也必须保存在共享存储上(目前仅支持裸设备存放 DCR 和 Voting disk)。

本地存储

  DMDSC集群中,本地存储用来保存配置文件(记录数据库实例配置信息的 dm.ini、dmarch.ini、dmmal.ini),本地归档日志、远程归档日志。

通信网络

  DMDSC集群中,网络分为内部网络和公共网络两个部分。实际应用中一般还存在服务器到共享存储的网络。内部网络用于数据库实例之间交换信息和数据,MAL 链路使用的就是内部网络。公共网络用于对外提供数据库服务,用户使用公共网络地址登录 DMDSC 集群,访问数据库。

集群控制

  集群控制是集群系统的重要组成部分。DMCSS 就是一款集群控制软件,专门负责监控集群中各个节点的运行状态。DMCSS 主要功能包括:管理集群的启动和关闭,控制节点故障处理,以及管理节点重加入流程。

DMDSC 系统特性:

1)高可用性: 只要集群中有一个活动节点,就能正常提供数据库服务。
2)高吞吐量: 多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。 
3)负载均衡: 用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负载大致平衡。

2 DMDSC基本概念

2.1 集群(Cluster)

  是由两个或多个节点(服务器)构成的一种松散耦合的计算机节点集合,这个集合在整个网络中表现为一个单一的系统,并通过单一接口进行使用和管理。大多数模式下,集群中的所有计算机都拥有一个相同的名称,集群内任意一个系统都可以被所有的网络用户使用。
  每个集群节点都是运行其自己进程的独立服务器,因此每个节点都有自己的运算能力。这些进程间彼此通信进行协调,协同起来向用户提供应用程序、系统资源和数据以及计算能力。http://www.cndba.cn/cndba/dave/article/3685

2.2 DMDSC 集群

  DMDSC 集群由若干数据库实例(Instance)组成,这些实例间通过网络(MAL 链路)连接,通过一个特殊的软件(DMCSS,集群同步服务)的协助,共同操作一个数据库。从外部用户视角来看,他们看到的只是一个数据库。数据文件、控制文件等文件在集群中只有一份,所有节点平等地使用这些数据文件。这份数据一般放在共享存储上,每个服务器通过光纤连接到共享存储上。
  DMDSC 支持使用裸设备或 DMASM 文件系统存放共享数据库文件。为了方便对裸设备上的磁盘或文件进行管理,DM 推荐使用 DMASM 文件系统。

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

2.3 裸设备(Raw Device)

  一种没有经过格式化,不被 Unix/Linux 通过文件系统来读取的特殊字符设备,允许直接访问磁盘而不经过操作系统的高速缓存和缓冲器。
  因为使用裸设备避免了经过操作系统这一层,数据直接从磁盘到数据库服务器进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以有效提高数据库系统的性能。http://www.cndba.cn/cndba/dave/article/3685

  但是裸设备的使用有很多限制,比如 Linux主机的每个磁盘最多能划分 16 个分区,去掉一个扩展分区后,可用的只有 15 个;每个分区只支持一个裸设备;每个裸设备只能对应一个文件、裸设备一经创建大小就固定、不能动态调整等。

2.4 DMASM(DM Auto Storage Manager)

  一个专用的分布式文件系统。支持多个节点同时访问、修改数据文件,并减少直接使用裸设备存在的诸多限制。DMASM 文件系统把指定的裸设备打包管理,使用 DMASM 文件系统可以方便地创建、删除、扩展、截断文件,不用担心空间不足(空间不足可以通过增加磁盘扩展空间)或空间浪费;不用考虑文件个数限制;可以方便查看空间使用情况;可以在线通过增加裸设备的方式扩展总体使用空间。

  DMASM 不是一个通用的文件系统,只能通过 dmasmapi 接口访问。理论上通过dmasmapi 接口可以存放任何文件,但在 DMDSC 集群中,一般只建议将需要在节点间共享访问的文件存在 DMASM 文件中,如数据文件、联机 Redo 日志文件、控制文件等。归档 Redo日志文件、备份集文件也可以考虑保存到 DMASM 文件系统中,避免还原、恢复等操作时节点间的文件拷贝,简化备份、还原操作。其他的一些本地配置文件比如 dm.ini 等保存在本地磁盘中。

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

  DMDSC 集群中若配置 DMASM,则要求 DMASM 站点数和 DMCSS 站点数一致,且只能存在一个 DMCSS 组和一个 DMASM 组。这些 DMASM 站点共同构成了一个 DMASM 集群。http://www.cndba.cn/cndba/dave/article/3685

2.5 DMCSS(DM Cluster Synchronization Services)

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

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

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

2.6 DMCSSM(DM Cluster Synchronization Services Monitor)

  DMCSSM(DM Cluster Synchronization Services Monitor)是 DM 集群监视器的简称。DMCSSM 与 DMCSS 相互通信,获取并监控整个集群系统的状态信息。DMCSSM还提供了一系列的命令来管理、维护集群。

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

  同一个集群中,允许最多同时启动 10 个监视器,一般建议将监视器放在独立的第三方机器上。

2.7 DCR(DM Clusterware Registry)

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

2.8 表决磁盘(Voting Disk)

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

  集群中各实例启动时,通过访问 DCR 获取集群配置信息。被监控实例从 Voting Disk读取监控命令,并向 Voting Disk 写入命令响应以及自身心跳信息;DMCSS 也向 Voting Disk 写入自己的心跳信息,并从 Voting Disk 访问各被监控节点的运行情况,并将监控命令写入 Voting Disk,供被监控实例访问执行。

2.9 HeartBeat(心跳机制)

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

2.10 MAL 链路

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

2.11 共享内存

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

2.12 VIP

  VIP(虚拟IP地址),是一个不与特定计算机或者计算机中的网络接口相连的IP地址。
  数据包被发送到这个 VIP 地址,但是所有的数据还是经过真实的网络接口。在集群环境中,应用通过 VIP 连接数据库服务器,实例故障后,把实例配置的 VIP 设置到其他活动节点(叫做 IP 漂移),这样应用可以不用修改配置,继续访问数据库服务。

3 DMDSC使用限制

目前 DMDSC 只支持 2 节点集群。与单节点相比,2 节点功能上也存在一定限制,暂不支持下列功能:http://www.cndba.cn/cndba/dave/article/3685

  1. 支持定时器,但只有主节点上配置的定时器生效。只支持脱机配置定时器,不支持联机配置
  2. 支持作业,但只有主节点上支持执行作业
  3. 不支持 HUGE 表
  4. 不支持外部表
  5. 不支持堆表
  6. 不支持类型别名相关操作
  7. 不支持 table 级别的 space limit 功能
  8. 不支持全文索引、词库相关操作
  9. 不支持安全版本、审计相关操作
  10. 不支持 DBMS_ALERT、DBMS_LOCK 包
  11. 不支持数据复制
  12. 不支持数据守护
  13. 不能与 MPP 集群混合使用
  14. 不支持为表空间文件指定 mirror_path
  15. 不支持闪回查询,不允许打开闪回功能
用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

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

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

        QQ交流群

        注册联系QQ