计算机系统结构课程论文题目网络存储的可靠性学院物电学院专业计算机软件与理论摘要随着信息技术的不断发展,数据日益成为人们口常生活中重要资源。
爆炸式增长的数据必然带来存储设备的持续增加。
为了减少本地存储压力,云储存正成为时尚。
目前,海量数据存储环境下的现代数据中心的存储节点规模少则几万多则几十万,但在规模巨大的存储环境系统中,磁盘损毁或者存储节点失效己成为一种常态行为;与此同时,因网络连接设备或者存储节点其它元器件造成的数据不可访问或者丢失现象也时有发生。
为了满足口益扩展的数据存储需求,人们对数据存储的可靠性提出了更高的要求,如何实现海量数据在网络存储中低冗余度高可靠性存储己经成为业界面临的一个巨大挑战。
因而,本文网络存储中低冗余度高可靠性海量数据存储系统的关键问题,在总结了当今数据可靠性增强理论和海量数据存储系统基本架构的基础上,对基于纠删码的数据分布策略研究进行一定介绍。
在存储系统中,提出了基于纠删码的数据冗余分布模型,研究了涉及到的数据读写,恢复算法等关键技术。
通过理论分析得出了这种冗余方案对提高系统可靠性更有优势:要使数据达到相同的可用性,基于纠删码方案只需要较低的冗余度;同样在相同的冗余度情况下,基于纠删码冗余方案的数据有更高的可用性。
关键字: 可靠性;网络存储;海量数据;纠删码一、绪论近年来,随着云计算、物联网、社交网络等新兴技术的迅猛发展,无所不在的移动设备、无线射频识别标签、无线传感器等每分每秒都在产生感知世界的信息。
数以亿计用户的互联网服务时时刻刻都在产生新的数据,同时记录人们生活的历史信息也呈现爆炸式增长。
数据的快速增长必然带来存储设备的持续增加。
同时,为了满足口益扩展的数据存储需求,数据存储系统的体系结构也在不断发展与变化,从传统的集中式存储到分布式存储,近几年还出现了云存储等新型海量数据存储模式。
2008年2月,几千个构建在亚马逊EC2和S3上的小型网站因数据中心宕机而受到影响;次年三月,谷歌公司的Docs出现系统故障,随后,联邦商务委员会被请求调查此事,以确定谷歌的云计算服务对客户的隐私与安全可能带来的隐患。
可见,数据的丢失或失效,会给人们带来不可估量的损失。
进入20世纪以后,随着网络技术的持续发展、各种信息服务形式的不断出现、所需存储的数据呈现爆炸式增长,有研究者开始利用普通的PC机来构建大规模的存储系统,最为典型的是Google的GFS,例如,2004年Google的集群中的PC机节点达到18000台,每台PC越挂载两个磁盘。
该技术的出现,使得人们对存储系统多了一种选择。
现在,很多研究者和大型企业开始构建利用普通计算机硬件搭建的数据存储平台,如Apache Hadoop开源项目 , Facebook的Cassandra系统、淘宝的TFS ( Tao file system)。
在存储系统中,特别是大规模数据存储系统中,系统会因为这样或那样的问题出现数据的暂时不可用或者丢失损毁现象。
从数据存储系统的组成上看,不论是DAS, NAS, SAN构建的小型存储系统,还是大规模分布式集群系统乃至超大规模数据中心,其基本存储运算单元都可以分为三个部分:首先是由磁盘搭建的基础存储设备,它是数据存储的物质基础;其次是系统中心网络,它是连接存储资源和计算资源的神经中枢。
最后是计算设备和系统管理软件,它负责计算任务的完成和系统节点的管理和监测。
一方面是存储数据量的爆炸式增长对基础存储设备规模上的需求,一方面是大规模海量数据存储系统频繁的失效行为,另一方面是数据的丢失给数据拥有者和使用者带来的巨大损失,这一切使得数据存储系统的可靠性成为海量数据存储面临的一个函待解决的重要挑战。
当然,系统的可靠性问题可以通过单纯增加硬件冗余的方式加以解决,但这样带来的硬件成本太高,本文则从数据管理与组织的角度探讨应对海量数据存储系统中数据的可靠性问题。
二、存储系统的可靠性在一个拥有规模约为4000个结点的数据中心内,平均每天会有四个磁盘失效。
Google公司的研究人员统计了其数据中心的磁盘损毁情况,系统中每年有1.7%至8.6%的磁盘会出现故障。
而根据卡内基梅隆大学的统计数据显示,某些系统中磁盘每年的替换率约为13%。
于是,每年中,几十甚至上百的磁盘损毁对于由成千上万个磁盘组成的PB级系统来讲是一种很平常的事;而对于规模更大的EB级存储系统,每年会有几万甚至十几万的磁盘发生损毁。
计算机除了容量、速度和价格外,人们有时更关心存储外设的可靠性能。
因为软件系统的崩溃可以通过重新安装操作系统和应用程序来实现,但是用户的数据是不能够丢失的。
所以存储设备应该无条件地保护好用户的数据。
故障、错误和失效存在着如下关系:①一个故障可能会导致一个或者多个错误。
②错误通常具有以下特性:错误具有两种状态:潜在状态和有效状态,并且会相互转换。
潜在的错误可能通过激活(activate而有效。
有效错误的影响可以从一个部件传送到另外一个部件,这样就会产生新的错误。
因此,有效错误要么是被激活的潜在错误,要么是由于错误传递而产生的新错误。
③如果错误影响到部件正常的服务时,部件就发生了失效。
④系统中的所有部件的故障、错误和失效均存在这样的关系。
对于故障产生的原因,可以归纳为以下4种;①硬件故障(hardware faults):设备失效产生的故障。
②设计故障(design faults):大部分这种故障由软件引起,小部分由硬件引起。
③操作故障(operation faults):由于用户操作的失误引起的故障。
④环境故障(environment faults):由于火灾、洪水、地震等引起的故障。
系统可靠性是指系统从初始状态开始一直提供服务的能力,可靠性通常用平均无故瘴时间(Mean Time To Failure, MTTF`)来衡量。
提高系统可靠性的方法包括有效构建方法(valid construction)以及纠错方法(error correction)。
有效构建指的是在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。
纠错方法指的是在系统构建中设计容错部件,即使出现故障,也可以通过容错信息保证系统正常工作。
具体来说,可以把提高系统可靠性的方法分为:①故障避免技术(fault avoidance):通过合理构建系统来避免故障的出现。
②故障容忍技术(fault tolerance):通过冗余措施,虽然可能出现故障,但是可以通过冗余信息保证服务仍然能够正常进行。
③错误消除技术(error removal):通过验证,最大限度地减少潜在的错误。
④错误预报技术(error forecasting):通过分析,预报错误的出现。
为保证冗余信息在出现错误时不失效,通常需要将其存放在与错误部件不同的部件中。
这种方法的典型应用就是冗余磁盘阵列。
三、网络存储可靠性的增强策略可靠性问题是伴随着系统复杂化而出现的问题,系统可靠性研究也己从最初的军事领域扩展到国民经济领域。
随着数据的爆炸式增长,存储系统规模的持续扩大,数据可靠性己是分布式存储研究领域的一项关键技术,良好的容错技术在提高系统可靠性的同时还可以提高数据的访问效率。
数据可靠性技术的研究对于构建海量数据存储系统具有重要的意义。
3.1传统的复制备份策略增加数据冗余是实现数据可靠性的一般途径,当数据出现部分失效时,客户可以通过访问冗余数据满足自己的需求。
数据冗余提高了系统数据可靠性,但也增加了对存储资源的需求,特别是随着时间而成线性增长的管理费用及相关能耗,因此,面对海量数据存储需求的分布式系统在保证数据可靠性的前提下,如何提高系统的存储效率是降低相关成本的关键。
目前,最为常用的数据可靠性增强技术主要为基于镜像备份的可靠性增强策略,虽然从具体实现的角度,镜像备份与复制策略在技术细节上有些区别,但从逻辑实质上来讲这两种策略具有统一性,在本文中统称为复制备份策略。
基于多备份的可靠性增强技术简单直观,易于实现部署。
该种策略需要把多个相同的数据副本分存到不同的存储节点上。
显然该策略存储空间开销很大。
备份冗余是最简单也是分布式存储系统中应用最广的一类数据冗余模式。
冗余数据是原文件的多个副本,假定副本数为k,这k个副本被存储到系统的k个不同的节点中,由任意一个节点的副本都能得到原文件;当有一个节点发生故障时,由未发生故障的任意一个节点中的数据都能修复出丢失数据。
对于k个副本的备份冗余,系统允许某一时刻至多有k-1个节点发生故障。
该策略可根据复制备份时机分为静态复制策略和动态复制策略。
又可根据副本放置次序分为随机放置策略和顺序放置策略。
(1)复制备份策略的数据冗余问题由于存储系统中数据的损毁可以分为随机损毁和关联损毁[‘2]。
对于复制备份策略而言,顺序放置策略和随机放置策略是系统提高数据可靠性的两种主要放置策略。
把文件对象副本按照一定的次序分别放置在不同的节点上称为顺序放置。
该种放置策略对于系统的随机错误具有很好的防护性,因为,当一个放置策略可能产生的排列越多时,那么当系统中发生一个可以导致多个节点同时失效的随机错误产生时,系统中多个副本失效的概率将大大增加。
因此,产生排列数目有限的顺序放置策略对于随机失效模型会有很好的预防性。
随机放置策略是从存储系统中随机的选择若干个存储节点,然后将副本随机的发送到这些选择的节点上。
(2)复制备份策略的负载均衡问题对于复制而言,随机放置策略比顺序放置能够给系统带来更大的负载均衡,当然,客户端对数据访问的均等性和存储节点的同构性是随机放置策略可给系统带来均衡性的前提条件。
但事实上,由于存储数据受欢迎程度不同、存储节点的计算能力和存储能力也各异,该种策略往往并未达到很好的均衡效果,反而使得某些数据更加频繁的被访问。
(3)复制备份策略的附加能耗问题过去,由于传统的分布存储节点和数据的规模较小,对系统数据的冗余度、基础设施的投入、以及系统在运行过程中所带来的能耗等因素考虑较少,但在海量数据存储环境下,分布存储的规模巨大,能耗开销也很高,复制备份策略因过大的系统能耗也受到越来越多的质疑。
3.2低冗余高可靠的编码冗余策略针对存储系统的数据可靠性问题,近几年来,国内外学者进行了探索和研究,开辟了一条基于编码冗余策略的存储新路径。
国外主要有IBM的M.Blaum团队、加州理工的J.Bruck团队,田纳西大学的JS. Plank等团队。
M.Blaum团队与J.Bruck团队主要针对磁盘阵列的可靠性相关技术进行研究。
中科院的王晓京团队针对存储系统数据可靠性问题研究的较早并总结了编码冗余策略在存储系统中的优点。
1、编码冗余在保证系统可靠性的同时能够有效的降低系统内部数据冗余。
在编码冗余存储系统中,编码冗余策略认为系统中的任何存储节点都是对等的关系,而且系统中任何节点中存储的数据都会对重构原文件带来同等的效用,因而,该种策略可以容忍系统中随机节点的失效,即不论是随机损毁还是关联损毁。