从ODA看一体机的木桶理论

中考刚结束,先讲个高考期间网上流传的的笑话——2012高考数学压轴题:姚明、黄晓明、郭敬明,三人躺在地上能否组成一个三角形?

这笑话很没品,但是这三个中国最著名的“小明”,分别是富、帅富、高帅富的代言人,拿他们调侃下绝对不能算欺负弱势群体,至多是羡慕嫉妒恨。

最关键是激发了我的不靠谱想象力,关于所谓“一体机”的木桶理论。

尽人皆知的木桶理论是说,一只木桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板。“最短板”早已被广泛用于形容组织和个人应均衡发展,这里就不卖弄啦。

如果换个角度“刨”一下,能不能做成个像样的木桶,木板的数量也很重要。两块木板基本做不成一个木桶(就算半圆形的,也得有块做底不是),三块木板也未必拼得到一起(见上面的笑话)。

如果木板的数量够多,就算个别木板稍微短一些,做成的木桶(或者木盆?)也可以盛更多的水。

有足够多的木板就可以自己做木桶,不然就得找其他有木板的合作。

现在终于可以切入正题了,探讨一下Oracle的工程系统(Engineered System)——通称“集成系统”,俗称“一体机”。

本文可以说是去IOE:去掉“IE”就Ok?一文的延续。“去”文一定程度上分析了Oracle为什么要做一体机,本文接着以Oracle数据库机(Oracle Database Appliance,ODA)为例,来看看Oracle的一体机是怎么做的,以及其他“箍桶匠”可奈它何?

Oracle最有名的一体机当然是推出时间最久的Exadata,里面蕴含的技术点较多,阿里巴巴数据库架构师张瑞(网名HelloDBA)参与翻译的《Expert Oracle Exadata》一书有相当详尽的剖析,不是本文的重点。去年推出的ODA可以看作是入门版的Exadata,相对简单,从而更具代表性和借鉴意义。

Exadata Database Machine直译过来是“数据库机”,而Oracle Database Appliance直译应该是“数据库设备”,“机”的概念大于“设备”也更复杂,体现了命名的严谨,不像现在的中文名般关系错乱

按照Oracle的定义,Oracle数据库机是全面集成了Oracle数据库软件和服务器、存储、网络系统的一体化数据库设备。“全部作为一个完整的系统设计在一起,无需组装或布线。要使用Oracle 数据库机,只需打开包装,插上电源线,插上网线,为其命名,然后安装Oracle设备管理器软件,即可快速创建一个集群化、高度可用的数据库系统。”

用户配置好ODA的主要参数之后,经过约2小时的全自动初始化过程,就可以使用Oracle RAC数据库了

这么说还是有些含糊,不妨先看看Oracle数据库机这个“木桶”用了那些主要的木板,长度如何,以及Oracle是怎么“箍桶”的……

ODA附带的软件,操作系统是预装好的,其他软件根据用户选择的配置参数和授权状况,自动化的安装

操作系统:预装的Oracle Linux 5.5基于Red Hat Enterprise Linux(RHEL),不能算长板,起码不是短板;

数据库:Oracle数据库可以说是世界上最好的商用数据库,绝对的长板,也是Oracle能够做Exadata和ODA的根本。ODA和Exadata一样运行Oracle数据库11g R2企业版,并可配置为Oracle RAC(Real Application Clusters,真正应用集群)提供计算节点的扩展性与高可用,或者Oracle RAC One Node用于主备模式的故障切换系统;

Oracle数据库机的硬件平台是4U的Sun Fire X4370 M2服务器

计算网络存储:都在一台4U的Sun Fire X4370 M2服务器中搞定。X4370 M2由2个x86服务器节点组成,每节点配备双路英特尔至强X5675 CPU(3.06GHz),提供12个按需启用的处理器内核和96GB DDR3-1333内存,因此共有24个内核和192GB内存。默认激活所有24个内核,但一开始企业可以只激活两个内核(两节点各激活一个以提供冗余)。如需更多内核,可以随时以四核为增量(在两节点间均匀地)逐步激活。

这2个服务器节点通过一个内部冗余的千兆以太网(GbE)互联实现集群通信,从而无需专门的网络设备。每个服务器节点还提供1GbE和10GbE外部网络连接,从而能与任何数据中心兼容。

运行中的Oracle数据库机,最上面一行4个73GB SSD,下面5行共20个600GB硬盘驱动器,皆为3.5英寸规格

Oracle数据库机在这2个服务器节点间共享24个3.5英寸SAS驱动器,包括20个600GB 15K SAS硬盘驱动器组成的高可用共享存储,还有4个73GB SAS固态盘(SSD)用于重做(Redo)日志,设备管理器连同Oracle自动存储管理(Automatic Storage Management,ASM)可自动配置、管理和监控磁盘的性能和可用性。ASM提供存储的扩展性与高可用,是RAC的好搭档。不过,需要说明的是,这个扩展性与高可用是ODA内部两个节点之间的,ODA本身并不能再向外扩展。如果需要更大的规模和可扩展性,就要转移到Exadata了。

计算和存储是影响数据库性能的两大要素。相对于计算而言,存储I/O通常是瓶颈。Exadata在其基于x86架构的存储服务器中采用了PCIe闪存加速卡(属于SSD的一种)作为Cache,可以大幅提高(随机)读性能。虽然与“去IOE”阵营常用的Fusion-io ioDrive系列PCIe SSD相比,Sun基于“RAID控制器+Marvell闪存控制芯片”架构的PCIe闪存加速卡不太够格,但已经比基于传统磁盘阵列的方案要好很多(Exadata存储服务器的优势不仅于此,非我们讨论的主题),体现了整体理念先进的重要性。

ODA的73GB SAS SSD(上,应该是STEC的SLC产品)和600GB的15000RPM SAS硬盘驱动器(下,很可能是希捷Cheetah 15K.7)

理论上ODA也可以使用PCIe闪存加速卡,可能是出于成本和简化架构的考虑,代之以4个73GB的SAS SSD。SSD在ODA中的作用是保存Redo日志,而Exadata是将Redo日志同时写入PCIe闪存卡和硬盘驱动器。原因在于Redo日志以写入为主,而闪存更适合以读为主的场景,一是写性能没有读性能那么出色,二是写入一定数据量之后可能会发生抖动(性能不稳定)。ODA这么做,除了简化架构的考虑,也不排除所采用的SAS SSD控制器技术成熟,能够很大程度上避免写入的抖动。

20个600GB SAS硬盘驱动器全部用于数据库的存储,ASM采用三重镜像的方式提供数据冗余,因此实际可用容量为4TB(12TB÷3)。ODA还采用将“生产数据存放在磁盘的外道,备份数据存放在磁盘的内道”的方式来优化性能,加上内置SAS背板48Gb/s的高带宽,能够达到随机访问(OLTP)4000多的IOPS,顺序访问(OLAP)3000MB/s以上的吞吐率,可以说已经把20个15K RPM硬盘驱动器的性能发挥到极致了(每个200多IOPS,150MB/s以上持续传输率)。

Oracle提供的ODA性能测试数据

通过上面的分析,不难看出,ODA没有Exadata那么高的技术含量,更像是一个小型的Oracle数据库“最佳实践”。特殊之处在于,Oracle将自己对数据库的最佳实践打包成了一个软硬件一体化的“设备”(Appliance),用户拿到ODA后只需配置几个主要参数,等待约2小时初始化完成,即可投入使用,摆明是要抢硬件厂商和系统集成商的饭碗。

用来与ODA对比的“传统架构”也是Oracle数据库的解决方案,更具可比性的同时,也体现出没把微软SQL Server放在眼里。Oracle并不讳言,ODA会抢系统集成商的饭碗——“只要对用户有利”

从软件的层面看,有足够经验的系统集成商要做到类似于ODA的效果并不难。有丰富Oracle数据库和Linux经验的人相对好找,ASM也可以用其他的卷管理和文件系统(如Symantec的VxVM和VxFS)等专业存储软件替换,还能获得更高的存储空间利用率(相对ASM的三重镜像而言)。如果再具备一定的开发能力,要做到把软件预配置好,几个小时完成初始化,也不是不可能的事。

问题是要做到如ODA一般的快速部署,仅仅软件集成还不够,硬件也得预先集成。如果用标准的x86服务器,至少需要2台,到了客户现场还要连线、配置冗余网络,技术难度并不高,但是很麻烦。像Sun Fire X4370 M2这样一个机箱里集成了2个服务器节点和冗余网络连接,且拥有很多驱动器槽位(计算、网络、存储)的服务器,不是随便可以买到的(Supermicro的类似产品未必合用)。就算Oracle肯卖,又怎么跟它竞争?

硬件上的问题,Dell这样的服务器大厂可以搞定,也有足够的整合能力,解决Oracle数据库最佳实践的软件经验问题。可是,把Oracle数据库做成一体机,然后与Oracle的数据库机竞争,恐怕只会比系统集成商的处境更尴尬。

可行的途径,是和微软合作,推出SQL Server的一体机。上一段举例没有HP(IBM有自己的DB2和Power,策略也不同,超出本文讨论范围),正是因为HP采用了与微软合作的策略。

Exadata的第一代产品,硬件就来自于HP。Oracle选择HP作为合作伙伴,不是没有缘由的。HP在x86服务器上的积累,非Sun可比,特别是系统管理能力,Dell也有一定差距。第二代Exadata的硬件换成Sun,原因不需要说。被抛弃的HP,既有做一体机的意愿,又积累了不少经验,是微软理想的合作伙伴。

大约一年前,HP发布了一系列的AppSystems,包括4款为微软SQL Server 2008 R2优化的“Appliance”,分别面向不同的用途(业务决策、企业数据仓库、业务数据仓库、数据库整合)。当时ODA尚未问世,但Exadata已经确立了兼具OLTP和数据仓库能力,支持混合工作负载,支持数据库整合,主要以规模划分的路线。双方的硬件平台也有一定区别,各自基于不同的考虑,这里不做评论。

在微软SQL Server 2012合作解决方案的页面里,HP能提供的一体机仍然基于上一代的SQL Server 2008 R2

SQL Server的市场地位低于Oracle数据库,如果只选一家硬件合作伙伴,那么在一体机市场上,很难与Oracle的数据库机(Exadata/ODA)组合相抗衡。因此,除了HP,微软还要积极开发其他的合作伙伴——譬如Dell。现在Dell已经公布了建立在其新一代PowerEdge服务器(基于英特尔至强E5-2600系列CPU)之上,名为“SQL Server 2012 Fast Track”的参考架构,但还很不够。要对Oracle的数据库机构成实质性的威胁,羞答答的“参考架构”或“最佳实践”是不给力的,微软的步子必须迈得更大些,不要怕扯……(据说Dell的SQL Server 2012一体机会在下半年推出,HP也该及时更新吧)

甲骨文CEO拉里·埃里森(Larry Ellison)与苹果大神乔布斯(Steve Jobs)有着很好的私交,双方都认同软硬件一体化的集成设计思路。苹果已经取得了成功,Oracle正在路上。如果说Oracle是数据库一体机市场上的苹果,那SQL Server能否成为Android?

有了箍桶的手艺,木板自给自足,还是两家合作……最终仍然要看,谁做出来的木桶,更符合客户的需求吧?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值