DMASM系统

DMASM系统概述

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

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

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

下图为一个部署了 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 术语和基本概念

在这里插入图片描述

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 DISK)

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

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

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/beda650f4bcf4183a801838220883bfa.png

DMASM 关键技术

ASM 磁盘与文件管理

DMASMCMD 将物理磁盘格式化后,变成可识别、可管理的 ASM 磁盘,再通过 ASM 磁盘组将一个或者多个 ASM 磁盘整合成一个整体提供文件服务。
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/12db823e031542e99c5696dd416f3456.png
ASM 磁盘格式化以后,会逻辑划分为若干簇(Extent),簇是管理 ASM 磁盘的基本单位,ASM 文件的最小分配单位也是簇。
这些逻辑划分的簇根据其用途可以分为 DESC 描述簇、INODE 簇和 DATA 数据簇。
描述簇由多个描述项组成。每一个描述项存储一个 INODE 簇或一个数据簇的元数据。元数据包括簇所属文件 ID,簇的前一位簇,簇的后一位簇等。
INODE 簇由多个 INODE 项组成。每一个 INODE 项存放一个 ASM 文件的元数据。元数据包括文件完整路径、大小、创建时间等信息。
数据簇用于存储用户数据。
在这里插入图片描述
创建、删除 ASM 文件操作,在 DMASM 系统内部会转换成修改、维护 INODE AU 的具体动作。而扫描全局的 INODE AU 链表就可以获取到磁盘组上所有的 ASM 文件信息。

DMASM REDO 日志

DMASM 采用重做日志机制保证在各种异常(比如系统掉电重启)情况下数据不被损坏。创建、删除 ASM 文件等 DDL 操作过程中,所有针对 DMASM 描述 AU、INODE AU 的修改,都会生成 REDO 日志,并且在描述 AU、INODE AU 的修改写入磁盘之前,必须确保 REDO 日志已经写入磁盘。DMASM 中,只针对描述 AU 和 INODE AU 的修改产生 REDO 日志,用户修改数据 AU 的动作并不会产生 REDO 日志。

DMASM 所有 DDL 操作(创建文件、删除文件、增加磁盘等)都是串行执行的,并且在操作完成之前,会确保所有修改的描述项、INODE 项写入磁盘;一旦 DDL 操作完成,所有 REDO 日志就可以被覆盖了。

DDL 操作过程中出现异常时,如果 REDO 日志尚未写入磁盘,则当前操作对系统没有任何影响;如果 REDO 日志已经写入磁盘,那么重新启动后,系统会重演 REDO 日志,修改描述 AU 和 INODE AU,将此 DDL 继续完成

簇映射表

创建 ASM 文件后,用户操作 ASM 文件的一般流程是:调用 ASM 文件的 OPEN、READ、WRITE 接口,打开 ASM 文件并获取一个句柄,再使用这个句柄从文件的指定偏移读取数据、或者写入数据。用户在使用 DMASM 的过程中,只需要获取一个 ASM 文件句柄,并不需要知道数据最终保存在物理磁盘的什么位置。

DMASM 使用簇映射表机制维护 ASM 文件与物理磁盘地址的映射关系,访问 ASM 文件时,根据文件号、文件偏移等信息,通过簇映射表可以快速获取到物理磁盘地址。

由于 DMASM 并不缓存任何用户数据,与直接读、写块设备相比,ASM 文件的读、写操作仅仅增加了簇映射的代价,而这个代价与 IO 代价相比几乎可以忽略,因此,使用 DMASM 并不会引起读、写性能的降低。

DMASMCMD

DMASMCMD 是 DMASM 文件系统初始化工具,用来将块设备格式化为 ASM 磁盘,并初始化 DCR DISK、VOTE DISK。格式化 ASM 磁盘就是在块设备的头部写入 ASM 磁盘特征描述符号,包括 DMASM 标识串、ASM 磁盘名、以及 ASM 磁盘大小等信息。其中 VOTE DISK 和 DCR DISK 也会被格式化为 ASM 磁盘。

DMASMCMD 工具的主要功能包括:
1 格式化 ASM 磁盘。
2 初始化 DCR DISK,同时指定密码。
3 初始化 VOTE DISK。
4 导出、导入 DCR DISK 配置信息。
5 清理 DCR DISK 中指定组的故障节点信息。
6 创建用于模拟块设备的磁盘文件(用于单机模拟 DMDSC 环境)。
7 列出指定路径下面磁盘属性。
8 联机修改 DCR 磁盘,扩展节点。

语句

创建 ASM 磁盘
CREATE ASMDISK ‘/HOME/ASMDISKS/DISK0.ASM’ ‘DATA0’ 100

用来将块设备格式化为 DCR 磁盘,会在块设备头部写入 DCR 标识信息。size 取值最小 32。
CREATE DCRDISK ‘/HOME/ASMDISKS/DISK0.ASM’ ‘DATA0’ 100

用来将块设备格式化为 VOTE DISK,会在块设备头部写入 VOTE DISK 标识信息
CREATE VOTEDISK ‘/HOME/ASMDISKS/DISK0.ASM’ ‘DATA0’ 100
创建空文件模拟块设备
CREATE EMPTYFILE ‘/OPT/DATA/ASMDISKS/DISK0.ASM’ SIZE 100

初始化 DCR DISK & VOTE DISK
INIT DCRDISK ‘/DEV/RAW/RAW2’ FROM ‘/HOME/ASM/DMDCR_CFG.INI’ IDENTIFIED BY ‘AAAAAA’

导出 DCR 的配置文件
EXPORT DCRDISK ‘/DEV/RAW/RAW2’ TO ‘/HOME/ASM/DMDCR_CFG.INI’
导入 DCR 的配置文件
IMPORT DCRDISK ‘/DATA/DMDCR_CFG.INI’ TO ‘/DATA/ASMDISKS/DISK0.ASM’

校验 DCR 磁盘
CHECK DCRDISK ‘/DEV/RAW/RAW2’

清理指定组的故障节点信息
CLEAR DCRDISK ERR_EP_ARR ‘/DEV/RAW/RAW2’ ‘GRP_DSC’

显示指定路径下面磁盘属性
显示 path 路径下面所有磁盘的信息,分为三种类型:
NORMAL DISK:普通磁盘;
UNUSED ASMDISK:初始化未使用的 ASMDISK;
USED ASMDISK:已经使用的 ASMDISK。
LISTDISKS ‘/DEV/RAW/’

联机修改 DCR 磁盘,扩展节点
EXTEND DCRDISK ‘D:\ASMDISKS\DISK0.ASM’ FROM ‘D:\DMDCR_CFG.INI’

更多内容请查看达梦官方网站:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值