虚拟机安装RAC最大的坑不在Oracle本身,而在虚拟化层的资源隔离与共享存储配置,只要把磁盘映射、网络心跳、CPU绑定这三件事做对,多数环境跑起来都不会差。下面把常见问题按出现频率排个序,结合实操经验逐个拆解,顺手把能落地的做法一并说清。
虚拟机安装RAC常见问题排雷
共享存储盘老是掉线,ASM磁盘组导致安装失败
虚拟机安装RAC,第一个拦路虎几乎永远是共享磁盘,多数人的习惯是给虚拟机加几块虚拟磁盘,直接当ASM盘用,结果安装Grid时clsfmt报错,或者执行asmca时磁盘组一直处于DGHEADER不可识别状态。
问题出在磁盘的持久化命名和队列深度上,虚拟化平台里,SCSI控制器的类型和磁盘的ID往往不稳定,重启后盘符漂移,另一个隐性因素是磁盘的device_id在虚拟机重启后变化,导致/dev/asm符号链接失效。
实际操作中比较靠谱的做法是配套使用UDEV绑定,给共享盘配置UDEV规则时,不要用/dev/sdb这种字母盘符,推荐直接按scsi_id号绑,然后固定生成/dev/asm-diskX这样的设备名,与此同时把虚拟机的SCSI控制器改成LSI Logic SAS,别用默认的BusLogic,在很多实验中,BusLogic控制器的虚拟磁盘在并发IO下极容易报IO错误。
维度 建议配置 原因 控制器类型 LSI Logic SAS / PVSCSI 并发IO与OS识别更稳 磁盘标识 SCSI ID + UDEV 防漂移 ASM磁盘路径 固定/dev/asm-diskX 排除盘符变化事故
私网心跳不通,节点互相驱逐
安装RAC时明明配了第二个网卡,但跑crsctl status resource时经常看到ora.asm在另一个节点上OFFLINE,或者crsd日志里出现evict字样,这不是网卡坏了,更多是虚拟交换机对组播包/广播包的处理策略问题。
很多虚拟化平台默认的虚拟交换机允许单播和广播,但对组播会做过滤,Oracle RAC的集群心跳依赖组播或者UDP广播包,被交换机拦截后,节点间即使能ping通,仍是逻辑断开,更麻烦的是公有云环境,某些平台直接屏蔽组播,导致RAC根本没法跑。

解决方案是在虚拟交换机上开启组播监听,或者把私网网卡的模式设置为VMXNET3,这类虚拟网卡的性能和组播处理能力都比e1000好很多,集群私网的MTU建议统一改成9000(巨型帧),减少大包分片,要注意两台虚拟机的私网必须挂在同一个虚拟交换机下,跨物理机也问题不大,但千万别跨VLAN,ping通不代表时延达标。
虚拟机CPU大页与NUMA抖动
Grid安装阶段CPU跑得挺欢,可是装上之后Oracle时不时卡顿,AWR报告里CPU的Ready队列也很高,常见原因是虚拟机被NUMA跨Node调度,内存在两个物理CPU插槽之间来回倒腾。
虚拟化平台里有NUMA选项,需要把虚拟机的CPU手动绑定到固定的物理核心上,别让它自己飘,尤其是有多路CPU的主机,RAC的SQLPlus和后台进程对这种跨NUMA訪问相当敏感,时延增加非常明显,配了大页内存(HugePages)的虚拟机也要注意,虚拟化平台额外开透明大页后,Oracle会自动感知并尝试使用,但导致内存无法锁定,还是建议关掉透明大页。
虚拟机安装RAC最佳实践
存储层:ASM与磁盘规划的经验
行业共识认为,虚拟机RAC的存储优先选择ASM托管,不是直接文件系统,更不是裸设备,ASM能自动管理多路径属性和失效屏蔽,后续加盘扩容也方便,虚拟磁盘的预分配(Thick Provision)要开,使用精简配置在快照回滚时极易丢数据,跑核心业务时精简配置是反面教材。
虚拟机挂载共享盘还有一个坑快照,RAC环境对快照极度敏感,ASM元数据的一致性在快照回滚后完全没法保证,日常备份建议用RMAN或恢复目录,别趁机用虚拟化层的快照替代。
磁盘的IO调度器也值得检查,Linux下建议把ASM盘的调度器改成noop或none(新内核),默认的cfq在虚拟机环境里会出现队列排队,直接抬高IO延迟,改完后用/proc/diskstats里的avgqu-sz验证是否小于设备队列深度的一半。
网络层:分开心跳就是底限
有的“省钱”操作是把心跳网和业务网共用一套虚拟网卡,用VLAN隔离,这种做法短期看能跑,但一到流量高峰就会出现心跳超时。公有云和万兆内网也一样,公有接入层交换机的缓存填充后,私网心跳延迟飙到几百毫秒是家常便饭。

最佳实践很明确:心跳网络单独一张虚拟网卡,优先接另一个物理网卡或虚拟交换机;如果物理主机只有一张网卡,至少把心跳VLAN和其他VLAN隔离开,然后给心跳网卡开高优先级(Traffic Shaping里保证带宽),Oracle建议私网时延不超过1毫秒,虚拟环境一般能跑到0.2毫秒左右,如果大于5毫秒就已经会造成节点驱逐的风险了。
虚拟机安装RAC注意事项:参数篇
配置参数这块不用全背,但有几个是硬性要求:
- 关闭透明大页:
/sys/kernel/mm/transparent_hugepage/enabled改为never。 - 禁用防火墙或配置放行:Oracle安装包里的
oracle-用户目录下有防火墙规则模板,不推荐在生产环境直接systemctl stop firewalld,建议放行对应端口段。 vm.swappiness设为10以内:内存分配波动不会过大。- 重启策略是“LastGoodKnown”:GRUB2的启动参数中要锁定RAC节点。
还可以注意一下/etc/hosts的配置,虚拟机的hostname必须和public网卡的IP绑定,不能随便写任意域名,否则crsctl会冒一堆CRS-0212的奇怪错误。
虚拟机装RAC适合生产环境吗
这个问题问的人最多,答案是看承载平台和可控程度,如果跑在VMware vSphere这类虚拟化成熟度高的环境,虚拟机RAC是可以承载核心系统的;但如果跑在共享型超售严重的云主机上,则不建议,虚拟化层超售太多,资源争抢本身就是不定时炸弹。
从2026年之后的虚拟化趋势看,本地虚拟化和私有云是RAC用户群体中的主流选择,国产虚拟化平台对Oracle的支持度参差不齐,如果要做RAC落地,先确认虚拟化平台是否支持PCI直通或RDM裸映射,RDM映射比VMDK虚拟磁盘的性能更稳定,尤其在线重做日志不宜放在VMDK上,用RDM映射后,让ASM盘走映射设备,数据文件可以放VMDK,日志和表决盘放RDM,这种混合方案在现场落地中很常见。
还有一点别在虚拟机上装Oracle Restart代替RAC,Restart是单节点高可用,虚拟化层的HA功能重启动虚机,跟RAC的实例级故障切换根本是两码事,权宜之计可以,但对外承诺RAC能力就别打擦边球。

网络丢包别忽略,直接影响RAC健康度
有些环境可以ping通,但实际存在每百个包丢一两个的情况,这会导致oracle的CSS资源长时间处于INTERMEDIATE状态,碰到这类问题别急着调misscount,先借助ping -f把丢包率打出来,再观察虚拟交换机上行链路的端口聚合模式,负载均衡算法必须选基于IP+端口的哈希,否则流量都被哈希到一条物理链路上。
常见问题解答:RAC虚拟机性能提升与运维
虚拟机安装RAC经常卡在86%怎么办
Grid安装过程卡86%一般是在执行root.sh,或者卡在orainstRoot.sh,先看$ORACLE_HOME/cfgtoollogs目录下的日志,如果看到[FATAL]但后面没有具体错误栈,基本是/etc/oracle目录的属主与权限文件丢失,重新执行root.sh并加上-script参数可以收敛到具体报错,另外检查/tmp空间是否充足,这两个经典原因覆盖了多数情况。
RAC虚拟机性能提升有哪些可操作点
性能问题上,先把虚拟机的CPU热添加和内存热添加关掉,这两个功能开着会导致运行时CPU拓扑发生变化,Oracle实例难以稳定绑定,其次把ASM磁盘的IO调度器改为noop,并在fstab里加入barrier=0(仅针对开发测试环境,生产库强烈建议保留barrier=1),然后设置db_writer_processes和db_writer_processes的并发度时,要参照虚拟机的vCPU数量的一半设置,避免线程过载,定期查看CSS日志里有没有clssnmvDiskCheck的节拍超时记录,把超时阈值调准。
本地虚拟机安装RAC选择哪个平台更合适
Workstation、ESXi、VirtualBox、KVM都有对应的RAC测试环境案例,相对省心的是ESXi搭配VMFS存储,支持RDM裸盘映射,模拟共享存储最标准,Linux KVM需要手动配置libvirt的SCSI PR(持久保留)支持,否则虚拟机之间的存储锁就会冲突,VirtualBox适合学习用途,但由于OUI对共享磁盘类型探测的特殊性,装19c时偶尔启动不了cssd,无论哪个平台,最终建议把网络心跳和存储多路径都先模拟一遍“断掉”的场景手动断掉一条心跳网卡,看集群能否在几十秒内重新协商,这一步是验证环境健康度的实操标准。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/922876.html


评论列表(3条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是虚拟机安装部分,给了我很多新的思路。感谢分享这么好的内容!
读了这篇文章,我深有感触。作者对虚拟机安装的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
@幻smart116:读了这篇文章,我深有感触。作者对虚拟机安装的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!