注册
DMDSC部署中VMware共享存储与核心配置实战
培训园地/ 文章详情 /

DMDSC部署中VMware共享存储与核心配置实战

电子眼镜蛇 2025/09/02 201 0 0

DMDSC部署中VMware共享存储与核心配置实战

在企业级数据库应用中,高可用性是保障业务连续性的关键。达梦数据库共享存储集群(DMDSC)通过双节点架构与共享存储结合,能有效实现数据同步与故障切换,为业务稳定运行保驾护航。本文将聚焦DMDSC部署的核心环节——VMware共享存储配置与磁盘、DCR关键配置,带您快速掌握集群搭建的核心技术要点。

一、VMware共享存储:集群数据交互的“桥梁”

共享存储是DMDSC集群的核心基础,需通过VMware创建5类专用磁盘(数据、DCR、vote、redo日志、归档日志),并确保双节点(dsc1、dsc2)可正常访问。

1. 前期准备:目录创建与权限配置

首先需在Windows主机的VMware安装目录下创建共享磁盘存放目录,避免后续出现“文件未找到”错误。通过CMD命令行执行以下操作:

mkdir -p D:\apps\vmware\dsc1\sharedisk

关键步骤:右键VMware安装目录,进入“属性-安全-编辑”,添加“Everyone”用户并设置“完全控制”权限,确保VMware对目录拥有完整操作权限。

2. 共享磁盘创建:工具与参数解析

使用VMware自带的vmware-vdiskmanager.exe工具创建磁盘,类型指定为“-t 2”(预分配厚置备),确保磁盘性能稳定。需创建的5块磁盘及对应命令如下:

  • 数据磁盘(10G):.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-data0.vmdk"
  • DCR磁盘(5G):.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-dcr.vmdk"
  • vote磁盘(5G):.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-vote.vmdk"
  • redo日志磁盘(10G):.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-log0.vmdk"
  • 归档日志磁盘(10G):.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-arch0.vmdk"

image.png

执行命令后,可在目标目录查看生成的磁盘文件(如share-data0.vmdk及对应的share-data0-flat.vmdk),确认磁盘创建成功。

image.png

3. 虚拟机vmx配置:解锁多节点访问

关闭dsc1和dsc2虚拟机,编辑两者的vmx文件,在末尾添加共享磁盘配置参数,核心是关闭磁盘锁定(disk.locking = "FALSE")并指定磁盘路径,示例如下:

shared disks configure
   diskLib.dataCacheMaxSize=0        
   diskLib.dataCacheMaxReadAheadSize=0
   diskLib.dataCacheMinReadAheadSize=0
   diskLib.dataCachePageSize=4096    
   diskLib.maxUnsyncedWrites = "0"
   disk.locking = "FALSE"
   scsi1.sharedBus = "virtual"
   scsi1.present = "TRUE"
   scsi1.virtualDev = "lsilogic"
   scsi1:0.mode = "independent-persistent"
   scsi1:0.deviceType = "disk"
   scsi1:0.present = "TRUE"
   scsi1:0.fileName = "D:\apps\vmware\dsc1\sharedisk\share-data0.vmdk"
   scsi1:0.redo = ""
   scsi1:1.mode = "independent-persistent"
   scsi1:1.deviceType = "disk"
   scsi1:1.present = "TRUE"
   scsi1:1.fileName = "D:\apps\vmware\dsc1\sharedisk\share-dcr.vmdk"
   scsi1:1.redo = ""
   scsi1:2.mode = "independent-persistent"
   scsi1:2.deviceType = "disk"
   scsi1:2.present = "TRUE"
   scsi1:2.fileName = "D:\apps\vmware\dsc1\sharedisk\share-vote.vmdk"
   scsi1:2.redo = ""
   scsi1:3.mode = "independent-persistent"
   scsi1:3.deviceType = "disk"
   scsi1:3.present = "TRUE"
   scsi1:3.fileName = "D:\apps\vmware\dsc1\sharedisk\share-log0.vmdk"
   scsi1:3.redo = ""
   scsi1:4.mode = "independent-persistent"
   scsi1:4.deviceType = "disk"
   scsi1:4.present = "TRUE"
   scsi1:4.fileName = "D:\apps\vmware\dsc1\sharedisk\share-arch0.vmdk"
   scsi1:4.redo = ""

image.png

配置完成后启动虚拟机,进入“编辑虚拟机设置”,可看到新增的5块共享磁盘(容量分别为10G、5G、5G、10G、10G),此时VMware共享存储配置完成。

二、磁盘与DCR配置:集群运行的“核心骨架”

完成共享存储搭建后,需通过udev规则绑定磁盘、创建DCR配置文件并初始化磁盘组,为DMDSC集群提供统一的磁盘标识与基础运行配置。

1. 磁盘scsi_id获取:确保双节点一致性

udev规则绑定依赖磁盘唯一标识scsi_id,双节点同一共享磁盘的scsi_id必须一致,否则绑定失败。在双节点执行以下命令获取各磁盘scsi_id(示例结果仅供参考):

/usr/lib/udev/scsi_id -g -u /dev/sdb  # 数据磁盘,返回36000c2955ddd4a42ef78fedac4991d76
/usr/lib/udev/scsi_id -g -u /dev/sdc  # DCR磁盘,返回36000c2931e189c5b98ee136faf7d33c9
/usr/lib/udev/scsi_id -g -u /dev/sdd  # vote磁盘,返回36000c298414bcad0619ba181dd8ebe74
/usr/lib/udev/scsi_id -g -u /dev/sde  # redo日志磁盘,返回36000c2949f5014f3437e6c563abf2bd2
/usr/lib/udev/scsi_id -g -u /dev/sdf  # 归档日志磁盘,返回36000c29438789543cb1a27d3071d0314

记录各磁盘scsi_id,后续用于udev规则配置。

2. udev规则配置:磁盘权限与链接管理

创建udev规则文件/etc/udev/rules.d/99-dm-asmdevices.rules,为每块磁盘配置符号链接、所有者(dmdba)与权限(0660),确保达梦进程可正常访问。规则示例如下:

## DCR磁盘配置,磁盘scsi_id需要和环境规划一致
   KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2931e189c5b98ee136faf7d33c9",SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC; ln -s /dev/DCR /dev_DSC/DCR'"

    VOTE 磁盘配置
   KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c298414bcad0619ba181dd8ebe74",SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC/VOTE'"

    DMDATA 磁盘配置
   KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2955ddd4a42ef78fedac4991d76",SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC/DMDATA'"

    DMLOG 磁盘配置
   KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2949f5014f3437e6c563abf2bd2",SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC/DMLOG ; chown -R dmdba:dmdba /dev_DSC '"

执行udevadm control --reload-rules && udevadm trigger使规则生效,通过ls -lth /dev_DSC可查看生成的磁盘链接(如DCR、VOTE、DMDATA等),确认配置成功。

image.png

3. DCR配置文件与磁盘初始化:集群“大脑”搭建

(1)创建dmdcr_cfg.ini配置文件

切换至dmdba用户,在/home/dmdba/config目录下创建dmdcr_cfg.ini,配置集群组(CSS、ASM、DB)、节点IP与端口、磁盘路径等核心参数,关键配置如下:

DCR_N_GRP             = 3  # 集群组数量
DCR_VTD_PATH          = /dev_DSC/VOTE  # vote磁盘路径
DCR_OGUID             = 63635  # 集群唯一OGUID

# CSS组配置(集群管理服务)
[GRP]
DCR_GRP_TYPE         = CSS  
DCR_GRP_NAME         = GRP_CSS
DCR_GRP_N_EP         = 2  # 节点数量
[GRP_CSS]
DCR_EP_NAME          = CSS0
DCR_EP_HOST          = 192.168.226.132  # 节点1IP
DCR_EP_PORT          = 9836  # CSS端口
[GRP_CSS]
DCR_EP_NAME          = CSS1
DCR_EP_HOST          = 192.168.226.133  # 节点2IP
DCR_EP_PORT          = 9837

# ASM组配置(存储管理服务)
[GRP]
DCR_GRP_TYPE         = ASM
DCR_GRP_NAME         = GRP_ASM
[GRP_ASM]
DCR_EP_NAME          = ASM0
DCR_EP_HOST          = 192.168.226.132
DCR_EP_PORT          = 5836
DCR_EP_ASM_LOAD_PATH  = /dev_DSC  # ASM磁盘加载路径
[GRP_ASM]
DCR_EP_NAME          = ASM1
DCR_EP_HOST          = 192.168.226.133
DCR_EP_PORT          = 5837

# DB组配置(数据库实例)
[GRP]
DCR_GRP_TYPE         = DB
DCR_GRP_NAME         = GRP_DSC
[GRP_DSC]
DCR_EP_NAME          = DSC01
DCR_EP_PORT          = 5236  # 数据库端口
[GRP_DSC]
DCR_EP_NAME          = DSC02
DCR_EP_PORT          = 5236

(2)初始化磁盘组

在节点1的/home/dmdba/dmdbms/bin目录下启动dmasmcmd工具,执行磁盘初始化命令,将DCR配置写入磁盘:

# 创建磁盘标识
create dcrdisk '/dev_DSC/DCR' 'DCR'
create votedisk '/dev_DSC/VOTE' 'VOTE'
create asmdisk '/dev_DSC/DMDATA' 'DMDATA'
create asmdisk '/dev_DSC/DMLOG' 'DMLOG'

# 初始化DCR与vote磁盘
init dcrdisk '/dev_DSC/DCR' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'Dm123456789'
init votedisk '/dev_DSC/VOTE' from '/home/dmdba/config/dmdcr_cfg.ini'

image.png

初始化完成后,磁盘组将按照配置文件参数运行,为后续ASM服务与数据库实例启动奠定基础。

4. ASM与DCR启动配置:集群服务“启动指南”

(1)ASM MAL配置

创建/home/dmdba/config/dmasvrmal.ini,配置ASM节点间通信信息:

[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.226.132
MAL_PORT= 4836

[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.226.133
MAL_PORT= 4837

(2)DCR启动配置

创建/home/dmdba/config/dmdcr.ini,指定DCR磁盘路径、MAL配置路径与服务启动命令。节点1配置如下(节点2仅需将DMDCR_SEQNO改为1):

DMDCR_PATH = /dev_DSC/DCR
DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 0  # 节点序号,节点1为0,节点2为1
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/config/DSC01_conf/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

(3)启动集群服务

在双节点的bin目录下分别启动DMCSS(集群管理服务)与DMASM(存储服务):

# 启动DMCSS
./dmcss DCR_INI=/home/dmdba/config/dmdcr.ini

# 启动DMASM
./dmasmsvr DCR_INI=/home/dmdba/config/dmdcr.ini

image.png

image.png

启动成功后,节点1将成为ASM控制节点,双节点服务状态显示为“READY”,标志着DMDSC集群核心服务已正常运行。

三、总结与展望

本文通过VMware共享存储配置、磁盘udev绑定、DCR参数设置三大核心环节,完成了达梦DMDSC集群的基础搭建。共享存储为双节点提供了统一的数据交互载体,而DCR配置则构建了集群的“神经中枢”,确保服务协同与故障切换能力。

在实际应用中,可基于此基础进一步优化集群性能,例如调整ASM磁盘组冗余策略、配置数据库实例自动重启、搭建监视器实现集群状态实时监控等。达梦DMDSC集群凭借高可用、易扩展的特性,已广泛应用于金融、政务、能源等关键行业,为业务系统提供稳定可靠的数据支撑。

后续我们还将围绕DMDSC集群的故障切换测试、性能调优、日常运维等主题展开深入分享,助力大家更全面地掌握达梦数据库高可用技术,敬请关注!

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服