存储互联
存储互联

周末的时候,同事在微信群里,问:Dell存储的256GB缓存,怎么破?

近期实在是项目上类似的指标见多了,对友商常见的这些优势规格(或者排他性指标、控标点)都有点过敏了,心想:256GB缓存,960片磁盘,2MB分层颗粒,外加贼便宜的闪存盘,这不是Dell的CompellentSC8000么?这拳拳到肉,招招毙命,都能看到友商得意地笑……得意地笑……得意地笑……


本文略长,先说结论,Dell Compellent:

  •  控制器和IO模块不支持热插拔;
  •  256GB大缓存,通过Live Volume绑定实现,且仅为读缓存,写缓存非常小;
  • 不支持真正Active/Active模式,LUN仍然要有Owner;
  •  “可能”不支持缓存镜像功能;
  • “可能”不支持读写缓存掉电保护功能;    


话说前头,本文仅为技术上探讨SC8000的架构及特性,不希望变成争论撕逼或者人参公鸡,如有不妥,此文可立即删除……

话说Compellent,在被Dell收购前便已扬名立万,我印象最深的就是自动分层和FAST Track快道技术,尤其是后者,利用磁盘外圈的速度优势,部署性能型应用,这奇思妙想,让人啧啧称绝。

遗憾的是,和IBM的Redbook、EMC的产品文档齐全、详细、深入、真实不同,Compellent只能看到一些产品PPT(相比某些国内厂商已经很不错了),很难找到描述技术架构的深度文档,所以通过网络找了很多资料,交叉印证,如有错漏,欢迎指正。

Dell的网站上,提供了一个storagereview网站的链接用于宣传Compellent,该网站做过一个产品介绍(http://www.storagereview.com/dell_compellent_handson)。


让我们先看看CompellentSC8000的控制器。

SC8000的控制器是个2U服务器,每个服务器含有2颗六核2.5GhzXeon E5-2640的CPU,以及16GB或者64GB的内存(因为Compellent支持Live Volume,可以把两套SC8000作为一个集群从而支持到256GB,larger cache capacity availablein clustered systems using Live Volume)。每个服务器提供6个PCI-e扩展插槽,并集成了Dell的iDRC7 Enterprise远程管理模块。通过PCI-e扩展插槽,安装不同的HBA卡,就可以实现不同类型、不同数量的主机端口,或者也可以使用这些HBA卡,连接不同类型的扩展柜,实现宣称的960片磁盘扩展容量(这时估计内存也要满配)。

看上去,Dell Compellent的控制器和Oracle SUN ZFS 7000类似,只不过SUN ZFS 7000用的是四路服务器,内部文件系统为ZFS,而Compellent则没有更详细的资料。其实类似的架构,很多厂商也有,毕竟使用成熟的X86服务器,配合上层存储软件,好处多多,易于开发、灵活扩展,很容易实现非常高的硬件指标,我们看到的很多中端存储,动辄几百GB缓存、几十个端口、上千片磁盘,都是这么干出来的,毕竟服务器最不缺的就是内存插槽和PCI-e插槽。

记得几年前,Intel主推SBB机箱(存储机箱标准,目的实现机箱、电源、背板、控制器的接口统一)的时候,研发的难点就在于怎么在小小的机箱里面,塞下两个热插拔的控制器,在拥挤的控制器空间里,塞下两颗处理器+散热器、主板、主机端口、还有缓存掉电保护的电池。而用服务器作为存储控制器,这一切困难都不存在了!


但问题呢?

  •  使用两台服务器作为控制器,意味着控制器模块、IO端口模块,实际上不可热插拔。

当然你非要学某个友商较真说,我整个服务器可以热插拔,连带上面的模块,当然也算热插拔。我也只能说:你说的好有道理,我竟无言以对……

  •   Compellent有缓存镜像功能吗?是如何实现的?

控制器模块化设计,用过背板的高速通道进行缓存镜像同步实现双控Active/Active,如果使用服务器作为控制器,如还要实现缓存镜像,则必须外部引出PCI-e通道进行互联。具体 Compellent是如何实现的(或者缓存是否为镜像),我们不得而知。

但有意思的是,多个角度的信息表明:Compellent高达256GB的缓存,实际上仅为读缓存,而其写缓存,仅为1GB的容量。

如在Dell内部的技术论坛上2013年文章,明确提到:Compellent的内存,其中不到6GB被每个控制器占用,剩余的全部作为读缓存使用,而写缓存,则使用单独的PCI-e卡来实现。

simditor-img

另外,在3PAR的一片文章中,也提到了Compellent的写缓存只有1GB(无独有偶,EMC的竞争分析中也提到每控制器的写缓存只有512MB),当然这是2012年的文章,也许现在有升级,但相信Compellent的硬件架构不会做太大更改,写缓存仍然不会太大。

simditor-img

  •  这就引出来第三个问题,Compellent的读缓存和写缓存为什么是分离的,以及为什么写缓存只有这么小?

一种可能是Compellent的技术太好了,不需要太大的写缓存,或者Compellent的架构决定了写缓存没法做大。甚至,大胆的猜测:Compellent的RAID,是通过外插RAID卡来实现的,写缓存也是RAID卡的缓存?这些不得而知。

Dell技术论坛2014年有个客户提到:从SC40升级到SC8000,需要更换PCI-e缓存卡,并指出了缓存卡安装的位置。

simditor-img

  •   第四个问题,写缓存小,对Compellent的性能有什么影响吗?

相信Compellent在配置大容量的内存用于读缓存,会比较适合读应用。而写缓存较小,也势必会影响写应用的性能,Compellent使用了闪存来进行改善:

“We are particularly interested in configurations that leverageCompellent’s new Flash tiering capabilities, including Dell’s flash-optimizedCompellent solution which pairs the SC8000 with a SC220 disk shelf that ispopulated with six 400GB write-intensive SLCSSDs and six 1.6TB read-intensiveMLCSSDs.”看到这里的描述,第一个反应就是这个部署模式和ZFS的特性特别类似,ZFS也是用低成本、大容量的MLC来做L2ARC读缓存,而用高性能、成本高的SLC来做ZIL写缓存。

  •   第五个问题,Compellent的缓存掉电保护是如何实现的?

通常,缓存容量较小的时候,利用锂电池或者超级电容供电,可以将缓存信息写入到闪存中保护,而像EMC的VNX,则使用了大电池,对于用服务器作为控制器的存储来说,缓存容量大带来的问题,则更为棘手,电池容量必须能够支撑整个服务器运行,必须在磁盘或者闪存上找到足够大的空间来放置缓存中的数据,这都大大增加了设计的难度和硬件成本,当然,更简洁的方案就是:不保护内存中的数据,尤其是读缓存数据本来就无关大局,只保护PCI-e缓存卡的数据。Compellent会如何做呢?

  •   第六个问题,Compellent的控制器是真正的Active/Active吗?

如果Compellent的读写缓存,没有实现镜像,那么他们如何实现Active/Active真正的双活控制器呢(不是Active/Passive、也不是ALUA模式)?答案可能是Compellent压根不是Active/Active架构,就如同Oracle SUN ZFS 7000一样,两台四路服务器共享存储池,文件系统创建在存储池上,两台服务器同时工作,但彼此没有关系,也不需要镜像缓存,两者只需要千兆网络作心跳,对方失败时可以接管即可。

实际上,在Dell内部的技术论坛上,某个客户在POC中问到了Active/Active的问题,按照Dell技术专家的回复,Compellent顶多算是ALUA模式,每个LUN都必须要有明确的控制器Owner,而不可能是真正的Active/Active(LUN不需要归属于某个控制器,两个控制器可以同时访问这个LUN)。

simditor-img

至此,对于CompellentSC8000的控制器分析,到此为止,不能不说有些是我猜测,但可以简述结论如下:

  •   控制器和IO模块不支持热插拔;
  •  大缓存仅为读缓存,写缓存较小;
  •   不支持真正Active/Active模式,LUN仍然要有Owner;
  •   “可能”不支持缓存镜像功能;
  •   “可能”不支持读写缓存掉电保护功能;   

         

还是先说下结论:

  •    960片磁盘的指标,仅仅是个“指标”;
  •    DataProgression自动分层很精细,可以支持2MB,但不支持闪存加速;
  •    FASTTrack快道技术很有趣,但现在用处已经不大;
  •    闪存很便宜,但便宜有便宜问题,酌情使用;  

前面有说到CompellentSC8000的控制器及一些细节分析,接下来谈一谈960片磁盘。

Dell的网站上提到每个控制器(服务器)最大前端主机端口可以支持16个FC或10个1Gb iSCSI或10个10GbiSCSI或10个10Gb FCoE,这差不多会占掉4~5个PCI-e扩展插槽,比如Dell说:Compellent每个控制器可以支持16个FC主机端口+4个SAS磁盘扩展端口。

而Dell又说Compellent支持的磁盘扩展端口包括SAS、FC,其中每个控制器最多可支持到16个FC或20个SAS扩展端口。但每个控制器(服务器),有且只有6个PCI-e扩展插槽,这就意味着,Compellent的前端主机端口、磁盘扩展端口是共用的,你可以选择多配主机端口,那磁盘扩展数量就少,你也可以选择少配主机端口,多扩展磁盘。如果要达到960片磁盘的指标,意味着主机端口可能就没有了……然并卵……

说完硬件,再看软件,Compellent最拿手的就是自动分层技术,现在称之为Data Progression软件。

其中的FAST Track快道技术的确蛮特别的:最为活跃的业务数据在数据块级别被自动、透明地分配到性能最好的磁盘外道空间。相信在闪存未出现前,为了提升性能,大家都是螺蛳壳里做道场,使尽浑身解数,土豪可能不差钱,拿着SAS硬盘堆性能就好了,不够钱的,则可以用FAST Track这种奇招提升性能。闪存出现后,一定程度上把问题简化了,提升性能,配闪存就好了,这就叫“一力降十会”……

simditor-img

DataProgression实际上是一种自动分层存储技术,最特别的就是可以实现2MB的热点数据颗粒度,问题来了,为什么是2MB?

原因是Compellent在底层上使用了块级虚拟化技术,传统存储会以整个磁盘作为RAID的最小单元,而Compellent则是以2MB为最小单元,将所有磁盘切分后,组成不同层级的RAID和Volume(听着特别像RAID2.0,对吧)。然后Data Progression可以通过元数据记录每个2MB单元的读写频率,以及所属的RAID层级,判断是否执行分层迁移。

这套技术2005年Compellent就已经提供,作的非常精细,最新版本的产品,可以实现SLC、MLC、HDD三层架构,从而将写频繁的区块移至SLC,读频繁的区块移至MLC,发挥两种不同SSD的优势。

当然,针对2MB是否能满足大多数客户的业务需求,Compellent也说,客户可以修改默认的最小区块,比如从2MB修改为512KB或4MB,但不确定是否可以在线进行,估计这种修改,涉及到底层RAID的重新组织,只能在初始部署时修改。

在闪存加速和自动分层技术上,有两个核心指标需要考虑:热点数据的颗粒度、热点数据迁移的频率。颗粒度是指控制器监视、跟踪热点数据的最小单元,颗粒度越小自然越精细,但越小意味着需要跟踪的区块越多,控制器的操作量和元数据也随之增加(例如100GB按照1GB分为100个块,若分为2MB,则是50000个块)。频率则是指系统多久执行一次热点数据分析和迁移操作,频率越快则意味着系统可以更快的重新配置数据,实现更好的性能。

因为Compellent不支持闪存加速,只能实现自动分层,所以颗粒度2MB倒是可以理解,但坦率的说,个人觉得这个颗粒度可能太小了。KB级别的热点数据还是最好用闪存加速,提升到SLC扩展的缓存上,MB或者GB以上的热点数据,分配到MLC的介质层上。大量的数据频繁在控制器内部移动,有时候并不是件好事(会耗用宝贵的内部带宽),这是平衡的艺术。

另外,Compellent可以支持每天(24小时)自动运行一次热点数据分析,并启动迁移操作,当然客户也可以选择手动进行。但看到EMC的一份资料说,数据迁移动作需要48小时才能完成,看不到更多Dell的资料,不好评价……

Compellent单纯比产品指标的话,其实软件功能是比较弱的,比如没有重删功能,数据保护功能也比较少,新推出的Live Volume倒是可以把两套设备绑成集群(后面另开文章介绍)。但在市场上,依靠便宜的闪存策略,倒也卖得风声水起。

前几天看到Dell宣称全闪存阵列可以做到街价“$1.66/GB”,HP也说自己可以做到“$1.50/GB”,马上闪存要变成大白菜了……

不过很多时候,看到特别好的价格,还是要捂住口袋,想想厂商的意图和花招,再掏钱也不迟。说到闪存,必须关注两个指标,闪存加速+自动分层软件的领先性和成熟度,闪存介质的类型/性能/寿命

个人认为:和EMC的FAST、3PAR的Adaptive Optimization相比,Compellent的闪存技术还是有差距的。而Dell目前使用三星的TLC SSD技术,虽然性能、寿命没法和SLC、eMLC、MLC比,但考虑到成本优势,性能也比HDD强,要求不高的客户,也是可以考虑的,要啥自行车呢,对吧?


回到写这篇文章的初衷,只是想表达一个观点:

1. 没有完美的产品和绝对领先的指标,只要是中端存储,满足大多数客户的业务需求,都没有问题;

2. 不同厂商选择不同的技术路线和架构,造成了一些产品指标的差异化,没有谁好谁坏,其实就是个取舍问题;

3.真要谈一个优劣,还是得回到客户的具体需求,在最需要解决痛点上,看谁家的方案更合适。

simditor-img

simditor-img

企业级营销存储Team,负责中高端存储和解决方案,喜欢研究市场、技术、产品。

好读书,不求甚解,每有会意,便欣然忘食……

扫以下微信号并关注我哟~

长按图片,选择“识别图中二微码”并关注我~

simditor-img

评论 写短评
这篇文章还没有评论