当前位置: 首页 > news >正文

达梦DMDSC初研

1.文件系统

1.1文件系统DMASM

DMASM是一个分布式文件系统,用来管理块设备的磁盘和文件,DMASMCMD将物理磁盘格式化后,变成可识别、可管理的 ASM磁盘,再通过 ASM磁盘组将一个或者多个 ASM磁盘整合成一个整体提供文件服务。ASM磁盘格式化以后,会逻辑划分为若干簇(Extent),簇是管理 ASM磁盘的基本单位,ASM文件的最小分配单位也是簇。

这些逻辑划分的簇根据其用途可以分为 DESC描述簇、INODE簇和 DATA数据簇。描述簇由多个描述项组成。每一个描述项存储一个 INODE 簇或一个数据簇的元数据。元数据包括簇所属文件 ID,簇的前一位簇,簇的后一位簇等。NODE簇由多个 INODE项组成。每一个 INODE项存放一个 ASM文件的元数据。元数据包括文件完整路径、大小、创建时间等信息。数据簇用于存储用户数据。

1.2磁盘组管理

磁盘组由一个或多个 ASM磁盘组成,是存储 ASM文件的载体;一块 ASM磁盘只能属于一个磁盘组。DMASM支持动态添加 ASM磁盘。DMASM只提供文件级别并发控制,访问 ASM文件时系统会进行封锁操作。DMASM允许多个用户同时向同一个文件的相同偏移写入数据,一旦发生这种并发写,系统无法预知最终写入磁盘的数据是什么。因此,DMASM必须由使用 DMASM的应用程序来控制数据文件的读写并发,即避免多个程序同时写同一个数据文件的相同数据块。

​​​​​​​1.3映射表

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

​​​​​​​1.4类似RAID6的“镜像”

DMASM镜像提供了多副本和条带化功能。多副本技术保证同一数据的多个副本会分别写入到不同的磁盘中。多个副本中只有一个作为主副本对外提供服务,其余副本均作为镜像副本。当主副本发生故障后,系统会从镜像副本中重新自动挑选一个继续提供服务。条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现负载均衡。

DMDSC采用配置镜像功能的 DMASM管理的块设备作为共享存储,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。

​​​​​​​1.5REDO日志

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

2.集群控制软件DMCSS

2.1集群状态监控

DMCSS维护集群状态,随着节点活动信息的变化,集群状态也会产生变化,DMCSS控

制节点会通知被监控节点执行不同命令,来控制节点启动、故障处理、故障重加入等操作

DMCSS 控制节点每秒从 VOTE 磁盘(非镜像环境下)或 DCRV磁盘(镜像环境下)读取被监控对象的心跳信息。一旦被监控对象的时间戳在 DCR_GRP_DSKCHK_CNT 秒内没有变化,则认为被监控对象出现异常。

DMCSS普通节点定时读取 DMCSS控制节点的心跳信息,监控 DMCSS运行状态。

​​​​​​​2.2节点故障处理

DMCSS 控制节点检测到实例故障后,首先向故障实例的 VOTE 磁盘(非镜像环境下)或 DCRV磁盘(镜像环境下)区域写入 Kill命令(所有实例一旦发现 Kill命令,无条件自杀),避免故障实例仍然处于活动状态,引发脑裂,然后启动故障处理流程

 DMDSC故障处理分为三个阶段;第一阶段由所有活动节点共同参与,进行全局的信息收集、重构;第二阶段由控制节点执行,重演 REDO日志;第三阶段由控制节点执行,将故障节点的活动事务回滚、并 PURGE故障节点已提交事务的修改。

3.独立的集群监视器DMCSSM

3.1监控集群状态

DMCSSM与 DMCSS相互通信,从 DMCSS处获取整个集群系统的状态信息。DMCSSM提供一系列管理维护集群的命令:包括监控集群状态;打开/关闭指定组的自动拉起;强制 OPEN指定组;启动/退出集群;集群故障处理等。

​​​​​​​3.2集群动态视图

DMDSC 集群提供一系列动态视图来查看当前的系统运行信息。部分视图是全局的,任意节点登录查询的结果都是相同的,部分视图仅显示登录节点的信息。

参考于《达梦8数据共享集群用户手册》

相关文章:

  • 【C语言】数据在内存中的存储:从整数到浮点数的奥秘
  • 1️⃣6️⃣three.js_光源
  • 大语言模型时代,单细胞注释也需要集思广益(mLLMCelltype)
  • 数字人接大模型第一步:表情同步
  • STM32 串口USART
  • 【嵌入式系统设计师(软考中级)】第二章:嵌入式系统硬件基础知识(2)
  • Concepts (C++20)
  • 如何在 Postman 中,自动获取 Token 并将其赋值到环境变量
  • 每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)
  • Java 富文本转word
  • java方法引用
  • static成员
  • jQuery的removeClass(),一次删除多个class
  • 4.2 Prompt工程与任务建模:高效提示词设计与任务拆解方法
  • 【学习笔记】文件包含漏洞--相关习题
  • 全面解析 UGC 平台物品冷启动策略
  • 【Linux内核】内核中的中断管理
  • Activepieces - 开源自动化工具
  • 【动手学大模型开发】什么是大语言模型
  • 【阿里云大模型高级工程师ACP习题集】2.4 自动化评测答疑机器人的表现(⭐️⭐️⭐️ 重点章节!!!)
  • 谭秀洪任广西梧州市人大常委会党组书记,此前任北海市委常委
  • 李良生已任应急管理部党委委员、政治部主任
  • 商务部:美方应彻底取消所有对华单边关税措施
  • 中国空间站已在轨实施了200余项科学与应用项目
  • 中国墨西哥商会副执行主席:深耕中国市场18年,对未来充满信心
  • 观察|首个半马落幕:人形机器人场景应用才刚站上起点