(最新)基于p2p结构的分布式存储系统研究

(最新)基于p2p结构的分布式存储系统研究

ID:37180110

大小:139.28 KB

页数:3页

时间:2019-05-21

(最新)基于p2p结构的分布式存储系统研究_第1页
(最新)基于p2p结构的分布式存储系统研究_第2页
(最新)基于p2p结构的分布式存储系统研究_第3页
资源描述:

《(最新)基于p2p结构的分布式存储系统研究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、(宁夏通信服务公司宁夏银川750002)摘要:如何充分利用网络中的空余资源和快速定位资源在网络存储中显得非常重要。Kademlia(简称Kad)作为P2P的一个简易的节点组织和快速资源定位的路由算法,成为了当前的研究热点。通过把Kad应用到分布式存储系统中,设计出了一个能够整合空余空间的存储系统P2PStor。该系统采用高可扩展的P2P体系结构,将大量分散的节点组织成一个逻辑网络,充分利用被忽视的端系统资源构建成大规模分布式存储系统。P2PStor充分利用了P2P的优点,同时又发挥了Kad算法的快速查找资源的特点,从而在充分整合网络资源的同时还

2、能达到快速查找资源的目的。关键词:Kademlia分布式存储DHT异或运算1.引言随着网络带宽的大幅增加和计算机性能的迅速增强,在传统的C/S模式中被忽视的客户机成为一种宝贵的资源。微软公司对4801台个人计算机和10,568个文件系统,共10.5TB的数据进行了跟踪试验,分析表明,个人计算机平均只有50%的存储资源得到了利用,大量的存储空间处于空闲状态[1]。因此如何有效地利用这些资源成为一个研究热点。P2P分布式存储系统的目的就是通过互联网将闲散的网络资源整合起来,实现大规模的文件共享和存储功能,构建高可扩展、高可靠、高性能的分布式存储系统

3、。比较著名的P2P分布式存储系统系统如Nap-ster,Gnutella,Freenet,Chord,OceanStore等。本文利用Kad算法设计了一个基于P2P结构的分布式存储系统P2PStor(PeertoPeerbasedDis-tributedStorage),它能够有效整合可用资源和快速定位目标资源,给用户提供一个底层透明的大容量存取资源的空间,还具有查找速度快、效率高等优点。2.Kad相关原理介绍[2、3]Kad是一种分布式哈希表(DHT)技术,不过和其他DHT实现技术比较,如Chord、CAN、Pastry等,Kad通过独特的异

4、或算法(XOR)为距离度量基础,建立了一种全新的DHT拓扑结构,相比于其他算法,大大提高了路由查询速度。在Kad网络中,每一个节点都有一个160位的NodeID,用以唯一的标识这个节点。每个共享的文件也有一个160位的ID,它们都是由散列函数SHA1得出来的。对于任意一个节点,都可以把这棵二叉树分解为一系列连续的,不包含自己的子树。最高层的子树,由整棵树里不包含自己的树的另一半组成;下一层子树由剩下部分不包含自己的一半组成;依此类推,直到分割完整棵树。Kad协议确保每个节点知道其各子树的至少一个节点,只要这些子树非空。判断两个节点x,y的距离远

5、近是基于数学上的异或的二进制运算,表示为d(x,y)=x⊕y。对于任意给定的节点x和距离⊿≧0,总会存在一个精确的节点y,使得d(x,y)=⊿。另外,单向性也确保了对于同一个key值的所有查询都会逐步收敛到同一个路径上,而不管查询的起始节点位置如何。Kad的路由表是通过一些称之为K桶的列表构造起来的。对每一个i(0≦i﹤160),每个节点都保存有一些和自己距离范围在区间[2i,2i+1]内的一些节点信息,这些信息由一些(IPaddress,UDPport,NodeID)数据列表构成。每一个这样的列表都称之为一个K桶,每个桶都有最大不超过k个的数

6、据项,这里k是为平衡系统性能和网络负载而设置的一个常数。资源查找:Kad技术的最大特点之一就是能够提供快速的节点查找机制,并且还可以通过参数进行查找速度的调节。假如节点x要查找ID值为t的节点,Kad按照如下递归操作步骤进行路由查找:1、计算到t的距离:d(x,y)=x⊕y;2、从x的第[㏒d]个K桶中取出(为系统优化而设立的一个参数,主要是调节每步查询的并发度)个节点的信息,同时进行FIND_NODE操作。如果这个K桶中的信息少于个,则从附近多个桶中选择距离最接近d的总共个节点;3、对接受到查询操作的每个节点,如果发现自己就是t,则回答自己是

7、最接近t的;否则测量自己和t的距离,并从自己对应的K桶中选择个节点的信息给x。4、x对新接收到的每个节点都再次执行FIND_NODE操作,此过程5、通过上述查找操作,x得到了k个最接近t的节点信息。节点加入:在Kad网络中,如果节点u要想加入Kad网络,它必须要和一个已经在Kad网络的节点(比如w)取得联系。u首先把w插入自己适当的K桶中,然后对自己的节点ID执行一次FIND_NODE操作,然后根据接收到的信息更新自己的K桶内容。通过对自己邻近节点由近及远的逐步查询,u完成了仍然是空的K桶信息的构建,同时也把自己的信息发布到其他节点的K桶中。以

8、节点u为例,其路由表的生成过程为:1.最初,u的路由表为一个单个的K桶,覆盖了整个160位的空间;2.当学习到新的节点信息后,则u会尝试把新节点的信息

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。