根据咨询公司的数据,2015年,HPE 3PAR的全闪存阵列增幅超过了EMC XtremIO,总量也超过了NetApp。目前世界TOP3 AFA是EMC XtremIO,IBM FlashSystem,还有Pure Storage FlashArray,它们都是专门为了全闪存重新开发的产品,在数据服务方面相比传统高端存储还有很多不足。而HP 3PAR SSA虽然排名第四,但其不是全新架构的产品,而是继承了3PAR丰富的数据服务,成为企业关键业务的理想选择。按照HPE 3PAR SSA目前强劲的增长势头,西瓜哥感觉它很可能在这一两年会把IBM和Pure超越,成为EMC XtremIO的头号对手。
那么,HPE 3PAR是如何做到既保持现在的数据服务,但是又能适应新一代的闪存介质的呢?这就体现其针对闪存优化的水平了。现在业界厂商里,HDS和华为也走类似的研发道路,即在原来成熟的存储平台上优化适配闪存介质。这样的产品区别于全新设计的全闪存架构的产品,就是保持了传统高端存储丰富的数据服务。今天,我们来了解一下HPE 3PAR闪存优化的一些措施,也可以给后来的厂商提供一些参考。
在HPE 3PAR的闪存优化技术白皮书里,提了很多内容,但有一些是针对闪存特别优化的,有一些其实没有针对性,磁盘介质也是这样用,只是也适用闪存而已。
HPE 3PAR的全闪存型号是8450/20450/20850,大家记住,后面两位是50的就是AFA形态。HPE 3PAR的AFA确实是包装出来的产品,只是为了迎合分析师的分类标准,在上面不插HDD而已。比如其20850和20840,其SPC-2测试的值和性价比都是一样的,充分说明了只是人为做了一个区分,20850不能插磁盘,但20840可以插。实际上这完全是一个产品,包括定价都一样。
HPE 3PAR AFA针对闪存优化还是做得不错的,其时延在300-600us之间,甚至比XtremIO还有优势。IOPS嘛,其也宣传可以做到320万。
要了解闪存优化的要点,首先要了解闪存和机械盘的不同。典型不同在下面5点,1是时延差距很大,因此需要重新审视传统的读写缓冲管理方式;2是IOPS密度(IOPS/GB)差距很大,因此架构上要考虑性能的可扩展性(多机头);3是单位裸容量成本($/GB)还是有很大差距,因此存储的效率(重删压缩)要特别考虑;4是闪存有写次数限制,因此需要做磨损均衡;5是故障模式不同,闪存是电子产品,错误处理和重构要特别考虑。
HPE 3PAR说自己针对闪存有4个特别设计的方面:
1、性能加速。优化Cache处理,消除系统性能瓶颈
2、效率优化。采用硬件加速和细粒度虚拟化,提高效率,提高闪存寿命使用率
3、系统弹性。提供Tier-1系统的业务连续性
4、数据移动性。数据可以在不同系统迁移同时保持SLA
下面针对这4个方面展开,看看HPE 3PAR的闪存优化之道。
性能加速—优化整个I/O路径
Adaptive Read(自适应读)
HPE 3PAR系统,如果是HDD介质,其读Cache粒度的16KB,也就是从HDD读到Cache的粒度是16KB。因为HDD是机械运动,每次多读一些,这样Cache命中率就高一些。但SSD的读性能很好,读不命中也问题不大,如果还是固定的16KB,对后端的带宽消耗太大。因此,HPE没有采用固定的16KB粒度,而是采用和应用I/O大小相同的粒度,可以是4KB、8KB或16KB(如果I/O大于16KB估计HPE也是用16KB来处理)。比如,1000次读,采用4KB粒度,后端带宽比采用16KB减少了4倍。
Adaptive Write(自适应写)
写Cache虽然粒度是16KB,但Cache落盘到闪存上的时候,也只写有脏数据的部分。也就是落盘的粒度可以是4KB。这样也可以减少后端带宽压力,延长闪存寿命。
Autonomic Cache Offload(自动缓存卸载)
HPE 3PAR根据Cache的使用率自动调整数据落到闪存盘的频度。其实就两个原则,尽量保留更多数据在缓存里,尽量保留热点的数据,这样可以提高读写的命中率。另外,就是采用更多的线程,提高下盘的并发度。
Multi-tenant I/O processing(多租户I/O处理)
某些场景下比如VDI,DSS等读I/O的粒度比较大,这样会造成其他应用如OLTP得不得快速响应。HPE 3PAR把大I/O打散成多个32KB的小I/O,并行度得以提高,并且减少了对小I/O应用的时延的影响。
如果是大颗粒的写I/O,由于写的Cache页面粒度是16KB,因此也可以理解为打散为16KB的写I/O。这样只要有一个Cache页面可用就可以写了,无需等到所有页面可用。这个在大并发的情况下还是非常关键的。
在Cache优化这块,没有看到类似EMC VMAX针对大量读的I/O把读Cache直接旁路掉的优化(EMC叫VMAX FlashBoost,参见EMC发布高端存储闪存三大件)。
至于闪存优化的架构元素,HPE还提了其闪存的密度高。
还有第五代Thin Express ASIC专门用来处理数据,使得数据流和控制流可以分离,不至于由于大数据块的存在而影响到控制信息的及时处理。新的ASIC其带宽更高,而且DMA引擎更多(控制器之间事务log是用DMA机制同步的),性能肯定更好。
至于其全网状活动集群(Mesh-Active cluster),最多支持8个控制节点,满足闪存的性能要求。
还有系统级宽条带,并行负载分担利用全系统的CPU、端口、缓存和驱动器,提高并发度。还有多级高端虚拟化的存储OS,采用chunklets、LDs、VVs三级虚拟化(参考我以前写HP 3PAR FAST RAID的文章,如5分钟了解3Par RAID),非常适合闪存的特点。
HPE还提到,其采用SCSI优化,采用快写技术,可以减少20%时延。(据说这个要和博科FC交换机配合使用,不知道理解是否有误。华为的同步复制也使用了快写技术,应该是一个东西)
还有,HPE提到其支持QoS管理,可以设置应用的时延目标,最低可以支持500us。
还有,HPE 3PAR现在支持16G FC,时延比8G FC低2.5x,这样使得端口不再是闪存的瓶颈。当然还有其他的改善,如电源消耗等。
iSCSI虽然传统上速度不快,但HPE 3PAR还是说新增VLAN标签和DCB支持,还是对性能等有很多改善。
• IPv6 support
• Support for more than 8,000 iSCSI initiators per system
• Support for VLAN tagging
• Enterprise iSCSI (iSCSI over DCB/lossless Ethernet)
• SendTargets discovery support
• Persistent Ports support
效率优化——提高闪存寿命和使用率
效率优化有很多措施,涉及方方面面。原则就是尽量少写,尽量均衡写,还有寿命可视化。
首先优化是内存里面把多个随机的I/O聚合成连续的I/O,可以减少写放大。还有,HPE 3PAR采用ASIC加速的硬件重删技术,使得重删可以在线进行。而且,HPE还利用ASCI进行bit-to-bit比较,防止哈希冲突造成的数据丢失。
HPE 3PAR的thin clone技术,还可以在虚拟机环境下实现无数据复制的VM克隆。
当然,ASIC还可以实现zero-block的检测,实现零块的重删,还有thin的空间回收,无需预留资源的快照,16KB的空间分配粒度等等。不过,这些特性不止针对闪存,因此就不展开了。
Adaptive Sparing(自适应热备)
HPE说这是其一个专利技术,他和SSD厂商合作,减少SSD盘中的超供容量,可以提高20%的SSD的空间利用率,但不影响系统的性能。因为3PAR RAID技术,每个SSD都有热备空间,平时这些空间都可以给SSD做垃圾回收用,只有当SSD盘重构的时候,才需要使用这些热备空间。
但同时HPE说,在3.84TB的3D TLC盘,由于其写寿命比较低,没有减少超供的比例,这样可以让这种只支持读密集应用的SSD也可以支持读写密集型应用。
HPE还特别强调,SSD全部采用的是企业级别的SSD,因为企业级别的SSD其DWPD要比个人消费级别的还是要好很多,固件也更稳定可靠。其实自适应热备技术也是为了提高DWPD,可以提高1-2.5倍。因此,HPE对所有的SSD无条件实现5年保用承诺。
系统弹性—为闪存设计的应用可用和数据保护
在英文里,resiliency(弹性)只要指可靠性,即系统出现故障后快速自愈,就像一个弹簧,压扁了,马上可以弹起来恢复原样。
3PAR RAID是一种块虚拟化技术,因此,可以实现多对多的重构,介质故障可以实现快速自愈。而且这些大块的写,HPE全部打散成32KB的粒度(和HDD系统不同),提高并发性。也使得介质故障时系统也可以提供一致的性能。
系统弹性方面,Persistent Cache(持续Cache,华为叫持续Cache镜像)在大于2控的情况下,如果有控制器故障可以实现写Cache重分布镜像,保证写缓存不关闭,保证系统的性能。而Persistent Ports(持续端口)可以在控制器升级的时候,主机无需用多路径切换,而且还可以检查端口是否有光,实现快速端口替换。而Peer Persistence(对等保持)就是其非对称双活方案。最后提一下Persistent Checksum(持续校验),这个其实对闪存更重要,因为闪存是电子器件,容易受到宇宙射线的影响发生电位翻转。Persistent Checksum其实也是采用标准的SCSI T10 PI规范实现,防止静态数据损坏的。
HPE还提到了其异步流复制技术,还有下面的快速保护。利用快照技术实现快速的备份和恢复,满足闪存系统的快速响应要求。StoreOnce利用快照的不同来合成备份,无需恢复,可以直接拉起。目前还支持VMware VM的备份和恢复。HPE的这个技术EMC也有,叫ProtectPoint。
还有闪存无法采用传统的方法进行消磁,因此加密就是一个必要方法。HPE 3PAR采用加密盘实现全盘加密,保证数据的安全。可惜国内还无法用加密盘。
数据移动性—数据中心基本的资源优化
Peer Motion(对等移动)
HPE支持4台设备组成一个联邦,资源可以在上面自由移动。这样让闪存系统不会成为信息的孤岛,应用可以根据需要随时在不同的系统中迁移。
Online Import(在线输入)
当然,HPE还支持从HP、EMC、HDS这些系统在线把数据迁移到新的平台里。
加上前面的Peer Persistent非对称双活,使得HPE 3PAR的数据流动性进一步增强。
我思故我在 1、HPE 3PAR的闪存优化虽然白皮书说了很多,但很多是其架构上的特点,并不是针对闪存做的,比如其RAID方式,Scale-out架构,ASIC的数据处理等。真正为闪存而优化的只有Cache的管理粒度和调度算法优化,还有专利的自适应热备技术,ASIC加速的重删也可以算上。
2、HPE 3PAR的数据处理完全依赖ASIC,其实是一个双刃剑。ASIC开发周期太长,比如HPE 3PAR的最新的第五代ASIC,从架构看,对外连接还是PCIE 2.0的接口。现在CPU都是多核的,性能也很快,在软件定义的大潮下,还是很多人不太喜欢用太多的ASIC。
2、华为的新一代AFA,也就是Dorado V3,从数据组织架构来看,更像3PAR,特别是RAID 2.0技术原理和3PAR RAID一样,天生就适合闪存介质。HPE 3PAR闪存优化的成功应该会加强华为走这条路的信心。华为采用自己研发的SSD,加上产品推出晚的后发优势,可以在混合架构向全闪存架构演变的过程中少走弯路,也可以优化得更彻底。比如把闪存的RAID切片大小切成Die一样小;SSD固件和存储OS实现联动,统一实现垃圾回收和磨损均衡,热备空间和超供等;还有SSD后期的反磨损均衡的创新等等。不过,到底优化程度如何,也只能等产品正式发布才能知晓。