1 从阵列所要解决的问题说起
通常,业界按照价格、规模、性能等参数讲阵列产品划分为入门级、中端、高端三个级别。阵列往往要求在存取速度、可靠性、容量三者中取得一个权衡,任何一个阵列依据其定位的不同,这三点的权重会有所差别。
在存储系统中,对于单盘而言,失效可以假定是一个常态。一个拥有几十甚至上千硬盘的系统中,硬盘的失效不可避免的事情,因此,阵列必须解决可靠性的问题。目前,解决可靠性的技术手段主要是数据冗余技术,比如RAID技术,通过记录额外的数据校验来达到数据恢复的目的。
单盘由于受限于生产工艺,容量总是有限的,而用户往往希望得到更大的容量,因此硬盘阵列必须完成对多个单盘容量的整合,呈现给用户大的虚拟的硬盘。本质上,这就是一种虚拟化。
我们知道,物理硬盘的存取速度取决于机械马达旋转的速度,考虑到可靠性、散热、能耗、噪音等因素,转速不可能做的太高,目前硬盘速度一般在5000RPM-20000RPM之间,因此单盘的存取速度(带宽)总是很小,阵列需要有效的将多个物理带宽整合。
2 高端存储阵列架构
如果按照控制器的个数来对阵列架构进行分类,高端阵列可以分为双控(参见图1)与多控两大类。
2.1 双控架构
典型的双控系统中(参见图1),两个控制板通过镜像通道连接在一起,进行数据交换。每个控制板的后端分别接入物理硬盘的环路(通常物理硬盘是双端口,刚好可以接成两个环路,见图1),主机可以通过任何一个控制板接入存储阵列,并看见统一的LUN空间。
从软件上而言,由于只需要考虑两个控制器,和多控系统相比起来,双控系统的实现较为简单。
图1 双控架构
目前,在所有的高端存储阵列中,采取双控架构的只有IBM 2009年推出的DS8000系列。另外,在中低端存储阵列上基本上都采用双控架构。
由于双控系统受限于诸如计算资源、内存、带宽物理限制等因素,性能不可能做到太高,所以可以见到的绝大多数高端阵列都采取的是多控系统。
2.2 多控阵列架构
基于多控的阵列主要是一些高端阵列系统,比如EMC的VMAX、HDS的VSP,IBM的XIV、HP的P10000和华为的OceanStor 18000等产品。
对多控系统按照连接拓扑进行划分,多控系统划可以分为基于总线交换式的架构、矩阵直连架构、全互联架构、交换式架构。
如图2展示了基于总线交换式架构的逻辑结构。目前已经没有厂家采用这种架构,EMC和HDS的早期产品都曾经采用这种架构。该架构的缺点是可扩展性不强,且由于基于总线,存在总线争用。
如图3是基于矩阵直连式的存储阵列架构,EMC的上一代产品DMX-4就是采用该架构,该架构的前端和后端采取矩阵式直接连接,缺点是可扩展性很差,同时由于连接信号线数目众多,在一定程度上也降低了系统的可靠性,目前EMC已经弃用该架构。
图4描述的是基于交换式的架构,该架构通过交换ASIC将前端和后端连接进行数据交换,相对于矩阵直连式,它具有更好的可扩展性,但是问题是如何减少交换时延和交换争用。目前HDS的存储系统采用的是该架构。
如图5所示的全分布式架构,该架构将串行降至了最低,使得系统获得了理论最高加速比。
由于该系统的所有资源,包括计算资源,内存资源,磁盘资源都分散的足够开,存在资源争用的可能性极小,所以,图5的系统具有更好的性能,更好的可扩展性,同时也拥有更低的成本。 目前市场上最新一代高端存储阵列HP P10000,EMC的VMAX 40K,华为HVS都采用这种全分布式架构。
3 高端阵列架构实例分析-华为OceanStor 18000
图6 华为高端阵列OceanStor 18000系统架构
华为OceanStor 18000采用智能矩阵式系统架构,如图6所示,也是一种基于完全分布式的架构,所有的计算资源 (CPU),缓存,带宽等资源都均匀分布于每个节点中,在该架构下,不再存在全局缓存争用问题,串行化达到最低,使得系统获得了理论最高加速比,具有更好的可扩展性。华为OceanStor 18000是目前业界扩展能力最强,性能最高的高端阵列,最大可以扩展到16个控制器,3TB Cache, 3216块硬盘,随机IOPS达到100万IOPS以上。
3.1 基于PCIe的全交换架构
OceanStor 18000的全交换架构基于PCIe协议,PCIe协议是一种高性能、高带宽,成熟、稳定的串行通讯互连标准。OceanStor 18000以双平面PCIe交换作为节点间互连。这种架构设计具有如下的优点:
高可靠:所有部件全冗余,控制器间负载均衡和Failover,单个控制器失效不影响业务运行
高扩展性:具备scale-out能力,从2个控制器起配,最多支持16个控制器,系统的容量、性能按需扩展
高带宽:整个交换平面可提供192GB/s的交换带宽。
方便部署:OceanStor 18000的PCIe链路通过光纤连接,同一OceanStor 18000系列产品的机柜允许跨数十米进行部署,允许布局在不同房间、甚至不同楼层。使得客户真正实现完全Scale-out的部署,降低了对数据中心机房的环境要求。
3.2 块级虚拟化
前面讲到单盘失效可以认为是一个常态,单盘失效后,RAID组会重构数据,但传统的RAID重构耗时较长,如果重构过程中又发生了硬盘失效,那么整个RAID的数据就丢失了。OceanStor 18000采用了块虚拟化技术,可以很好的解决以上问题。下面我们看一下块虚拟化的实现细节。
全虚拟化设计,就是把硬盘分割成若干小块,称为CHUNK,然后按照特定算法,从若干硬盘上选取若干CHUNK,按照一定的RAID方式组成CHUNK Group。而LUN,则是由若干CHUNK Group组成。块级虚拟化架构给硬盘可靠性带来的最大提升是使系统中每个硬盘都在“均衡”的工作,每个硬盘的忙闲度基本一致,不会像传统RAID那样,各个RAID组中的硬盘工作负荷不同,导致某些繁忙的硬盘“过劳死”。
块级虚拟化带来的另一大好处是重构时间大幅缩短,RAID降级状态不但使数据处于“危险”的边缘,同时也会降低RAID组的性能。块级虚拟化使得重构产生的负荷分散到更多的硬盘上,单盘重构的压力变小,大大缩短了重构的时间,大幅降低RAID组失效概率,从而增加了系统的可靠性。
4 总结
高端存储一般应用于用户核心业务环境,承载着关键数据,对阵列的稳定性,性能和扩展性要求极高,而存储架构是这一切的基础。可以预见,模块化分布式Scale-out架构所带来的稳定性,性能容量线性扩展的好处将主导未来一段时间高端阵列的设计,同时更多容量、新型介质的出现(SSD)决定了高端阵列中将越来越多的应用虚拟化技术提高存储资源利用率。