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

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

热心网友 时间:2026-04-29
转载

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的哪一层配置里。

来源:https://www.php.cn/faq/2385178.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Redis持久化文件存放路径修改_通过config set dir实现

Redis持久化文件存放路径修改_通过config set dir实现

Redis持久化文件存放路径修改:通过config set dir实现 Redis 的 CONFIG SET dir 命令是否真的能修改持久化文件路径? 答案很明确:不能直接生效,除非满足一系列严苛的前提条件。简单来说,Redis 的 dir 配置项在绝大多数情况下是一个只读的运行时参数。如果你尝试

时间:2026-04-29 14:31
Redis AOF rewrite和RDB持久化能同时进行吗_理解冲突机制

Redis AOF rewrite和RDB持久化能同时进行吗_理解冲突机制

Redis AOF重写与RDB持久化能同时进行吗?理解冲突机制 开门见山地说,答案是不能。这并非一个可以讨价还价的配置选项,而是Redis内核层面的一道“硬锁”。 Redis 同一时刻能同时执行 bgrewriteaof 和 bgsa ve 吗? 绝对不能。Redis内部有一套明确的互斥机制:当一个

时间:2026-04-29 14:31
SQL怎样计算每个分组的峰值数据_使用MAX函数配合GROUP BY

SQL怎样计算每个分组的峰值数据_使用MAX函数配合GROUP BY

SQL怎样计算每个分组的峰值数据_使用MAX函数配合GROUP BY 先说一个核心结论:MAX() 配合 GROUP BY 确实能找出每个分组的最大值,但它只返回那个聚合后的数值本身,不会带回原始行里的其他字段。想获取完整的峰值记录,得用 ROW_NUMBER() 这类窗口函数来实现“每组取Top-

时间:2026-04-29 14:30
mysql死锁检测机制对CPU影响大吗_在高并发场景下开关参数性能对比

mysql死锁检测机制对CPU影响大吗_在高并发场景下开关参数性能对比

死锁检测会显著消耗CPU,尤其在高并发热点行更新时 死锁检测本身就会吃 CPU,尤其在高并发热点行更新时 很多人误以为MySQL的死锁检测是“按需触发”的低开销操作,其实不然。真相是,在每一个INSERT、UPDATE或DELETE语句执行前,InnoDB引擎都会主动检查当前的事务等待图是否存在环路

时间:2026-04-29 14:30
MySQL报错Too many connections_优化长连接与连接复用机制

MySQL报错Too many connections_优化长连接与连接复用机制

MySQL报错Too many connections的直接原因 遇到“Too many connections”报错,很多人的第一反应是SQL太慢或者内存不足。其实,真正的“元凶”很直接:当前活跃的数据库连接数,已经超过了MySQL配置文件里设定的max_connections上限。一旦触及这个硬

时间:2026-04-29 14:30
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程