当前位置:首页 > 云计算 >

云和恩墨张乐奕:降低成本 提升速度 开放式超高性能数据库存储平台实践

发布时间:2015-04-30 16:49:11 来源:中国软件网 作者:
[摘要]云和恩墨 Oracle ACE总监张乐奕在会上发表了以“降低成本,提升速度——开放式超高性能数据库存储平台实践”为主题的精彩演讲。

第八届中国软件渠道大会于4月28日在京隆重召开,除了上午10位行业专家分别针对各高端领域进行了洞察性分析,下午首设移动应用与云计算、 “互联网+”、大数据三大分论坛,并行展示新技术带来的变革,为与会者带来一次新技术的听觉设宴。

大数据分论坛由中关村大数据产业联盟副秘书长陈新河主持,共有6位行业专家发表了演讲。云和恩墨 Oracle ACE总监张乐奕在会上发表了以“降低成本,提升速度——开放式超高性能数据库存储平台实践”为主题的精彩演讲。(以下内容根据现场速记整理,如有不妥请谅解!)

云和恩墨- 张乐奕

张乐奕:大家下午好,非常高兴今天下午能够过来跟大家分享一下,我们在甲骨文平台上做的一些事情。我先自我介绍一下,我是目前在云和恩墨末当技术交互经理的职位,云和恩墨主要是做甲骨文第三方数据库服务的公司,我现在跟甲骨文的关系也比较近。在前一段时间里面,我们翻译了一些书籍,自己也会写一些关于Oracle的书籍,后面还会有团队的介绍。我们是热衷技术分享的团队,这几年关于Oracle的书籍写了十几本,我们做了最大的ACOUG,每个月几乎都有活动。我们每年会举办一个大型技术活动,跟这样的软件渠道大会一样,但是我们都是在Oracle的基础层面上,2014年我们做了一千多人的大会,两天的会议。

我们自己做了一些跟Oracle相关的技术海报,还蛮受欢迎的,大家可以免费的领取,后面有微信大家可以关注。我们做了体系架构图,做了OracleDBA的一天,这一天中你需要做哪些事情,有详细的命令,可以跟微信互动,输入之后微信就会告诉你要做这件事的话你该做什么样的命令。上面我们做了一个5.0的引擎。这是我们的微信,我想花一点时间介绍一下,我们云和恩墨的微信里面有一个很好的功能,是做Oracle的查询。就是当你在客户的现场做事情,但是你没有网络只有手机的时候,你忽然发现了一个错误,这个错误不知道是什么原因,这个时候给我们的微信公众号把错误号码发上去,我们就会告诉你这个错误的原因是什么,对于常见的错误我们还有链接告诉你怎么解决,这是最受欢迎的功能,有时候自己也会用它。

刚才Oracle的潘总说了一些Oracle自豪的东西,这是我在DTCC前面刚举行完的会议上分享的,现在大家提的最多的事情就是去IOE,Oracle是不是还有前途?我们去年在技术库方面的大会上,看到Oracle还很大众,现在突然变得很小众了,谈各种各样的东西,好像唯独Oracle被冷落了。但是从我们做Oracle技术的从业者来看,中国的技术人员最大的一个问题是跟风比较严重,所以大家很容易被外面的一些思潮引导,说我们到底应该走哪个方向。但是今天我们提出来一些认为Oracle还有前途的理由,有一些是你们知道的,也有一些是你们不知道的。

说钱的问题,Oracle大家都觉得贵,标准版是Oracle1/3的价格。而且标准版的功能远超过MySQL,如果你仅仅是因为Oracle贵说不选择了,我选择别的产品,如果你自己想一下,有一天Oracle是免费的你会选择Oracle还是会选择其他的技术?我觉得这是要静下来好好去想一想的。Oracle贵是因为Oracle目前在市场上占的份额,在全球有将近50%,在中国更多,差不多60%全部是Oracle数据库。我不能替Oracle原厂说话,但是我作为第三方的角度来讲Oracle没有降价的动力,因为他占据的份额很大。2015年Q3恩Oracle云业务增长30%,说明Oracle是紧跟技术发展潮流的。下面是两个数据,大家都在谈要用开放的方式做私有云,要用Hadoop做财务报表,但是收入预测在2018年的全球收入只会到33亿美金,而Hadoop的发行商,在去年营收加在一起不到2亿美金,但是Oracle每年自己投入到研发上的就是50亿美金之多。收入不到2亿美金,但是比竞争对手每年会投入超过50美金。还有Oracle从5年以前就开始研究数据库了,你现在不知道Oracle投入50亿它在做什么,你完全没有办法断言说Oracle已经跟不上潮流了。

后面是关系型数据库为什么会存在,大家说这个Oracle能做,那个Oracle不能做,但是如果你的业务是需要关系型数据的,需要AC的,这这四个关键的因素,跟钱相关的,你永远是要这样做,目前来说是这样,在有限的我们可以看到的时间长度里面,你是需要关系型数据库的。如果你需要关系型数据库Oracle是最好的选择,刨去钱的因素。

在存储层面上我们建立一个Oracle数据库的话怎么解决问题,我们为什么要做这件事情?是因为我们把数据库系统的优化定义成这样,什么是数据库系统的优化?我们认为无非是两点,第一点物尽其用,第二点是这些所有资源之间是要平衡使用的,不能有一个短板。我们看到右侧的图,从计算机诞生一直到现在,这是计算机三种最大的资源,提供我们能计算的最大资源。最上面这条非常陡峭的线是CPU的发展历程,它从诞生一直到现在它的飙升是非常明显的,就是性能每年都在飞快的提升。但是与之相比这两个发展的很缓慢,所以这当中产生了一种Performance Gap,这当中就会有短板,把你的整体性能降低下来,拉下来。所以我们要做的事情就是怎么把这个Gap弥补住,最开始我们做硬件的优化,比如说放更多的盘,打散,提供更多的IO。都是数据量越来越大,你发现放上百块盘还满足不了你需求的时候就会有点崩溃。

这时候就有应用的优化,比如说我们应用读取更少量的数据,虽然整体硬件性能不能上升,但是整体应用性能能上升。但是因为去年两种技术成为可以商用的技术之后,我们发现了新的天地,现在硬件在存储层面可以跟上CPU的发展。所以我们从去年开始在想,在传统的IO存储的格局下,我们应该做哪些事情去对它做一些革新。这是传统的SAN面临的挑战,很明显大家做传统行业都知道,我一个数据中心,现在业务发展越来越快,我原来的一个数据中心可以支撑今年的业务,我忽然预测明年的业务要翻一倍,两倍的时候,我需要预估容量,购买大型机器,购买大型存储,再把网络搭建上,把数据库迁移下来,这可能需要3个月到半年的时间做完这个事情,但是现在半年已经过了你最快的发展期了。很明显在传统型的业务很难支撑现代业务的高速发展需求,我们期望有一种架构,可以通过现在革命性的硬件,可以带来更好的使用场景。

那么这是两种在数据传输,我们说数据库系统当中最核心的硬件的发展。首先第一个是存储,从原来的机械硬盘到现在的PCIeFlash,从原来的几百兆到现在单卡4GB,这个跃升是非常非常明显的。有了下面存储的性能提升,你数据读取要有一个通道送到运算资源上去,很幸运的是Ethernet也进入到了一个非常大的成熟期,他刚刚发布了100GB的性能,这是非常大的提升。

对于这种我们该怎么应用在Oracle数据库环境里?这是我们原来做的一个案例,大型的厂商有两个节点,跟着一个比较高端的存储,这是比较传统的环境。碰到了很大的IO性能问题,即使存储很高段,我们给它做了一个方案,就是你现在不要用这样的小型机加上存储,我们把它换到PC服务器上,在这上面我们插上两快Flash卡,仅仅做了硬件上的革新。我们可以看到整个性能的提升超过百分之百,但是这件事情带来了一个问题,这个问题是原来是两台机器高可用的环境,但是现在我们变成了一个PC服务器里面要插两块卡,高可用性无法保证,就是降低了高可用性来提高性能,这不是长久之计。我们希望有更好的方法,在Flash的使用上还能支持Oracle。

所以就有了软件定义存储,这样一个架构就变得非常非常的有必要。那么我们期望把原来的服务器通过光线交换机连到下面的共享存储上,这样整套的一个传统的架构,变成服务器里面插着Flash卡,多个服务器之间通过高速互联把它连在一起,从而提供更高的比原来SAN更高的性能,而且更容易扩展。所以整个的架构就会变成这样,这是我们的实践,在这方面做的时间上的架构。简单介绍一下,这是一个很明确的Oracle的环境,下面三台机器上插上Flash卡,通过56GB的IB交换机,两台冗余拿IB线连在一起,上面装上Oracle的数据库,通过下面三个机器统一对上面提供访问。实际上这个架构就是Oracle的zdata,但是不同的是我们没有服务这些东西,但是我们仍然可以通过这种架构获得非常好的扩展性,并且因为Flash的存在所以获得非常非常高的IO性能。

这个的好处是在于我们可以通过甲方或者供应商,你熟悉哪一家硬件厂商都可以,你的硬件是集采的也好,很便宜价格买到也好,不要求你具体在哪个硬件上。IBM也好,联想也好,所有主流的PC服务器厂商都可以,里面的卡我们也不做限制,等等一系列的都可以。上面有我们自主做的一个软件叫Light Storage,这是最关键的存在。通过这个架构我们获得了性能,在三台机器上,三台PC服务器上,我们可以获得的IOPS可以大于50万,这是非常惊人的数字。延时小于0.6毫秒,普通的散存储的延时是多少大家知道吗?是5—6个毫秒,而我们在0.6毫秒,这意味着你的请求范围更快。MBPS每秒钟大于10GB,大部分ORCP系统500GB就很不错了,一分钟就可以把整个库扫一遍,这是非常大的吞吐量。

我们的架构是怎么做的?我希望跟大家分享一下我们的架构是怎么做的。这是三台前面看到的Storage,是存储节点。在Linux系统上,我们可以看到通过一些技术可以把底下的磁盘跟Flash的卡进行绑定,通过SCST,把里面的这些卡暴露给上面的这些机器,中间通过IB交换机连在一起,这是高度冗余的环境,任何一个地方都没有单点故障,在硬件层面上没有单点故障。上层我们说这是为Oracle数据库服务的,所以我们使用的Oracle的ASM数据管理,在数据层面上通过Oracle的ASM实现数据。

这是整个的流程图,就是在整个一套架构中互相之间是怎么看到的,最开始是在这上面,这是Node1,它看到了下面各个存储之后,因为你是多个IB线连上来的,所以你可以看到多块盘,我们通过Linux绑成Oracle可以看到的disk,再把这些盘放到正常的情况进行数据的冗余。听上去比较复杂,但是没关系,这件事情,这个软件我们是开源的。因为我们基于的是GPL协议,所以想跟大家谈一下什么是GPL。GPL是很多很多的开源软件机遇它的,是General Public License。其实它反对的是你剥夺用户使用、修改、享用这个软件的权益,你可以拿它卖钱,但是要把源码给我,收到源码之后可以安装在很多台机器上,我收到源码上也可以放在网上免费的分享给其他人。而且GPL最厉害的地方是在于它具有传染性,所谓的传染性就是如果你的代码中,使用了任何一个基于GPL协议的代码,整套代码也必须是GPL的,不可以改。因为我们使用的是SCST这样一套技术,我们的软件也必须是GPL的。

业界也有大概的解决方案,但是他们会通过各种各样的包装、封装,以闭源的方式提供给业界,我觉得这件事情是值得探讨的,我们希望做一个道德的厂商。这套解决方案需要收费是毫无疑问的,因为我们投入了很多,但是软件的使用不会有什么限制,不会说用300个TB就到头了,再往上要给我钱,没有这样的事情。源码是公开的,自己愿意在源码上做公开、改动也可以。

我们优化和改进了SCSI的Initiator,你结构断了的时候,他有50秒的停滞时间,这个就是减少磁盘和链路错误恢复时间,现在3—5秒之间就可以链路恢复了。在源码层去掉了一些影响它性能的一些PaaS的东西,所以它的性能目前来说比它的原版要更高。接下来是我们偏技术的这一块,我们选用了它在Infiniband上用的是什么协议,大家知道Infiniband的能举一下手吗?两个人,所以其他人不知道什么是Infiniband。Infiniband我前面说过它是一个革新性的技术,这个技术的出现让互联网的线路从原来以太网的百兆,飙升到了100GB。但是Infiniband不是某一款硬件,也款硬件就叫Infiniband,Infiniband是一个规格,就是你只要支持高速互联RDMA这种方式的硬件都可以称之为Infiniband。Infiniband的硬件目前来说全球占据垄断地位的厂商是一家以色列的厂商,这个地方要说什么是RDMA,RDMA是远端直接内存访问。不做技术可能稍微难理解,但是我们可以看一下,大家如果知道TCPIP的话,它走的是这一层,包括你在网卡上的这份数据,需要符合TCPIP的协议,打上TC数据包的投部,抛传到你要的路径,这个过程很长。但是RDMA的意思就是跳过操作系统的一层,从硬件直接传到对面的硬件上,简单理解就是这样。不需要知道的太详细,只要知道RDMA相应率更快,传输率更高这么一个协议就好了。

我们的软件使用的是支持RDMA的协议名称,称之为SRP。这边还有一些软件会使用IPoIB,Infiniband上面跑IP协议就叫IPoIB,如果跳过了TCPIP这一层就叫SRP。它的汉译在这儿,这是整个支持Infiniband的协议,为什么我们选择了SRP?是因为Infiniband有很多很多种协议,那么我们可以看到有支持IB的,网络的,有支持文件系统的,但是如果你做一个块设备,当成存储,让上面的硬件看到的话,只有两种协议可以选择,不是SRP就是ISER,只有一个字母的不一样,就是在这个层面加上了IP层。

我们为什么选择SRP?这是iSer整个协议站,我们可以看到Iibiscsi层,我们认为越简单就意味着越稳定,越简单你的性能越高,这是我们整个zdata Light的架构,减少了延迟等等,这是带来的好处。整个架构可以做的事情,在存储节点上可以直接插SSD盘,也可以插PCIeFlash卡,或者把PCIe的卡做成下面SAS、SATA disk的形式,现在英特尔主要是SATA的,这个价格会相对较低,性能会相对较高,大概是这样,这个相对起来就是会比SATA卡要高,这是最昂贵性能最好的,这是中端的,这是最传统的。如果你要提供极致性能的话,可以直接选择插在PCIe插槽里面,你说我现在只是想给SATA提速,你可以买少量的PCIe卡,给它绑定就好了。

在存储节点这是整个架构的技术节点,我们使用SCSI+RDMA的方式,通过OracleASM,在各个节点中均匀分布你的数据,依托你在创建ASM上面的冗余性,是存两份还是三份,这是大家自己决定的。我们采用了标准的SCSI协议,保持它的兼容性。时间应该差不多了,介绍了架构之后说一个真正的例子,我们做了一个电信数据库仓库。他原来主机的环境是Power780,24CPU、320G内存,也是非常高端的存储,最大的IO吞吐量。我们用我们的环境替换了它现在的环境,我们只需要在计算节点两台IBMX3850的机器,当然内存我们会配的非常高,最高配也要比小型机便宜很多,我们配了512G内存,4路60核CPU。存储节点用了12个,每个存储节点插了720转的硬盘,插了1.2GB的闪存卡。我们在上面有12的1.0.2RAC,现在我们可以轻松标到他原来效果的十倍,IO处理10倍,业务处理4倍提升,成本是原来的1/3。

这就是整个我想要分享的内容,最后做一个小的广告,我们一直在招人,如果有技术人员愿意到我们这样的团队中来工作的话,可以来联系我们,谢谢大家!

第八届中国软件渠道大会与您相约5月25日沈阳站,诚邀您莅临参会!

【返回首页】