DevOps开发运维
成长之路

DM8-DSC-概念

一、概述

1、DSC简介

DMDSC集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获取完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等的使用这些文件。各个节点有自己独立的联机日志和归档日志。这些文件就保存在共享存储上。

DMDSC集群得以实现的重要基础就是共享存储。DM支持的共享存储有两种:裸设备和DMASM。这两种存储的区别在于后者在前者的基础上,部署并使用了DMASM文件系统。为了方便对裸设备上的磁盘或文件进行管理,推荐使用后者。

DMDSC集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件DMCSS组成。

2、数据库和数据库实例

数据库(database)是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件等),保存在物理磁盘或文件系统中。

数据库实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。通过数据库实例,可以操作数据库,一般情况下,我们访问、修改数据库都是通过数据库实例来完成的。

3、共享存储

DMDSC集群中,为了实现多个实例同时访问、修改数据,需求将数据文件、控制文件、日志文件保存在共享存储上。DMDSC支持裸设备或DMASM文件系统为共享存储。

配置DMDSC集群需要DCR、Voting disk也必须保存在共享存储上(目前只支持裸设备存放DCR和Voting disk)。

4、本地存储

DMDSC集群中,本地存储用来保存配置文件,本地归档文件,远程归档文件。

5、通信网络

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

6、集群控制

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

二、系统特性

1、高可用性

DMDSC集群提供了一种达梦数据库高可用的解决方法。当出现系统故障、硬件故障、或人为操作失误时,DMCSS检测故障、并自动将故障节点踢出集群,保证数据库服务的正常提供。

故障节点的用户连接会自动切换到活动节点,这些连接上的未提交事务将被回滚,已提交事务不受影响;活动节点的用户连接不受影响,正在执行的操作将被挂起一段时间,在故障处理完成后,继续执行。当DMCSS检测到故障节点恢复时,自动启动节点重加入流程,将恢复的故障节点重新加入DMDSC集群,将集群恢复到正常的运行状态。因此,通过部署DMDSC集群,可以在一定程度上避免由软硬件故障引起的非计划停机,减少这些意外给客户带来的损失。

与同样适用共享存储的双机热备系统相比,DMDSC具有更快的故障处理速度。双机热备系统故障切换时,需要完整重做redo日志,所有数据需要重新从磁盘加载。而DMDSC故障处理时,只需要做故障节点的redo日志,并且大部分数据页已经包含在处理节点的Buffer缓冲区中,不需要从新磁盘加载。

2、高吞吐量

DMDSC集群中包含多个数据库实例,数据库实例访问独立的处理器、内存,数据库实例之间通过缓存交换技术提升共享数据的访问速度,每个数据库实例都可以接收并处理用户的各种数据库请求。

与单节点数据库管理系统相比,DMDSC集群可以充分利用多台物理机器的处理能力,支撑更多的用户连接请求,提供更高的吞吐量。与双机热备系统相比,DMDSC集群不存在始终保持备用状态的节点,不会造成硬件资源的浪费。

3、负载均衡

用户通过配置DM数据库连接服务名来访问DMDSC集群,可以实现节点间的自动负载均衡,用户的数据库连接请求会自动、平均的分配到DMDSC集群中的各个节点。

三、基本概念

1、集群(Cluster)

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

2、DMDSC集群

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

DMDSC支持使用裸设备或DMASM文件系统存放共享数据库文件。为了方便对裸设备上的磁盘文件进行管理,DM推荐使用DMASM文件系统。

3、裸设备(Raw Device)

一种没有经过格式化、不被Unix、linux通过文件系统来读取的特殊字符设备,允许直接访问磁盘而不经过操纵系统的告诉缓存和缓冲器。因为使用裸设备避免了经过操作系统这一层,数据直接从磁盘到数据库服务器进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以有效提高数据库系统的性能。但是裸设备的使用有很多限制,比如Linux主机的每个磁盘最多能划分16个分区,去掉一个扩展分区后,可用的只有15个;每个分区只支持一个裸设备;每个裸设备只能对应一个文件、裸设备一经创建大小就固定、不能动态调整等。所以实际使用可能会出现数据库文件空间不够或者空间浪费的情况,需要根据应用实际情况提前分配好裸设备大小。

4、DMASM(DM Auto Storage Manager)

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

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

5、DMCSS(DM Cluster Synchronization Services)

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

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

6、DMCSSM(DM Cluster Synchronization Servers Monitor)

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

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

7、DCR(DM Cluster Registry)

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

8、表决磁盘(Voting Disk)

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

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

9、HeartBeat(心跳机制)

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

10、MAL链路

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

11、共享内存

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

12、VIP

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

赞(0)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图