首页 > 数据库 >虚拟机怎么模拟Oracle RAC共享磁盘_在VMware添加新磁盘并设置多写模式

虚拟机怎么模拟Oracle RAC共享磁盘_在VMware添加新磁盘并设置多写模式

来源:互联网 2026-04-29 11:26:15

VMware里添加磁盘必须关机,否则多写入器不可选 如果你直接在运行中的虚拟机上点击“添加硬盘”,会发现共享类型下拉菜单里压根没有“多写入器”这个选项——这不是偶然,而是VMware平台的硬性限制。想要启用这个关键功能,唯一的办法是:先将虚拟机的电源彻底关闭(注意,是关机,不是挂起或休眠)。然后,在

VMware里添加磁盘必须关机,否则多写入器不可选

如果你直接在运行中的虚拟机上点击“添加硬盘”,会发现共享类型下拉菜单里压根没有“多写入器”这个选项——这不是偶然,而是VMware平台的硬性限制。想要启用这个关键功能,唯一的办法是:先将虚拟机的电源彻底关闭(注意,是关机,不是挂起或休眠)。然后,在“编辑虚拟机设置 → 添加 → 硬盘 → 创建新虚拟磁盘”的完整流程里,你才能看到并选中它。

虚拟机怎么模拟Oracle RAC共享磁盘_在VMware添加新磁盘并设置多写模式

长期稳定更新的攒劲资源: >>>点此立即查看<<<

日常操作中,常见的错误现象包括:共享类型选项直接灰显、下拉菜单里只有“无”或“可读写”,或者在一台虚拟机里添加后,另一台虚拟机里根本找不到这块盘。要避免这些坑,有几个关键点必须逐一核对:

  • 电源状态是硬门槛:务必确认虚拟机状态是“已关闭”,而不是“客户机已关机”。后者可能只是操作系统退出了,但虚拟机进程仍在运行,这同样不符合条件。
  • 控制器必须独立:这块共享磁盘不能挂在默认的SCSI 0:0控制器上。最佳实践是,为它新建一个专用的SCSI控制器,比如SCSI 1:0
  • 磁盘类型有讲究:创建时必须选择“厚置备立即置零”。“精简置备”或者“厚置备延迟置零”这两种类型,都不支持多写入器模式。
  • 磁盘模式要选对:必须设置为“独立-持久”。如果误选为“独立-非持久”或“从属”,后续Oracle RAC启动时,磁盘校验会直接失败。

两台虚拟机挂载同一块磁盘:路径和配置必须完全一致

Oracle RAC对共享磁盘的一致性要求极为苛刻:所有集群节点看到的设备名、容量、扇区对齐方式、控制器绑定关系必须分毫不差。VMware可不会帮你自动同步这些元数据,全靠手动配置时的一丝不苟。

具体操作时,下面这几个细节决定了成败:

  • 先记路径,再复用:在第一台虚拟机(A)成功添加磁盘后,立刻记下它的完整数据存储路径,例如:[datastore1] rac-cluster/rac1.vmdk。注意,方括号和斜杠都是路径的一部分,并且大小写敏感。
  • 粘贴路径,别浏览:在第二台虚拟机(B)上添加时,务必选择“使用现有虚拟磁盘”,然后手动精确粘贴刚才记下的路径。切忌通过图形界面浏览选择,因为浏览可能会返回一个路径别名,导致两边路径不一致。
  • 配置镜像,如复制:B虚拟机上,SCSI控制器编号、设备节点(如SCSI 1:0)、共享类型磁盘模式这三项配置,必须与A虚拟机保持绝对一致,连一个空格都不能差。
  • 系统层验证:配置完成后,别急着安装。分别在两台虚拟机的Linux系统里执行ls -l /dev/disks/by-id/命令,确认它们识别到了相同的WWN或scsi-xxx设备名。这是RAC安装前必须通过的“一致性检查”。

Linux侧识别不到 /dev/sdX?检查udev规则和multipath

有时候,VMware层面的配置明明正确无误,但到了Linux操作系统里,同一块共享磁盘却被识别成了多个设备路径(比如同时出现在/dev/sdb/dev/sdc),导致后续的ASM(自动存储管理)无法稳定挂载。

这通常不是VMware的错,而是Linux系统多路径(multipath)机制的典型“副作用”。排查思路可以这样走:

  • 先看设备列表:运行fdisk -l | grep “Disk /dev/sd”,检查输出中是否出现了多个容量完全相同的磁盘设备。
  • 排查multipath服务:执行systemctl status multipathd,查看多路径服务是否处于活动状态。如果启用了,它可能会自动聚合这些路径,生成一个/dev/mapper/mpathx设备,而ASM通常会拒绝使用这种聚合后的设备。
  • 屏蔽或禁用:更稳妥的做法是,在/etc/multipath.conf配置文件中,将RAC共享磁盘加入黑名单(通过WWN或厂商/型号匹配),或者直接禁用multipath对这些磁盘的管理。例如,添加一行blacklist { devnode “^sd[b-z]” }(请根据实际设备名范围调整),然后重启multipathd服务。
  • 固定设备名:依赖/dev/sdX这种可能变化的设备名是RAC的大忌。行业共识是,应该通过udev规则,将磁盘固定为/dev/oracleasm这样的持久化名称,或者直接使用基于WWN的稳定软链接,例如/dev/disk/by-id/scsi-36000c29...

CBT(变更块跟踪)和多写入器冲突,必须关闭

还有一个隐藏的“坑”需要警惕:如果虚拟机启用了CBT(变更块跟踪,常用于vSphere备份加速),同时又试图开启磁盘的多写入器模式,VMware会直接报错:Cannot enable CBT on a disk with multi-writer mode enabled,并且虚拟机将无法启动。

背后的原因很直接:CBT机制需要独占磁盘的写入日志来跟踪变化,而多写入器模式允许多个虚拟机并发写入同一块磁盘,两者的底层设计从根本上就是互斥的。

  • 关闭CBT的方法:编辑虚拟机设置 → 找到“选项”页签 → 进入“高级” → 点击“配置参数”。在参数列表中,找到ctkEnabled这个参数,将其值设为false。同时,还需要找到对应具体磁盘的参数,格式如scsi0:0.ctkEnabled(请根据实际的控制器和磁盘编号替换),也将其设为false
  • 彻底重启生效:修改这些参数后,必须将虚拟机关机(不是重启操作系统),然后再开机,更改才会生效。
  • 权衡与替代方案:需要提醒的是,关闭CBT可能会影响后续基于快照的备份效率,但这对于RAC集群本身的运行没有影响。如果在生产环境中既需要CBT加速备份,又必须使用共享磁盘,那么唯一的出路是放弃虚拟磁盘,改用Raw Device Mapping(RDM)直通模式。

说到底,多写入器模式的配置步骤本身并不复杂。真正让工程师们头疼的,往往是路径一致性、Linux设备名飘移,以及CBT这类隐性的开关冲突。尤其是路径拼写差一个字符、控制器编号没对齐、或者忘了关闭CBT,都会导致OCR磁盘初始化失败。而令人无奈的是,错误日志往往只抛出一句笼统的“ASM cannot discover disk”,根本不会告诉你,问题根源其实藏在VMware的哪一层配置里。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。