注册
达梦DSC集群磁盘扩容
技术分享/ 文章详情 /

达梦DSC集群磁盘扩容

DM_020153 2026/05/09 80 0 0

一、背景

达梦DSC(共享存储集群)在生产环境中经常需要进行扩容,例如磁盘组容量不足或需要增加新的存储设备。

二、 操作前准备

2.1 检查集群运行状态
使用 DMCSSM 监视器或执行 dmcssm 命令确认所有节点状态正常:

dmcssm  ini_path=/dmdata/conf/dmcssm.ini
CSSM> show

确保:
• 所有节点状态为 OK。
• 所有 DMSERVER 实例状态为 OPEN。
• 无故障节点或正在恢复的节点。

2.2 查看当前磁盘组容量与使用率
登录任意数据库节点,使用 disql 查询磁盘组剩余空间,评估扩容必要性:

./dmasmtool DCR_INI='/dmdata/conf/dmdcr.ini'
lsdg


若目标磁盘组(如 DMDATA)的空闲率低于 20% 或剩余空间无法满足未来业务增长,则建议扩容。

2.3 备份数据库
为预防意外,建议对数据库进行全量备份:

backup database full to "dsc_full_20260507" backupset '/dmdata/backup/dsc_full_20260507' compressed level 1 parallel 8;

三、 环境说明

项目 配置
操作系统 CentOS 7
数据库版本 达梦 DM8 DSC
现有磁盘 /dev/sdb(已绑定 raw1~raw4)
新增磁盘 /dev/sdc(5GB 共享磁盘)
裸设备映射 /dev/raw/raw5 对应 /dev/sdc
目标磁盘组 DMDATA

四、 操作步骤

4.1 绑定新磁盘设备
4.1.1 查看新磁盘sdc

lsblk  

image.png

4.1.2 配置 udev 规则绑定设备

方法一:裸设备绑定
编辑 /etc/udev/rules.d/99-dmasm.rules,追加以下两行:

ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw5 %N"
# 设置所有 raw 设备的属主和权限(已有 raw1-4 的可延续)
ACTION=="add", KERNEL=="raw[1-5]", OWNER="dmdba", GROUP="dinstall", MODE="660"

image.png

方法二:uuid方式绑定
编辑 /etc/udev/rules.d/99-dmasm.rules,追加以下两行:

ACTION=="add", SUBSYSTEM=="block", ENV{ID_SERIAL}=="36000c297dbb811112b85b24d1f3c89e9", RUN+="/bin/raw /dev/raw/raw5 %N"
# 设置所有 raw 设备的属主和权限(已有 raw1-4 的可延续)
ACTION=="add", KERNEL=="raw[1-5]", OWNER="dmdba", GROUP="dinstall", MODE="660"

image.png

4.1.3 重新加载 udev 规则并触发

udevadm control --reload-rules
udevadm trigger --action=add /dev/sdc

image.png

4.1.4 验证裸设备绑定情况

blockdev --getsize64 /dev/raw/raw5
ls -l /dev/raw/raw5

image.png

属主和权限正确,表明裸设备已可用。

4.2 将裸设备添加到 ASM 磁盘组
接下来在任意一个节点(例如 dm1)上以 dmdba 用户执行 ASM 操作。
4.2.1 创建 ASM 磁盘
使用 dmasmcmd 工具将裸设备初始化为 ASM 磁盘:

./dmasmcmd
ASM> create asmdisk '/dev/raw/raw5' 'NEW_DISK_DATA'
ASM> exit

image.png

4.2.2 将 ASM 磁盘加入目标磁盘组
将新磁盘添加到 DMDATA 磁盘组:

./dmasmtool DCR_INI='/dmdata/conf/dmdcr.ini' 
ASM> alter diskgroup 'DMDATA' add asmdisk '/dev/raw/raw5'
ASM> exit

image.png

4.2.3 确认扩容结果
在 dmasmtool 中执行 lsdg 查看磁盘组容量变化:

ASM> lsdg

image.png

或者使用 disql 连接数据库实例执行:

SQL> SELECT GROUP_NAME, TOTAL_SIZE, FREE_SIZE FROM V$ASMGROUP;

image.png

磁盘扩容5GB成功

五、 注意事项

  1. 所有节点必须配置相同的 udev 规则:因为共享磁盘在所有节点上都会出现,每个节点都需要有自己的裸设备映射。

  2. 设备名稳定性:直接使用 KERNEL==“sdc” 存在风险(重启后可能变成 sdd)。若生产环境建议使用 uuid 匹配,方法如下:
    获取磁盘 uuid
    /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
    假设输出为 36000c29f…
    然后在规则中使用 ENV{ID_SERIAL}==“36000c29f…”

  3. 生产环境建议:在业务低峰期执行,并提前准备好回滚脚本。

六、 总结

生产环境下,对DSC集群进行磁盘扩容,因涉及底层存储元数据变更、多节点并发访问、数据重平衡及可能的业务中断,一旦操作不当极易引发数据不一致、IO超时或集群崩溃,故属于高危操作,必须严格规划、备份、窗口化执行并准备回退方案。

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

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服