争议 | 生产环境搭建 RAC,直接物理机上搭 vs 虚拟化平台上搭,两种方案如何选择?

生产环境准备搭建Oracle 12c RAC,是直接在物理机上搭建还是在vSphere虚拟化平台上搭建?

生产环境准备搭建3节点Oracle 12c RAC实现高可用。

现在有两个选择:

一个是直接在物理机上搭建,少了虚拟化平台这一层效率更高,但是管理不便,某节点故障之后需要重新配置,耗时较长,心跳网络还需要单独布线。

二个是在vSphere虚拟化平台上搭建,可以直接通过vCenter进行远程管理,某节点故障之后可以通过虚拟机克隆快速恢复,心跳网络通过虚拟交换机即可,但是担心稳定性及效率,还有据说虚拟化平台上搭建的rac Oracle不提供技术支持。

还有就是共享存储已经做了存储级别的主备同步,是否还有必要做Dataguard进行数据库级别的主备同步?原因呢?

还望各位大佬不吝赐教,给出最佳的生产环境实践方案。

问题来自社区会员@Stewart 某银行项目经理,问题发布于后,很多同行分享了观点,目前原题主所在企业已经完成了搭建,并在下面的讨论中反馈了几点经验供大家参考。

下文来自众多同行实践经验分享,欢迎大家参与交流,各抒己见。

* “争议”栏目内容来自同行分享的一手体验和观察,仅代表个人观点

@岳彩波 产品经理:

不建议在虚拟环境搭建RAC和数据库,前期看似省钱,后期维护问题较多,增加了太多的不确定性。

@韩成亮  数据库管理员:

关于是否使用虚拟化平台搭建RAC集群还是物理机,这个问题是多方面的考虑,使用虚拟化确实有你说的这部分优点当然也存着缺点,是否使用需要你综合考虑,比如说人力成本,授权成本(包括RAC和vSphere),技术成本(部署一套RAC会涉及服务器、存储设备、HBA卡、操作系统等多方面的技术)所以你的考虑不无道理,使用虚拟化部署方便了管理(这部分的管理其实占比很少,你的操作总归是通过命令行来执行)却存在一定的性能损耗,而且会有木桶效应,总归还是需要满足业务,业务才是你这套环境的存在价值所在,如果不放心可以进行对比压力测试。

至于你说的DG,是必要的,要时刻有危机感,虽然不一定会发生。

个人建议使用物理机器部署三节点RAC+多路存储冗余(非存储级别主备,使用ASM故障组,多路存储冗余)。

@潘延晟  系统工程师:

首先是看你的业务量。如果你的业务量比价庞大,对运算、IO、还有网络的需求都比较高,物理机运行都有些吃力,那就建议在纯物理环境下运行。

其次看技术能力对那种方案驾驭的更好,是对虚拟化环境更熟还是有很强的DBA管理数据库,系统运行的稳定除了成熟的技术手段,良好的运维也是很关键的。

第三就是根据企业的自身特点、资金投入、技术能力综合考量所需要的架构。随着X86架构性能的提升,X86架构的虚拟化平台也有了很大的发展,传统的虚拟化架构运行数据库时的问题也可以通过多种技术手段来避免。比如提高X86整体硬件的配置,采用万兆或者10万兆的网络减少网络影响,采用 oracle asm来避免虚拟化层的IO损耗,通过vmware vmotion来实现多机的动态迁移,存储级别的和数据库级别的主备同步则可以根据你实际的容灾数据中心情况、技术能力还有业务的重要程度来决定。

数据库作为信息化最为核心的部分。自然是要竭尽所能去保证它的稳定运行和安全可靠,往往随着业务变得越来越重呀,技术架构也变得越来越复杂,对运维技术,资金投入也越来越高,多数时候对技术的选择最后都是受限于资金和能力上。

传统意义来说,体量较大的数据库业务并不是很建议在虚机上运行RAC。

@eximbank 某金融企业 系统架构师:

根据业务数据流量来定,而不是根据运维的简便来搭建。您得先咨询业务应用!

@贺磊 山西英伦斯顿 数据库开发工程师:

如果物理机资源不够的话,可以在VMware上搭建。建议在物理机上搭建。

@杨文云 GBS 数据库管理员:

第一步确认一下vSphere是不是Oracle 认证的虚拟平台,不是的话出现问题Oracle 就作为一般的RAC问题处理,底层的问题不提供技术支持。

共享存储已经做了存储级别的主备同步 这个不太明白,可以直接切换数据库提供服务么?还是只是一个数据的备份。一般情况非ADG不会直接切换数据库启动,几分钟就可以接管服务。

@asdf-asdf cloudstone 研究学者:

1、看你业务需求。见到过vmware上双机rac,运行良好。

2、如果vm性能无法承载rac数据库,进行物理机部署也相对简单。

3、小型机rac下移,见到过3几点x86rac,保证性能可用。

4、dataguard备库技术,看你容灾设计,如果需要数据库容灾或者需要数据库异地容灾,可部署,对数据库进行高度数据保护也可部署。

@bryan 金融研发 软件架构设计师:

依据生产经验,建议直接在物理机上进行操作,主要是基于性能考虑。

@disorder2013  存储工程师:

其实现在oracle rac在虚拟化平台上搭建已经非常成熟,但是具体还是要结合实际情况,看看需求,也要考虑成本,现有环境等。

@冯岩 银行 数据库管理员:

生产环境 Oracle 12c RAC 是使用 物理机 还是 虚拟化平台,主要取决于该应用系统的业务价值以及系统的业务吞吐量、并发访问、资源使用等指标。

1、业务价值方面来讲,如果业务系统不是承载公司核心业务的系统,一般使用vSphere虚拟化平台,易于配置部署管理。如果该系统承载对公司贡献值极高的业务,那么推荐使用物理机搭建部署Oracle RAC,稳定性、高可用和性能方面都能得到最大程度的保证。

2、其次,要考虑业务系统的吞吐量、并发访问以及交易时长等业务指标。通常,业务并发访问很高、吞吐量极大的系统,对CPU、IO、内存、网络资源消耗很高,对系统性能要求严苛,基本上只能考虑物理机环境了,高吞吐量、高 IO,不适合运行于虚拟化环境。

3、成本上,虽然虚拟化环境可以降低硬件资源的投资成本,但是vSphere上的 Oracle RAC运维管理更加复杂,技术成本上需要投入更多的资金。

因此,要根据应用系统的实际情况,综合业务价值、业务系统特点、资金成本等,具体情况具体分析。

@chenjunhong 神州泰岳 软件开发工程师:

目前情况,VM上部署的RAC很成熟了,小库(数据量小于3T以下),对性能要求不高的,完全可以rac部署在虚拟化上,加上ADG,保护已经很好了。

至于对性能和数据库较大的OLTP库,还是建议物理机,隔离好,性能好,管理方便。

@Amol1984 YuSYS 系统工程师:

如果Oracle应用是加载在内存中运行,数据文件是在存储上,是不是将Oracle应用部署在VMWARE上会来得方便灵活,而且性能也不下降。(判断一般瓶颈为磁盘IO的话)。

@sunxiaopeng10 东营方圆铜业 CTO:

多了一层虚拟机,不确定性太多。

@王巧雷 sino-bridge 系统工程师:

如果数据量不是特别大,性能要求不是很苛刻的都可以放到虚拟化平台上,Oracle本身已经和VMware深度合作,Oracle官方服务也支持VMware虚拟化平台,两个厂商都提供了一些各种场景下的最佳实践。其他平台需要再检查一下厂商相关的要求和政策。如果数据库的数据量比较大,性能要求也比较高,推荐部署到物理机。

总结几个点:

1. 放在虚拟化平台管理比较方便。

2. 节点故障后是可以借助虚拟化做快速恢复,但只能快速恢复基本环境,还是需要DBA做二次配置。想要像应用服务器那样单靠VMware做数据保护是不现实的。

3. 因为中间多了虚拟化层,会屏蔽一下配置的复杂性,比如存储识别,硬件兼容等,但同样也会带来一些的性能损失。

4. 部署到物理机额外的布线工作等确实会多些,但是后续和其他方案集成会方便些,比如挂接额外存储复制,lanfree的数据库备份等等,比虚拟化平台扩展性好。

5. 从问题中看,还做了存储的复制。那如果数据库部署到虚拟化,是虚拟化先识别复制的存储,Oracle再挂载数据?  这样看部署到物理机方便些。

6. 存储复制和dg的问题,从数据来看,存储复制已经可以保证两份数据。但基于存储复制的方案,备端Oracle起服务的步骤会相对复杂些,耗时较长;Oracle dg在主备切换快速上线方面有很大的优势。所以是否需要再做个dg,主要看你们对备端上线时间的要求。

@赵海  技术经理:

首先一点,想通过vsphere克隆的方式完全恢复数据库,这个是不可行的。因为虚拟机层面的复制备份对数据库事务层面是无法感知的,所以无法保障数据库在故障场合下的恢复,数据库在故障场合下的恢复只能通过rman来做,各种数据库备份软件也是通过调用rman实现的。

其次,个人认为究竟采用物理机的模式还是采用虚拟机的模式,要看系统本身的负载如何,要看业务系统本身性能要求。因为vsphere实现的虚拟机架构毕竟负载、性能等方面都会受限。所以一般情况下,非重要系统数据库,建议采用虚拟机单机数据库方式,重要系统采用物理机RAC架构;轻量级数据库可以通过物理机组成RAC资源池,整合多个DB到一个高可用资源池当中,重量级数据库采用单独物理机RAC。

个人经验,仅供参考。

@javamud 沈阳天港世纪 系统运维工程师:

物理机上做RAC,性能高,这是毋庸置疑的。但物理机硬件故障时,集群多少会受影响。

存储层面实现灾备,日常维护量较少,基本上不用任何操作,只要做好监控即可。优势是可以实现多个系统、多个数据库数据的一致性。切换的操作相对比较繁琐。

虚拟化集群上做RAC集群,可以避免硬件故障带来的维护停机,最大体现虚拟化的优点。还可以在l线扩容,无需重启系统。但虚拟环境,多少会损失一些性能。而且,x86虚拟环境,没有unix系统。

至于哪种环境稳定,虚拟化和unix平台差不多。安全性,当然unix最高。

至于选择哪个环境来搭,还要取决于各自现有的硬件条件、维护人员技术水平、资金投入是否充足、虚拟化环境中各种安全保障系统的完备情况、unix系统补丁升级维护等等诸多因素决定的。

另外,虚拟化环境一般不会只给RAC使用吧,但物理机的资源只能RAC专用。这投入产出比很明显了。

所以,我觉得具体在什么环境中实现,完全取决于自己能满足什么条件。技术上都可以,只要能力够。看喜好。

@zzm183 南都电源 网络工程师:

vsphere超融合架构,万兆网卡性能上来说对于中小企业应该是够了,nfs挂载盘方式 通过veeam能够很容易的实现本地系统级的备份,异地容灾。

@Stewart  某银行项目经理(题主):

感谢各位专家的耐心解答,已经采用物理机部署的方案,在生产环境稳定运行2年,目前一切正常。

不采用vSphere虚拟化平台搭建的原因一是担心效率问题,二是担心管理复杂度的问题。

RAC的心跳网络也需要设计好,验证好,做到高可用,无单点故障。

不建议采用存储级别的主备同步,因为存储级别的同步对数据库来说可能有问题,内存中的数据还未写入磁盘,只同步了磁盘没有同步内存,会造成数据不一致,数据文件就是坏的,数据库无法打开。

特别提醒一点,物理机设置时间同步之后一定要及时写入硬件,出现过时间同步未写入硬件数据库重启后时间大幅度提前的情况,数据库时间不能回拨,可通过CTSS让另一个节点把时间拉回来但是非常缓慢,还有就是停库,等待超过差异的时间。

最后再次感谢大家,让我们共同进步!

添加微信免费咨询服务器配置选择建议
微信号:landuiYY

未经允许不得转载:云技术 » 争议 | 生产环境搭建 RAC,直接物理机上搭 vs 虚拟化平台上搭,两种方案如何选择?

赞 (0)