DMDSC 介绍

DMDSC 介绍

DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。

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

DMDSC 概述

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

DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。DMDSC 集群最多支持 8 个数据库实例节点。下图展示了一个两节点的 DMDSC 集群系统结构图。

在这里插入图片描述

系统特性

DMDSC 的主要特点包括:

  • 高可用性 只要集群中有一个活动节点,就能正常提供数据库服务。此外,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。
  • 高吞吐量 多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
  • 负载均衡 一方面,通过巧用服务名,用户的连接请求被平均分配到集群中的各个节点,确保连接负载平衡;另一方面,条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。

高可用性

DMDSC 集群通过两种方式提供达梦数据库高可用解决方案。

一、使用集群控制软件 DMCSS

当出现系统故障、硬件故障、或人为操作失误时,DMCSS 可检测故障并自动将故障节点踢出集群,保证数据库服务的正常提供。

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

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

二、使用 DMASM 镜像的多副本技术

如果 DMDSC 配置了 DMASM 镜像,镜像功能可提供多副本技术。当出现磁盘损坏或数据丢失时,系统无需人工干预即可利用其他镜像副本继续提供数据库服务,同时又可以自动或手动通过使用其他镜像副本进行数据恢复。

高吞吐量

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

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

负载均衡

DMDSC 从连接和数据两个层面提供负载均衡特性。

一、通过巧用服务名

通过配置 DM 数据库连接服务名来访问 DMDSC 集群,可以实现节点间的连接自动负载均衡。用户的数据库连接请求会被自动、平均地分配到 DMDSC 集群中的各个节点。并且连接服务名支持 JDBC、DPI、ODBC、DCI、.Net Provider 等各种数据库接口。

二、使用镜像的条带化技术

通过配置 DMASM 镜像,使用镜像的条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。

基本概念

数据库和数据库实例

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

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

共享存储

DMDSC 集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、日志文件保存在共享存储上。

DMDSC 使用 DMASM 文件系统管理共享存储设备。DMASM 有两个版本:一是早期版本,提供基础的磁盘组操作、文件操作等,;二是 ASM 镜像版本,在早期版本的基础上增加了 ASM 文件镜像功能、文件条带化功能、DCRV 多磁盘功能等。两种版本的 ASM 文件互不兼容。

一台共享存储上,只能搭建一套 DMASM 文件系统,多套会导致系统启动失败。

本地存储

DMDSC 集群中,本地存储用来保存配置文件(记录数据库实例配置信息的 DM.INI、DMARCH.INI、DMMAL.INI)。

通信网络

DMDSC 集群中,网络分为对外服务网络、MAL 高速内网和高速共享存储网络三部分。

对外服务网络用于对外提供数据库服务,用户使用公共网络地址登录 DMDSC 集群,访问数据库。

MAL 高速内网用于数据库实例之间交换信息和数据。MAL 链路即为 MAL 高速内网。

高速共享存储网络用于数据库实例和共享存储之间的通信。常见的两种方式为通过光纤通道实现或通过网络 SCSI 实现。高速共享存储网络搭建工作一般由存储设备厂商完成,不是本书讨论的内容,具体实施方案请咨询共享存储设备厂商或达梦 DBA。

集群和集群组

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

本文档中涉及到的集群有三种:DMDSC 集群,DMCSS 集群和 DMASM 集群。一个 DMDSC 集群由多个 DMSERVER 服务器共同构成;一个 DMCSS 集群由多个 DMCSS 服务器共同构成;一个 DMASM 集群由多个 DMASM 服务器共同构成。

集群又称为集群组。集群组的概念在配置 DMDCR_CFG.INI 文件中使用,用于配置一个集群中的组内成员节点的公用和专用信息。DMDSC 集群,DMCSS 集群和 DMASM 集群的集群组类型分别为 DB、CSS 和 ASM。例如:一个 DMDSC 集群中共含有 5 个 DMSERVER 节点,则在 DMDCR_CFG.INI 中,该 DMDSC 集群的组类型为 DB,组中成员的个数为 5。

DMDSC 集群

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

DM 自动存储管理器

DM 自动存储管理器(DM Auto Storage Manager,简称 DMASM)是一个专用用来为块设备管理文件的分布式文件系统。使用 DMASM 文件系统可以灵活地在块设备上创建、删除、扩展、截断文件,不用担心空间不足(可以通过在线增加块设备的磁盘来扩展空间)或空间浪费;不用考虑文件个数限制;可以方便地查看空间使用情况。

DMDSC 支持多个节点同时访问、修改 DMASM 中的数据文件。

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

DMDSC 集群中若配置 DMASM,则要求 DMASM 站点数和 DMCSS 站点数一致,且只能存在一个 DMCSS 组和一个 DMASM 组。

DM 集群同步服务

DM 集群同步服务(DM Cluster Synchronization Services,简称 DMCSS)是一款集群控制软件,是 DMDSC 集群应用的基础。DMCSS 专门负责监控集群中各个节点的运行状态,主要功能包括集群环境中节点的启动、故障处理、节点重加入等操作。

每个 DMDSC 集群或 DMASM 集群节点都必须配置一个 DMCSS 服务。这些 DMCSS 服务又共同构成一个 DMCSS 集群。单节点应用时,可以不配置 DMCSS。

DM 集群监视器

DM 集群监视器(DM Cluster Synchronization Services Monitor,简称 DMCSSM)用来监控整个集群的状态信息。

DMCSSM 与 DMCSS 相互通信,从 DMCSS 处获取整个集群系统的状态信息。DMCSSM 提供一系列管理维护集群的命令。

配置了 DMCSS 的集群中,可配置 0~10 个 DMCSSM。为了防止硬件损坏导致 DMCSSM 和其他服务器同时故障,建议用户将 DMCSSM 和其他服务器分开放置,DMCSSM 可单独放置在一台机器上。

心跳机制

DMCSS 的心跳机制(Heartbeat)是通过 VOTE 磁盘(非镜像环境下)或 DCRV 磁盘(镜像环境下)的 Disk Heartbeat 实现。
心跳机制有最大时延,只有超过最大时延,才认为监测对象故障。

MAL 链路

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

共享内存

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

DMCSS 介绍

达梦集群同步服务(Dameng Cluster Synchronization Services,简称 DMCSS)使用 DMASM 集群或 DMDSC 集群都必须配置 DMCSS 服务。在 DMASM 集群或 DMDSC 集群中,每个节点都需要配置一个 DMCSS 服务。这些 DMCSS 服务自身也构成一个集群,DMCSS 集群中负责监控、管理整个 DMASM 集群和 DMDSC 集群的节点称为控制节点(Control Node),其他 DMCSS 节点称为普通节点(Normal Node)。DMCSS 普通节点不参与 DMASM 集群和 DMDSC 集群管理,当 DMCSS 控制节点故障时,会从活动的普通节点中重新选取一个 DMCSS 控制节点。

DMCSS 工作的基本原理是:在 VOTE 磁盘(非镜像环境下)或 DCRV 磁盘(镜像环境下)中,为每个被监控对象(DMASMSVR、DMSERVER、DMCSS)分配一片独立的存储区域,被监控对象定时向 VOTE 或 DCRV 磁盘写入信息(包括时间戳、状态、命令、以及命令执行结果等);DMCSS 控制节点定时从 VOTE 或 DCRV 磁盘读取信息,检查被监控对象的状态变化,启动相应的处理流程;被监控对象只会被动的接收 DMCSS 控制节点命令,执行并响应。

DMCSS 主要功能包括:写入心跳信息、选举 DMCSS 控制节点、选取 DMASM/DMDSC 控制节点、管理被监控对象的启动流程、集群状态监控、节点故障处理、节点重加入等,DMCSS 还可以接收并执行 DMCSSM 指令。

DMASM 介绍

DM 自动存储管理器(DM Auto Storage Manager,简称 DMASM)是一个专用的分布式文件系统。

DMDSC 如果直接使用块设备作为共享存储来存放数据库文件,会因为块设备本身的诸多功能限制,造成 DMDSC 集群在使用、维护上并不是那么灵活方便。为了克服块设备的这些使用限制,DM 专门设计了一款分布式文件系统 DMASM,来管理块设备的磁盘和文件。DMASM 的出现为 DMDSC 灵活管理和使用块设备提供了完美的解决方案。

使用 DMASM 自动存储管理方案,可以帮助用户更加便捷地管理 DMDSC 集群的数据库文件。DMASM 的主要部件包括:提供存储服务的块设备、DMASMSVR 服务器、DMASMAPI 接口、初始化工具 DMASMCMD 和管理工具 DMASMTOOL 等。

下图为一个部署了 DMASM 的 DMDSC 集群结构图。

在这里插入图片描述

使用 DMASM 的好处

下面通过对比的方式,展示在 DMDSC 中使用 DMASM 的好处。

如果直接将块设备作为 DMDSC 的共享存储,存在多项限制,增加了 DBA 的管理难度。具体限制在以下几点:

  1. 不支持动态扩展文件大小;在创建数据文件时,就必须指定文件大小,并且文件无法动态扩展。
  2. 数据文件必须占用整个裸或块设备盘,造成空间浪费。
  3. 不支持类 linux 的文件操作命令,使用不方便。
  4. 操作系统支持最大块设备数目较小,无法创建足够的数据库文件。

为了克服上述限制,推荐用户使用 DMASM 来管理块设备的磁盘和文件。DMASM 提供了基本的数据文件访问接口,可以有效降低 DMDSC 共享存储的维护难度。DMASM 提供的主要功能包括:

  1. 分布式管理

    支持多台机器并发访问 ASM 磁盘和文件,提供全局并发控制。

  2. 磁盘组管理

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

  3. 文件管理

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

  4. 完善、高效的访问接口

    通过 DMASMAPI 可以获得各种文件管理功能。

  5. 通用功能的管理工具

    DMASMTOOL 提供一套类 Linux 的文件操作命令用于管理 ASM 文件,降低用户学习、使用 DMASM 文件系统的难度。

DMASM 术语和基本概念

中英文对照术语表

中文术语英文术语
DM 自动存储管理器DM Auto Storage Manager,简称 DMASM
ASM 磁盘ASM DISK
磁盘组DISK GROUP
ASM 文件ASM FILE
extent
数据分配单元Allocation Units,简称 AU
DM 集群注册表DM Clusterware Registry,简称 DCR
DCR 磁盘DCR DISK
VOTE 磁盘VOTE DISK,简称 VTD
DMASM 文件系统初始化工具DMASMCMD (专门用于 DMASM 非镜像环境)
DMASM 服务器DMASMSVR (专门用于 DMASM 非镜像环境)
DMASM 应用程序访问接口DMASMAPI (专门用于 DMASM 非镜像环境)
DMASM 管理工具DMASMTOOL (专门用于 DMASM 非镜像环境)

DMASM 基本概念

下面详细介绍各概念:

DM 自动存储管理器(DM Auto Storage Manager,简称 DMASM)

DMASM 是一个分布式文件系统,用来管理块设备的磁盘和文件。

ASM 磁盘

ASM 磁盘是指经过 DMASMCMD 工具格式化,可以被 DMASMSVR 识别的物理磁盘。ASM 磁盘是组成磁盘组的基本单位,一个块设备只能格式化为一个 ASM 磁盘,不支持分割使用。

磁盘组

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

ASM 文件(ASMFILE)

在 ASM 磁盘组上创建的文件,称之为 ASM 文件。一个 ASM 文件只能保存在一个磁盘组中,但一个 ASM 文件的数据可以物理存放在同一磁盘组的多个 ASM 磁盘中。DMDSC 集群中,需要多个节点共享访问的数据库文件、日志文件、控制文件等,一般会创建为 ASM 文件。

DMASM 文件路径都以“+GROUP_NAME”开头,使用“/”作为路径分隔符,任何以“+”开头的文件,DM 都认为是 DMASM 文件,“GROUP_NAME”是磁盘组名称。比如,“+DATA/ctl/dm.ctl”表示 dm.ctl 文件,保存在 DMASM 文件系统的“DATA”磁盘组的 ctl 目录下。"+"号只能出现在全路径的第一位,出现在任意其他地方的路径都是非法的。

DMASM 只提供文件级别并发控制,访问 ASM 文件时系统会进行封锁操作。比如,正在访问的数据文件不允许被删除。但是 DMASM 并不提供数据文件的读写并发控制。DMASM 允许多个用户同时向同一个文件的相同偏移写入数据,一旦发生这种并发写,系统无法预知最终写入磁盘的数据是什么。因此,DMASM 必须由使用 DMASM 的应用程序来控制数据文件的读写并发,即避免多个程序同时写同一个数据文件的相同数据块。

不提供读写并发控制主要原因有两个:

原因一 达梦数据库管理软件已经提供了数据读写的并发控制机制,确保不会同时读、写相同的数据页,因此 DMASM 不需要再实现一套重复的并发控制策略。

原因二 DMASM 镜像不提供读写并发控制可提升 ASM 文件的读写效率。如果提供读、写操作的全局并发控制,虽然可避免并发写入导致数据不一致,但这种策略会影响读、写性能。

簇(Extent)

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

数据分配单元(Allocation Units,简称 AU)

DMASM 存储管理的最小单位。AU 的大小为 1M,为系统固定大小,无需用户指定。DMASM 以 AU 为单位将磁盘划分为若干逻辑单元,ASM 文件也是由一系列 AU 组成。根据 AU 的不同用途,系统内部定义了一系列 AU 类型,包括:desc AU、inode AU、REDO AU、和 data AU。

DCR 磁盘(DCR DISK)

DM 集群注册表(DM Clusterware Registry,简称 DCR)磁盘专门用于存储 DCR 文件。DCR 文件记录了存储、维护集群配置的详细信息。整个集群环境共享 DCR 磁盘信息,包括集群(DMDSC、DMASM、DMCSS)资源、实例名、监听端口、集群中故障节点信息等。DCR 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持保存在 DMASM 文件系统管辖范围之外的共享存储上。在一个集群环境中只能配置一个 DCR 磁盘。

VOTE 磁盘(VOTE DISK)

VOTE 磁盘专门用于存储 VTD 文件。VTD 文件记录了集群成员信息。DM 集群通过 VOTE DISK 进行心跳检测,确定集群中节点的状态,判断节点是否出现故障。当集群中出现网络故障时,使用 VOTE DISK 来确定哪些 DMDSC 节点应该被踢出集群。VOTE 磁盘还用来传递命令,在集群的不同状态(启动、节点故障、节点重加入等)DMCSS 通过 VOTE DISK 传递控制命令,通知节点执行相应命令。VOTE DISK 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持保存在 DMASM 文件系统管辖范围之外的共享存储上。在一个集群环境中只能配置一个 VOTE 磁盘。

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

DMASM 和达梦数据库文件系统对照表

DMASM 的实现主要参考了达梦数据库文件系统,因此,一些概念和实现原理与达梦数据库基本类似,熟悉达梦数据库的用户,就会更加容易理解 DMASM。

DMASM/达梦文件系统概念对照表

DMASM达梦文件系统
磁盘组(DISK GROUP)表空间(TABLESPACE)
ASM 磁盘(DISK)数据文件(DATAFILE)
ASM 文件(FILE)段(SEGMENT)
簇(EXTENT)簇(EXTENT)
AU(ALLOCATION UNITS)页(PAGE)
描述 AU(DESC AU)描述页(DESC PAGE)
磁盘组(DISK GROUP)表空间(TABLESPACE)
ASM 磁盘(DISK)数据文件(DATAFILE)
ASM 文件(FILE)段(SEGMENT)
簇(EXTENT)簇(EXTENT)
AU(ALLOCATION UNITS)页(PAGE)
描述 AU(DESC AU)描述页(DESC PAGE)
INODE AU(INODE AU)INODE 页(INODE PAGE)

达梦社区地址:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值