DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上,各个节点有自己独立的联机日志和归档日志。
DMDSC 集群得以实现的重要基础就是共享存储。DM 支持的共享存储有两种:裸设备和 DMASM。这两种存储的区别在于后者在前者的基础上,部署并使用了 DMASM 文件系统。为了方便对裸设备上的磁盘或文件进行管理,推荐用户使用后者 (DMASM)。
DMDSC 集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS 组成。以部署了 DMASM 的 DMDSC 集群为例,展示 DMDSC 集群系统结构,如下图所示:
DMDSC主要的特点
1、高可用性:只要集群中有一个活动节点,就能正常提供数据库服务。
2、高吞吐量:多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
3、负载均衡:用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负载大致平衡。
DMDSC解决多个数据库实例同时访问、修改同一个数据库带来的全局并发问题:
1.改造了Buffer缓冲区、事务系统、封锁系统和日志系统等,来适应共享存储集群节点间的全局并发访问控制要求
2.引入缓存交换技术、提升数据在节点的传递效率。
DM集群同步服务(DMCSS)
使用DMDCS集群或者DMASM集群必须哟啊配置DMCSS服务。在DMDCS和DMASM集群中,每个集群都要配置一个DMCSS服务,这些服务又构成宇哥集群,构成的集群里,分为两类节点:
1.控制节点:DMCSS集群中负责监控、管理整个 DMASM 集群和 DMDSC 集群的节点
2.普通节点:其他 DMCSS 节点
DMCSS 普通节点不参与 DMASM 集群和 DMDSC 集群管理,当 DMCSS 控制节点故障时,会从活动的普通节点中重新选取一个 DMCSS 控制节点。
DMASM
首先,DMDSC 集群可以直接使用裸设备作为共享存储,存放数据库文件。但是裸设备存储上有以下限制:
1.在创建数据文件时,就必须指定文件大小,并且文件无法动态扩展。
2.数据文件必须占用整个裸设备盘。
3.不支持类 Linux 的文件操作命令。
4.操作系统支持最大裸设备数目较小,无法创建足够的数据库文件。
但是DM专门设计了了一个分布式文件系统DMASM,DMASM是一个专用的分布式文件系统,使用 DMASM 自动存储管理方案,可以帮助用户更加便捷地管理 DMDSC 集群的数据库文件。DMASM 的主要部件包括:提供存储服务的裸设备、dmasmsvr 服务器、dmasmapi 接口、初始化工具 dmasmcmd 和管理工具 dmasmtool 等。
提供的主要功能包括
1.分布式管理
2.磁盘组管理
3.文件管理
4.高效的访问接口
5.通用的功能管理工具
原理
然后就是DMASM 磁盘格式化以后,会逻辑划分为若干簇 (xtent),簇是管理 DMASM 磁盘的基本单位,DMASM 文件的最小分配单位也是簇。这些逻辑划分的簇根据其用途可以分为描述簇、inode 簇和数据簇。一个磁盘组可以包含一个或多个DMASM磁盘,并且磁盘组支持在线增加DMASM磁盘,实现动态储存扩展,如下图所示。创建、删除 DMASM 文件操作,在 DMASM 系统内部其实就是转换成修改、维护 inode AU 的具体动作。而扫描全局的 inode AU 链表就可以获取到磁盘组上所有的 DMASM 文件信息。