巧筑根基,积厚成器——浅谈EB级海量存储系统的构建

标签:存储

访客:27629  发表于:2012-12-06 16:15:47

1 EB级海量存储系统应用前景

信息社会的持续发展引爆数据信息的极速膨胀,在过去几年,全球信息量以年复合增长率约57%的速度增长,越来越多的企业需要处理并存储海量数据信息。亚马逊(Amazon)公司的公有云存储服务存储对象的总容量在1EB以上;欧洲核子研究中心(CERN)预计在2012年将新增25PB的数据,届时数据总量将超过100PB;世界上最大最灵敏的射电望远镜——“平方公里阵列”望远镜(SKA)项目在2024年全部投入使用后每天约产生1EB容量的观测数据。

因此今天看来,通过系统的方法构建具有EB级容量扩展能力的海量存储系统将成为必须,它的应用将主要集中在互联网云服务、尖端科研及高性能计算、广电媒资、地理勘探等行业和领域。

2 传统存储在容量提升方面面临的挑战

传统存储由于架构原因无论在硬件系统还是软件逻辑方面都无法随需无缝扩展,硬件系统上传统存储是一套包括主机接口、控制器、缓存、磁盘等组件的“紧耦合”系统,组件之间的资源配置属于单系统或者集群节点内紧耦合关系,要实现系统整体扩展需要仔细的匹配当前系统资源,一旦某个组件出现瓶颈,将面临架构性的难题;软件逻辑方面首先受限于存储格式,块存储设备采用的SCSI / iSCSI协议在可扩展性方面存在天然的瓶颈,文件存储设备采用的文件系统目录树形结构访问机制导致在多控制器集群架构下同样面临扩展性软肋。

除此之外,传统存储包括块存储和文件存储设备在扩展性方面或多或少面临下文所述的几个方面的问题。

l 阵列组合管理复杂

传统存储在底层存储单元上基本上仍以磁盘阵列为单位,通过阵列的叠加组合实现容量扩展。不同的阵列技术本身在读写性能、数据保护水平、数据重建速度和存储空间利用率方面各有优缺点,同时阵列的组合并不能带来上述指标的线性叠加,因此阵列组合之后系统必须综合考虑这些因素,导致管理更加复杂,在容量扩展时需要考虑的制约因素过多,扩展性备受掣肘。

l 控制器性能瓶颈

传统存储控制器间接参与磁盘的I/O读写过程,像多用户访问、缓存、共享、锁定等操作与机制需要上下协同共同完成,每一个控制器都可以看成是有状态节点,这种与磁盘阵列的紧耦合关系决定了控制器数目不可能无限增加,否则状态机同步开销将成为系统中最无法承受的性能瓶颈。

l 独立的元数据节点,并发性能受限、增加时延

传统存储通常拥有独立的元数据节点,数据的读写操作均需要首先从元数据节点存取相应的元数据,在系统并发性要求增加时,元数据节点将成为系统瓶颈之一。随着系统容量的扩展,需要单独考虑元数据节点的扩展,且需要同时考虑元数据空间和I/O性能两大因素,这种架构对于海量存储系统扩展性无异于雪上加霜。

l 传统x86架构下多个磁盘挂接在x86 CPU下,容量和性能扩展不均衡

传统存储阵列基于x86架构,通常单个x86 CPU负责超过10个磁盘的读写控制及阵列相关管理,由于不同的存储应用场合对于容量和性能的要求各不相同,高并发小容量应用可能导致CPU超负荷,大容量低并发应用可能导致CPU很空闲,这种大颗粒固定捆绑关系必然导致容量与性能无法实现同步线性增长,更重要的是无法为客户实现最佳的效率成本,故无法满足海量存储系统系统扩展性与效率成本的同步要求。

3 如何构建EB级海量存储系统

构建EB级海量存储系统必须根本性地解决系统软硬件架构问题,从各个层面规避传统存储因为架构原因导致的扩展性问题。

从存储格式的角度,由于上文所述块存储和文件存储格式在扩展性方面的局限性,海量存储系统应该以对象作为基本存储格式。对象是数据内容和自描述信息的集合,是数据在磁盘上存储的基本单元。对象存储通过摒弃文件系统目录结构、降低接口复杂度,提高了系统的扩展性。

基于对象存储技术的EB级海量存储系统架构设计哲学应该是:通过一次地址空间寻址算法简化节点间的访问,并以此支撑系统采用去中心化架构,且该算法应在理论上有无限的地址空间支撑EB级容量扩展能力;通过控制器与存储单元层级之间的松耦合关系消除各层级内节点数扩展的瓶颈,且通过节点间全对称点对点直接访问消除数据读写瓶颈;元数据的服务与存储分离,避免容量扩展后元数据成为瓶颈;存储单元应以最小颗粒接入去中心化架构,实现细粒度扩容能力。

华为UDS海量存储系统基于上述设计哲学,实现了EB级容量海量存储能力,具体的关键设计概念体现在以下几个方面:

l 巧筑根基——DHT环技术

UDS基于DHT (Distributed Hash Table) 分布式哈希算法,将所有存储单元的地址空间分区并统一编址后映射到DHT环上,每个存储单元分区负责一个小范围的地址空间路由,并负责存储一小部分数据,对每个对象的读写都能通过哈希运算一次寻址到对应的存储单元分区,从而实现整个系统的寻址和存储。

由于DHT环地址空间接近无限,通过分区大小调整乃至分区数目裂变,使得DHT环具备可伸缩性(如图1所示),理论上可支撑存储单元的无限增加,构筑了EB级容量扩展能力的根基。

1. 可伸缩DHT环支撑节点无限扩展

l 去中心化架构——全对等点对点访问,减少节点索引查询时延

UDS逻辑上分为两个主要层级/集群,即控制节点集群和存储节点集群。控制节点是对象存储服务的接入点,主要功能包括处理客户端请求,建立对象传输通道,实现对客户端请求的访问控制,管理元数据。存储节点实现数据及元数据存储、复制、一致性等功能。

如图2所示,DHT算法规则下,UDS控制节点集群与存储节点集群之间呈现全对等的点对点数据访问,即控制节点可以直接寻址访问到存储节点并进行数据读写,系统中没有传统存储架构中的中心节点,减少了索引查询时延,也规避了相应的瓶颈问题。


3. 去中心化架构实现全对等点对点访问

l 智能硬盘——实现节点级细粒度扩容能力,吞吐量随容量线性增长

UDS存储节点也称为智能硬盘,它是由单个硬盘加上低功耗ARM芯片、小容量内存及以太网接口组成。每一个智能硬盘都以独立的IP地址接入交换机,组成分布式全交叉互联网络(如图4所示),通过增加智能硬盘的数目即可实现硬盘级最细粒度的扩容。

4. 智能硬盘及智能硬盘互联

由于每一个智能硬盘提供既定的存取吞吐量,在全对等点对点的访问机制下,系统总吞吐量将随着容量的扩展而线性增长。

l 无状态控制节点集群——随需扩容,有效规避传统存储‘机头’性能瓶颈

UDS控制节点以集群方式组网,基于对象存储技术和一次简单寻址的分布式哈希算法,控制节点与存储节点之间的松耦合关系使得控制节点成为无状态服务节点,任何服务请求都可以通过负荷分担机制由任一控制节点提供服务,不存在传统存储由于状态同步、锁定机制导致的控制节点数目扩展瓶颈,因此控制节点集群内的节点数目理论上可以无限扩展,支撑EB级容量不存在架构上的瓶颈。

l 元数据散列——并发性能不再受限于控制节点

UDS没有单独的物理元数据节点,元数据服务由控制节点提供,元数据存储与数据存储机制一样,元数据分片按照相同的DHT算法规则均匀分散保存在存储节点上。在系统并发性要求增加时,对元数据服务的请求由控制节点集群分摊,并根据需要扩展控制节点的数目,提升数据请求处理能力,避免出现瓶颈。

l 多数据中心跨地域统一资源池,进一步夯实EB级海量存储系统

UDS支持多数据中心跨地域统一调度与灵活管理,从几十TBEB级按需扩容,满足不同规模用户需求。

5. 多数据中心跨地域部署并支持统一调度与灵活管理

如图5所示,系统在多数据中心部署情况下,可支持跨地域的同步、随SLA可灵活定制的副本数策略以及就近接入服务等,从可扩展性、可靠性、可运营性等多维度进一步夯实EB级海量存储系统的构建、部署及应用前景。

综上所述,华为以可伸缩的、一次寻址的DHT环算法技术为根基,通过去中心化架构、智能硬盘互联技术、无状态控制节点集群技术、元数据散列存储技术、多数据中心跨地域部署技术等积厚成器,构建出UDS这一可轻松扩展至EB级容量的海量对象存储基础架构平台。

UDS海量存储系统为用户提供随需而变的存储容量,以高可扩展性实现逐级扩容,对初期业务量不大的用户来说选择UDS可以降低用户初次投入成本,同时预留了在今后业务蓬勃发展时系统平滑扩容的能力。对同时运行多个需要大存储容量的业务系统的用户来说,选择UDS可以将其以海量存储资源池的形式同时为业务系统服务,有效降低TCO

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");