DM 共享存储集群架构DSC讲解

达梦共享存储集群(DMDSC)整体架构如左图所示 涉及很多功能模块,为了方便理解我划分为一下几大组件

1、DmServer 服务        保证事务一致和MVCC的锁管理(GLS、LLS)         保证buffer快速同步的闩管理 (GBS、LBS)         回滚空间管理、缓存交换等

2、dmasmsvr        保证并发访问的分布式控制        磁盘组管理        文件管理        数据文件映射管理等

3、DMCSS集群同步服务        记录集群资源的DCR注册表        监控并且判断集群资源状态的Voting Disk        DMCSSM等

4、MAL 高速传输系统       DMSERVER和DMASMSVR之间信息传递

DM 共享存储集群架构DSC讲解_第1张图片

各个模块分工如下

1、DmServer 服务        直接相应客户请求,需要处理MVCC访问管理,保证客户的相应效率和并发读写功能

2、dmasmsvr        主要负责数据页和实际存储位置的映射,保证需要的数据页可以快速定位。 3、DMCSS集群同步服务 集群资源包括DMSERVER、DMASM等监控,在集群资源出现故障时,按照故障机制处理集群资源        

4、MAL 高速传输系统       DMSERVER和DMASMSVR之间信息传递

首先我们来介绍集群下的DMSERVER 有什么不同。

DMSERVER 相较于单机的DMSERVER,增加了节点间通讯以及节点间数据页项目项目协调的成本,为了 保证多个节点间不会发生版本冲突并且能够快速准确的处理节点故障,引入了一下几个新功能

1、锁管理     全局封锁服务(Global Locking Services,简称 GLS)     本地封锁服务(Local Locking  Services,简称 LLS)

2、闩管理     全局闩服务也称为全局缓冲区服务(Global Buffer Services),简称GBS      本地闩服务也称为本地缓冲区服务(Local Buffer Services),简称 LBS。

3、缓存交换     基于 GBS/LBS 服务                   将已缓存的数据页通过MAL系统在心跳线之间快速传递

4、重做日志管理     LSN递增但不能保证连续                

5、  回滚记录管理       不同节点公用同一个回滚表空间(ROLL)                    不同节点对应不同的回滚segments

首先我们来介绍一下锁管理,介绍锁管理之前首先要介绍一下DM的事务和锁机制

DM的物理页记录TID(事务ID)和RPTR(上一个版本的回滚记录) DM 采用事务锁即对TID上锁。可以通过 活动事务视图(V$TRX_VIEW 和 V$DSC_TRX_VIEW)判断事务可见性

 判断机制如下

TID=当前事务号可见

TID不再事务活动表,并且TID

物理记录的 TID 包含在活动事务表中,或者TID>=NEXT_TID,物理记录不可见

在事务启动时(串行化),或者语句执行时(读提交),收集这一时刻所有节点上的活动事务。 由控制节点统一管理集群中所有节点的全局事务视图(Global Transaction View,简称GTV);与之对应的是每个节点维护一个本地事务视图(Local Transaction View,简称 LTV)

DM 共享存储集群架构DSC讲解_第2张图片 

闩管理

闩(Latch)是数据库管理系统的一种内部数据结构,通常用来协调、管理 Buffer缓冲区、字典缓存和数据库文件等资源的并发访问,维持时间极短。 包括

全局缓冲区服务(Global Buffer Services)协调节点间的 Latch封锁请求、以及 Latch 权限回收, 本地缓冲区服务(Local Buffer Services)根据用户请求,向 GBS 发起 Latch 封锁,或者根据GBS 请求,回收本地的 Latch 封锁

每一个节点上都部署一个 GBS 和一个 LBS GBS由DMDSC 集群中的所有节点共同管理由

buffer根据数据页划分,分配对应的GBS进行管理 DMDSC 集群中数据页的封锁流程产生一定变化,与单节点相比,增加了全局 Latch 封锁、释放两个步骤。并且,在获取全局 Latch 授权后,仍然需要进行正常的本地 Latch 封锁,避免节点内访问冲突

缓存交换是保证集群性能的一个重要机制。

节点间的数据页尽可能通过网络传递,避免 通过磁盘的写入、再读出方式在节点间传递数据, 缓存交换的实现基础是 GBS/LBS 服务 下面四个图介绍了四种常见的缓存交换场景

DM 共享存储集群架构DSC讲解_第3张图片

DM 共享存储集群架构DSC讲解_第4张图片

DM 共享存储集群架构DSC讲解_第5张图片

 DM 共享存储集群架构DSC讲解_第6张图片

 

 

 

DM 共享存储集群架构DSC讲解_第7张图片 

回滚管理 实现DMDSC 集群的多版本并发控制(MVCC) DMDSC 集群中只有一个回滚表空间,回滚记录保存在回滚页中,回滚页与保存用户记录的数据页一样,由 Buffer 系统管理 并通过缓存交换机制实现全局数据共享。 DMDSC 集群中为每个节点分配了一个单独的回滚段(Segment)。 DMDSC 集群故障重启时,控制节点会扫描所有节点的回滚段,收集未提交事务进行回滚,收集已提交事务进行 Purge 

 下面我们来介绍DMCSS集群。

DMCSS集群时集群的重要组件,担负着整个集群的监控和故障节点处理机制。

DM 共享存储集群架构DSC讲解_第8张图片

 

DM 共享存储集群架构DSC讲解_第9张图片

DM 共享存储集群架构DSC讲解_第10张图片 

DMASM 是DM引入的分布式文件系统,相较于裸设备有易于扩容,空间利用率高等特点

DMASM,用来管理裸设备/块设备的磁盘和文件。DMASM 提供了基本的数据文件访问接口,可以有效降低 DMDSC 共享存储的维护难度,

DMASM 提供的主要功能包括:

1. 分布式管理    支持多台机器并发访问 DMASM 磁盘和文件,提供全局并发控制。

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

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

4. 完善、高效的访问接口 通过 dmasmapi 可以获得各种文件管理功能。

5. 通用功能的管理工具 dmasmtool提供一套类Linux的文件操作命令用于管理DMASM文件,降低用户学习、使用 DMASM 文件系统的难度

DMASM 磁盘是指经过 dmasmcmd 工具格式化,可以被 dmasmsvr 识别的物理磁盘。一个裸设备或块设备只能格式化为一个 DMASM 磁盘,不支持分割使用。

磁盘组由一个或多个 DMASM 磁盘组成,是存储 DMASM 文件的载体;

一块 DMASM 磁盘只能属于一个磁盘组。DMASM 支持动态添加 DMASM 磁盘。DMDSC 集群中,一般建议将日志文件和数据文件保存到不同的磁盘组中。

DMASM 文件在 DMASM 磁盘组上创建的文件,称之为 DMASM 文件。一个 DMASM 文件只能保存在一DM8 共享存储集群个磁盘组中,但一个 DMASM 文件的数据可以物理存放在同一磁盘组的多个 DMASM 磁盘中。

簇(extent)簇是DMASM文件的最小分配单位,一个簇由物理上连续的一组AU构成。簇的大小为4,也就是说一个 DMASM 文件至少占用 4 个 AU,也就是 4M 的物理存储空间。

AU(Allocate Unit)DMASM 存储管理的最小单位,AU 的大小为 1M。DMASM 以 AU 为单位将磁盘划分为若干逻辑单元系统内部定义了一系列 AU 类型,包括:desc AU、inode AU、redo AU、和 data AU

DM 共享存储集群架构DSC讲解_第11张图片

DM 共享存储集群架构DSC讲解_第12张图片 

                                                                       DMASM技术指标

大小

说明

AU大小

1024*1024

一个AU占用1M存储空间

簇大小

4

一个簇包含4个物理上连续的AU

描述项大小

32

一个簇描述项占用32个字节的存储空间

描述AU管理的最大簇数目

16 * 1024

一个描述AU最多管理16384个簇

描述AU管理的最大AU

64 * 1024

一个描述AU最多可以管理6553 6AU

描述AU管理的最大磁盘空间

64G

一个描述AU最多可以管理64G磁盘空间

Inode项大小

512

一个DMASM文件描述项大小,每个DMASM文件/目录都对应着一个文件描述项目

Inode AU可管理的最大文件数

2046

一个Inode AU最多可以管理2046个文件

DMASM文件最小尺寸

4M

每个DMASM文件最少包含一个簇

DMASM文件最大尺寸

4PB

一个DMASM文件最多可以包含4294967295AU,每个AU1M,理论上单个DMASM文件的最大尺寸是4PB

一个用户连接可同时打开的DMASM文件数

65536

一个用户连接,最多打开65536DMASM文件

DMASM文件数上限

8388607

一个磁盘组,最多可以创建8388607DMASM文件

磁盘组个数上限

124

最多可创建124个磁盘组

10M共享内存大小能管理的磁盘大小

约 600G

每个簇描述项大概占用64byte内存空间,每个簇描述项 对应4M磁盘空间,通过计算10M / 64 * 4M = 655G655G左右的磁盘,使用10M大小的共享内存能保证使用 过程中簇描述项不被淘汰

 

 

 

你可能感兴趣的:(数据库,系统架构)