网络新技术专题四川大学计算机学院2014/10/171云计算环境下的分布式存储技术的研究与分析李世敏(四川大学计算机学院,四川成都610225)CloudComputingEnvironmentofDistributedStorageTechnologyResearchandAnalysisLIShi-Min(DepartmentofSiChuan,University,CityChengDu,China)Correspondingauthor:E-mail:2586975148@qq.comAbstract:cloudcomputingdescribesanewITservicevaluebasedontheInternet,useanddeliverymode,isacombinationofdatasharingandSharedservicescomputingmode.Asthecloudofpromotionandpopular,howhighrate,lowcostofstorageandmanagementoflargeamountsofdatageneratedintheclouds,hasbecomeafocusinthestudyofmajorenterprisesandorganizations,whichrequiresgoodcloudstructuredesign,datastorageandprocessingpatternandcloudstorageplatform.Fromthecombinationofcloudcomputingandcloudstoragetechnology,aimingathowtoimprovethescalabilityofthestorage,faulttoleranceandlowertheenergyconsumptionofthestorage,suchastarget,fromthedesignofthedatacenternetwork,datastorage,etcweresummarized,thekeytechnologyinthecurrentdistributionofstorage,andonthisbasis,tothecloudenvironmentofdistributedstoragesystemunderthechallengesfacedbysummarizedandexpounded.Keywords:cloudcomputing;Thedatacenter;Datastorageway;Storagechallenges摘要:云计算描述了一种新的基于互联网的IT服务增值、使用和交付模式,是数据共享与服务共享计算模式的结合体。随着云计的推广和流行,如何高速率、低成本储存和管理生成于云端的大量数据,也成为各大企业和组织研究的重点,这就需要有良好的云结构设计、数据存储及处理模式和云存储平台。从云计算与云存储技术的结合入手,针对如何提高存储的可扩展性、容错性以及降低存储的能耗等目标,从数据中心网络的设计、数据的存储方式等方面对当前分布存储的关键技术进行了综述,并在此基础上,对云环境下的分布式存储系统所面临的挑战进行总结和阐述。关键词:云计算;数据中心;数据存储方式;存储挑战1引言云计算是随着计算、存储以及通信技术的快速发展而出现的一种崭新的共享基础资源的商业计算模型,被誉为“革命性的计算模型”。云计算不同于传统的以个人计算机为中心的本地计算,它以互联网为中心,通过构建一个或多个由大量(百万级以上)普通机器和网络设备连接构成的数据中心,把海量的数据存储到数网络新技术专题2004,17(10)2据中心上,向上层的服务和应用提供安全、可靠、快速、便捷、透明的数据存储和计算服务。云环境下,为了应对海量数据与用户请求带来的挑战,为解决传统数据库面临的大规模数据访问瓶颈问题,分布式存储技术得以引入。分布式存储技术是云计算的基础,主要研究如何存储、组织和管理数据中心上的大规模海量数据。由于面临的数据规模和用户规模更加庞大,在可扩展性、容错性以及成本控制方面面临着更加严峻的挑战。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月,GoogleDocs出现故障,随后,美国电子隐私信息中心请求联邦商务委员会介入调查,以确定Google的云计算服务队隐私和安全的保障。频繁的失效行为以及其带来的巨大的损失,使得高容错性的分布式存储技术成为极其必要。为了提高分布式存储的容错性,不但要研究节点之间的互联关系,还要研究存储在节点上的数据的组织和管理。2.3几项关键的分布式存储技术2.3.1数据容错技术良好的容错技术不但能够提高系统的可用性和可靠性,而且能够提高数据的访问效率。在保证系统的容网络新技术专题李世敏云计算环境下的分布式存储技术的研究与分析3错性的同时,要尽可能地提高存储资源的利用率,以降低成本。目前主要有两种容错技术,即基于复制的容错技术和基于纠删码的容错技术。1)基于复制的容错技术基于复制的容错技术对一个数据对象创建多个相同的数据副本,并把得到的多个副本散步到不同的存储节点上。基于复制的容错技术主要关注两方面的研究:数据组织结构和数据复制策略,数据组织结构主要研究大量数据对象及其副本的管理方式;数据复制策略主要研究副本的创建时机、副本的数量、副本的放置等问题。数据复制方法与多个因素相关,比如应用需求、网络状况、存储空间和数据访问模式等。对于复制方法的研究主要包括复制策略和副本的放置策略两个方面。复制策略主要关注创建副本的时机以及创建副本的数目,而放置策略最基本的目的在于提高数据的容错性,使得用户在部分副本失效以后仍然能够通过其他的副本获得数据。2)基于纠删的容错技术基于编码的容错技术通过对多个数据对象进行编码产生编码对象,进而降低完全复制带来的巨大的存储开销。RAID技术中使用最广泛的RAID5通过把数据条带化,分布到不同的存储设备上以提高效率,并采用一个校验数据块使之能够容忍一个数据块的失效。纠删码技术是一类源于信道传输的编码技术,因为能够容忍多个数据帧的丢失,被引入到存储领域,使得基于纠删码的容错技术成为能够容忍多个数据块同时失效的、最常用的基于编码的容错技术。2.3.2节能技术数据存储是云计算的重要组成部分,是各种云计算服务的基础,在云计算的整个能耗组成中占有很大比例,一些大规模数据中心上的存储系统的能耗占到整个数据中心能耗的27%~40%,因此,在云计算环境下,研究分布存储中的节能技术具有很大的现实意义和应用前景。从软、硬件的角度来分,可将现有技术分为硬件节能技术和软件节能技术。1)硬件节能技术硬件节能可以分为两种:一种是从构成分布存储的各个计算机部件的角度出发,通过采用新的体系结构或者硬件技术,以降低单个计算机节点以及整个分布存储的能耗,如基于ARM体系结构的低能耗CPU、支持随机访问的大容量闪存硬盘等;另一种是数据中心的角度出发,用低能耗、低性能的硬件设备替换高性能耗、高性能的硬件设备来构建数据中心,以达到降低分布存储能耗的目的。•降低硬件设备能耗硬件技术的改进主要通过新的体系结构,比如CPU和磁盘的体系结构,以降低组件的能耗.硬件体系结构的研究一直是硬件研究和设计人员关注的重点,这里简单介绍若干与能耗相关的主要研究.Gurumurthi等人认为,磁盘消耗的能耗遵守比例模型,其消耗的电能随着转速的加快而增加.基于此想法提出了一种具有多级转速的磁盘结构,使得磁盘在低负载状态以较低的转速运行,高负载时以较高的转速运行.Hamilton提出了一种基于Athlon处理器的低能耗服务器机架结构。•降低数据中心能耗近年来,低能耗芯片的发展异常迅猛,但是这些芯片和市场上的主流芯片相比性能较低.一个自然的想法是研究如何把这些性能较低、能耗也较低的芯片应用到数据中心上,以在单位能耗上产生更高的性能。CMU的一个小组采用500MHZ的处理器和快速闪存盘构建集群,并在其上测试单位焦耳内执行的查询数。结果发现,采用低能耗节点的集群的能耗有效性要比普通机器构建的集群能耗有效性高6倍.韩国的一个研究小组采用低功耗的组件搭建了一个Hadoop平台,虽然性能略有降低,但其结果表明,这种模式使得能耗节省了113倍.为了防止性能的大幅下降,他们在构建时加入了部分通用节点,以便能够在必要时把数据转移到这些通用节点上以满足任务的性能需求.2)软件节能技术网络新技术专题2004,17(10)4软件节能技术通过一定的软件策略,在很少的性能损失,甚至不影响性能的前提下,使数据中心内的部分节点进入低能耗或者被挂起状态,达到降低整个存储数据中心能耗的目的。目前的软件技术主要关注两个方面的研究:节点管理技术和数据管理技术。一般的完全覆盖查找策略有随机查找策略和启发式查找策略:(1)随机查找策略:这种策略随机地选取若干个子集,并在这些子集中选择拥有最好覆盖的一个。随机查找策略简单,容易实现,但是找到的覆盖集合可能不是最优的,甚至可能没有覆盖所有的数据对象;(2)启发式查找策略:这种策略通过多次循环往一个子集中不断地加入一个节点,在每一次的循环中按照某种贪心策略加入当前的最佳候选节点。有时,为了保证数据的可用性和容错性,可能没有满足条件的完全覆盖.因此,IBM实验室的Harnik等人引入辅助节点用来集中存储那些没有被覆盖的被关闭节点上的数据对象,以找到一个更小的完全覆盖集合,从而节省更多的能耗.Pinheiro等人让那些访问频繁的数据所在的存储节点优先进入覆盖集合,以保证这些频繁访问的数据能够被尽可能地高效访问,从而提高低功耗模式下的数据访问效率。3云计算环境下分布式存储面临的挑战由于云计算的多承租、弹性资源供给、敏捷性与自适应性等特点,给缓存系统的运行、维护和管理带来了新的困难和挑战,主要包括一下三个方面的:3.1缓存服务的性能隔离多租户场景下,尤其是对应用实例——租户模式而言,所有租户共享单一缓存服务实例,引入的资源竞