2014年7月31日,首届中国闪存峰会在亮马河饭店盛大召开,在下午举办的闪存技术论坛上甲骨文高级销售顾问孙浩做了《Oracle数据库与闪存技术分析》的主题演讲。孙浩主要从Oracle数据库在闪存硬件的优化以及技术层面做了发言。
闪存出现弥补CPU内存与磁盘之间空缺
孙浩认为CPU和内存的发展与磁盘的发展速度不匹配。CPU和内存遵循摩尔定律,每18个月翻一番,硬盘远远落后于CPU和内存的发展速度。无论是应用还有Oracle数据库在处理I/O的时候,很大一部分时间是在等待底层客户端的磁盘。那么通过添加CPU和添加内存来提供速度。为用户客户带来一些隐性成本进来。闪存的出现填补了CPU内存到机械磁盘中间空缺。
当前一个很好的消息就是闪存的出现,闪存给应用给数据库提供了很低的延迟,提供较大吞吐量,使用更少占地空间。满足同样的I/OPS,需要更少的SSD,这样用户就不需要上百块或者是几十块的1.5万转的硬盘对接出来。甲骨文针对于数据库在闪存方面做了很多优化,很多技术融合进来。
首先可以看一下软件,Oracle公司针对于闪存优化可以从软件层,首先从应用数据库这层先去做优化。针对于存储,实际上甲骨文存储的核心是操作系统,是闪存优化和技术集成在存储的操作系统里面。
甲骨文谈分级存储
针对Oracle公司针对于闪存优化从软件层到数据库层到底层的硬件层是全方位的闪存优化。孙浩总结第一个技术是分级存储。第二层可以看到SmartFlashCache,从数据库软件角度出发设计的闪存优化。
分级存储Oracle怎么做的。很简单一个道理,在Oracle的数据库11gR2版本以前,Oracle公司优化闪存做分级存储是通过在服务器里头插一块闪存卡,像我们的F80的闪存卡或者是说一个全的闪存阵列。你加这个闪存卡干什么用?把Oracle数据库做一个索引,建立在闪存卡上,用来提高Oracle数据的查询和存储。他给Oracle数据库带来哪些好的效果?响应时间提高两倍,吞吐量提高两倍,事务处理提高两倍。这项技术有一个很好的地方,他可以去在线的去加入到我们数据库里来,这里给大家展示一个非常直观的一个实际的案例。可以看到中间部分是一个SUN公司原来一个6540的闪存阵列,他在X86服务器上插一块闪存卡或者是接我们以前有款类似F5100的闪存阵列。把索引时间建立在闪存阵列上来,这个阵列是在线,不需要客户区宕数据库,完全可以在线建立。我们可以考虑一下这项技术,这项技术他解决了客户的查询,数据库读的查询的问题。他在写上其实是没有太多的帮助,可能会对我们写的性能有一点影响。他建了索引之后,我们以后做这种写和更新这种改变,可以看到同步他的索引。一般情况下这项技术是客户数据库建立好了之后,数据进来之后然后再去建索引。数据库类型是一个查询类型的数据库,是比较适合这样的场景。
甲骨文谈SmartFlashCache技术
第二个技术,从Oracle数据库从11gR2版本开始,Oracle数据库支持这项SmartFlashCache这个技术给Oracle带来性能提升从2倍提升到5倍,他是智能动态应用,管理起来非常方便、智能透明,对数据库也是非常透明。同时可以把闪存和机械盘两种介质各自优势发挥出来,最大降低客户成本,提高客户他的数据库的性能,提高效率。
Oracle数据库有一个很重要的区就是共享全局区,是Oracle把所有他的I/O处理等等这些所有I/O放到这个共享全局区里边去。这个全局区是跟内存有关系,内存有一个问题,他的扩展性还有他的价格都是比较昂贵。甲骨文可以借助于Flash把他变成一个二级缓存,动态去扩展了他对SGA的区,把他这个区变得很大。也就是说把数据尽量的去放在SGA区里去,加大整个的Oracle数据库的一个查询的数。
集成式的工程一体化解决方案
分级存储与SmartFlashCache技术都是解决数据读取问题,这两种数据都比较适合部署客户偏读性的场景,比如分析型数据库,数据仓库,数据查询型。对传统的这种我们像日志型的,事务型的数据库,比较适合第三种。第三种我们看到像集成式的工程一体化解决方案,还有Exadata,它的存储是比较特殊的一种存储。他是由DB服务器和存储服务器两种设备组成,DB服务器就是Oracle的X86服务器,目前最新是有两台或者八台的X86服务器组成。
最后孙浩谈了Oracle存储,Oracle有他自独特的存储,在设计上完全是遵循了Oracle公司的一个理念。其存储产品的战略完全是基于Oracle的软件,Oracle存储上结合软件就最快最有效。Oracle存储为什么能使Oracle数据库运行起来非常快,又非常有效,这个得益于Oracle公司在08年首创一个技术就是混合存储池的技术。他举例说“Oracle推出一个存储产品就是ZS3这个系列,存储它的特点是比较怪,我们很多客户看到他的参数和其他的存储厂商的硬件参数区别很大。首先看一下他的控制器,他的终端存储和高端存储配置他的CPU的核数有32核,高端80多核,你看他的内存,中端1TB,高端2TB。他如果到2TB的Cache来讲,Oracle定位这个存储产品,他是一个中高蛋的存储产品。他先面有一个Flash,分读写的Flash,Oracle公司把CPU、内存和Flash作为处理存储I/O的主要的介质。所以说我们可以看到他做的是非常的大,可以看到他底下的硬盘配置很简单,仅仅只有两种硬盘,一种是1万转,还有7200转。Oracle的存储跑Oracle数据库来讲跑的效果非常好,通过这种控制器和闪存提供强大的马力。”
甲骨文谈混合存储池的技术
这项技术细致了解一下,混合存储池技术和StoragePools的技术,Flash在这里头起了什么作用?Flash他是读写区分,分读Cache和写Cache。他读Cache是放在控制器里头,写Cache放到这里。2TB内存情况下再继续加大到10TB级别的空间,相当于做一个二级缓存,交给内存去处理,缓存数据空间不够,就把他弄到二级缓存上去。但是写缓存,我们采用非常快的单膜的了ZFS,快速写入新数据到DRAM闪存池,利用咱们磁盘大的吞吐量的优点。借助混合存储池,这里有SPC-2和SPECsfs的指标。原则上他本身是一个统一存储,在NAS环境下优势很好,在SAS环境下他的大的吞吐量表现非常好。
在去年的测试是世界第一,但是今年我们看到有一个新的厂商做全闪存阵列厂商超过了我们,我们最新排名是第二和第三。这两个指标体现什么问题?一个就是我跑Oracle数据库性能如何,还有Oracle还有一个就是数据备份,我要看什么指标?就是SPC-2。可以看到Oracle推出全新的理念,就是用InfiniBand这种连接方式。另外可以看到Oracle存储提供一个协议,Oracle12C在部署存储的时候,不像传统需要做存储级别的调优。很多项目里头,我们要去部署一台Oracle数据库一个服务器,他后面接的存储需要一个存储专家把我们存储做一个非常专业的规划,我们是分级存储,我们的Flash,机械磁盘我们怎么去用,都需要非常专业的规划,但是我们可以看到在Oracle,开发的智能存储协议,以后Oracle公司的DBA部署他的数据库的时候,它的存储不需要做任何的调优。打个比喻,好象我们在使用单反照相机和傻瓜式照相机。专业人士做一个细微的调整,才可以作出专业照片。我们业余爱好者用傻瓜相机把画面拍的很好。他的存储的设计方向完全是面向于咱们的Oracle的DBA。他在使用Flash的时候,我控制文件还有数据文件还有归档,还是你做备份,你的Flash到底怎么用,用还是不用,全部交给OISP自动化完成,减少65%的数据库和存储调优时间。
可以看一下Oracle存储针对于Flash,就是结合Flash存放和部署针对于Oracle数据库是热数据、暖数据还是冷数据做一个自动迁移,这和我们存储技术做的层面不一样,存储是做一个存储池,做一个打包,自动完成。然后他自己也开发一个功能,把这个部署在闪存上还是1.5万个盘,他是通过数据库层面完成。他是针对Oracle12C的一个技术做的更准确。我们可以看到他有一个更好的地方,他可以结合混量压缩,他可以把数据库压缩到10-50倍,比传统的存储的技术压缩比例要高很多。
最后孙浩对这三种模式做一个对比,什么样的情况下客户适用于什么样的场景,如果客户还是用老的版本,建议他用第一种解决方案。Oracle数据库是用以后的版本,可以根据他的投资预算用后面的解决方案。最佳的解决方案除了Exadata比较昂贵,ZFS存储加一个传统的服务器,也是很好的解决方案,极致提高了咱们的数据库去更好的把闪存用好。从Oracle数据库层面以及存储里面写Flash还有读的Flash从上到下完全全面整个的全面加速,把闪存最极致的优化。
闪存针对于I/O数据库带来的好处,最后看一啊Oracle针对闪存优化技术有一个非常独特的优势,这里做的完整的总结,Oracle提供一个最佳的解决方案去加速数据库、提高生产力、效率和业务响应。另外Oracle闪存优化技术是多维度,不仅是从Oracle数据库应用一方,还有服务器这一层,还有存储这一层,更宽的纬度进行闪存进行一个优化。另外可以看到Oracle提供他是最佳软件,完全是智能、透明、动态和高效,咱们数据库管理员不需要很高的技术能力,完全是自动化透明全部做成。还有Oracle利用完整他红色对阵,全部在工厂内部把技术全部API内部开放,不是简简单单的集成,而是深入的集成。在出厂之前把客户需要到现场实施的需要去上线验证一些工作完全交给Oracle厂商去提交完成。最后可以看到利用整个Oracle整个闪存的优化技术,大幅降低了咱们客户的投资,同时利用这些完全自动化的技术还有降低更多成本,降低咱们客户的日常管理成本。