- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于PP结构的分布式系统研究.doc
基于P2P结构的分布式存储系统研究
宁夏电信 李迅
摘 要 如何充分利用网络中的空余资源和快速定位资源在网络存储中显得非常重要。Kademlia(简称Kad)作为P2P的一个简易的节点组织和快速资源定位的路由算法,成为了当前的研究热点。通过把Kad应用到分布式存储系统中,设计出了一个能够整合空余空间的存储系统P2PStor。该系统采用高可扩展的P2P 体系结构,将大量分散的节点组织成一个逻辑网络,充分利用被忽视的端系统资源构建成大规模分布式存储系统。P2PStor充分利用了P2P的优点,同时又发挥了Kad算法的快速查找资源的特点,从而在充分整合网络资源的同时还能达到快速查找资源的目的。
关键词 Kademlia 分布式存储 DHT 异或运算
1 引 言
随着网络带宽的大幅增加和计算机性能的迅速增强,在传统的C/S模式中被忽视的客户机成为一种宝贵的资源。微软公司对4801台个人计算机和10 ,568个文件系统,共10.5 TB 的数据进行了跟踪试验,分析表明,个人计算机平均只有50%的存储资源得到了利用,大量的存储空间处于空闲状态[1]。因此如何有效地利用这些资源成为一个研究热点。
P2P分布式存储系统的目的就是通过互联网将闲散的网络资源整合起来,实现大规模的文件共享和存储功能,构建高可扩展、高可靠、高性能的分布式存储系统。比较著名的P2P分布式存储系统系统如Napster,Gnutella,Freenet, Chord,OceanStore等。本文利用Kad算法设计了一个基于P2P结构的分布式存储系统P2PStor(Peer to Peer based Distributed Storage),它能够有效整合可用资源和快速定位目标资源,给用户提供一个底层透明的大容量存取资源的空间,还具有查找速度快、效率高等优点。
2 Kad相关原理介绍[2、3]
Kad是一种分布式哈希表(DHT)技术,不过和其他DHT实现技术比较,如Chord、CAN、Pastry等,Kad通过独特的异或算法(XOR)为距离度量基础,建立了一种全新的DHT拓扑结构,相比于其他算法,大大提高了路由查询速度。
在Kad网络中,每一个节点都有一个160位的NodeID,用以唯一的标识这个节点。每个共享的文件也有一个160位的ID,它们都是由散列函数SHA1得出来的。对于任意一个节点,都可以把这棵二叉树分解为一系列连续的,不包含自己的子树。最高层的子树,由整棵树里不包含自己的树的另一半组成;下一层子树由剩下部分不包含自己的一半组成;依此类推,直到分割完整棵树。
Kad 协议确保每个节点知道其各子树的至少一个节点,只要这些子树非空。判断两个节点x,y的距离远近是基于数学上的异或的二进制运算,表示为d(x,y) = x⊕y。对于任意给定的节点x和距离⊿≧0,总会存在一个精确的节点y,使得d(x,y)=⊿。另外,单向性也确保了对于同一个key值的所有查询都会逐步收敛到同一个路径上,而不管查询的起始节点位置如何。
Kad 的路由表是通过一些称之为K 桶的列表构造起来的。对每一个i (0≦i﹤160),每个节点都保存有一些和自己距离范围在区间[2i,2i+1]内的一些节点信息,这些信息由一些(IP address, UDP port, Node ID)数据列表构成。每一个这样的列表都称之为一个K桶,每个桶都有最大不超过k个的数据项,这里k是为平衡系统性能和网络负载而设置的一个常数。
资源查找:Kad技术的最大特点之一就是能够提供快速的节点查找机制,并且还可以通过参数进行查找速度的调节。假如节点x要查找ID值为t的节点,Kad按照如下递归操作步骤进行路由查找:
1、计算到t的距离:d(x,y) = x⊕y ;
2、从x 的第[㏒ d]个K 桶中取出α(为系统优化而设立的一个参数,主要是调节每步查询的并发度)个节点的信息,同时进行FIND_NODE操作。如果这个K桶中的信息少于α个,则从附近多个桶中选择距离最接近d的总共α个节点;
3、对接受到查询操作的每个节点,如果发现自己就是t,则回答自己是最接近t 的;否则测量自己和t 的距离,并从自己对应的K 桶中选择α个节点的信息给x。
4、x 对新接收到的每个节点都再次执行FIND_NODE操作,此过程不断重复执行,直到每一个分支都有节点响应自己是最接近t的。没有迅速响应的节点将被迅速排除出候选列表,直到其响应。
5、通过上述查找操作,x得到了k个最接近t的节点信息。
节点加入:在Kad网络中,如果节点u 要想加入Kad网络,它必须要和一个已经在Kad网络的节点(比如w)取得联系。u首先把w插入自己适当的K桶中,然后对自己的节点ID执行一次FIND_NODE 操作,然后根据接收到的信息更新自己的K 桶内容。通过
文档评论(0)