2013年存储市场中闪存无疑是最大的市场亮点,闪存在资本层面、市场层面以及技术层面都具有十足的活力,这其中又以全闪存阵列市场最受关注。一大批初创厂商以及传统存储巨头们纷纷对全闪存阵列进行投入与关注,使得整个市场的活跃程度无比高涨。以ViolinMemory、PureStorage为代表的全闪存初创厂商也被寄托为打破传统存储市场格局的新希望,但是传统存储巨头们并不会坐以待毙。近日,EMC公司正式向外界推出了其全闪存阵列产品XtreamIO。早在大约一年前,EMC公司通过收购以色列全闪存初创公司XtreamIO获得了其全闪存阵列相关技术,在这一年期间,外界经常有关于XtreamIO的相关报道,但始终处于“不识庐山真面目”的状态,经过一年的整合与规划,EMC公司终于正式揭开了其全闪存阵列XtreamIO的神秘面纱。
当前闪存市场特别全闪存阵列市场仅仅是刚刚起步,无论是市场规模还是产品技术都处于发展初期,比如市场中就仍然充斥着较多采用传统存储阵列架构、仅仅通过将SSD取代机械磁盘的全闪存阵列。就连EMC
XtreamIO的全闪存阵列也不是完美至极,为每个节点专门配置UPS电源、尚不是整个数据中心分层的组成部分等问题同样被竞争对手所诟病。但是,从长远来看,基于标准化硬件将会是大势所趋,软件功能与架构将会是决定全闪存阵列未来竞争力的关键,而在这方面EMC
XtreamIO一经推出无疑在市场中树立了新的标杆。
图一:Gartner关于2012年基于闪存的存储阵列营收统计,从图中可以看出基于闪存的存储阵列的总市场营收约为3.7亿美金。全闪存阵列仍然处于一个发展初期,整个市场规模不大。
EMC认为闪存不仅仅需要解决性能问题,专注在硬件和物理的性能将会让闪存置于小众市场,EMC作为全球最大存储厂商致力于如何用闪存技术加上软件主导的架构,让用户能够使用得起,更加简单、敏捷、快速的为下一代虚拟数据中心服务。EMC
XtreamIO技术总监任宇翔更是直言:XtreamIO的大部分知识产权专利都集中在软件领域,XtreamIO基于4K数据块内容的数据安置、双阶元数据引擎、XtreamIO数据保护(XDP)、共享内存中的元数据的四大特性使得能够彻底摆脱传统阵列的思维方式和架构。
在正式推出XtreamIO之后,EMC也发动了针对当前全闪存领域热门厂商ViolinMemory、Purestorage、Solidfire等的攻势,大胆抛出了产品功能对比图并对竞争对手提出诸多技术问题,这也引起了整个全闪存阵列市场的快速响应。EMC这种敢于晒干货的风格远比动不动就号称要砸10亿美金的厂商来的有效。
XtreamIO全闪存阵列概况
EMC
XtreamIO为一款具备横向扩展能力的全闪存阵列,每个阵列单元称之为X-Brick。每个X-Brick单元配置了25个容量为400Gb的eMLC
SSD,因此一个X-Brick的原始容量为10TB。EMC宣称由于采用了全新的架构,每个X-Brick的可用容量可达7.5TB,这还是不包含去重优化的结果。
图二:EMC
XtreamIO全闪存阵列X-Brick模块外观图。每个X-Brick高度为5U,分别由Storage
Controller、DAE、UPS电源组成,每个控制器为1U双插槽服务器,每个X-Brick配置了4个8Gb光纤通道端口、4个10GbiSCSI端口、4个40Gb
Infiniband端口以及2个1Gb的管理端口。
图三:XtreamIO每个X-Brick架构示意图,包括两个存储控制器以及24个eMLC SSD组成。
图四:EMC XtreamIO具备横向扩展能力,可扩展为四集群化(每个X-Brick具有两个节点,四集群化X-Brick意味着有八个节点。),IOPS可达到百万级,X-Brick之间采用Infiniband交换机互联。
EMC
XtreamIO
技术总监任宇翔表示,XtreamIO已经在实验室环境中实现了八个X-Brick(16个节点)甚至更大的阵列扩展,EMC也会很快提供8个X-Brick配置的阵列。“从理论上看,16个X-Brick和32个X-Brick并没有区别,但是涉及到很多测试和实际应用场景,即客户当前是否需要这么大的容量和性能。”任宇翔补充道。
根据EMC介绍,X-Brick具有非破坏性XIOS软件及硬件升级、拥有高可靠性的热插拔升级,且不存在着单点故障。集群化的XtremIO阵列中各个X-Brick可以拥有不同存储容量;集成了VMware
VAAI、vmware多通道I/O支持,数据分卷能够夸整个系统;所有元数据存储、配置、管理均在内存中进行,无需涉及到SSD;拥有丰富的数据保护功能,且已经与EMC其他产品开始集成。
EMC
XtreamIO一经推出,其每个X-Brick都需要配置UPS电源就让人感到奇怪,并且如果单独购买一个X-Brick则需要配置两个UPS。对此,EMC
XtreamIO解释道:“目前每个X-Brick都需要一个UPS来解决电源问题。为什么一个X-Brick需要两个UPS,是因为在单个X-Brick情况下,电源也需要配置两个UPS备份,防止单个X-Brick情况下UPS失效。如果用户购买两个X-Brick以上,则每个X-Brick配置一个UPS即可。至于为什么X-Brick需要UPS,那是因为XreamIO将所有的元数据都存储在内存之中,而且元数据的操作都在内存中进行。因此,一旦有任何硬件和软件问题,内存信息将会全部丢失,比如数据中心掉电的情况,UPS可以保证有足够的电量将内存中的数据改变写入到SSD中。我们也不喜欢UPS这个解决方案,因为电池非常笨重、占用空间。我们今后会采用其他办法,在下一代硬件平台上将会有新技术来取代UPS。”
“基于内容的数据安置”打破传统模式
“基于内容的数据安置”是指EMC
XtreawmIO全闪存阵列将数据分为4KB的散列块,这些4KB的散列块完全打散,不按照逻辑地址进行排列存储,而是根据物理位置进行安置。EMC
XtreamIO技术总监任宇翔强调基于4K数据块内容安置是整个全闪存阵列其他所有软件功能的基础。
图五:EMC XtreamIO的基于内容的数据安置,完全打破了过去基于传统磁盘的数据存储模式。
其实XreamIO这种基于数据打散的阵列技术以前也有先例,之前类似的3PAR、XIV等阵列都是基于这种策略。不过传统磁盘阵列的数据存储都是基于逻辑地址,时间久了之后不可避免的就会产生磁盘碎片化,从而对性能产生影响。EMC
XtreamIO全闪存阵列的策略则是个将数据彻底的打乱,完全碎片化,基于4KB的数据块通过指纹来识别、存储、管理等。EMC认为这种技术带来的直接好处就是线内去重化变得非常容易。
图六:EMC XtreamIO基于4KB数据块的数据安置,采用了双阶元数据引擎,通过两步的元数据映射使得全闪存阵列的线内重复数据删除能够轻松实现。
图七:数据通过核心引擎重删之后,通过40Gb的高速Infiniband内部交换网络均匀分布到各个X-Brick之中。
EMC
XtreamIO技术总监任宇翔表示:“传统磁盘阵列是按照逻辑地址的次序来存储在磁盘上,顺序操作性能是最佳的,如果传统磁盘阵列去做线内的重复数据闪存操作将会打破某些操作次序,造成磁盘碎片化,从而使得阵列的性能受损,这是传统磁盘阵列很难去做线内去重的原因。EMC
XtreamIO则完全不管逻辑地址这种模式,通过基于4K数据块内容的数据指纹技术,按照指纹来决定4K数据放在什么地方,这种彻底碎片化的方式使得线内去重实现非常容易。如果相同的4K数据块则只用写入一个地址即可,当去重化成为一个内在功能而不是叠加功能之时,去重化比例越高、写操作性能就会越好,因为只需要在远数据设置好指针就可以。”
据悉,EMC XtreamIO基于4K数据块的指纹技术是采用的哈希算法。EMC表示通过利用好哈希算法将会保证数据一定完全均衡分布在所有结构的节点中。
“XtreamIO采用的双阶元数据引擎,第一步元数据映射是逻辑地址到指纹映射;第二部是指纹映射到内部的物理地址。一旦做完两步的双阶元数据之后,就增加了系统内部的灵活性,XtreamIO可以根据指纹来映射到内部具体哪个物理地址。传统的RAID有很大的写放大,即后端的写擦做和前端写操作的比例,RAID5和RAID6都会写操作都会放大很多,对传统阵列而言将会是性能损耗,对全闪存阵列而言将会是闪存寿命的损耗,XtreamIO这种方式则将传统的RAID的写放大给大幅降低了。”任宇翔补充道。
图八:XtreamIO的数据保护机制XDP,通过双阶数据引擎避免了RAID5、RAID6的写放大外,达到了RAID6的保护效果。
图九:EMC XtreamIO XDP原理。
EMC XtreamIO技术总监任宇翔表示:“XDP首先是双备份,和RAID6一样让XtreamIO阵列同事有两块闪存盘,如果出错可以纠错,不会造成数据丢失。同事,还避免了传统RAID的写放大发生。”
共享内存元数据—XtreamIO高速运行的秘密
就如前文所述,EMC
XtreamIO将元数据的存储、管理与操作全部转移到内存层进行操作。通过这种将元数据存储在内存之中的方式,共享式元数据将不再写入到SSD之中;从而降低了闪存的各种写操作,延长使用寿命。共享内存元数据的方式也使得很多软件功能在内存层即可完成。
EMC
XtreamIO
技术总监任宇翔表示:“共享内存元数据使得很多功能通过操作元数据即可完成。比如拷贝功能,虚拟机模板拷贝到成百上千个虚拟机中,传统磁盘方式只能依靠读写所有的数据块,非常耗时间、耗IO的操作。而XtreamIO的拷贝操作完全在内存中,以元数据操作的方式去解决,速度就会非常之快。”
图十:EMC XtreamIO SnapShot快照通过元数据可以让处理速度更快。
通过在内存层面的元数据操作,像虚拟机克隆、拷贝;数据库克隆;快照处理等功能都将大幅提升处理速度。当然,这种处理方式也充满争议。Greenbyte前CEO
Steve
O’Donnell就表示:“EMC将垃圾碎片回收机制从SSD中彻底取消,这样将无法对被锁定的NAND进行控制,无法在系统控制器层面加以适当管理。”同时,Steve
O’Donnell也指出采用X86服务器充当控制器可能存在隐患,他表示:“虽然将元数据放入内存之中能够让阵列拥有极高的运行速度,但是控制器的主板是出了名的不可靠。”这也许能够解释为什么X-Brick需要配置UPS电源的原因。
XtreamIO:这一年在整合
EMC收购XtreamIO之后,并没有着急正式推出新产品,而是在各方面进行了整合与集成。根据任宇翔介绍,Xtream利用了EMC提供最好的硬件平台和全球供应链,从而保证了XtreamIO阵列的数量和质量。此外,XtreamIO在产品与技术层面也进行了深度的整合,包括与VMware、VCE集成系统、VPlex、PowerPath、EMC远程安全支持等。
EMC XtreamIO 技术总监任宇翔表示:“目前XtreamIO已经有超过100多个用户,分布在北美、欧洲以及中东等地区,大部分公司都是财富五百强的公司,包括全球知名的保险公司、汽车制造商、软件商、制药公司等。”
随着闪存特别是全闪存在数据中心逐渐开始流行,基于整个数据中心的分层策略无疑将会成为用户考虑的要素。任宇翔表示:“目前XtreamIO第一代产品还不是EMC分层存储的一部分,未来XtreamIO将会成为EMC分层存储战略的一部分。XtreamIO是全闪存阵列,某个角度是为解决一系列特殊问题而设计的,在这些问题有个共同点就是客户分不清哪些数据是热的,哪些数据是冷的。分层存储一个很重要的前提就是客户需要了解数据的冷热,如果90%的数据是热的那就是彻底的完全随机读写环境和场景,在这种情况下传统分层存储很难解决性能问题。很多客户告诉我们,他们的应用场景分不清楚冷热数据,但是会觉得这些应用场景往往是对IO要求最高的应用,今后的趋势是这种应用场景的比例会越来越多。短则三五年,长则十到半年,所有数据中心的存储都会变成闪存,即全闪存数据中心。”
同时,任宇翔还驳斥了闪存内部需要进行分层的做法。他表示:“选择SLC和MLC之间进行分层是因为在架构上存在问题,一些写操作不能放到MLC上,如果把这些写操作放到MLC上,将会很快使MLC消耗殆尽。如果架构上领先,则可以全部采用MLC,因为MLC价格低、密度大,没理由不用。”
图十一:EMC已经推出了集成XtreamIO全闪存阵列版本的VCE产品。
总结:EMC
XtreamIO一经推出,即获得了大量关注与争议,虽然第一代产品并不完美,但是XtreamIO在软件和架构层面上的创新,使得XreamIO在全闪存阵列领域树立了新的标杆。毫无疑问,随着EMC正式加入到全闪存阵列市场的战团,未来全闪存阵列市场的竞争无疑会愈演愈烈!