DMTDD 概述

本文档主要介绍DM透明分布式数据库的系统特性、基本概念、实现原理、主要功能、以及如何搭建DM透明分布式数据库并使用等。

1 引言

DM透明分布式数据库的英文全称为DM Transparent Distributed Database,简称DMTDD。

DM透明分布式数据库将不同地点的多个计算机通过网络互连,共同组成一个完整的、逻辑上集中、物理上分布的大型数据库系统。DMTDD既支持传统集中式数据库的所有功能、所有开发接口和业务开发框架,又提供新式分布式数据库的高可扩展、高可用、高并发和对用户透明等高级特性。DMTDD采用计算与存储分离的系统架构,将计算、日志、存储三层分离,实现各层独立扩展、按需配置设备的特点。

本文主要介绍DMTDD的功能、概念、实现原理,并举例说明搭建过程和管理方法。

本手册可以帮助用户:

  • 了解DMTDD/DSS/DRS等分布式相关概念
  • 了解DMTDD存储层、日志层、计算层,以及基于日志的DMTDD配置过程和应用

2 DMTDD概述

达梦透明分布式架构旨在提供具有分布式特性的可扩展、高可用、高并发数据库解决方案,以满足具有高并发、大规模数据存储、业务快速扩张等特征的用户业务对数据库的要求。

达梦透明分布式架构除提供分布式计算架构特有的数据多副本、良好的横向扩展等能力外,相对于互联网厂商提供的分布式数据库技术方案,本架构还具有全SQL支持、完整的事务支持、与已有单机架构兼容,对应用透明等特点。

达梦透明分布式数据库由计算层、日志层、存储层和目录服务器构成。其中,日志层(DRS、DRAS)、存储层(DSS)和目录服务器(DCS)的各组件共同构成分布式文件系统DFS。达梦透明分布式数据库架构如下图所示:

达梦透明分布式数据库架构

图2.1 达梦透明分布式数据库架构

达梦透明分布式数据库是指在分布式文件系统DFS基础上,将计算层部署为DMDSC集群、DM MPP集群或单机数据库的分布式数据库,即 “DFS+DMDSC”、“DFS+DM MPP”或“DFS+单机”三种组织形式。其中,计算层部署为DMDSC是DMTDD中一种典型的应用场景,本文均以“DFS+DMDSC”架构为例进行介绍。

下面详细介绍DMTDD相关的计算层、日志层、存储层和目录服务器。

计算层: 由达梦数据库服务器面向用户提供并发的SQL服务,每一个节点都是一个数据库服务器(DS,Database Server)。例如,如果计算层是一个DMDSC集群,那么每一个DS则对应DMDSC集群中的一个实例。

计算层技术是基于达梦共享存储集群技术发展而来,因此继承了以下功能:

  • 完整的SQL标准支持:包括复杂关联查询、存储过程、包、触发器、视图、序列等其它分布式数据库无法支持的特性。
  • 多点写入:每个DS节点都提供完整的数据访问服务,能够支持增删改查请求,并发的写入操作可以分散到多个节点。
  • 强一致性:DS节点间通过缓存交换技术,可以保证跨节点的数据强一致,在此基础上,能够支持跨节点的多版本并发控制和完整的事务隔离级。

日志层: 由具有容灾能力的日志服务器DRS和日志归档服务器DRAS构成。DRS负责从DS实时接收数据变更日志,完成日志的存储和访问服务,并向存储层转发REDO日志。当备DRS出现异常的情况下,DRAS负责接收来自主DRS的日志进行备份归档,并承担在主DRS异常重启或者备DRS切换成主DRS的过程中进行日志同步的作用,保证主DRS缺失的日志可以补足,从而保证数据的一致性。

相对于其他厂商的分布式数据库方案,本架构设计独立的日志层,能够较好地实现日志负载的独立处理,避免日志写入对计算层和数据存储层产生资源争用。同时,独立的日志层设计能够简化存储层的逻辑,改善存储层的处理性能。

存储层: 存储层是一个支持多副本的分布式存储系统,包含多个存储服务器DSS,主要提供数据存储服务,按照DRS转发的REDO日志更新数据。

存储层支持持续的数据页更新,且数据页更新是基于REDO日志回放机制,而非传统数据库的检查点数据页刷盘机制,因此在CPU资源占用、内存带宽占用、资源峰谷差异等方面具有更好的表现。

目录服务器: 除计算层、日志层和存储层三个主要组成部件外,本架构还包含一个独立的目录服务器DCS,负责提供整个分布式集群的元数据信息,主要包括集群的拓扑和数据副本的分布信息。由于DCS承担负载较小,因此采用单一节点即可满足性能要求。从高可用的角度来看,DCS短时故障也不会影响整体系统运行,因此DCS可以用一般的高可用方案,如HA、主备等即可满足要求。

2.1 系统特性

DMTDD的主要特点包括:

  • 可扩展 计算层、日志层和存储层均可按需扩展。
  • 高可用 个别计算节点和存储节点出现故障不影响整个系统正常提供服务;日志服务器和目录服务器也具有主备容灾能力。
  • 高并发 可配置多个计算节点同时提供数据库服务。
  • 透明性 对用户透明,用户使用时基本与单机数据库一致。

2.1.1 可扩展

DMTDD架构划分为计算层、日志层、存储层,每一层遇到压力时均可横向扩展节点以分摊运行压力。

计算层:可扩展计算层的数据库服务器,提供更多的并发SQL服务。

日志层:可扩展日志组和日志服务器,为新增的数据库服务器提供日志服务。

存储层:可扩展容灾域和存储服务器,扩展新的容灾域可提高系统的容灾能力;扩展新的存储服务器则可以增加对应容灾域的存储空间。

2.1.2 高可用

DMTDD的任何单个组件失效均不影响整个系统的运行。具体说明如下:

计算节点为一个DMDSC集群,当某个数据库服务器发生故障时,通过DMCSS可以剔除故障节点并自动执行故障处理,期间正常提供服务。待故障节点重启后,可自动重新加入集群并恢复正常服务。

由于是分布式存储,DMTDD天然具有数据存储的容灾能力,具体表现在:数据文件可按配置保存多副本,各副本保存在不同的容灾域中,且在系统运行期间,只要有一个副本正常,即可提供正常的读服务,而写操作所要求的最小副本数可配置。另一方面,存储服务器故障重启后,日志服务器会自动执行故障处理以恢复数据一致性。

对于日志层,DMTDD要求每个日志组都应正常提供服务。为提高单点故障的可用性,日志组中的日志服务器可以配置为主备模式,并添加日志归档服务器,这样,当主备日志服务器和日志归档服务器任何一个发生故障时均不影响日志组的日志服务,且故障组件重启后可以自动修复。

目录服务器和后台数据库同样可以配置主备守护来提高单点故障时的可用性,当后台数据库或DCS故障时,守护进程和监视器可自动将后台备数据库切换为主备,并启动对应的DCS。

2.1.3 高并发

计算层各计算节点分别、同时对外提供完整的数据库服务,具有天然的高并发服务能力。

2.1.4 透明性

DMTDD架构逻辑对用户透明。透明性是指DMTDD上任意一个DS提供的功能与普通单机数据库基本无异。用户只需连接计算层的任意一个DS,即可获取完整的数据库服务。

2.2 基本概念

数据库服务器(Database Server,DS

对外提供数据库服务。例如,在“DFS+DSC”架构中,一个DS对应DMDSC集群中的一个实例。

日志服务器(Distributed Redo log Server,DRS)

接收DS的远程归档,提供REDO日志的存储/访问服务,并负责向数据存储层转发REDO 日志。

日志归档服务器(Distributed Redo log Archive Server,DRAS)

在备DRS出现异常的情况下,DRAS负责接收来自主DRS的日志进行备份归档,并承担在主DRS异常重启或者备DRS切换成主DRS的过程中进行日志同步的作用,保证主DRS缺失的日志可以补足,从而保证数据的一致性。

存储服务器(Distributed Storage Server,DSS)

提供数据存储服务;按照DRS转发的REDO日志更新数据。

目录服务器(Distributed Catalog Server,DCS)

负责提供整个分布式集群的元数据信息,主要包括集群的拓扑和数据副本的分布信息。

目录配置工具(DMDCSTOOL)

DMTDD环境配置工具。此工具连接DCS/DRS/DSS,进行整个分布式环境的搭建设置。DMDCSTOOL还仿照Linux命令风格,提供对分布式系统中文件目录信息的查看功能。

容灾域(Fault Domain,FD)

一组DSS的逻辑集合。一个数据的不同副本必须存储在跨容灾域的不同存储服务器。因此,即使某一个容灾域内的所有DSS全部失效,也不会影响整个DM分布式系统的数据访问。

日志分组(Rlog Group)

将日志来源DS划分为不同的日志组,每个DS仅属于一个组。每个日志组中,配置一个DRS服务器,提供日志分发及数据读写服务。

数据库(Database)

DMTDD支持共享库DSC和非共享库,共享库用于DMDSC环境,一个DMTDD环境只能包含一个共享库;非共享库用于单个DS环境(单机数据库或DM MPP),一个DMTDD环境可以包含多个非共享库。

库共享文件(Database Share File,DBSF)

保存在DCS后台库中的文件,这些文件在整个DMTDD中只有唯一一份。

DMDSC环境下的库共享文件有:DM.CTL控制文件、vtd文件(vtd.asm)和DCR文件(dcr.asm)。DM.CTL控制文件位于DMINIT.INI文件中的CTL_PATH指定的路径。在本地文件系统中,vtd文件(vtd.asm)位于DMDCR_CFG.INI 中DCR_VTD_PATH指定的路径,DCR文件(dcr.asm)位于DMINIT.INI文件中的DCR_PATH指定的路径。当vtd文件(vtd.asm)和DCR文件(dcr.asm)被存入DRS之后,具体位置根据DMASMCMD初始化后的实际情况而定。

例如,使用DMASMCMD初始化。将vtd.asm和dcr.asm从本地文件系统中(d:\data\asmdisks)装入DRS中。vtd.asm和dcr.asm在DRS中的路径为$/asmdisks。

……

init ddfsvtd '$/asmdisks/vtd.asm' from 'd:\data\asmdisks\vtd.asm'

init ddfsdcr '$/asmdisks/dcr.asm' from 'd:\data\asmdisks\dcr.asm'

……

数据文件(Data File)

数据文件以dbf为扩展名,它是数据库中最重要的文件类型。

DS的数据文件对应DMTDD上的一个逻辑文件,DS通过文件操作方式对其进行按页访问。DSS的数据文件对应磁盘上的一个物理文件。

区块(Region)

DMTDD将数据文件按照特定大小进行划片,每个划片称作一个区块。区块是DMTDD的数据划分及数据处理单元。

宏区(Great Region,GR)

维护用户副本数据的区块,其预期数据量巨大,因此区块大小也需要设置巨大。宏区默认值大小为10G,有效值范围为8M~20G。

微区(Micro Region,MR)

维护系统数据副本的区块,系统数据量有限,因此单个区块大小不宜设置过大。微区默认值大小为2M,有效值范围为1M~4M。

存储文件(Storage File)

DMTDD在SS中实际存储数据的文件,也称为物理文件。

物理分区(PHY Region)

按照区块将存储文件进行的分片,存储分区数据的文件数据段;DMTDD会为其分配全SS唯一标识,称为物理分区ID(PHY_ID)。

副本(Copy)

区块的存储实体,已经分配用以存储数据的物理分区。副本不可以跨文件使用。

分布式文件系统(Distributed File System,DFS)

DMTDD的专用文件系统,为DMTDD提供分布式数据存储。在DMTDD中,除了DS之外的其他部分均属于分布式文件系统。分布式文件系统含有DRS、DRAS、DCS和DSS。

2.3 系统规范

在DMTDD系统的使用过程中,存在多项使用规范,请用户务必遵守。具体如下:

  1. DMTDD中的Rlog Group、DSS、DRS都有自己的实例名,这些实例名要求全局唯一。
  2. DMTDD中可以配置多个Rlog Group。一个Rlog Group管理多个DS和一个DRS。一个DS仅能属于一个Rlog Group;一个DRS仅能属于一个Rlog Group。
  3. 每个DRS可以访问同一个Rlog Group内的所有的DSS。每个DRS都可以采用主备模式提供服务。
  4. 一个FD管理多个DSS,一个DSS只能属于一个FD。
  5. DMTDD并不是将完整的数据文件的副本作为存储文件,而是将完整的数据文件先按区块进行划分之后,与存储文件中的某一块数据进行映射。
  6. 一个DSS只管理一种区块类型(宏区GR或微区MR)。当一个DSS内有多个存储文件时,会顺序为各个文件中的Phy Region分配PHY_ID。
  7. 一个Region可以有多个副本。库内同一个表空间内所有文件的副本数必须相同,在创建表空间时指定,系统表空间的副本的个数在初始化库时指定。一个Region在一个容灾域内最多只能有一个副本。
  8. DMTDD中存储的逻辑文件(Database Share File和DataFile)在路径风格上采用Linux风格。
  9. DS和DMTDD对外结构标识逻辑文件时,为了与本地存储的文件进行区分,会在其路径最前面加上$; DMTDD内部显示逻辑文件路径时,不显示$。
  10. DS、DSS、DCS所对应的的页大小必须是一致的。

2.4 主要技术指标

DMTDD可提供的主要技术指标如下:

  1. 单个存储节点最大存储空间:PB级
  2. 最大副本数:10
  3. 最大计算节点数:32
  4. 最大存储节点数:10000
  5. 其它指标:同普通单机数据库一样

2.5 使用环境

部署DMTDD集群所用到的硬件和软件环境。

硬件环境

  • 主机多台。用于部署数据库服务器、存储服务器、日志服务器、日志归档服务器、目录服务器、后台数据库,以及其他DMCSS、DCS守护进程、监视器等。内存大小要求:至少2GB。
  • 网卡。配置DSC集群的数据库服务器所在主机至少准备2块网卡。提供内部网络和外部网络服务。

软件环境

  • 操作系统。Linux、Unix、Windows等。
  • 达梦数据库软件。安装好DM数据库软件之后,将拥有配置和管理DMTDD所需的所有软件:dmserver、dminit、disql、dmwatcher、dmmonitor、dmdcs、dmdcstool、dmdrs、dmdras、dmdss、dmdssinit、dmasmcmd、dmcss、dmcssm等。这些软件位于安装目录/dmdbms/bin中。

2.6 典型部署

根据达梦数据库分布式计算架构设计,用户可根据需要,在单个机房内,分别对存储层、日志层和计算层各自独立扩展,满足业务的横向扩展需求。

为了满足用户的容灾需求,本节特给出典型的DMTDD架构图,即“DFS+DMDSC”的组织形式。如下图所示:

基于DMTDD架构的多副本DSC集群

图2.2基于DMTDD架构的多副本DSC集群

用户的数据层节点,由于不要求实时的副本一致性,因此数据节点可以分散在多个机房,只需保证每个数据的副本不在同一机房内存放即可。

日志服务器采用高可用方案,采用主备DRS模式,实现自动故障切换,即当主DRS出现故障时,备DRS会自动切换为主DRS,继续对外提供DRS服务。

目录服务器也采用高可用方案,采用主备DCS模式,实现自动故障切换。

微信扫码
分享文档
扫一扫
联系客服