随着近两年云计算概念被炒得热火朝天,存储也被戴了顶“云”帽子。不但EMC、HDS、IBM、NetApp这些存储巨头们带头摇旗呐喊,推出了各自的云存储解决方案,其他很多互联网公司、软件企业、电信设备供应商等大型企业也纷纷加入,推出自己的云战略。一时间,公有云、私有云等各种云产品、云方案,连篇累牍地刺激着观众的眼球。在这股“云”浪潮的推动下,涌现出一批具有独特商业模式的公司,如国内的金山推出了快盘服务,华为也宣布组建云计算产品线。国内一些在存储领域默默耕耘的技术型公司逐渐暂露头角,如中科蓝鲸的蓝鲸集群文件系统就赢得了同行的认可,获得了多个OEM订单,正在一步步从幕后走向前台。
然而,云存储一般作为存储服务而存在,而那些在底层支撑的传统的存储技术如磁盘、磁盘阵列技术也在悄然的进化中,不但继续服务于传统数据存储应用,瓜分仍在以两位数增长的外部存储市场,也为云计算和云存储提供了物质保证和最基础的支撑,本文将对此就做一个简单的介绍。
一、硬盘技术
自从1956年被IBM发明至今,传统的机械硬盘(又称温彻斯特硬盘、温盘)技术的发展从没有间断过——磁盘面密度不断加大、性能不断提高、体积不断缩小,但其结构上并没有发生本质的变化。但这种情况在SSD的出现后发生了转机。
SSD,又称为固态硬盘。由于没有了传统硬盘的机械读写装置,固态硬盘的随机读写性能大幅度改善,一块普通SSD的小粒度IOPS可以轻松达到上万,对比机械硬盘的几乎是成数量级的提升,一块磁盘的IOPS甚至可达到过去一个磁盘阵列的,在大量读操作的场景下SSD磁盘体现得更为明显。SSD磁盘和传统HDD磁盘相比还具有性能、环保、防振等优势。
但SSD也有它的问题,和机械硬盘相比其故障模型上存在很大的不同。机械硬盘故障有两种:一种是突然失效,这和使用时间有关,具有较大的时间离散性;另一种是出现坏扇区,也称坏块,这种故障具有时间和空间的双重局部性,而且和读写次数几乎不相关。而SSD的失效模型则根本不同,几乎只和写入的数据量相关。由于其存储单元的擦写寿命只有1万次(MLC)~10万次(SLC),SSD硬盘开发商们开发了如“磨损平衡”、“失效空间预留”等各种技术来尽可能延长SSD的使用寿命,虽然效果很明显,但仍然无法避免理论上的失效问题,尤其是采用多块相同型号SSD硬盘组成的磁盘阵列在写入一定量的数据后会存在固态盘集体失效的风险,这一点对于很多关键应用来讲是致命的。
二、存储接口技术
IDE接口和SCSI接口分别诞生于1986年和1987年,分别定位于桌面和服务器市场,在SATA接口和SAS接口出现之前各自统治桌面和服务器硬盘市场20年。1997年出现的光纤通道(FibreChannel,FC)技术则第一次把存储推上了一个新的高度,存储系统成为独立的系统而不再是服务器系统的“附件”。
FC一面世便带着其贵族般的特征:双端口硬盘支持高可用,串行通讯接口支持数据包交换,光纤传输提供高带宽传输,并支持磁盘热插拔、连接设备数量大、远程连接且连接可靠等先进功能,一经推出便牢牢占据了高端磁盘阵列的市场。曾经广泛应用于中、高端磁盘阵列当中,但这种情况在SAS接口出现后逐渐发生了转变。
SAS接口规范具备FC规范的双端口、串行数据通讯、多设备支持等优秀特性,迅速获得了广泛采用,发展非常迅速,接口速度方面迅速进化到6Gbps,已经超过其前辈FC的4Gb,并且很快向下一代12Gbps迈进。值得注意的是,似乎硬盘厂商已经逐渐放弃了FC接口磁盘的升级,尽管市场上8Gb的FC接口的磁盘阵列已经大面积普及,但其内部FC磁盘接口的速度仍然停留在4Gbps,并没有跟随新的标准进步,各硬盘厂商更没有明确的路线图。
一般来讲,目前大于等于10000转以上的磁盘多采用6GbSAS(SerialAttachedSCSI)或4GbFC(FibreChannel)接口。低于10000转的磁盘一般采用SATA接口。而最近出现的一个新接口磁盘——NL-SAS,NL-SAS是在原有的企业级SATA硬盘的盘体上装备了标准的SAS接口,使其不但具备了SAS硬盘的所有功能,提高了磁盘阵列的可靠性,而且容量更大,功耗也更低,适用于在一个此盘阵列系统中实现分级存储,并简化了磁盘阵列系统的设计。
一般来讲,从性能角度来区分,SSD由于其革命性的技术提供了最优的性能,而FC和SAS硬盘拥有同样高的旋转速度也有不错的性能表现,NL-SAS盘和SATA盘则为了兼顾成本、容量和功耗等因素在性能方面做了较大的妥协。
在磁盘接口方面,由于技术更新较快,新一代的SAS甚至SATA都可以提供6Gb/s的带宽,而FC仍固守4Gb/s,已经感到明显落后。而磁盘阵列的外部接口则仍然以FC为主,虽然SAS接口的高性能令人瞩目,但其外部电缆最大长度只能达到8米远,无法进行远距离传输,也就无法满足异地容灾的需求,在中高端此盘阵列当中很少被采用。另外新近流行起来的两个接口都是基于以太网为载体的,一个是iSCSI接口,另一个是FCoE,两者各有优缺点。一般认为,FCoE比较适合于已经有了FC基础设施和对任务关键型有要求的场合,更加符合FC当前所处的生态环境中;而iSCSI则适用于对性能不敏感的应用,更像是网络环境中的一个分子。
从长远来讲,SSD磁盘乃是大势所趋,各家存储系统供应商也都有固态磁盘阵列提供,在一些对随机性能要求苛刻的应用当中的确发挥得很出色。但就目前来说基于SSD的磁盘阵列仍然处于起步阶段,并没有经过长时间的实际应用的考验,对于那些对业务连续性要求远高于性能要求的业务,在磁盘阵列中使用SSD硬盘还须多分谨慎。
三、RAID及磁盘阵列体系架构
最初的磁盘都是单体使用,为了获得大的容量必须把磁盘体积做得很大,比如1956年IBM发明的第一个硬盘RAMAC虽然只有5MB,但体积有两个冰箱大,1973年的IBM3340硬盘由于技术进步使容量达到60MB,体积却缩小到家用洗衣机大小。以后的趋势也是沿着容量增大、体积缩小发展,但问题仍然很明显:想获得更大的容量非常困难,或者造价高昂;硬盘故障造成业务停顿甚至是数据丢失。1987年,美国加州大学伯克利分校提出了RAID(RedundantArrayofInexpensiveDisk)技术,有了RAID技术,许多小容量磁盘,通过采用不同级别的RAID就可以实现更高的可靠性及读写性能,于是现代概念的磁盘阵列就诞生了。
在《光纤磁盘阵列技术简析》一文中把磁盘阵列划分为JBOD、双控制器、多控制器三种。如今JBOD已基本不见踪迹,取而代之的是单控制器架构。而随着技术的不断进步和市场的进一步拉动,今天磁盘阵列在现有的单控制器架构、双控制器架构及多控制器架构基础上又演化出三类新型多控制器磁盘阵列,分别为单控松耦合集群架构、双控松耦合集群架构及多控紧耦合集群架构。
单控制器架构就是通过将服务器与JBOD相结合,整体作为一个存储系统提供存储服务。比如,NETAPP单控的Filer、一些国内厂家的单控盘阵等。单控制器架构因为结构简单、成本低廉而广泛应用于对业务连续性要求不高的低端应用,或者作为单控松耦合集群架构的基本单元而发挥作用,比如IBM的XIV、被EMC收购的ISILON等系统,就是由这种基本单元构成新型单控松耦合集群架构。
双控制器架构的两个控制器之间冗余设计,消除了单点故障。市场上大部分中低端磁盘阵列都是这样的体系架构。由于面向中低端市场,同时支持FC-SAN、IP-SAN及NAS访问协议的一体化磁盘阵列,因为功能多样、成本较低、简单易用而较受欢迎,NETAPP、EMC等专业存储厂商都推出了这样一体化存储系统。
多控制器架构不再局限于两个控制器,可以根据业务需求配置更多控制器协同工作,实现容量扩充的同时性能也得以同步扩充。传统多控制器架构是三层架构,即在前端控制器、后端控制器、中间CACHE缓存之间实现分工协作。EMC的SYMMETRIXDMX系列产品、HDS的USP系列产品都属于典型的传统多控制器架构。
新型多控制器磁盘阵列是近年存储市场出现的新动向,从体系架构角度看,新型多控制器架构均由上述三种基本架构演化而来,这也符合技术发展的持续性和继承性。
首先,单控制器架构处理能力有限,同时单一节点又缺乏可靠性设计,人们难以接受单一单控制器架构磁盘阵列。因此一般都是将单控制器架构作为基本单元,再通过以太网、IB(InfiniBand)等外部通用标准通信协议,实现多个单控制器架构之间的松散互连,形成一个整体的数据存储系统,姑且称之为单控松耦合集群架构。这类架构典型产品包括块级接口的XIV、文件级接口的Panasas、Isilon、IBRIX等,这些存储系统一般面向相对独特的非结构化类应用需求。
双控制器架构也走向了集群化,既所谓的双控松耦合集群架构。这类双控松耦合集群架构的各个双控节点之间一般都采用非全交换式的专网实现连接。EMC的VMAX通过RapidIO技术互连;HP的3PAR系列通过专用背板互连;FUJISU的8000系列通过PCI-E路由互连。这些系统共同问题是,首先整个系统架构存在互连带宽瓶颈;其次跨节点访问存在延迟不一致性。第三由于体系结构改动较大,某些应用在实际生产环境中的性能表现和基准测试的标称值会存在较大差异。
最后,传统多控制器架构也开始了横向扩展,这便是新型多控紧耦合集群架构。由于传统多控制器架构单一节点非常庞大,实现这些大节点的通信必须采用高带宽、紧耦合的互连为基础。目前新型多控紧耦合集群架构只有HDS的VSP一个产品,HP公司的P9500作为VSP的OEM产品,也是这样的体系架构。EMC的SYMMTRIX在DMX-4之后似乎停止了传统三层多控制器架构的探索。EMC的新型多控制器架构产品转向了前文提及的VMAX,它和传统的三层架构的多控制器产品SYMMTRIX在体系架构上大相径庭。
VSP的一个基本单元就是一个传统多控制器架构,继续保持前端控制器、后端控制器及中间高速缓存这样的三层架构,单一节点的规模和上代产品不相上下,因此单一节点具备传统多控制器架构的性能及可靠性。在此基础上,VSP上还增加了一新的VSD核心处理器单元,负责跨节点通信及功能软件。由于VSP继续采用了基于CROSSBAR的全交换架构,在多个节点之间,通过系统内部交换架构实现集群,集群后的存储仍是一个整体,即存储跨节点之间的访问延迟是一致的,这确保了实际使用环境中的稳定性能,避免松散耦合架构导致的性能不确定性。
笔者认为,对于性能和可靠性要求较高的应用来说,多控制器紧耦合集群架构的磁盘阵列访存很直接不需要某些转发,从理论上讲应该占些优势。这类磁盘阵列在可靠性和性能方面继承了传统多控制器架构。
而采用松散耦合的单控或双控集群架构,虽然提供优秀的多方面扩展能力和极低的成本,但在访问延迟等性能方面以及系统部件可靠性上均差距较大,并不适合于延迟敏感的事务密集型应用。
当然多控制器紧耦合集群架构的最大劣势在于其成本相对较高,如何应对众多新型多控制器架构的价格战,成为该类存储系统生存发展的关键。
随着技术的不断发展和应用模式的不断演化,一些破坏性的创新技术也会不断涌现和完善,说不定未来有一天,松耦合的集群架构将逐渐占据更大存储市场份额,就像今天的集群服务器一样占领部分高端服务器市场。但即便如此,大型机及小型机仍然有其生存和发展空间,起着不可替代的作用,仍然是喜欢它们的老客户之最爱。