计算机应用论文栏目提供最新计算机应用论文格式、计算机应用硕士论文范文。详情咨询QQ:1847080343(论文辅导)

分布式视频流存储容错系统的计算机设计与实现

日期:2018年03月08日 编辑:ad201107111759308692 作者:无忧论文网 点击次数:1368
论文价格:150元/篇 论文编号:lw201802282116487777 论文字数:0 所属栏目:计算机应用论文
论文地区:中国 论文语种:中文 论文用途:硕士毕业论文 Master Thesis
本文是计算机应用论文,计算机应用是研究计算机应用于各个领域的理论、方法、技术和系统等,是计算机学科与其他学科相结合的边缘学科 ,是计算机学科的组成部分。计算机应用是对在社会活动中的如何参与和实施给予方针指导的活动。(以上内容来自百度百科)今天无忧论文网为大家推荐一篇会计论文,供大家参考。

第一章 引 言

1.1 选题背景及研究意义
近年来,为响应“平安城市”的口号,视频监控系统广泛地应用于交通、金融、刑侦等行业中,为保证财产安全、维护公共秩序、构建和谐社会提供了必不可少的作用。以流媒体方式对存储设备进行访问的视频监控系统,具有实时记录、连续存储、周期性更新等特点。与此同时,在计算机网络技术不断发展、计算机图像学理念逐步成熟的背景下,监控视频的清晰度越来越受人们的关注,伴随愈来愈广泛应用的视频监控系统,这就无疑带来了爆炸式增长的视频流数据的存储问题。因此,如何高效的存储与管理视频监控系统产生的海量数据,成为了为推进视频监控系统事业亟需解决的首要问题。回顾视频监控系统的演变,可谓是日新月异,经历了从模拟化到数字化,从数字化再到网络化、集成化的发展历程[1]。起初发展的是模拟监控系统,其中以闭路视频监控系统(CCTV)为典型代表,它依赖于多个专用设备,且视频保存的方式是由用户打开录像机,并用新的录像带更换旧的录像带进行的。因此,系统的监控能力和可扩展性十分有限,视频数据易丢失;而且随着复制次数的增加,视频的质量也会随着降低。然后使用较广的就是数字监控系统(DVR),该系统的核心包括多媒体、PC 以及数字硬盘录像机,可以用于将信息流从模拟信号过渡到数字信号。对应的 DVR 存储方案有两种,其一是将所有的视频数据直接保存到前端 DVR 设备中,由后台软件管理和维护多个 DVR 设备,以此来实现存储、更新、点播等功能。它的具体做法是将具有一定容量大小的 DVR 设备安装在摄像监控前端;另一种方式是将视频数据保存到后台的存储设备上,而在摄像监控前端通过 DVR 服务器或者网络视频服务器对手进行采集,实际是由后台服务器软件进行数据存储的。不难看出,上面的视频存储系统都存在许多不足的地方,特别是当视频流增多、需要存储的数据量很大时,系统首先突出的问题就是因为存储数据的分散而难以维护;另外,加上数据存储的可靠性不高,整个系统的可靠性也就难以保障。不光如此,此类存储系统的存储空间利用率并不高,系统的可扩展性也经常被限制。因此,为应对海量视频监控的存储要求,本文特提出分布式存储的解决思路。
.........

1.2 国内外研究现状
目前,伴随着计算机网络、大数据和云计算业务的迅速普及与应用,以及人们对数据存储的可扩展性、可维护性、可靠性不断提出更高的需求,使得分布式存储系统的研究得到了前所未有的关注,更多的分布式存储系统以不同类型得以呈现出来[5]。HDFS 是一种开源的分布式文件存储系统,由 Apache 基金会所开发,处在分布式系统基础架构 Hadoop 生态圈的最底端,可以提供一种高性能、高可靠、高扩展性的存储服务,通常为 Hadoop 分布式计算框架所用[6]。HDFS 的设计架构采用Master/Slave 形式,即由一个管理节点(Namenode)和多个数据节点(Datanode)组成。其中 Namenode 维护文件目录树,提供文件的数据块索引以及数据块和Datanode 的对应关系,它管理着文件系统的命名空间,同时也控制着客户端对文件系统的访问;而 Datanode 则负责实际存储数据块的内容,同时也保存着数据块ID 与数据块的对应关系。HDFS 的核心之一为 Block 的设计。较大的 Block 优点在于不仅可以通过减少客户端与 Namenode 的通信需求来减少网络负载,还可以通过减少 Namenode 中需要保存的元数据的量从而简化元数据的管理。但也存在一定的缺点,例如当文件本身比较小时,大量并发的客户端访问就会造成系统出现负载不均衡等问题[7-9]。为了保证系统的高可靠性,HDFS 采用了下面几种容错方案:冷备机制;主从 Namenode 之间采用冷备方案进行元数据的同步,避免由于单Namenode 故障导致系统无法进行服务;租约机制;具体来说,就是当进行打开、创建、追加写文件操作之前,Namenode会与客户端保持一个“约定”,即签订一份租约。之后 Namenode 会轮询检查它所拥有的所有租约,一旦有租约到期,便会选择其他客户端重新享用该文件,从而避免资源长时间被某一个客户端所占用的现象;数据的正确性与一致性保证;每一个数据块都设置一个与之对应的版本号标志,通过对比 Namenode 与 Datanode 相同数据的版本号来判断数据的正确性。当两者不一致时,会触发该 Datanode 数据恢复流程;系统升级回滚;在集群上就可以直接升级 Hadoop,当系统升级失败时,则进行回滚,待系统运行正常后再次提交升级。这种方式避免了由于升级引入新的错误或者不兼容的修改等原因造成的系统故障。
...........

第二章 相关知识及理论介绍

2.1 CAP 理论
CAP 理论也称布鲁尔定理,为分布式系统设计的经典理论,指的是在一个分布式系统不可能同时满足一致性、可用性、分区容错性这三个特征[13]。由于 CAP理论的重要性,它在分布式系统设计过程中必须引起重视,其解释如下:1. 一致性(Consistence),就是指同一个数据同一个时刻在集群中的所有节点是否具有同样的值;2. 可用性(Availability),就是指集群在一部分节点发生故障后是否还能够正确响应客户端的操作请求;3. 分区容错性(Partition Tolerance),就是指系统通过数据分区的方式来保证在系统信息丢失或失败的情况下,不会影响系统的正常运行。目前,CAP 理论已成为分布式系统设计与开发的重要理论基石,由于它的存在,我们在分布式系统设计中必须有所舍弃,常用的做法有:1. 放弃 P,即不考虑分区容错性。一种具体的做法就是通过一台机器或者处于一个机架上的机器来处理所有与事务相关的操作,从而弱化由分区问题所带来的负面结果。不过这种做法会严重阻碍系统的可扩展性;2. 放弃 A,即不考虑系统可用性。系统必须在操作完成时才会对外提供服务,也就是说系统在等待数据重新一致的时间内,其可用性会大大降低;3. 放弃 C,即不考虑数据一致性。这种方式很有可能会造成数据错误,尤其是在多个模块的系统中,系统的可靠性将无法得到保证。大多数关系型数据库都是为了保证 A、C 而牺牲了 P,而大多数 NoSQL 数据库都是为了保证 A、P 而舍弃了 C[14]。孰优孰劣是没有定论的,需要根据实际的应用场景来选择最合适的组合。
.........

2.2 基本容错方案
分布式存储系统的容错通常是基于数据冗余的方式来实现的,其中副本和纠删码是常用的冗余方案[15-17]。副本就是将每个数据对象进行复制,这样的话,在保证数据对象拥有一个或一个以上的副本存活的前提下,系统就能正常地运行[18]。基于副本的容错策略的优势在于它部署简单并且易于实现,在提高系统可靠性的情况下,多个副本还可以提供并行访问,使得整个系统的数据 I/O 效率有所提升。不过它的缺点在于需要成倍的存储空间为代价,且容错率越高,代价越大,存储空间的利用率很低;如果系统的所有数据都采用副本冗余的方法,尤其是在应对海量数据存储,那么对存储空间的需求将是难以想象的,极大地限制了系统的可行性与可扩展性。纠删码策略就是对存储系统中的数据通过计算的方式进行编码存储,当数据损坏时,通过解码计算对数据进行恢复,从而保证系统的可靠性。具体做法可以表述为将一个为 M 大小的文件均分成等大小的 k 个数据块,然后将这 k 个数据块编码得到 n(n>=k+1)个编码块,并将这 n 个编码块分散存储到 i(i>=k)个不同的磁盘中。当磁盘发生故障或文件损坏时,系统通过读取这 n 个存储磁盘中任意 k 个磁盘中的编码块,然后进行相应的解码计算就可以将源数据恢复出来,从而实现系统的数据容错[19]。纠删码容错策略的不足之处在于编码/解码计算会增加系统的资源开销,并且在对数据恢复时对网络带宽也有一定的需求,不过相对于副本而言,在保证相同的可靠性条件下,纠删码策略能够最小化冗余存储开销。因此,基于纠删码的容错策略在海量数据存储上具有着重要的意义[20]。
...........

第三章 关键技术与模型...... 12
3.1 纠删码算法的应用 ............ 12
3.2 时间戳对比机制 ..... 13
3.3 基于最终一致性的操作方案 ....... 15
3.4 混合冗余容错策略 ............ 16
3.5 文件块版本号恢复机制 .... 16
3.6 最优数据恢复模型 ............ 17
3.7 本章小结 ...... 19
第四章 系统总体设计.......... 20
4.1 系统需求分析 ......... 20
4.2 系统模块 ...... 21
4.3 系统主要功能流程 ............ 23
4.4 异常处理机制 ......... 28
4.4.1 启动异常 ...... 28
4.4.2 卷操作异常 ............. 28
4.4.3 数据操作异常 ......... 30
4.5 系统可靠性分析 ..... 31
4.6 本章小结 ...... 31
第五章 系统详细设计及实现......... 32
5.1 名词解析 ...... 32
5.2 交互协议 ...... 34
5.3 元数据管理 ............. 36
5.4 主要功能流程的实现