存储专栏:平衡之美 XtremIO的东方哲学

存储在线专栏文章:上周EMC正式推出XtremIO全闪存阵列,我看微博上各路大V吐槽的很多,有说性能不行的,有说定长重删不行的,有说不适合数据库,只适合VDI场景的。西瓜哥也很关心EMC怎么定位XtremIO和VMAX的关系,因为很多网友认为全闪存集群以后必然代替高端存储的,高端存储总有一天要灭亡的。

XtremIO由来自包括IBM、NetApp和VMware公司的IT老兵成立于2009年,又是一个以色列公司。2012年5月被EMC收购,据说收购价是4.3亿美元。收购后EMC一直没有正式推出产品,只是在部分客户哪里试用。直到上周,EMC正式宣布,XtremIO全闪存阵列GA(general availability)了。

我们先来了解一下这个存储,看看EMC收购它看重它哪一点?

XtremIO是一个集群的Scale out全闪存系统,因此我们先看一下XtremIO的基本单位X-Brick,西瓜哥俗一点,就叫X砖好了。这块砖头是包含2个1U的标准的X86机架服务器,上面安装了XtremIO的操作系统XIOS,作为存储的控制器;另外每个砖头带有一个2U的25盘位的磁盘框,据说就是采用VNX一样的DAE,目前支持2.5"的6G SAS SSD eMLC磁盘,容量是400GB;为了保护Cache的数据,每个砖头还配置了一个1U的BBU做掉电保护。

也就是每块砖是5U,10TB裸容量。如果最小配置,只配置一块砖头的话,由于BBU成为了单点故障,因此,XtremIO要求多配置一个BBU,也就是第一个砖头是6U高,以后都是5U高。目前GA的版本最大支持4个X砖,也就是21U,半个机柜的样子。西瓜哥一直搞不清楚为什么配置多个砖头,第一个砖头还需要多一个BBU,可能这样固化下来,销售起来不容易出错,反正销售记住第一个砖头必须配置两个BBU就可以了。

这种外置BBU的设计还是太占空间了,EMC的VNX2除了VNX8000外,都把BBU内置在控制器里面了,据说以后XtremIO也要改,只是不知道为啥那么慢。

我们看一下每块砖头的规格:

集群需要增加2个InfiniBand交换机:

我们看到,主机接口支持8G FC和10GE iSCSI,但节点之间的互连采用了40G infiniBand技术:

InfiBand RDMA(Remote Direct Memory Access)可以实现跨节点间的内存访问,并且具有最低的时延(7us)。

请大家看一下X砖头的性能指标,在50%读50%情况下,只有15万IOPS,在闪存阵列里好像并不突出啊?

大家再看一下其他的接口速率,好像也不是目前最高的啊?FC目前16G很多厂商都支持了,SAS已经有12G的SAS盘了,以太网也已经有40G了,而InfiniBand也有56G的了,好像XtremIO在性能甚至接口这块都没有啥亮点啊?那么EMC为啥要购买XtremIO呢?

从硬件的架构上我们完全看不出这4.3亿美金的价值,只能从软件去看了。

我们来看看这个值4.3亿美金的XIOS的架构:

从相关资料分析,每个控制器上有一个基本的linux分布式操作系统,然后上面跑这个XIOS。

XIOS的核心,西瓜哥认为就是重删技术,大家把XtremIO的重删原理搞清楚了,就知道这4.3亿美金是否值了。

我们来看一下XtremIO的重删原理,其实不复杂,只是一个4KB的定长重删:

比如一个32KB的I/O进来,XtremIO切分为定长的4KB的数据块:

然后用hash计算每个数据块的指纹,据说是SHA-1算法:

指纹一样的就只保留一份数据。EMC没有提到如果指纹一样,是否还需要比较一下数据,因为指纹也有可能冲突的,NETAPP好像就强调它不会直接重删,而是对数据进行比较,确信数据是重复的:

看到这,我们发现,好像也很简单啊,不值4.3亿美金啊?

别急,我们再往下看。

我们看一下重删在各个控制器的分布情况情况。由于XtremIO是基于指纹来进行数据分布的,因此可以保证数据平均分配到每个控制器上:

后面的数据进来后,都会平均分布到各个控制器上:

当每个控制器写满一个条带的时候,数据才落到SSD中:

大家看到没有,XtremIO的重删全部在内存里面完成的。落盘的数据都是重删后的数据。这个就摆脱了传统的重删带来的性能瓶颈,不会成为全闪存阵列的短木板。EMC说虽然是定长重删,但实际效果可以做到3:1-10:1。

再有一个,XtremIO所有的元数据都放内存里,这些元数据包括LBA和指纹的映射,指纹和SSD物理地址的映射。进一步提高了系统处理的性能。EMC宣传,其性能是线性增长的,即4块砖头的集群相当于1个砖头的性能的4倍,而且由于采用InfiniBand技术,时延全部控制在1ms以内。因为每一个RDMA的操作时延只有7us,对系统几乎没有影响:

由于在读Cache内也是重删后的数据,因此,虽然XtremIO的Cache并不是最大的,但乘以重删系数,相当放大了Cache的尺寸。

这些元数据都在内存里,因此,XtremIO实现快照、复制和Thin都非常简单,速度也非常快,因为这些操作都不涉及和磁盘打交道,只是在内存里进行元数据的复制和修改。

XtremIO还有另外一个提高利用率的法宝,叫XtremIO Data Protection (XDP),它抛弃了传统的RAID,提高了磁盘的利用率。XDP宣传可以达到92%的数据利用率,可靠性和RAID 6差不多,但性能超过RAID 1。关键是原数据都在内存了,因此没有写放到和读放大,有效提高了SSD盘的寿命:

具体XDP怎么工作。西瓜哥的理解就是这样的,每块砖有25个SSD硬盘,把这些硬盘切成相同的chunk(从图中看出就是4KB大小),采用类似RAID 6一样的算法,水平方向计算一次校验,对角线方向计算一次校验。其实可以理解为N+2纠删码的一种实现:

这样看来,有效容量可不是23/25吗?当然,XDP类似华为RAID 2.0一样,不会采用热备盘做热备,而是保留热备空间就可以了。XDP一般建议保留1块盘的热备空间。在重构方面,XDP没有采用传统的RAID 6重构算法,把条带的数据读出来,而只是需要读需要的数据(利用P和Q的数据),因此读的数据比较少(不过EMC没有具体公布这个算法,西瓜哥的数学是语文老师教的,因此没太看懂这个):

XDP号称支持最多每块砖坏5块盘,当然不是同时的啦。每块盘重构的时间基本都在10分钟以内。重构对性能影响比较少。大家有兴趣我们下周再来分享XDP的测试数据。

XtremIO也号称是第一款支持VAAI的全闪存阵列(这个应该不是,华为的DORADO好像就支持)。由于它采用元数据常驻内存,并且有两阶段元数据(即LBA和指纹的映射,指纹和磁盘物理地址的映射),因此,VAAI的full copy复制应该就类似打个快照一样的快:

当然,一个方便管理的图形化界面是必须的:

XtremIO也支持RESTful API,第三方这边可以控制和管理这个阵列。

由于XtremIO这种独特的软件架构,因此,用户不需要性能调优。没有RIAD,没有分层,不能控制重删(必须打开),数据平均分布,没有调优的必要。

XtremIO是一个对称多活的架构,直接利用EMC的PowerPath多路径软件。同时,XtremIO并不支持远程复制,因此,在方案需要和EMC的VPLEX来配合实现,但如果需要CDP功能,还可以加recoverpoint,但XtremIO没有内置I/O分量器,I/O必须从VPLEX上分离:

XtremIO的集群原理上可以支持更多,我看原来老的规格是可以支持8块砖16控的:

但GA发布的时候只是4块砖8控的产品,也许EMC认为8控就够了,因为超过100万IOPS的场景没有看到,也许是16控的测试不够充分,还需要再测测。

好了,我们大概了解了XtremIO后,我们发现,它好像在硬件和性能方面都不太突出啊?比如我们前面讲过的Kaminario K2,人家就追求性能第一,一直保持SPC-1的世界记录,而XtremIO,既然是全闪存阵列,你不追求性能还有啥存在的价值?

但看完XtremIO的发布会(EMC现在的发布会的形式都很新颖,都是多个场地互动,一个场地是技术专家谈原理,一个场地是现场DEMO演示,一个场地是客户现身说法,和拍电视一样一样的)和相关的一些资料,西瓜哥突然明白了,XtremIO追求的是一种平衡:
不用最快的硬件,够用就好;
不追求最快的性能,满足现在客户的要求就够;
采用eMLC降低单位容量的成本;
采用XDP和重删技术,提高磁盘的有效空间,也相当减低了单位数据的成本

因此,我感觉XtremIO就是实用主义者啊。SSD盘贵吧,CPU计算成本便宜,那么采用XDP和dedup都是非常耗CPU资源的,XtremIO走的是一条利用计算换容量的路啊。每个技术拿出来,都不是最有杀伤力的,比如In-memory元数据,人家SAP HANA更加出名对吧,XDP实现N+2保护,纠删码都可以做到啊,定长重删效果还不如变长重删呢。但XtremIO把握得很好,把这些技术巧妙地应用到全闪存阵列中来,走出和其他闪存厂商不同的差异化道路,这个应该就是4.3亿美金的价值吧。

因此,西瓜哥认为,XtremIO有一种东方的哲学,追求各方面的平衡,而不是性能突出。也许和其CTO是华人有关吧,O(∩_∩)O哈哈~

这种平衡其实也是高端存储看重的,高端存储你不能仅仅有性能,可靠性更重要,而且售后服务也很重要。

XtremIO如果还是一个初创公司,估计对高端存储没有太多威胁,用户不会把最核心的数据存放在一个随时没有了的公司的产品上,但现在被EMC收购了,感觉对高端存储形成了比较大的威胁,好在EMC也有高端存储,我们来看看EMC的自己的定位。

这个是EMC收购XtremIO的时候流传出来的图,大家可以看到,XtremIO定位在性能优化和容量优化的顶点,而且那个面积画得比VMAX还大,可见EMC对XtremIO的期望还是非常大的:

看EMC的评论,说如果能够区分冷热数据的话,就用VMAX,如果不能区分的,就用XtremIO。这个应该就是他们目前暂时的定位区别。但VNX2-F如何定位呢?感觉VNX2-F不是EMC重点推的产品,因为有了XtremIO。

虽然目前我看XtremIO主推的3大场景是VDI,虚拟机,然后才是数据库,而且数据库的案例更多是数据分析,而且目前XtremIO还不支持远程复制,但从目前我了解的纯闪存阵列的特性和理念看,西瓜哥隐隐觉得XtremIO对高端存储的威胁是最大的,不知道各位网友如何认为呢?欢迎反馈你的想法,我来分享给大家。

希望大家积极反馈你的意见和建议,微信扫描如下二维码,关注微信公众号“高端存储知识”,与作者微信互动。通过掌上DOIT移动客户端,您可以订阅西瓜哥专栏,第一时间获得知名专家和业界领袖的深度剖析与趋势分析。