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数据共享集群用户手册》