2014/10/17 网络新技术专题 四川大学计算机学院
云计算环境下的分布式存储技术的研究与分析?
李世敏 (四川大学 计算机学院,四川 成都 610225)
Cloud Computing Environment of Distributed Storage Technology Research and Analysis
LI Shi-Min
(Department of SiChuan, University, City ChengDu, China) Corresponding author: E-mail: 2586975148@qq.com
Abstract: cloud computing describes a new IT service value based on the Internet, use and delivery mode, is a combination of data sharing and Shared services computing mode.As the cloud of promotion and popular, how high rate, low cost of storage and management of large amounts of data generated in the clouds, has become a focus in the study of major enterprises and organizations, which requires good cloud structure design, data storage and processing pattern and cloud storage platform.From the combination of cloud computing and cloud storage technology, aiming at how to improve the scalability of the storage, fault tolerance and lower the energy consumption of the storage, such as target, from the design of the data center network, data storage, etc were summarized, the key technology in the current distribution of storage, and on this basis, to the cloud environment of distributed storage system under the challenges faced by summarized and expounded.
Key words: cloud computing;The data center;Data storage way;Storage challenges
摘 要: 云计算描述了一种新的基于互联网的IT服务增值、使用和交付模式,是数据共享与服务共享计算模式的结合体。随着云计的推广和流行,如何高速率、低成本储存和管理生成于云端的大量数据,也成为各大企业和组织研究的重点,这就需要有良好的云结构设计、数据存储及处理模式和云存储平台。从云计算与云存储技术的结合入手,针对如何提高存储的可扩展性、容错性以及降低存储的能耗等目标,从数据中心网络的设计、数据的存储方式等方面对当前分布存储的关键技术进行了综述,并在此基础上,对云环境下的分布式存储系统所面临的挑战进行总结和阐述。
关键词: 云计算;数据中心;数据存储方式;存储挑战
1 引言
云计算是随着计算、存储以及通信技术的快速发展而出现的一种崭新的共享基础资源的商业计算模型,被誉为“革命性的计算模型”。云计算不同于传统的以个人计算机为中心的本地计算,它以互联网为中心,通过构建一个或多个由大量(百万级以上)普通机器和网络设备连接构成的数据中心,把海量的数据存储到数
1
网络新技术专题 2004,17(10)
据中心上,向上层的服务和应用提供安全、可靠、快速、便捷、透明的数据存储和计算服务。
云环境下,为了应对海量数据与用户请求带来的挑战,为解决传统数据库面临的大规模数据访问瓶颈问题,分布式存储技术得以引入。分布式存储技术是云计算的基础,主要研究如何存储、组织和管理数据中心上的大规模海量数据。由于面临的数据规模和用户规模更加庞大,在可扩展性、容错性以及成本控制方面面临着更加严峻的挑战。
2 分布式存储概述
2.1 分布式存储的发展过程
分布式存储经历了多个发展阶段,目标是朝着构建更好的分布式系统方向发展。 1)本地缓存:数据存储再应用代码所在的内存空间;
2)分布式缓存系统:数据在固定数目的集群节点间分布存储;
3)弹性缓存平台:数据在集群节点间分布存储,基于冗余机制实现高可用性; 4)弹性应用平台:弹性应用平台代表了云环境下分布式缓存系统未来的发展方向。
2.2 云平台下分布式存储技术的需求
分布式存储技术是云计算的基础,主要研究如何存储、组织和管理数据中心上的大规模海量数据。由于面临的数据规模和用户规模更加庞大,在可扩展性、容错性以及成本控制方面就面临严峻的技术需求。 1)可扩展性
云计算环境下的数据中心的节点规模都是几万上十万级别的,而且数据中心的规模和存储的数据规模也会随着应用的拓展快速增长。
因此,对于云环境下数据的存储技术的可扩展性就是极其必要的。比如,Google目前部署在全球的数据中心有36个,单个数据中心的计算机节点将达到数百万个;微软的服务器数量每14个月就会增长一倍,并于2009年9月在芝加哥建成世界最大的模块化数据中心,包括220个集装箱,每个集装箱有1800~2500机器。 云环境下数据庞大的规模以及快速的增长,使得云计算对于数据分布存储技术的可扩展性提出了更高的需求。此外,不但要求数据中心网络具有良好的可扩展性,而且数据的组织结构也必须具有良好的可扩展性,以适应不断扩展的应用需求。 2)成本可控
传统的分布存数由于其数据规模较小,对于数据存储能耗的考虑也较少,而在云计算环境下,由于其数据规模很大,导致其能耗开销也很大。能耗作为构成数据中心存储开销的一个重要组成部分,为降低数据中心的成本,我们必须要考虑其成本的可控性,降低能耗成为云存储必须追求的关键目标。 3)容错性
在云计算环境下,失效成为一种常态行为,并且失效往往会给云服务提供商以及用户带来巨大的损失。例如,2008年2月15日,亚马逊的服务器宕机事件使得几千个依赖亚马逊EC2(弹性云计算)和S3(云存储)的网站受到影响;又如,2009年3月,Google Docs出现故障,随后,美国电子隐私信息中心请求联邦商务委员会介入调查,以确定Google的云计算服务队隐私和安全的保障。
频繁的失效行为以及其带来的巨大的损失,使得高容错性的分布式存储技术成为极其必要。为了提高分布式存储的容错性,不但要研究节点之间的互联关系,还要研究存储在节点上的数据的组织和管理。
2.3 几项关键的分布式存储技术
2.3.1 数据容错技术
良好的容错技术不但能够提高系统的可用性和可靠性,而且能够提高数据的访问效率。在保证系统的容
2
云计算环境下的分布式存储技术的研究与分析
错性的同时,要尽可能地提高存储资源的利用率,以降低成本。目前主要有两种容错技术,即基于复制的容错技术和基于纠删码的容错技术。
1)基于复制的容错技术
基于复制的容错技术对一个数据对象创建多个相同的数据副本,并把得到的多个副本散步到不同的存储节点上。基于复制的容错技术主要关注两方面的研究:数据组织结构和数据复制策略,数据组织结构主要研究大量数据对象及其副本的管理方式;数据复制策略主要研究副本的创建时机、副本的数量、副本的放置等问题。
数据复制方法与多个因素相关,比如应用需求、网络状况、存储空间和数据访问模式等。对于复制方法的研究主要包括复制策略和副本的放置策略两个方面。复制策略主要关注创建副本的时机以及创建副本的数目,而放置策略最基本的目的在于提高数据的容错性,使得用户在部分副本失效以后仍然能够通过其他的副本获得数据。
2)基于纠删的容错技术
基于编码的容错技术通过对多个数据对象进行编码产生编码对象,进而降低完全复制带来的巨大的存储开销。RAID技术中使用最广泛的RAID5通过把数据条带化,分布到不同的存储设备上以提高效率,并采用一个校验数据块使之能够容忍一个数据块的失效。纠删码技术是一类源于信道传输的编码技术,因为能够容忍多个数据帧的丢失,被引入到存储领域,使得基于纠删码的容错技术成为能够容忍多个数据块同时失效的、最常用的基于编码的容错技术。
2.3.2 节能技术
数据存储是云计算的重要组成部分,是各种云计算服务的基础,在云计算的整个能耗组成中占有很大比例,一些大规模数据中心上的存储系统的能耗占到整个数据中心能耗的27%~40%,因此,在云计算环境下,研究分布存储中的节能技术具有很大的现实意义和应用前景。从软、硬件的角度来分,可将现有技术分为硬件节能技术和软件节能技术。
1)硬件节能技术
硬件节能可以分为两种:一种是从构成分布存储的各个计算机部件的角度出发,通过采用新的体系结构或者硬件技术,以降低单个计算机节点以及整个分布存储的能耗,如基于ARM体系结构的低能耗CPU、支持随机访问的大容量闪存硬盘等;另一种是数据中心的角度出发,用低能耗、低性能的硬件设备替换高性能耗、高性能的硬件设备来构建数据中心,以达到降低分布存储能耗的目的。
? 降低硬件设备能耗
硬件技术的改进主要通过新的体系结构,比如CPU 和磁盘的体系结构,以降低组件的能耗.硬件体系结构的研究一直是硬件研究和设计人员关注的重点,这里简单介绍若干与能耗相关的主要研究.Gurumurthi 等人认为,磁盘消耗的能耗遵守比例模型,其消耗的电能随着转速的加快而增加.基于此想法提出了一种具有多级转速的磁盘结构,使得磁盘在低负载状态以较低的转速运行,高负载时以较高的转速运行.Hamilton提出了一种基于Athlon 处理器的低能耗服务器机架结构。
? 降低数据中心能耗
近年来,低能耗芯片的发展异常迅猛,但是这些芯片和市场上的主流芯片相比性能较低.一个自然的想法是 研究如何把这些性能较低、能耗也较低的芯片应用到数据中心上,以在单位能耗上产生更高的性能。CMU 的一个小组采用500MHZ 的处理器和快速闪存盘构建集群,并在其上测试单位焦耳内执行的查询数。结果发现,采用低能耗节点的集群的能耗有效性要比普通机器构建的集群能耗有效性高6 倍.韩国的一个研究小组采用低功耗的组件搭建了一个Hadoop 平台,虽然性能略有降低,但其结果表明,这种模式使得能耗节省了113 倍.为了防止性能的大幅下降,他们在构建时加入了部分通用节点,以便能够在必要时把数据转移到这些通用节点上以满足任务的性能需求.
2)软件节能技术
网络新技术专题 3 李世敏
网络新技术专题 2004,17(10)
软件节能技术通过一定的软件策略,在很少的性能损失,甚至不影响性能的前提下,使数据中心内的部
分节点进入低能耗或者被挂起状态,达到降低整个存储数据中心能耗的目的。目前的软件技术主要关注两个方面的研究:节点管理技术和数据管理技术。
一般的完全覆盖查找策略有随机查找策略和启发式查找策略:(1) 随机查找策略:这种策略随机地选取若干个子集,并在这些子集中选择拥有最好覆盖的一个。随机查找策略简单,容易实现,但是找到的覆盖集合可能不是最优的,甚至可能没有覆盖所有的数据对象;(2) 启发式查找策略:这种策略通过多次循环往一个子集中不断地加入一个节点,在每一次的循环中按照某种贪心策略加入当前的最佳候选节点。
有时,为了保证数据的可用性和容错性,可能没有满足条件的完全覆盖.因此,IBM 实验室的Harnik 等人引入辅助节点用来集中存储那些没有被覆盖的被关闭节点上的数据对象,以找到一个更小的完全覆盖集合,从而节省更多的能耗.Pinheiro 等人让那些访问频繁的数据所在的存储节点优先进入覆盖集合,以保证这些频繁访问的数据能够被尽可能地高效访问,从而提高低功耗模式下的数据访问效率。
3 云计算环境下分布式存储面临的挑战
由于云计算的多承租、弹性资源供给、敏捷性与自适应性等特点,给缓存系统的运行、维护和管理带来
了新的困难和挑战,主要包括一下三个方面的:
3.1 缓存服务的性能隔离
多租户场景下,尤其是对应用实例——租户模式而言,所有租户共享单一缓存服务实例,引入的资源竞争会导致部分租户的服务质量(QoS)需求无法得到满足,即所谓的“性能干扰”问题。由于每个租户的QoS需求不尽相同,这就需要在最大限度地提高系统资源利用率的基础上,确保所有租户的QoS需求同时得到满足,面向多承租的缓存服务性能隔离机制正逐渐成为当前研究的热点和难点。
卡内基梅隆大学的Wachs 等人[48]采用基于Trace 的方法建立分析模型(analytic model),根据该模型完成逻辑资源划分.弗吉尼亚大学的Lu 等人[49]提出了一种基于反馈控制的方法,将基于QoS 的缓存服务差分问题规约为闭环控制问题,采用命中率指标刻画租户QoS 需求,基于Z 转换(Z-transform)方法将命中率与QoS 需求间的差值与缓存资源建立映射关系,确定资源调整值.该方法采用单一的资源映射模型,未考虑不同租户具有不同的访问模式,因而存在一定的局限性.
3.2 缓存策略的自适应与自管理
全复制策略适用于小规模集群、缓存数据量小或者读者请求较多的场景,而分区策略则适用于集群规模和缓存数据量较大、写操作频繁的场景。
云平台中部署了大量的Web应用,内部部署环境变化和外部负载变化频繁。为进一步优化服务性能,增强缓存系统的柔性与自适应性,有必要为分布式缓存提供灵活的自适应支持机制。这其中包括两项关键挑战:自适应方法、规则或模型如何建立以及如何有效控制自适应开销。IBM 阿尔马登研究中心提出了一种基于自适应规则的缓存替换算法.根据统计结果及识别规则(detection rule)对当前访问模式进行分类,根据分类结果采用相应的最优替换策略.基于规则的方法的优点在于实施简单,规则元素往往由关键性能参数组成,决策效率高;缺点在于规则往往比较固定,难以适应环境与需求的动态变化,且规则的制定大多由人工完成,易引入主观因素的影响.加州大学圣克鲁兹分校的学者提出了一种基于机器学习的缓存策略自适应方法.他们将最优策略选择规约为多专家决策(multiple experts)问题.
3.3 虚拟化环境下数据迁移的优化
在云存储系统中虚拟化技术起着不可轻视的作用。通过虚拟化技术,可以将单台服务器上的硬件资源比如存储空间、内存资源和处理器资源等分别进行划分,然后根据客户需要,将划分的硬件资源通过虚拟化技术组合成一个虚拟系统。
4
云计算环境下的分布式存储技术的研究与分析
但是对部署在Xen虚拟化环境中的缓存系统而言,VM间性能干扰会对数据迁移产生无法忽略的影响。迁移开销从横向、纵向两个维度课分解为迁移时间与性能衰减度。如果迁移可用的带宽资源过多,虽然迁移时间短,但会引入高时延;如果可用的带宽资源过少,虽然时延抖动小,但迁移时间过长,系统性能长期处于次优化状态。康涅狄格大学的学者针对异构存储系统在满足不同传输能力约束前提下如何降低数据迁移时间的问题展开了研究.他们将这一问题规约为图着色(multi-edgecoloring problem)问题,考虑如何优化数据迁移调度,以使得迁移消耗的时间片最少.美国东北大学Kunkle 等人的研究工作在制定迁移计划的同时考虑了迁移开销的优化.迁移算法迭代地选取开销最小的分区迁移方案.
该工作的不足主要有两点:一是未考虑迁移时间的影响;二是定义的开销模型与迁移数据量和负载相关,而未包含对开销具有很大影响的迁移带宽元素,难以准确刻画迁移开销.加州大学圣巴巴拉分校Das 等人的工作主要针对多承租场景下数据库集群的数据迁移问题,他们提出了一种轻量级的、基于迭代复制的数据迁移方法.
4 未来研究展望
可以归纳如下:
综合云计算环境下分布式存储技术的需求以及分布式存储系统面临的挑战,基于云计算的分布式存储研究
(1)降低构建数据中心网络成本的研究
可以通过关闭部分不用的交换机,以降低数据中心网络的能耗成本,通过对数据中心分布存储应用的数据访问模式及流量特征的研究,使得数据中心网络中一些冗余的链路和交换机能够在不影响效率和容错性能的情况下被关闭,达到优化数据中心网络成本的目的。 (2)优化数据中心网络结构的研究
可以针对存储应用的访问模式和特点,设计一种能够有效组织和管理数据的数据中心网络拓扑结构,使之能够有效地均衡链路负载,提高系统的吞吐率。例如,可以通过对实际部署的系统进行统计,挖掘系统的数据访问模式,然后针对具体的访问模式,优化底层的数据中心网络拓扑,把频繁访问的数据存放在网络性能更好的节点,使得频繁访问的数据能够得到更加高效的访问效率。 (3)分布存储系统的开发与部署测试研究
目前,部署并应用的分布式存储系统主要有各大企业的云计算存储平台,比如Google的GFS、Amzon的S3等。但是,最大的Hadoop系统,它是底层为分布存储研究提供良好的平台。通过对系统的观察和测试,不但可以发现研究中存在的问题,而且可以挖掘系统的运行特征,促进更进一步的理论研究。 (4)基于纠删码的数据放置技术的研究
目前,云计算环境下分布存储应用中的数据放置策略都比较简单,比如机架无关(rack unware)、机架相关 (rack aware)、数据中心相关(datacenter aware)等策略,或者顺序放置、随机放置等策略.这些策略大都针对基于 复制的容错技术,实际上,不同放置策略对基于纠删码的容错技术的容错性以及访问效率同样有很大的影响,但 是,现有的工作很少有针对基于纠删码的数据放置策略的研究.针对基于纠删码的数据放置策略展开研究,设计 结合数据中心网络结构特征和具体应用特点的数据块放置策略。 (5)基于纠删码的节能技术研究
软件节能技术是目前云计算环境下分布存储的一个研究热点.基于磁盘管理的技术取得了一定的成果,但是这些技术仍然存在缺陷.而且,现有的研究工作都是针对基于复制的容错技术展开的.基于纠删码的容错技术有其自身的特点,未来的工作可以针对纠删码数据块放置的特点,在降低动态数据放置技术的数据迁移成本以及提高静态技术的负载均衡能力方面进行更加深入的研究,以提出节能效果更加明显的数据放置技术。
5 结束语
云计算的引入,有力地推动了IT 领域的深刻变革,同时也给分布式缓存技术的发展带来了难得的机遇.作为
网络新技术专题 5 李世敏