




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于DHT的分布式云存储系统综述题目:基于云计算的知识管理综述专业:计算机应用技术年级:2014级学号:2014303100xx姓名:静水流云上海XX大学信息工程学院2014年12月28日基于DHT的分布式云存储系统的综述摘要:随着信息爆炸式的增长,集中式的存储方式的瓶颈效应愈发明显的遏制了数据存储的扩展性和并发访问的效率等,SAN和NAS等传统集中式存储系统越来越难以满足海量数据存储的需要。为了解决诸如此类的传统存储的瓶颈问题,分布式存储系统和云存储系统相继被提出,并成为学术研究和商用的热点内容。分布式存储系统实现涉及并使用的技术有很多,本文主要介绍基于DHT的分布式存储系统,重点在搜索技术方面。1引言把用户的文件分片后均衡存储在不同的分布式存储节点上,并利用虚拟目录服务器和基于P2P—DHT的目录服务器把文件元数据与文件数据片高效地对应起来,以提供高效目录服务,分布式存储节点以P2P方式工作以快速完成用户对文件数据的请求任务。分布式网络存储系统DNSS充分利用了DHT原理和P2P的搜索技术优势[3],有较高的可用性、可靠性和可扩展性。P2P技术突破了传统的C/S架构的模式,具有非常好的扩展性,但存在安全性、可控性问题[2]。利用DHT的资源管理优势和P2P的高扩展性,可以构建一个在全互联网范围内使用的可靠高效的海量分布式存储系统。而对于海量数据的分布式存储,主要涉及的技术问题是如何处理好数据的添加、删除以及最为重要的查找效率,本文结合分布式hash表的一致特性,重点讲述一下如何构造一个基于DHT的分布式存储系统,当然主要内容是DHT原理部分[1]。p2p网络和hash函数概述p2p网络简介p2p网络又称工作组,网上各台计算机有相同的功能,无主从之分,一台计算机都是既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,没有专用的服务器,也没有专用的工作站。在P2P网络环境中,成千上万台彼此连接的计算机都处于对等的地位,整个网络一般来说不依赖专用的集中服务器。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求作出响应,提供资源和服务。其主要分为两种:非结构化p2p网络和结构化p2p网络[4]。前者有网络拓扑是任意的、内容的存储位置与网络拓扑无关的特点;后者网络拓扑结构是有规律的,每个节点都随机生成一个标识(ID),内容的存储位置与网络拓扑相关,内容的存储位置与节点标识之间存在着映射关系。hash函数简介Hash函数可以根据给定的一段任意长的消息计算出一个固定长度的比特串,通常称为消息摘要(MDMessageDigest),一般用于消息的完整性检验。Hash函数有以下特性:给定P,易于计算出MD(P)只给出MD(P),几乎无法找出P无法找到两条具有同样消息摘要的不同消息Hash函数MD5:消息摘要长度固定为128比特;SHA-1:消息摘要长度固定为160比特。Hash函数应用于P2P的特性唯一性:不同的输入明文,对应着不同的输出摘要将节点IP地址的摘要作为节点ID,保证了节点ID在P2P环境下的唯一性SHAT(“”)=24b92cbld2b81a47472a93d06af3d85a42e463ea。DHT原理3.1DHT简述DHT(DistributedHashTable,分布式哈希表)算法就是使用分布式哈希函数来解决结构化的分布式存储问题[1]。分布式哈希表实际上是一张散列表,每个节点被分配给一个属于自己的散列块,并成为这个散列块的管理者。目前,典型的DHT协议包括美国MIT的Chord、UCBerkeley的pastry和CAN、纽约大学的Kademlia[2]。本文主要介绍chord和pastry。将内容索引抽象为〈K,V〉对K是内容关键字的Hash摘要K=Hash(key)V是存放内容的实际位置,例如节点IP地址等所有的〈K,V〉对组成一张大的Hash表,因此该表存储了所有内容的信息每个节点都随机生成一个标识(ID),把Hash表分割成许多小块,按特定规则(即K和节点ID之间的映射关系)分布到网络中去,节点按这个规则在应用层上形成一个结构化的重叠网络给定查询内容的K值,可以根据K和节点ID之间的映射关系在重叠网络上找到相应的V值,从而获得存储文件的节点IP地址,如图1所示。将分割的hash表按一定的规则分配到p2p网络的个节点上,如图2所示。
图1hash表他M)HB入杳询(KJ112S.1.2.3BKl=Hasti(xytr图1hash表他M)HB入杳询(KJ112S.1.2.3BKl=Hasti(xytrmp3VI-126.1,2.3Xyzjtip3HKVsfflJ图2hash表分布图3.2DHT搜索原理DHT搜索技术主要涉及定位和路由两部分:定位(Locating)节点ID和其存放的〈K,V〉对中的K存在着映射关系,因此可以由K获得存放该〈K,V〉对的节点ID路由(Routing)在重叠网上根据节点ID进行路由,将查询消息最终发送到目的节点。每个节点需要有到其邻近节点的路由信息,包括节点ID、IP等网络拓扑拓扑结构由节点ID和其存放的〈K,V>对中的K之间的映射关系决定拓扑动态变化,需要处理节点加入/退出/失效的情况,如图2所示。4Chord和Pastry分布式存储系统4.1Chord环原理4.1.1Hash表分布规则Hash节点(例如IP地址)->m位节点ID(表示为NID),Hash内容关键字一〉m位K(表示为KID)节点按ID从小到大顺序排列在一个逻辑环上,由〈K,V〉对组成的hash表存储在该节点后继节点上。Lookup(K):从K开始顺时针方向距离K最近的节点,如图3Chord环结构图所示。
图3Chord环结构图图3Chord环结构图每个节点仅维护其后继节点ID、IP地址等信息查询消息通过后继节点指针在圆环上传递直到查询消息中包含的K落在某节点ID和它的后继节点ID之间速度太慢0(N),N为网络中节点数[5]。如果建立查询指针表,将该节点临近节点的hash值作为指针存储在节点上,则可大大降低查询时间,如图4Chord环查询图所示。kidN9*1N14kidN9*1N14阳2W14-Nd*4HI4N砂IN32N42指针表中有指针表中有0(1旳N)个节点查询经过大^O(logN)^N42*1N4SM4.BN61Nd2*1^MlHU图4Chord环查询过程图⑴节点加入:新节点N事先知道某个或者某些结点,并且通过这些节点初始化自己的指针表,也就是说,新节点N将要求已知的系统中某节点为它查找指针表中的各个表项在其它节点运行探测协议后,新节点N将被反映到相关节点的指针表和后继节点指针中新结点N的第一个后继结点将其维护的小于N节点的ID的所有K交给该节点维护。⑵节点退出/失效:当Chord中某个结点M退出/失效时,所有在指针表中包含该结点的结点将相应指针指向大于M结点ID的第一个有效结点即节点M的后继节点为了保证节点M的退出/失效不影响系统中正在进行的查询过程,每个Chord节点都维护一张包括r个最近后继节点的后继列表。如果某个节点注意到它的后继节点失效了,它就用其后继列表中第一个正常节点替换失效节点4.2Pastry原理英国剑桥Microsoft研究院和Rice大学共同提出考虑网络的本地性,解决物理网络和逻辑网络的拓扑失配的问题基于应用层定义的邻近性度量,例如IP路由跳数、地理距离、往返延时等节点ID分布采用环形结构[5]。
4.2.1节点维护状态表路由表R:路由表包括log2bN(m/b)行,每行包括2b-1个表项路由表第n行与节点ID的前n个数位相同,但是第n+1个数位不同,也称为n数位前缀相同路由表中的每项包含节点ID,IP地址等根据邻近性度量选择距离本节点近的节点邻居节点集M:邻居节点集包含|M|个在邻近性度量上最接近于本节点的节点,|M|为2b或者2X2b,邻近性度量指的是物理上相邻节点邻居节点集通常不用于路由查询消息,而是用来维护本地性兰前苜点的鮪个数位依据邻近性度凰最搔近本节点的节点节点ID最接近本节点的节点没有合适节点的表项为空第n軒的前n个数悅与本节点相同113D123331203203<SMAIjLER.LARGER>10233021102331201023300010233230|LD2330D1'0221210212230120331203203011301233122302D313021022100312031013210221032330210200230LC21130210222兰前苜点的鮪个数位依据邻近性度凰最搔近本节点的节点节点ID最接近本节点的节点没有合适节点的表项为空第n軒的前n个数悅与本节点相同113D123331203203<SMAIjLER.LARGER>10233021102331201023300010233230|LD2330D1'0221210212230120331203203011301233122302D313021022100312031013210221032330210200230LC211302102223C231023032210231000102321213-10233001i10102331202—RoutlriflTable13021022|10200230]02212102|22301203|NeighborhoodsettableloOkup(K212D)tableloOkup(K212D)图5Pastry环节点路由表4.2.2Pastry查询过程当一个K为D的查询消息到达节点A,节点A首先看D是否在当前节点的叶子节点集中,如果是,则查询消息直接被转发到目的节点,也就是叶子节点集中节点ID与D数值最接近的那个节点(有可能就是当前节点),否则进行下一步在路由表中查找与D具有更长相同前缀的表项,如果该表项不为空,则将查询消息直接转发到该节点,否则进行下一步•例如路由D=0629的查询消息:5324-0748-0605-0620-0629。如果不存在这样的节点,当前节点将会从其维护的所有邻居节点集合中选择一个距离该键值最接近的节点作为转发目标,如图6Pastry查询过程图所示。RcutinqX丨旦NQ2Q1■N0212•N0221•NQ233N1113N20CI1图6Pastry查询过程图所示
节点路由表R中的每行与本节点具有相同的n数位长度前缀,但是下一个数位不同例如,对于节点N0201:N-:N1???,N2???,N3???N0:N00??,N01??,N03??N02:N021?,N022?,N023?N020:N0200,N0202,N0203当有多个节点时,根据邻近性度量选择最近的节点,此过程维持了较好的本地性。⑴节点加入:初始化状态表新节点开始时知道一个根据邻近性度量接近自己的节点A节点A可以通过使用扩展环IP组播等机制自动定位,或者由系统管理员通过其它手段获得新节点通过运行SHA-1算法计算自己的IP地址的摘要得到节点ID为X节点X向节点A发送join消息,Pastry将该消息路由到节点ID在数值上最接近X的节点Z接收到join消息的节点,包括A、Z,以及A到Z路径上所有的节点将发送它们的状态表给X,X检查这些信息,然后节点根据下面的过程初始化状态表;由于A与X在邻近性度量上接近,所以使用A的邻居节点集来初始化X的邻居节点集由于Z的节点ID与X最相近,因此使用Z的叶子节点集来初始化X的叶子节点集X将join消息经过的第i个节点的路由表的第i行作为自己路由表的第i行Join消息经过的第i个节点与X的前i个数位相同向其它相关节点通告自己的到来新节点向邻居节点集、叶子节点集和路由表中的每个节点发送自己的状态,以更新这些节点的状态表。此过程如图7冥知谴占Join消息Z0620路由消息到节点ID冥知谴占Join消息Z0620路由消息到节点ID柱数隹上量接近X的节点站却卞rDLrUngtabiB绅卜fr-AtlJo—????—0???Cj—OfiT?Zj—M2?图7Pastry节点加入图⑵节点退出/失效:叶子节点集L中的节点退出机制,本地节点要求当前叶子节点集合L中的ID最大的节点或ID最小的节点把它的叶子节点集合L1发送过来,如果L1中存在L中没有的节点,则从中选择一个替代失效节点•除非|L|/2个节点同时失效,否恢复过程始终是有效的失效检测,和叶子节点集中的节点周期性交互存活消息路由表R中的节点退出机制:如果失效节点对应的表项为Rdl(第l行第d列),则联系同一行中的所指向的存活节点并且获取该节点的Rdl表项,如果l行中没有存活节点,则从下一行选择一个节点失效检测,和路由表中的节点联系(例如发送查询消息)如果无反应则检测到节点失效5Chord和Pastry比较Chord和Pastry都是以DHT为原理,构建的不同形式的环状结构,两者差别较大,具体比较如下表1所示[6]。ChordPastry拓扑结构节点ID分布在单向环形空间节点ID分布在单向坏形空并且表示为以力为基的数<K.V>存储储存在K的后雅节点即节点ID大FK的第一个节点上存储在节点ID与K癡接近的节点上路由舀询消息通过话继节点指针或者指针表找到K的后继节点比较K和节点ID的前缀,下一跳节自购D具有更长的前缴或者在数值上更接近K节点维护状态店继节点指针或者指针表|O(logN)叶子节点集、邻居节点集:妙或者2愕略由表;log』”鷲丄1}路由性能O(logN)0(1oglog』N)稳健性姐內全最近的晞继节点只有在|L|空个叶子节点完全失效时才会路由失败路由本地性狀态表(路由表、邻居节点集、叶子节点集)中表项迭择在邻近性度量上®本节点相近的节点表1Chord和Pastry对比表6总结与思考基于DHT原理的存储结构,能够很好的解决之前以集中方式存储的弊端,可以灵活的适用于分布式云存储架构,虽然本文只提到用DHT实现的Chord和Pastry环结构的基本原理,并没有提及如何将大数据分割,分布存储等问题,但这个原理在分布式存储系统中如何快速查找定位文件是可行的。当然,短期内很难在云计算产业上出现类似文中提出的覆盖整个因特网的基于DHT云存储架构,但文中提出的DHT原理还是具有研究和实用价值。我们相信,在不久的将来,覆盖因特网甚至私人网络的云存储实体将会出现。参考文献:杨峰,李凤霞,余宏,等•一种基于分布式哈希表的混合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医职业药师试题及答案
- 天津市滨海七所重点学校2025届数学高二下期末检测模拟试题含解析
- 云南省施甸县第三中学2025届数学高二下期末质量检测模拟试题含解析
- 云南省屏边县民族中学2025届物理高二下期末质量跟踪监视模拟试题含解析
- 盐城市高二年级下学期期终考试地理试题
- 餐饮档口外卖配送与配送服务合同
- 教育机构场地出租印花税缴纳标准合同
- 餐饮行业服务员竞业禁止合同范本
- 教育培训机构场地租赁分成与课程开发合同
- 拆除工程拆除现场安全管理合同模板
- 四年级数学下册必考重难点
- 施工现场的交通与道路安全管理
- 2024新人教版初中英语单词表汇总(七-九年级)中考复习必背
- 高中英语新人教版必修三全册单词(按单元顺序)默写版(含答案)
- 我国圆明园文化遗产的资料
- 《血氨的检测与临床》课件
- AOI直通率持续提升报告
- 医保按病种分值付费(DIP)院内培训
- 施工钢结构制作安装环境因素识别表
- 污水井巡查记录表
- 2关于更换现场项目经理的函
评论
0/150
提交评论