1、计算机系统结构课程论文题 目网络存储的可靠性学 院物电学院专 业计算机软件与理论摘要 随着信息技术的不断发展,数据日益成为人们口常生活中重要资源。爆炸式增长的数据必然带来存储设备的持续增加。为了减少本地存储压力,云储存正成为时尚。目前,海量数据存储环境下的现代数据中心的存储节点规模少则几万多则几十万,但在规模巨大的存储环境系统中,磁盘损毁或者存储节点失效己成为一种常态行为;与此同时,因网络连接设备或者存储节点其它元器件造成的数据不可访问或者丢失现象也时有发生。为了满足口益扩展的数据存储需求,人们对数据存储的可靠性提出了更高的要求,如何实现海量数据在网络存储中低冗余度高可靠性存储己经成为业界面临
2、的一个巨大挑战。 因而,本文网络存储中低冗余度高可靠性海量数据存储系统的关键问题,在总结了当今数据可靠性增强理论和海量数据存储系统基本架构的基础上,对基于纠删码的数据分布策略研究进行一定介绍。在存储系统中,提出了基于纠删码的数据冗余分布模型,研究了涉及到的数据读写,恢复算法等关键技术。通过理论分析得出了这种冗余方案对提高系统可靠性更有优势:要使数据达到相同的可用性,基于纠删码方案只需要较低的冗余度;同样在相同的冗余度情况下,基于纠删码冗余方案的数据有更高的可用性。关键字: 可靠性; 网络存储; 海量数据; 纠删码 一、绪论近年来,随着云计算、物联网、社交网络等新兴技术的迅猛发展,无所不在的移动
3、设备、无线射频识别标签、无线传感器等每分每秒都在产生感知世界的信息。数以亿计用户的互联网服务时时刻刻都在产生新的数据,同时记录人们生活的历史信息也呈现爆炸式增长。数据的快速增长必然带来存储设备的持续增加。同时,为了满足口益扩展的数据存储需求,数据存储系统的体系结构也在不断发展与变化,从传统的集中式存储到分布式存储,近几年还出现了云存储等新型海量数据存储模式。2008年2月,几千个构建在亚马逊EC2和S3上的小型网站因数据中心宕机而受到影响;次年三月,谷歌公司的Docs出现系统故障,随后,联邦商务委员会被请求调查此事,以确定谷歌的云计算服务对客户的隐私与安全可能带来的隐患。可见,数据的丢失或失效
4、,会给人们带来不可估量的损失。进入20世纪以后,随着网络技术的持续发展、各种信息服务形式的不断出现、所需存储的数据呈现爆炸式增长,有研究者开始利用普通的PC机来构建大规模的存储系统,最为典型的是Google的GFS,例如,2004年Google的集群中的PC机节点达到18000台,每台PC越挂载两个磁盘。该技术的出现,使得人们对存储系统多了一种选择。现在,很多研究者和大型企业开始构建利用普通计算机硬件搭建的数据存储平台,如Apache Hadoop开源项目 , Facebook的Cassandra系统、淘宝的TFS ( Tao file system)。在存储系统中,特别是大规模数据存储系统中
5、,系统会因为这样或那样的问题出现数据的暂时不可用或者丢失损毁现象。从数据存储系统的组成上看,不论是DAS, NAS, SAN构建的小型存储系统,还是大规模分布式集群系统乃至超大规模数据中心,其基本存储运算单元都可以分为三个部分:首先是由磁盘搭建的基础存储设备,它是数据存储的物质基础;其次是系统中心网络,它是连接存储资源和计算资源的神经中枢。最后是计算设备和系统管理软件,它负责计算任务的完成和系统节点的管理和监测。一方面是存储数据量的爆炸式增长对基础存储设备规模上的需求,一方面是大规模海量数据存储系统频繁的失效行为,另一方面是数据的丢失给数据拥有者和使用者带来的巨大损失,这一切使得数据存储系统的
6、可靠性成为海量数据存储面临的一个函待解决的重要挑战。当然,系统的可靠性问题可以通过单纯增加硬件冗余的方式加以解决,但这样带来的硬件成本太高,本文则从数据管理与组织的角度探讨应对海量数据存储系统中数据的可靠性问题。二、存储系统的可靠性在一个拥有规模约为4000个结点的数据中心内,平均每天会有四个磁盘失效。Google公司的研究人员统计了其数据中心的磁盘损毁情况,系统中每年有1.7%至8.6%的磁盘会出现故障。而根据卡内基梅隆大学的统计数据显示,某些系统中磁盘每年的替换率约为13%。于是,每年中,几十甚至上百的磁盘损毁对于由成千上万个磁盘组成的PB级系统来讲是一种很平常的事;而对于规模更大的EB级
7、存储系统,每年会有几万甚至十几万的磁盘发生损毁。计算机除了容量、速度和价格外,人们有时更关心存储外设的可靠性能。因为软件系统的崩溃可以通过重新安装操作系统和应用程序来实现,但是用户的数据是不能够丢失的。所以存储设备应该无条件地保护好用户的数据。故障、错误和失效存在着如下关系:一个故障可能会导致一个或者多个错误。错误通常具有以下特性:错误具有两种状态:潜在状态和有效状态,并且会相互转换。潜在的错误可能通过激活(activate而有效。有效错误的影响可以从一个部件传送到另外一个部件,这样就会产生新的错误。因此,有效错误要么是被激活的潜在错误,要么是由于错误传递而产生的新错误。如果错误影响到部件正常
8、的服务时,部件就发生了失效。系统中的所有部件的故障、错误和失效均存在这样的关系。对于故障产生的原因,可以归纳为以下4种;硬件故障(hardware faults):设备失效产生的故障。设计故障(design faults):大部分这种故障由软件引起,小部分由硬件引起。操作故障(operation faults):由于用户操作的失误引起的故障。环境故障(environment faults):由于火灾、洪水、地震等引起的故障。系统可靠性是指系统从初始状态开始一直提供服务的能力,可靠性通常用平均无故瘴时间(Mean Time To Failure, MTTF)来衡量。提高系统可靠性的方法包括有效构
9、建方法(valid construction)以及纠错方法(error correction)。有效构建指的是在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。纠错方法指的是在系统构建中设计容错部件,即使出现故障,也可以通过容错信息保证系统正常工作。具体来说,可以把提高系统可靠性的方法分为:故障避免技术(fault avoidance):通过合理构建系统来避免故障的出现。故障容忍技术(fault tolerance):通过冗余措施,虽然可能出现故障,但是可以通过冗余信息保证服务仍然能够正常进行。错误消除技术(error removal):通过验证,最大限度地减少潜在的错误。错误
10、预报技术(error forecasting):通过分析,预报错误的出现。为保证冗余信息在出现错误时不失效,通常需要将其存放在与错误部件不同的部件中。这种方法的典型应用就是冗余磁盘阵列。三、网络存储可靠性的增强策略可靠性问题是伴随着系统复杂化而出现的问题,系统可靠性研究也己从最初的军事领域扩展到国民经济领域。随着数据的爆炸式增长,存储系统规模的持续扩大,数据可靠性己是分布式存储研究领域的一项关键技术,良好的容错技术在提高系统可靠性的同时还可以提高数据的访问效率。数据可靠性技术的研究对于构建海量数据存储系统具有重要的意义。3.1传统的复制备份策略增加数据冗余是实现数据可靠性的一般途径,当数据出现
11、部分失效时,客户可以通过访问冗余数据满足自己的需求。数据冗余提高了系统数据可靠性,但也增加了对存储资源的需求,特别是随着时间而成线性增长的管理费用及相关能耗,因此,面对海量数据存储需求的分布式系统在保证数据可靠性的前提下,如何提高系统的存储效率是降低相关成本的关键。目前,最为常用的数据可靠性增强技术主要为基于镜像备份的可靠性增强策略,虽然从具体实现的角度,镜像备份与复制策略在技术细节上有些区别,但从逻辑实质上来讲这两种策略具有统一性,在本文中统称为复制备份策略。基于多备份的可靠性增强技术简单直观,易于实现部署。该种策略需要把多个相同的数据副本分存到不同的存储节点上。显然该策略存储空间开销很大。
12、备份冗余是最简单也是分布式存储系统中应用最广的一类数据冗余模式。冗余数据是原文件的多个副本,假定副本数为k,这k个副本被存储到系统的k个不同的节点中,由任意一个节点的副本都能得到原文件;当有一个节点发生故障时,由未发生故障的任意一个节点中的数据都能修复出丢失数据。对于k个副本的备份冗余,系统允许某一时刻至多有k-1个节点发生故障。该策略可根据复制备份时机分为静态复制策略和动态复制策略。又可根据副本放置次序分为随机放置策略和顺序放置策略。(1)复制备份策略的数据冗余问题由于存储系统中数据的损毁可以分为随机损毁和关联损毁2。对于复制备份策略而言,顺序放置策略和随机放置策略是系统提高数据可靠性的两种
13、主要放置策略。把文件对象副本按照一定的次序分别放置在不同的节点上称为顺序放置。该种放置策略对于系统的随机错误具有很好的防护性,因为,当一个放置策略可能产生的排列越多时,那么当系统中发生一个可以导致多个节点同时失效的随机错误产生时,系统中多个副本失效的概率将大大增加。因此,产生排列数目有限的顺序放置策略对于随机失效模型会有很好的预防性。随机放置策略是从存储系统中随机的选择若干个存储节点,然后将副本随机的发送到这些选择的节点上。(2)复制备份策略的负载均衡问题对于复制而言,随机放置策略比顺序放置能够给系统带来更大的负载均衡,当然,客户端对数据访问的均等性和存储节点的同构性是随机放置策略可给系统带来
14、均衡性的前提条件。但事实上,由于存储数据受欢迎程度不同、存储节点的计算能力和存储能力也各异,该种策略往往并未达到很好的均衡效果,反而使得某些数据更加频繁的被访问。(3)复制备份策略的附加能耗问题过去,由于传统的分布存储节点和数据的规模较小,对系统数据的冗余度、基础设施的投入、以及系统在运行过程中所带来的能耗等因素考虑较少,但在海量数据存储环境下,分布存储的规模巨大,能耗开销也很高,复制备份策略因过大的系统能耗也受到越来越多的质疑。3.2低冗余高可靠的编码冗余策略针对存储系统的数据可靠性问题,近几年来,国内外学者进行了探索和研究,开辟了一条基于编码冗余策略的存储新路径。国外主要有IBM的M.Bl
15、aum团队、加州理工的J.Bruck团队,田纳西大学的JS. Plank等团队。 M.Blaum团队与J.Bruck团队主要针对磁盘阵列的可靠性相关技术进行研究。中科院的王晓京团队针对存储系统数据可靠性问题研究的较早并总结了编码冗余策略在存储系统中的优点。1、编码冗余在保证系统可靠性的同时能够有效的降低系统内部数据冗余。在编码冗余存储系统中,编码冗余策略认为系统中的任何存储节点都是对等的关系,而且系统中任何节点中存储的数据都会对重构原文件带来同等的效用,因而,该种策略可以容忍系统中随机节点的失效,即不论是随机损毁还是关联损毁。更重要的是,在达到完全容许上述两种损毁模型的同时,编码策略的数据冗余
16、量却不超过原数据大小,即小于或等于单份备份的数据冗余量。这样纠删码冗余策略不仅可以提高系统的可靠性而且大大降低了数据冗余度。2、由于编码存储系统中的存储节点都存有可以重构出原文件的相关数据,各个节点间便具有天然的对等的关系。因而,当文件读取时,客户端可以任意选择其中的若干个节点便可获得原文件。这样,系统便可保证各个节点都具有均等的对外服务能力。不会因为部分被读取频率较高的文件的聚集而产生负载不均问题。3、在能耗方面,由于编码冗余利用较低的数据冗余便可提供较高的系统可靠性,因而,与复制策略的存储系统相比,编码冗余策略能够降低系统的硬件投入,且在系统长期的运行过程中,会大大降低因硬件设备运行维护而
17、带来的附加能耗。近年来,随着数据时代的到来以及计算机计算性能的不断提高,编码冗余策略受到了越来越多的关注,并有不少理论成果出现,亦有少量的商用的海量数据存储系统将编码冗余策略引入到其存储系统中来,卡内基梅隆大学并行实验室的研究人员将RAID-6纠删策略用于云存储文件系统中,系统冗余度从200%降低到25%。但是,数据冗余度的降低对数据的可靠性及大规模读取带来的影响微乎其微,因而,为了更高的系统可靠性,需要研究更高性能的编码冗余方法。随着存储数据规模的进一步扩大,人们对数据可靠性的要求进一步提高,编码冗余策略相关理论技术体系的不断完善,编码冗余策略一定会以其数据冗余度低、可靠性高的独特优势被越来
18、越多的应用到未来的存储系统中。四、基于纠删码的数据分布策略研究4.1纠删码及其纠删原理在通信系统中向前纠错码纠正的误码所在的错误位置事先一般是不知道的,而在删除信道中错误的数据帧被遗弃,丢失的数据在数据流中的位置是知道的,这样纠删码比纠错码处理起来容易些。任意k列组成的子矩阵G均可逆,则有如下结论:设G为(n, k)线性纠删码的生成矩阵,若G的任意k列组成的子矩阵G均可逆,则利用接收到的任意k个数据均可重构原来的k个源数据。这个结论是我们研究基于纠删码冗余机制的理论基础。纠删码作为一种FEC (Forward Error Correction)技术以前主要应用在网络传输中避免包的丢失,现在我们
19、把它应用于网络存储系统中,下文使用的是简单的线性纠删码。4.2基于纠删码的数据冗余分布实现模型在分布式存储系统中,纠删码可以用来提高系统的可靠性,它有多种实现方式,我们采用线性码实现。考虑到对于小数据,因为客户端与存储节点的TCP连接时间在整个数据传输中的比重较大,如果分割的块数太多,会导致文件传输率低下,所以并不对其进行分割,而直接复制备份。对于大小不同的文件,采用不同的分割策略。这里主要讨论n和k都比较大的情况。如图1所示,分布式系统中客户节点希望通过网络将数据存储在可以到达的存储节点上。存储节点可以是一个专用的服务器,带有内存、处理器和一个或者多个磁盘组等;或者它也可以是一个被动的存储设
20、备,带有网络接口,存储接口和内存。存储设备有一个标准的固定大小的块(比如512字节)作为数据传送的最小单位。客户节点是一个运行应用程序的计算机,它需要读写存储节点上的数据,有适当的计算能力和比较高的网络带宽。图1每个节点有一个网络标识(比如IP地址)来和其它节点交互。我们假定每个客户节点可以获得提供存储服务的存储节点的网络标识,客户节点可能相互不知道对方,因此两个或多个客户节点可能并发地发起存储操作。大多数情况下这些操作是针对不同的存储节点。然而,在极少的情况下,两个并发操作可能是试图访问同一个数据块,这样操作将会发生冲突。客户节点和存储节点都会发生fail-stop失效从而中止节点的执行,该
21、节点的中止状态可以被其它节点检测到。如果一个存储节点失效,可能永远无法恢复,这种情况下它上面存储的数据将会丢失。假定失效不是非常频繁发生的,并且万一发生了,处于暂时降级模式下的系统性能是可以接受的。纠删码的使用对应用程序而言是透明的,目标应用程序包括操作系统,数据库,分布式文件服务器,或需要块级存储服务等其它高级服务等。这些应用程序通过支持块级读写的块级接口来访问数据。4.3关键技术研究4.31基于纠删码的数据放置策略模型图2假设有n个存储节点,客户节点将要存储的数据对象分割成大小相同的k个数据块,并将这k个数据块分布于k个存储节点上,通过纠删码将这k个数据块编码成为n个数据块,这里kk)个数
22、据,使得用这n个数据中任意k个编码数据均可重构原来k个源数据。它作为一种高效的数据冗余方式我们将其运用于存储系统中。首先将用户要存放的文件划分成固定大小的数据块,然后利用纠删码编码理论,对其进行冗余编码。对于k个数据块根据纠删码编码生成n个一样大小并唯一标识的数据块(nk),存放在相应的存储系统中,这样只要保证网络存储系统中有任意k个数据块是正确的,那么我们就认为这个存储系统就是可靠的。最后从理论上比较了基于纠删码和复制两种存储冗余分布方案,得到了如下结论:在相同的存储节点可用性情况下,复制与纠删码冗余度之比随着存储对象可用性的增加而增加;在相同存储对象可用性的情况下,复制与纠删码的冗余度之比
23、随着存储节点可靠性的增加而减少;如果固定复制与纠删码的冗余度之比,那么存储对象的可用性随着存储节点可用性的增加而增加。参考文献1王意洁,孙伟东,周松,裴晓强,李小勇. 云计算环境下的分布存储关键技术J. 软件学报. 2012(04)2吴素贞. 磁盘阵列高可用技术研究D. 华中科技大学 2010 3蒋海波. 海量数据存储系统的高可靠性关键技术研究与应用D 电子科技大学20134王克朝. 基于冗余机制的存储系统可靠性研究D 华中科技大学20065杜芸芸. 一种面向纠删码技术的云存储可靠性机制J. 计算机应用与软件. 2014(02) 6马玮骏,吴海佳,刘鹏. MassCloud云存储系统构架及可靠性机制J. 河海大学学报(自然科学版). 2011(03) 7吴素贞. 磁盘阵列高可用技术研究D. 华中科技大学 2010 8周旭. 面向Internet的大规模分布式存储技术研究D. 电子科技大学 2004 9魏青松. 大规模分布式存储技术研究D. 电子科技大学 200410慕建君,路成业,王新梅. 关于纠删码的研究与进展J. 电子与信息学报. 2002(09)
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100