基于DHT的分布式文件系统毕业论文.doc
《基于DHT的分布式文件系统毕业论文.doc》由会员分享,可在线阅读,更多相关《基于DHT的分布式文件系统毕业论文.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本科毕业论文论文题目 基于DHT的分布式文件系统 目 录摘 要1关键词1Abstract1Key words21 绪 论21.1分布式系统的定义31.2 目 标51.2.1 让用户连接到资源61.2.2 透明性61.2.3 开放性71.2.4可扩展性81.3 分布式文件系统81.3.1 SUN网络文件系统91.3.2不同分布式文件系统对比122 P2P技术132.1 P2P技术132.1.1 P2P的背景与发展132.1.2p2p技术的分类142.1.3p2p的特性202.2 P2P搜索技术212.2.1非结构化搜索技术212.2.2基于DHT的搜索技术222.3 Chord262.3.1 f
2、inger表262.3.2 Chord算法的查找过程273 基于DHT的Chord算法的改进313.1影响搜索算法性能的因素313.2小世界现象对P2P搜索技术的启示323.3 NChord搜索算法363.3.1 Nchord算法网络拓扑结构363.3.2节点加入时的策略373.3.3节点退出时的策略383.3.4节点失效时的策略393.3.5 NChord算法原理393.3.6Nchord搜索算法的步骤413.3.7Nchord算法特点42结论43致谢43参考文献44基于DHT的分布式文件系统研究学生姓名:王京 学号:20077101021信阳师范学院华锐学院数计系 计算机科学与技术专业指导
3、教师:杨军 职称:讲师摘 要:随着信息时代的飞速发展,人们日益发现单个计算机的能力很是有限,于是自然而然想到把各个地方的计算机联合起来处理信息,这就是分布式的提出,随即涉及到资源共享的问题,这就是我们研究的分布式文件系统,随着P2P(即Peer-to-Peer)技术的发展,很好的解决了分布式存储与计算方面的问题,它作为一种全新的互联网技术,将传统的以服务器为中心的互联网应用模式提升为以用户为中心的对等模式。P2P在文件交换,对等计算,协同工作,搜索服务等方面都有着重要的应用。P2P文件交换系统的发展也由最初Npaster的完全中心化模型,Gnutella的完全非中心化模型,发展到现在的BitT
4、orrnet、eMul/eeDoknye、KZaza等混合模型。随着近年来DHT(Disrtibuted Hash Table)技术的不断发展,DHT在p2p文件交换系统中扮演着越来越重要的角色,Kdamelai作为覆盖网络被广泛使用到P2P文件交换系统中。P2P网络通常使用DHT作为其路由表,比较典型的算法有Chord、CAN、Kademlia、Tapestry、Pastry等,这些算法不仅可靠性高,容错性强,而且查找的效率非常高,查找算法的复杂度基本上都是O(LogN),被广泛地应用于各种各样的分布式系统中。本文将比较分析以上各算法的原理和差异,重点分析、研究和改进Chord算法,减少路由
5、跳数和系统开支。 关键词:分布式;分布式文件系统;p2p;DHT;ChordAbstract:With the rapid development of information era, People increasingly find a single computer ability is very limited, Naturally they tempted to connect with computers in every region to processing information,thus the distributed proposed,but then comes th
6、e resource sharing problem,thats the Distributed File System here what we are talking about,as the development of p2p(peer-to-peer) technology,the problem of distributed storage and computing is well solved,the technology of p2p(peer-to-peer), as a new Internet technology,promoting the traditional c
7、entralized server Internet Application Modle to centralized user Peer to Peer Modle.P2P is important in Data-Exchange,Peer-to-Peer Computing,Coordinated Working,Search Service,etc,In P2P file-sharing systems,it is developing from the beginning centralized model Napster and decentralized model Gnutel
8、la to the current mixed modle, such as BitTorrent,eMule,Kazza,etc.As the DHT(Distrituted Hash Table) technology develops,it plays a more important role in P2P file-sharing system,Kademlia is used widely in P2P file-sharing system as an overlay network. Distributed architecture of the network is comm
9、only used to build P2P networks using DHT algorithm,forinstance,Chord,CAN,Kademlia,Tapestry,Pastry,etc.These algorithms not only possess high reliability and strong fault tolerance,but also have efficient look up.The complexity of search algorithm is basically O(LogN),so they are widely used in a va
10、riety of distributed storage systems. This paper study and compare the principles and differences of above DHT algorithms,research、analysis and promote the Chord algorithm more in-depth.thus decreasing the jump numbers during the process of searching and the cost of system.Key words:distributed;dist
11、ributed file system;p2p;DHT;Chord1.绪 论 计算机系统正在经历一场革命。1945年是现代计算机时代的开始。从那时起一直到1985年,计算机一直是庞大笨重而昂贵的。即便是小型机每台也要上万美元,因而大多数机构都只有很少的几台计算机。而且由于没有把这些计算机连接起来的手段,所以只能单独的使用它们。 然而,从20世纪80年代中期开始,技术领域中两方面的进步开始使这种局面有所改观。第一项进步是高性能处理器的开发。起初这些机器是8位机,但是很快16位、32位乃至64位的cpu纷至沓来,得到了普及。很多使用这些cpu的机器的计算性能都可以与大型机相媲美,而价格却比大型机便
12、宜得多。 近半个世纪以来,在计算机技术改进方面所取得的成果数量之多对于其他工业来说是完全无法想象的。一台计算机的价格从1亿美元下降到了1000美元,而运算速度却从每秒一条指令提升到每秒1千万条指令,性能价格比提升了大约 1012倍。如果汽车的性能价格比在同一时期以同样的速率是提升,那么一辆“劳斯来斯”牌轿车现在只值1美元,而且每消耗1加仑(1加仑=4.5461升)汽油可以行驶10亿英里(1英里=1.6093公里)。(不幸的是如果果真如此,光是说明如何打开车门这件事,就可能在用户手册中占用长达200页得篇幅。) 第二项进步是高速计算机网络的发明。利用局域网技术可以将位于同一建筑物里的数百台计算机
13、连接起来。使用这种连接方式可以在几us内将少量数据从一台机器传输到另一台机器。如果要传输大量的数据,传输数率可以达到101000Mb/s。利用广域网技术可以连接全球范围内数百万台机器,机器间的数据传输速率从64Kb/s到若干Gb/s不等。 现在,由于有以上这些技术可供使用,因此把若干由大量计算机组成的计算机系统彼此通过高速网络相连接,不但是可行的,而且是很容易实现的。这种系统一般称为计算机网络或分布式系统,以突出其与传统的集中式系统(centralized system,也称为单处理器系统,single processor system)的差异。传统的集中式系统一般由单个计算机及其外围设备构成
14、,也可以包含一些远程终端。1.1分布式系统的定义 已经有很多文献给出了分布式系统的定义,但是不同文献给出的定义彼此不尽相同,而且没有一种令人满意。考虑到本文的目标,我们只给出一个粗略的描述: 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。 这个定义包含了两方面的内容。第一方面是关于硬件的:机器本身是独立的,第二个方面是关于软件的:对用户来说他们就像在与单个系统打交道。这两个方面共同阐明了分布式系统的本质,缺一不可。我们先介绍关于软硬件的一些背景材料,与继续探讨分布式系统的定义相比,把注意力集中在分布式系统的重要特性上可能更好一些。其重要特性之一是,各种计算机之间的
15、差别以及计算机之间的通信方式的差别对用户是隐藏的。同样,用户也看不到分布式系统的内部组织结构。另一重要特性是,用户和应用程序无论在何时何地都能够以一种一致的统一的方式与分布式系统进行交互。 分布式系统的扩展或者升级应该是相对比较容易的1。这一特性是由于下述原因:1、 分布式系统由独立的计算机组成,但同时隐藏了其中单个计算机在系统里所承担任务的细节。2、 即使分布式系统中某些部分可能暂时发生故障,但其整体在通常情况下总是保持可用。3、 用户和应用程序不会察觉到那些部分正在进行替换和维修,以及加入了哪些新的部分来为更多的用户和应用程序提供服务。 为了使种类各异的计算机和网络都呈现为单个的系统,分布
16、式系统常常通过一个“中件层”组织起来,该“软件层”在逻辑上位于由用户和应用程序组成的高层与由操作系统组成的底层之间,如图1.1所示。这样的分布式系统有时又称为中间件(middleware)。图1.1作为中间件组织的分布式系统(请注意,中间件层延伸到了多台机器上)现在我们考察一下分布式系统的几个例子。第一个例子是位于一所大学或者某个公司部门的工作站网络。该系统除了包括每个用户自己的工作站以外,还应该包括机房内的一个处理器池。这些处理器并不分配给特定的用户,而是根据需要进行动态调配,这样的系统可能包含一个单一的文件系统,允许所有的机器通过相同的方法并且使用相同的路径名来访问所有的文件。并且,当用户
17、键入一个命令的时候,系统将寻找执行该命令的最佳位置,也许会在自己的工作站上直接执行该命令,也可能会在别人的一个空闲的工作站上执行,还有可能有机房中某个尚未分配的处理器执行。如果系统整体外观和行为与传统的单处理器分时系统(即多用户系统)相似,那么这个系统就可以看做是分布式系统。第二个例子是某个工作流信息系统,该系统支持对账单的自动的处理。一般情况下,会有来自多个不同部门的人员在不同的地点使用这样的系统。例如,销售部的人员可能遍布在很大的一个区域,甚至全国。可以通过电话网络(或者蜂窝电话)连接到系统的膝上型计算机下达订单。收到的订单由系统自动传送到计划部,接着新的内部调货订单就会送达仓储部,同时有
18、财务部处理账单。该系统自动将订单传送到相关人员手中。用户根本就看不到系统中订单处理的物理流程;对于用户来说,这些订单像是由一个集中式数据库处理的一样。 最后一个例子是万维网。它提供了一种简单、一致并且统一的分布式文档模型。要查看某个文档,用户只须激活一个引用(即链接),文档就会显示在屏幕上。理论上(但目前在实际中并不是这样)并不需要知道该文档来自于哪个服务器,更用不着关心服务器所在的位置。要发布一个文档也很简单:只需要赋予它一个唯一的URL名,让该URL指向包含文档内容的本地文件即可。如果万维网向用户呈现的是一个庞大的集中式文档系统,也可以认为它是一个分布式系统。不幸的是,我们现在还无法做到这
19、一点。例如,用户明白这样一个事实:文档位于不同的地点,并由不同的服务器处理。1.2 目 标 分布式系统必须能够让用户方便地与资源连接;必须隐藏资源在一个网络分布这样一个事实;必须是开放的;必须是可扩展的。1.2.1 让用户连接到资源 分布式系统最主要目标是使用户能够方便地访问远程资源,并且以一种受控的方式与其他用户共享这些资源。资源几乎可以是任何东西,其典型例子包括打印机、计算机、存储设备、数据、文件、Web页以及网络,但这些只是资源中的一小部分。有很多理由要求资源共享,一个显而易见的理由是降低经济成本。例如,让若干用户共享一台打印机比为每一位用户购买并维护一台打印机要划算的多。基于同样的原因
20、,共享超级计算机和高性能存储系统这样昂贵资源也是很有意义的。1.2.2 透明性 如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统,这样的分布式系统就称为透明的。 (1)分布式系统的透明性 透明性的概念可以运用到分布式系统中的各个方面,如图1.2所示。透明性说明访问隐藏数据表示形式的不同以及资源访问方式的不同重定位隐藏资源是否在使用过程中移动到另一个位置并发隐藏资源是否由若干相互竞争的用户共享故障隐藏资源的故障和恢复持久性隐藏资源(软件)位于内存中还是硬盘中图1.2 分布式系统中不同形式的透明性(ISO 1995) 访问透明性指对不同数据表示形式以及资源访问方式的隐藏。例如,要将一
21、个整型数从基于Intel处理器的工作站传输到一台Sun SPARC机器上,我们必须考虑到Intel处理器传输数据字节的顺序是little endian格式(先传输数据的高位字节),而SPARC处理器却使用big endian(先传输数据的低位字节)。在数据表示形式上还会存在其他的差别。例如,分布式系统中的多个计算机系统可能运行的是不同的操作系统,这些操作系统的文件命名方式不同。文件命名方式的差异以及由此引发的文件操作方式的差异都应该对用户和应用程序隐藏起来。(2)透明度 虽然对于任何分布式系统来说,实现分布透明性通常是可取的,但是在某些情况下,把所有分布情况都对用户屏蔽得严严实实并不见得有好处
22、。这样的一个例子是,如果您订阅了一份电子报刊,并且要求它在每天本地时间早上7点之前就寄到邮箱里,而您现在呆在地球另一端的不同时区,您就会发现“早报”不在是早上寄到的。 另外,还必须在高度的透明性和系统性能之间进行权衡,得出折衷方案。例如,许多Internet应用程序会不断尝试连接到某台服务器,多次失败后才最终放弃。这种在用户转向另一台服务器之前竭力隐藏服务器短暂故障的企图会导致整个系统变慢。在这种情况下,最好还是让用户早一些放弃,或者至少允许用户取消这种连接的尝试。 在设计并实现分布式系统时,把实现分布的透明性作为目标是正确的,但是应该将它和其他方面的问题(比如性能)结合起来考虑。1.2.3
23、开放性 开放的分布式系统的另一个重要目标是,它必须是灵活的,要能够方便的把由不同开发人员开发的不同组件组合成整个系统。同时,还必须能够方便地添加新组件、替换现有的组件,而不会对那些无须改动的组件造成影响。换句话说,开放的分布式系统应该是可扩充的。例如,在灵活的系统中,要添加可运行于另一个操作系统上的部件应该是比较容易的,即使要更换整个文件系统也不应该太对困难。但根据我们从日常实践中得到的经验,要实现灵活性是比较困难的。1.2.4可扩展性 通过互联网,世界范围的互联正在变得像给世界任何地方的人寄张明信片一样平常。考虑到这种情况,分布式系统开发者都将可扩展性作为最重要的实际目标之一。 系统的可扩展
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DHT 分布式 文件系统 毕业论文
限制150内