Oracle Exadata X5弹性扩展与SSD性能计算

黄亮 发表于:15年01月26日 00:30 [原创] 存储在线

  • 分享:
[导读]Oracle Database Appliance X5-2的硬件,2个1U服务器节点间用40Gb InfiniBand互连,应该是直连没有交换机。24盘位JBOD(可扩展1台)每个驱动器共享给2个服务器由ASM管理。

在撰写本文之前,我先是阅读了Oracle Database Appliance X5-2的产品资料,并发了一条微博:

“简单看了下Oracle Database Appliance X5-2的硬件,2个1U服务器节点间用40Gb InfiniBand互连,应该是直连没有交换机。24盘位JBOD(可扩展1台)每个驱动器共享给2个服务器由ASM管理。放redo log的4个200GB SSD采用3重镜像,我估计写好1-2个就返回;缓存热数据的4个400GB SSD为双重镜像(共享还是各自独享?)”



而当我继续查看Exadata X5的资料时,发现ODA的架构显得太简单了。

伴随Oracle Exadata X5的发布,人们注意到硬件性能的又一次提升,其中包括NVMe SSD——PCIe插卡和SFF-8639驱动器的形式,具体是怎样使用的呢?

本次的新型号包括Oracle Exadata Database Machine X5-2,以及Oracle Exadata Storage Expansion Rack X5-2两款,顾名思义,后者是个存储扩展机柜。此外,计算和存储节点数量的搭配,在原有Full Rack(满配机架)、Half Rack(半配)、Quarter Rack(1/4配)和Eighth Rack(1/8配)之外,还加入了更加灵活的弹性配置和扩展方式。

笔者不是DBA(一直很崇拜DBA),因此将站在系统工程师,或者说规格参数的角度谈谈对Exadata X5的弹性扩展以及存储配置——特别是闪存性能方面的理解。



1U数据库服务器和40Gb IB内部互连,就不多讲了。

X5-2的存储服务器节点分为两种:Extreme Flash(EF) Storage,12.8TB PCIe全闪存盘;High Capacity (HC,高容量) Storage,6.4TB PCIe闪存卡+48TB SAS硬盘混合存储。



如上图,SSD用了哪家大家也知道的差不多了。每个Extreme Flash存储服务器上有8个1.6TB SSD,2U机箱容纳2.5寸盘远不止这些,那么应该是考虑容量/成本的平衡,以及匹配单个节点计算和网络资源。

接着在性能表格中,也能看出Full Rack——8个DB+14个存储服务器OLTP读/写

IOPS (8K) 都是414万。单从闪存介质的角度看写比读慢,而且ASM Normal冗余(双副本)的写开销为读的两倍,High三副本就更大了。我初步理解是SQL处理的瓶颈。



High Capacity大容量存储服务器是个混合的配置,其中1.6TB PCIe SSD用了4块,4TB SAS硬盘为12块。除了读IOPS之外,其余指标都比前面的Extreme Flash有所降低。由于SSD在这里用于读写缓存,没有全闪存配置的数量多,所以写IOPS已经低于读(SSD开始成为瓶颈)。



上图就是X5 High Capacity存储服务器节点使用的闪存卡,Oracle/Sun的型号为F160,顺便也帮Intel SSD DC P3600做广告了。(以前用LSI卡时图片上没有logo,参见我两年多以前写的《甲骨文Exadata X3:1/8机架的“数字游戏”》)



如上表,Intel P3600这块产品的性能表现在PCIe SSD中算一般水平吧。一方面没有像P3700那样使用高耐久度的High Endurance Technology (HET)闪存,也就是普通MLC而非“eMLC”,写入性能和寿命都受到影响。如上图,尽管标称最大随机读/写IOPS(4KB)为450,000和56,000,但8KB时就下降到260,000和33,000。

Intel这款SSD的一大优势是较早地支持了NVMe,担心NVMe不够成熟的人可以看看,现在至少某些Linux版本(Oracle Linux 6 Update 6 with the Unbreakable Enterprise Kernel 2)下已经可用了。

延伸阅读:《破解PCIeSSD进化:从踩坑到解决方案》



接下来我们看看“弹性配置”。上图左半边是Exadata X3-2,支持数据库服务器2-8台、存储服务器3-14台,实际上就那4款具体配置,不能随便选;而到了Exadata X5-2,支持数据库服务器2-19台、存储服务器3-18台。也就是说数据库服务器最少配1台,最多占满机柜(此时要连接存储扩展机柜了);存储服务器为了高可用还是以3台起步,最多18台。基本上就是没有限制的灵活搭配了。



需要说明的是,上述性能指标应该是在理想状态下——执行最简单的SQL;性能随节点数完全线性扩展,也是在RAC集群基本没有跨节点Cache Fusion操作的情况下。所以注释的第一行就说明了,真实环境中根据应用情况会有变化。



上表的标题为“弹性扩展”,最左边的多机架连接,以及最右边的1/8机架到1/4机架升级(实际上就是激活个License,硬件是相同的)都是Exadata X3乃至更早就有的。而中间的“扩展计算能力”和“扩展存储能力”则是X5新增。



中间用蓝色圈出的那一段,是本文中核心计算规则:“弹性配置的性能计算,来自数据库服务器性能总和,以及存储服务器性能总和的最小值。举例,一个配置包含3台数据库服务器(3x518,000=1554K读IOPs)和4台HC存储服务器(4x400,000=1600K读IOPs),将拥有1554K IOPs的性能。”

Exadata的SQL的处理既可以在数据库服务器上进行,也可以卸载数据密集型SQL操作到存储服务器,但二者的性能计算不可叠加。X5-2数据库服务器(2颗18核Intel Xeon E5-2699 v3)的最大SQL读/写IOPS为518,000,存储服务器最大SQL读IOPS为400,000(它的CPU只有2颗8核),写IOPS就可以看出闪存的瓶颈了。Extreme Flash全闪存节点为377,000,这里是SQL IOPS已经考虑到ASM冗余带来的写惩罚,那么落到每个SSD(每节点8个)上应该就是94,250——好像这个数字明显超过了Intel P3600标称的8KB写IOPS 33,000?

那么High Capacity大容量混合存储节点的192,000,落到4块闪存卡上96,000写IOPS也是类似的情况?转念一想,Intel给出的数字是随机写IOPS,而Exadata这里的SQL闪存写可以是顺序操作啊!差点被绕进去…

我想起@jametone 老师说过的一句话,大意是这样的:“实际应用中读IOPS容易离散,而写IOPS容易连续,再加上读/写比例的因素,存储的读性能成为瓶颈的情况更多一些。”这或许可以解释Exadata X5使用相对便宜的PCIe SSD吧。



最后再看看更牛B的数字——Exadata存储扩展机柜的最大配置19台,仍然是用乘法来计算的。这种资料里的性能嘛,只是厂商给出参考的一个数字罢了。

今天我这个数据库外行写了这些东西,其中难免有纰漏之处,欢迎大家批评指正,也让我能有一个学习进步的机会:)


感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage

[责任编辑:黄亮]
今天在网上看到几位大神的吐槽,感觉有必要跟大家做个分享。在此基础上也谈谈我自己对开源、OpenStack、Ceph和软件定义存储的一些看法。本人水平有限,说的不对之处就当做抛砖引玉了。
官方微信
weixin
精彩专题更多
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
12月15日,中国闪存联盟成立,同时IBM Flash System卓越中心正式启动
DOIT、DOSTOR、易会移动客户端播报中国存储峰会盛况。
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved.