论文部分内容阅读
存储已成为以数据为中心的信息时代核心之一。数据存储已成为互联网热潮之后的又一次新的技术浪潮,它将网络带入了以数据为中心的时代。基于P2P的分布式存储系统通过把闲散的存储资源组织成一个逻辑上统一视图,为用户提供超大容量存储服务。P2P网络把多个结点以对等的方式组织起来,用户使用存储空间并通过该平台自主寻找其他结点进行数据备份和存储空间交换。P2P存储易于维护、可扩展好、自配置功能强,它可以和网络中大量加入的个人电脑和服务器中的存储器组合成存储系统。因此,对P2P存储系统及其性能的研究具有重要意义。
可靠性是可信研究的基本内涵之一,同时更是P2P存储系统研究的关键。对于P2P存储而言,可靠性多从系统的角度出发,可用性则更多的关注于数据本身,二者并不相同。躄如,一个暂时离线的结点,其上保存的数据在这一刻暂时不可访问,降低了数据的可用性。但是数据却并没有丢失,因此系统的可靠性没有发生变化,除非暂时离线的结点后来被证实永久离开。故障检测是提高P2P存储系统可靠性的关键技术。现有故障检测或是采用静态故障检测方式,这种方法缺乏灵活性,故障检测的错误率偏高,检测的时间固定不变,易受设备或者网络链接故障的影响;或是采用动态方式,但需要对心跳信息和网络负载做某种概率假设,并不一定和实际的网络条件相符合。因此,设计一种符合P2P网络特点和存储系统要求的故障检测算法对于构建高可靠性的存储系统尤为关键。
主要贡献包括以下几个方面:
(1)目前对存储系统可靠性的研究多是基于目标结点可用性较高和同构的系统,它一般围绕数据可靠性度量要求和数据副本的数量关系建立模型,缺少对P2P这种结点高度动态异构系统的分析。针对该问题,通过使用故障树和随机Petri网对P2P存储系统可靠性建模,分析比较冗余机制与可靠性的关系,从理论上指明研究系统可靠性的目的和基本原则。P2P存储系统通过文件或者数据的冗余来提高系统可靠性,它与数据的冗余度测量、数据副本的一致性维护、结点组织的可控数量(即一个P2P结点群组内所能管理的最大结点个数)以及单个结点的可用度均有关。为了提高数据查询精确率和数据副本的分发效率,采用何种结构的底层覆盖网络,系统中的结点如何组织和管理,这些都是可靠性研究需要解决的问题。模型分析方法可以在系统组建之初帮助优化系统的设计。
(2)在分布式环境中,基于不可靠故障检测思想,针对目前故障检测不足,实现了一种动态故障检测算法。P2P存储系统具有分布式系统的基本特征, 广域网环境的各个主机通过分布式文件系统组织在一起,为了相互之间保持联系,必须发送信息。这种联系有时候并不可靠,比如说一个正常工作的结点却被系统误判为失效。P2P存储系统结点具有高度动态性,结点的暂时离线频繁发生。如果这种情况下故障检测器判断结点故障,并采取故障切换措施的话,增加了系统不必要的损耗,检测的错误率大大提高。因此提出了一种自反馈的动态故障检测算法。实验表明,该算法和Chen的方法相比,在仅仅增加了少量计算的前提下减少了故障检测误判率和故障检测时间。
(3)设计了一种半结构化的P2P存储系统结构,通过检测信息的响应时间对结点分组,有效的减少了结点在物理网络和覆盖网络中的位置不匹配的问题。半结构化P2P覆盖网络结合了结构化和非结构化的特点,具有很好的扩展性和可管理性。 所提出的半结构化P2P存储系统,通过检测信息的响应时间对结点分组,并结合结点的在线率和结点的响应时间计算每个结点的信誉值,对组内每个结点按照信誉值大小排队,并以此为选择超级结点的依据。仿真实验表明,设计的系统结构降低每个结点加入和退出时发送的消息数量,减少了信息检索延迟,取得了较好用户满意度。
(4)实现了一种超级结点选举服务机制,主要包括四个基本部分:注册中心、组成员维护模块、故障检测器和超级结点选举模块。超级结点作为半结构化P2P存储系统最重要的部分,一方面超级结点需要管理普通结点以及响应用户的数据查询要求;另一方面超级结点又需要保持和外界的联系,对全局的数据传输和路由起到支撑作用。注册中心负责结点的加入和退出。组成员维护模块负责结点的管理,信息表的维护,以及接收新加入结点的注册信息。故障检测器负责监测结点状态和统计结点历史信息。超级结点选举模块负责在超级结点失效时重新选择一个新的结点作为超级结点。实验结果表明,该超级结点选举算法平均服务恢复时间和平均错误率均小于Toung等人实现的S1,而服务的可用性接近或略低于S3,达到了实验预想的效果,即在保持一定可用性的条件下,减少错误率和服务恢复的时间,从而提高了P2P存储系统的可靠性。实现的超级结点服务机制可以根据用户需求灵活部署,为以后解决方案的实现提供了便利。