论文部分内容阅读
随着Internet技术的发展与深入应用,互联网上的信息量呈爆炸式增长,如何有效的存储和管理这些数据成为专家学者们关注的焦点。到目前为止,对于分布式文件系统已经展开了大量的研究工作,设计实现了一批基于Linux的文件服务器来存储和管理这些数据。这些服务器通过高速的局域网络相连接组成服务器集群,对外提供高效、稳定的服务。通过对国内外比较优秀的分布式文件系统进行学习和总结,结合国家支撑计划现代服务业关键技术平台项目,论文设计并实现面向现代服务业服务基础技术平台的大规模分布式文件存储系统。文章首先从用户需求、外部接口及系统性能和可靠性需求三个方面对系统需求进行了分析,在此基础上提出了系统的总体架构。系统主要由主服务器(MasterServer)、文件块存储服务器(Chunk Server)及客户端(Client)三部分组成。Master Server主要负责对元数据进行管理,包括名字空间,文件到文件块的映射,文件块到Chunk Server的映射;Chunk Server负责管理文件块的I/O操作,根据Master Server的指令对文件块进行新建、删除和复制等操作;Client为应用端提供文件操作接口,包括文件的创建、追加、读取及删除操作。然后介绍了分布式文件系统涉及到的关键技术——主要包括实现方案、缓存设计及负载均衡算法设计三个方面。根据实际应用的需要,本系统采用共享文件系统的实现方案,在客户端主存对数据进行缓存以及通过write-through算法保证缓存的一致性。文章通过基于可配置权值的动态自适应请求调度算法实现对客户端请求和文件块分配负载均衡以及基于最小发送请求数算法实现文件块的Rebalance。最后对负载均衡算法进了测试分析。接着详细介绍了数据交互的总体架构和具体流程,主要包括文件的创建、追加、读取及删除操作。为了保证数据的可用性和一致性,本文提出了文件块拷贝、数据校验以及垃圾回收等机制。文章最后给出了系统原型实现类图并对整体性能进行了测试。在系统实现部分,介绍了基于IO流的基本数据类型的设计实现以及Master Server、ChunkServer、Client的实现类图。通过对文件的上传、下载、Chunk Server的负载情况及容错情况进行测试,测试结果基本上达到了预期效果。