论文部分内容阅读
随着互联网服务爆发式增长,用户对海量数据的需求加大,如何在动态网络环境中设计具有高可用性和高可靠性的分布式存储系统,已经成为热点问题。P2P技术的成熟推动了网络存储技术的发展。如今,国际互联网公司又提出“云存储”的概念,整合系统资源,用户付出较少费用,就可以得到稳定可靠的存储服务。现有的分布式系统,没有充分考虑利用服务器和端系统相结合的机制,提供高效的存储服务。本文首先对分布式存储和P2P技术进行分析,结合当前国内外研究现状和发展态势,再根据项目的实际需求,设计出高效的分布式海量存储系统PPDSS(P2P Distributed Storage System),即基于P2P的分布式存储系统,由端系统以及服务器系统构成覆盖网络,并且向终端存储演进。本文的主要工作有以下几点:第一,PPDSS系统设计,引入了分布式架构,去掉中心节点,将元数据索引和数据存储的负载分发到每一台服务器上。实现存储系统的基本功能,包括发布、下载、更新和删除文件。设计多种定时器,处理系统各种超时事件。第二,负载均衡模块的设计与实现,在副本变化的过程中,充分利用服务器的空闲资源,使得系统的服务性能得到最大的发挥,避免系统瓶颈和抖动的出现。第三,实现高效的P2P内容分发策略,在单线程模型下进行高效的网络交互和磁盘访问。针对P2P网络的特性,提出超级节点选择算法,定期选择上传速率高的节点作为邻居节点,优先向其分发数据,同时淘汰放大能力低的节点,有效利用服务器网络带宽,提高内容分发效率。第四,设计并实现Lazy机制,保证PPDSS的数据一致性。利用客户端对PPDSS进行测试,结果表明文件基本操作能够正常进行,客户随时都能下载到正确的数据。选择低负载服务器进行副本扩散能够达到负载均衡,并且降低了对客户下载速率的影响。与多进程服务器的性能对比,基于非阻塞网络读写和磁盘异步I/O的单线程服务器CPU使用率降低了60%。通过将超级节点选择策略和普通选择策略的内容分发效率进行对比,证明引入超级节点以后,客户平均下载完成时间缩短,性能提升17%以上。