达梦eco平台快速上手 | 达梦技术文档https://eco.dameng.com/document/dm/zh-cn/start/围绕 DSC01-1、DSC01-2 的架构理解、iSCSI 共享盘、启动顺序、监视器和快照恢复展开摘要本文以两节点 DMDSC 实验环境为主线系统梳理共享存储集群的架构、资源规划、iSCSI 存储连接、集群服务启动和故障排查方法并总结 VMware 快照回滚后 DSC 断联、监视器无法连接、节点重加入和业务锁等待等常见问题。关键词DMDSC共享存储DMCSSDMCSSMiSCSIVMware银河麒麟一、为什么实验环境中的 DSC 比单机数据库更难搭建在单机数据库中数据库进程、数据文件、日志文件和操作系统通常位于同一台服务器排障时只需要围绕“服务是否启动、端口是否监听、文件权限是否正确”展开。DMDSC 则是多实例共享同一数据库任何一个节点的异常都可能与共享存储、集群心跳、实例间通信或启动顺序有关。因此搭建 DSC 的真正难点不在于把安装程序执行完而在于让多个节点对同一组共享资源形成一致认知。实验环境通常采用 Windows 10 物理机、VMware 虚拟机和银河麒麟服务器操作系统组合。为了降低硬件成本共享存储往往通过 iSCSI 虚拟磁盘模拟。这样的环境可以覆盖真实部署中的大部分关键环节但也会引入虚拟网络、快照回滚、虚拟磁盘编号变化、Windows 主机休眠等额外变量。如果不先建立清晰的分层排障思路很容易出现“监视器看不到节点”“一个节点能启动、另一个节点无法加入”“重启后共享盘消失”等问题。说明本文以 DSC01-1、DSC01-2 两个节点为例侧重介绍搭建逻辑和排障方法。不同 DM8 版本的配置文件字段、工具路径可能存在差异实际操作应以对应版本的《DMDSC 集群》手册为准。二、先理解 DMDSC多实例、单数据库与共享存储DMDSC 的核心特征可以概括为“多个数据库实例同时访问同一套数据库文件”。从业务连接角度看应用可以连接任一正常实例从存储角度看数据文件和控制信息不是每个节点各保存一份而是放在所有节点均可访问的共享块设备上。每个实例需要在集群控制机制下协调对数据页、锁资源和内部状态的访问避免多个实例同时修改同一资源时产生不一致。这类架构和数据守护的思路不同。数据守护一般是主库和备库各自拥有独立数据文件通过日志传输和重演保持副本一致DSC 则是多个实例直接访问同一数据库。因此DSC 解决的是实例层面的高可用和并发访问问题共享存储本身仍然是重要故障域。如果生产系统对存储故障也有严格容灾要求需要在存储层采用高可用能力或者进一步组合数据守护、异地容灾等方案。组件/资源主要作用实验中重点检查数据库实例向业务提供 SQL 服务多个实例访问同一数据库实例名、端口、参数、日志共享存储/DMASM保存集群共享的数据文件、控制信息及相关资源两节点磁盘可见性、权限、设备号DMCSS负责集群控制、节点状态协调和故障处理配置一致性、心跳、启动状态DMCSSM集群监视器用于查看状态和执行管理命令监视器配置、连接地址、口令本地网络承载客户端、节点通信和存储访问IP、路由、端口、防火墙理解这些层次后排障顺序就应从底向上进行先看物理机和虚拟机是否正常再看网络和共享磁盘再看 DMCSS最后看 DMASM 和数据库实例。不要在共享盘尚未连接时反复修改数据库参数也不要在 DMCSS 未形成稳定集群时直接启动所有实例。三、实验拓扑与资源规划一个可重复使用的两节点练习环境至少需要规划节点名称、管理 IP、实例通信 IP、数据库服务端口、DMCSS 端口、共享盘用途和软件目录。实验中可以使用 DSC01-1、DSC01-2 作为主机名Windows 物理机和麒麟虚拟机均设置静态 IP。静态地址的价值不仅是方便记忆更重要的是防止 DHCP 租约变化导致配置文件中的地址失效。共享存储可通过一台独立存储节点提供 iSCSI Target也可以在专门的实验主机上创建多个虚拟块设备。常见做法是准备四块虚拟盘分别承担投票、控制、日志或数据等用途具体划分应按照当前版本手册和实验指导书执行。两台 DSC 节点必须看到相同的 LUN且对同一 LUN 的容量、标识和访问权限保持一致。• 操作系统层统一主机名、时区、时间同步、用户 UID/GID、目录属主和资源限制。• 网络层确认节点之间互通、iSCSI 目标地址可达、数据库端口和集群端口未被占用。• 存储层确认两节点发现的是同一组 LUN避免误把本地盘当作共享盘。• 软件层两节点使用相同版本、补丁和安装路径配置文件只在节点标识等必要字段上不同。• 运维层记录启动、停止、监视和重连命令为快照回滚后的恢复准备脚本。hostnamectlip addrcat /etc/hostsdatetimedatectllsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL,SERIALss -lntp四、操作系统与安装用户准备数据库软件建议使用专用用户安装例如 dmdba。两个节点的安装用户、用户组和目录权限应保持一致。共享设备虽然不是普通文件系统目录但相关配置目录、日志目录、归档目录仍然受 Linux 权限控制。若某个节点由 root 创建了文件另一个节点以 dmdba 启动程序就可能出现配置可读但日志不可写、服务启动后立即退出等现象。# 示例创建目录并统一属主路径按实际环境调整mkdir -p /dm/dmdbms /dm/data /dm/logchown -R dmdba:dinstall /dmchmod -R 755 /dm# 查看资源限制su - dmdba -c ulimit -a# 临时验证文件描述符限制su - dmdba -c ulimit -n 65536; ulimit -n在实验环境中经常只修改当前终端的 ulimit重启后设置又恢复。更稳妥的做法是通过 limits.conf 或 systemd 服务限制进行持久化配置并在重新登录后验证。数据库和集群程序需要打开大量文件、日志和网络连接文件描述符过低会产生一些表面上与数据库无关的异常。时间同步同样重要。节点时间差过大时日志排查会变得困难证书、任务调度或监控判断也可能受影响。即使实验环境无法访问互联网也应至少保证两台虚拟机与宿主机时间接近或者配置一台内部 NTP 源。五、iSCSI 共享盘的发现、登录与持久化iSCSI 环境的关键不是“登录成功一次”而是保证重启后仍能自动登录并且节点获取的设备始终对应同一个后端 LUN。排障时先查看会话再查看块设备最后核对序列号或 WWID。只凭 /dev/sdb、/dev/sdc 这样的设备名判断磁盘非常危险因为 Linux 在重启或重新发现磁盘后可能改变盘符顺序。# 发现目标iscsiadm -m discovery -t sendtargets -p 存储IP# 登录目标iscsiadm -m node -T TARGET_IQN -p 存储IP --login# 设置开机自动登录iscsiadm -m node -T TARGET_IQN -p 存储IP \--op update -n node.startup -v automatic# 查看会话和设备iscsiadm -m sessionlsblk -Sls -l /dev/disk/by-id/两节点执行 lsblk 时看到的盘符可以不同但同一 LUN 的容量、序列号和 by-id 标识必须一致。若其中一个节点缺少磁盘应先检查 iSCSI 会话、网络路由和目标端 ACL不要直接在缺盘节点重新初始化共享设备。共享盘上的控制信息只应初始化一次重复初始化可能破坏已经搭建成功的集群。回滚提示VMware 快照通常只保存虚拟机本地磁盘状态不一定完整保存外部 iSCSI Target 的状态。回滚快照后应先验证 iSCSI 会话和共享盘标识再启动 DMCSS 与数据库。六、集群软件配置与推荐启动顺序完成软件安装和共享盘准备后需要根据手册创建集群控制、存储和数据库实例相关配置。配置阶段最重要的原则是两个节点共享的配置必须一致节点私有配置必须明确区分。常见错误包括复制配置文件后忘记修改节点编号、实例名或本机地址或者两个节点的配置文件中同一参数采用不同路径。在排障和日常运维中建议固定启动顺序。先确认共享存储在线再启动 DMCSS待集群控制状态稳定后启动 DMASM 或对应存储服务最后启动数据库实例。监视器可以单独部署也可以在实验节点上运行但生产环境通常建议与被监控节点适当隔离。1. 确认两节点操作系统、网络和 iSCSI 会话正常。2. 启动各节点 DMCSS观察日志中节点注册、心跳和投票状态。3. 启动存储管理相关服务确认磁盘组或共享资源正常打开。4. 按计划启动数据库实例确认实例成功加入集群。5. 使用 DMCSSM 查看所有节点、服务和实例状态再进行客户端连接测试。# 以下仅展示排查思路具体启动参数以实际配置为准ps -ef | grep -E dmcss|dmcssm|dmasmsvr|dmserver | grep -v greptail -n 200 DMCSS日志文件tail -n 200 数据库实例日志文件ss -lntp | grep -E CSS端口|数据库端口不要仅凭“进程存在”判断服务正常。数据库进程可能启动后卡在等待共享资源、实例恢复或集群加入阶段DMCSS 也可能进程存在但无法与其他节点形成一致视图。必须同时结合日志、监听端口和监视器状态判断。七、如何验证一个 DSC 环境真正可用集群能够在监视器中显示 ONLINE 只是第一层验证。完整验证至少应覆盖连接、读写、节点故障和恢复四个方面。首先分别连接两个实例查询实例信息并创建测试表其次在一个节点写入数据在另一个节点查询然后停止其中一个实例确认另一个实例仍能提供服务最后恢复故障节点观察其是否按照预期重新加入。-- 在任一实例执行示例测试CREATE TABLE DSC_TEST(ID INT PRIMARY KEY,NODE_NAME VARCHAR(50),CREATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP);INSERT INTO DSC_TEST(ID, NODE_NAME) VALUES(1, DSC01-1);COMMIT;SELECT * FROM DSC_TEST;如果应用使用连接池或负载均衡地址还应模拟连接切换。仅在管理工具中手工连接两个 IP不能完全代表业务在节点故障时能够自动重连。实验环境可以先验证数据库层再逐步加入代理、VIP 或连接串中的多地址配置。故障演练要保留时间点和日志。记录停止了哪个服务、监视器多久识别故障、剩余节点能否继续写入、恢复节点多久重新加入。这样才能把“看起来能切换”转化为可复现的实验结论。八、常见故障一监视器无法连接或看不到节点监视器无法连接时应先区分“监视器连不上 DMCSS”和“监视器能连接但集群成员不完整”。前者通常与监视器配置、地址、端口、口令或防火墙有关后者更多与节点 DMCSS 未启动、节点间通信异常、共享投票信息不一致有关。• 使用 ping 和 Test-NetConnection/端口探测确认监视器到 DMCSS 的网络可达。• 检查 DMCSS 实际监听地址与配置文件是否一致避免只监听 127.0.0.1。• 核对监视器连接口令和配置文件编码复制粘贴时注意不可见字符。• 查看 DMCSS 日志是否出现节点编号冲突、心跳超时、投票盘不可访问等信息。• 确认防火墙规则不是仅允许数据库端口而遗漏集群管理端口。在实验中最常见的误判是看到数据库端口可访问就认为整个集群网络正常。数据库服务端口、DMCSS 通信端口、监视器端口和 iSCSI 端口属于不同链路必须分别验证。九、常见故障二快照恢复后 DSC 断联VMware 快照是培训环境重复练习的重要工具但共享存储集群不能像单机虚拟机一样随意回滚。虚拟机本地状态回到过去而共享 iSCSI 盘可能仍保持当前状态节点会出现“本地配置是旧的、共享控制信息是新的”这种时间线不一致。即使两边都回滚iSCSI 会话也可能因网络接口重新初始化而失效。1. 快照恢复后先不要启动数据库实例。2. 检查虚拟机 IP、主机名和 /etc/hosts 是否保持原配置。3. 检查 iscsiadm 会话必要时重新发现和登录但不要重新初始化 LUN。4. 核对共享盘 by-id 标识与实验记录。5. 清理异常残留进程按 DMCSS、存储服务、数据库实例顺序启动。6. 在监视器确认节点状态后再开放给下一位练习人员。为了提高恢复效率可以为每台节点制作“环境健康检查脚本”一次输出 IP、主机名、时间、iSCSI 会话、共享盘、关键进程和端口。这样在培训开始前几分钟就能判断环境是否满足练习条件。十、常见故障三节点同时更新、锁等待与内部等待在多个实例同时操作同一数据时业务层锁等待仍然遵循数据库事务和锁机制。一个会话未提交地更新某行另一个会话修改同一行正常表现通常是后者阻塞直到前者提交、回滚、被终止或达到锁等待超时。这类等待属于业务事务冲突不应直接等同于集群内部异常。类似 resid_slot_wait 的内部等待更多与 DSC 节点之间的资源协调有关。内部资源协调超过保护阈值时集群可能采取保护性动作目的是避免多个节点对资源状态形成不同认知。排查时要先确认是否存在网络抖动、节点负载过高、共享存储延迟或内部资源槽等待再判断是否只是普通 SQL 锁冲突。沟通口径客户沟通时应先给出结论普通的两会话更新冲突一般表现为锁等待不会直接触发集群保护性 halt只有涉及集群内部资源协调长期异常时才需要沿 DMCSS、节点通信和存储延迟方向深入排查。十一、把一次成功部署固化为可重复的培训环境实验环境的价值不只是“搭成功一次”而是能够让多人重复练习。完成部署后应形成四类交付物环境信息表、标准操作手册、故障恢复手册和快照管理规则。环境信息表记录节点名、IP、端口、软件路径、共享盘标识和快照名称操作手册从远程工具登录开始避免默认学员知道前置步骤故障恢复手册记录重启、iSCSI 重连、监视器检查等命令快照规则明确何时创建、何时回滚和回滚后如何验收。不要把所有组件都提前安装好。若培训或考试要求从软件安装开始应保留干净快照让学员完成安装、目录授权、服务部署和工程配置。已经搭好的 DSC 基础环境则尽量保持稳定不随意修改 IP、端口、实例名和共享盘后续练习只在 DRS 节点和同步工程上进行。每次练习结束后先停止业务和数据库服务再按照规则回滚快照。恢复后执行健康检查并保留结果。通过这种方式环境管理员能够把大量临时排障工作前置为标准检查显著降低培训过程中的不可控因素。十二、生产部署需要额外关注的事项实验环境可以使用单网卡、虚拟 iSCSI 和单台存储目标但生产环境应根据业务等级设计网络冗余、存储冗余、链路隔离、备份和容灾。数据库高可用不等于数据不会丢失也不等于共享存储不会故障。需要分别评估实例故障、主机故障、交换机故障、存储控制器故障、机房故障和误操作。• 节点间通信、客户端访问和存储网络尽量隔离关键链路配置冗余。• 共享存储应具备符合业务要求的可靠性并定期验证备份可恢复性。• 对 DMCSS、数据库和操作系统日志建立集中监控和容量告警。• 变更前备份配置文件重大升级按节点顺序和回退方案执行。• 应用侧验证连接池重连、事务回滚和故障期间的业务行为。总结来说DSC 搭建的关键不是记住一串命令而是掌握“操作系统—网络—共享存储—集群控制—数据库实例—应用连接”的分层结构。只要按层验证并保持配置一致大多数看似复杂的故障都能被拆成可定位、可复现的问题。参考资料[1] 达梦技术文档《共享存储集群》https://eco.dameng.com/document/dm/zh-cn/start/dm-asm-cluster.html[2] 达梦技术文档《DMDSC 概述》https://eco.dameng.com/document/dm/zh-cn/pm/dsc-overview.html[3] 达梦技术文档《DMDSC 节点重加入》https://eco.dameng.com/document/dm/zh-cn/pm/dsc-node.html[4] 达梦技术文档《数据守护集群》https://eco.dameng.com/document/dm/zh-cn/start/dm-cluster.html