一种基于缓冲区的文件存储方法

文档序号:10654079阅读:327来源:国知局
一种基于缓冲区的文件存储方法
【专利摘要】本发明涉及一种基于缓冲区的文件存储方法,旨在解决在发生服务器故障时的文件存储服务方面的瓶颈问题。步骤如下:建立稳定的传输模型;文件按照文件名的特征映射到一个节点,在用户下载完成并未退出系统时,这个客户端上的文件作为一个文件副本源;大文件元数据管理服务器,用于存储大文件的元数据、存储大文件存储服务器上大文件数据块的映射信息和处理用户的请求信息;缓存服务器,用于存储小文件、小文件的元数据和缓存部分访问量大的大文件。本发明有益的效果是:提高云服务端的文件系统存储效率,加强文件系统的故障响应及恢复速度;采用动态扩展缓冲区的管理方法提高文件传输性能,降低服务器的资源消耗,保障服务安全有效的进行。
【专利说明】
一种基于缓冲区的文件存储方法
技术领域
[0001]本发明涉及文件传输领域,主要是一种基于缓冲区的文件存储方法。
【背景技术】
[0002]在世界范围内广泛应用的分布式文件系统有NFS,AFS和Coda,其突出特点是具有位置透明性和迀移透明性,分布式文件系统可以基本满足了构建大规模存储系统的需要。分布式文件服务器具备了分布式系统的一些优点,具有很高的文件访问性能,通过冗余机制保证了系统可靠性,并且具有良好的可扩展性,支持大容量的存储。
[0003]分布式文件系统指在服务提供商利用多台服务器进行集群共同存储数据的文件系统,用户在读写文件时需要发送请求,后台服务器处理用户请求并将请求结果发还给用户,当前使用最广泛的分布式文件系统是HDFS,然而该系统具有两个主要缺陷:无法高效存储大量的小文件和只有单一命名节点进行全局管理。
[0004]分布式文件服务器作为一个存储系统,包含稳定的文件源,并包含多份文件冗余,客户端可以从多个服务器同时下载文件的部分内容,如果从网络中接收到数据就立刻写入磁盘,传输过程将会产生多次的磁盘读写操作,采用软件缓冲区可以有效的减少对磁盘的操作,明显提升大文件的传输速度。
[0005]分布式文件服务器中的缓冲区是指内存中的一块区域,一个缓冲区包含若干数据块,每个块包含一个小块文件数据以及它在文件中的起始位置和结束位置等信息,每个块具有存在、空闲、填充中、充满四种状态。对缓冲区频繁的读写,需要一个高效的管理方法,以减少内存分配与释放造成的碎片。

【发明内容】

[0006]本发明要解决上述技术所存在的缺陷,提供一种基于缓冲区的文件存储方法,通过配置和管理软件缓冲区,解决多线程文件传输带来的磁盘读写和内存分配问题。
[0007]本发明解决其技术问题所采用的技术方案:一种基于缓冲区的文件存储方法,步骤如下:
[0008]I)建立稳定的传输模型,在这个分布式文件服务器中包含稳定的文件源,每个文件具有多个相同的文件副本的存在,且这些副本保存在多个服务器上;系统为客户端提供了几个外部接口,只要连接到其中的一台服务器,就能访问到系统中所有的文件资源,系统中的每一台服务器,都具有资源定位的功能;
[0009]2)在这样的文件存储系统中,文件被保存在多个节点上,按照文件名的特征映射到一个节点,这个节点上的文件副本的服务器对多个文件副本进行管理,当有用户下载该文件时,记录这个客户端的信息,在用户下载完成并未退出系统时,这个客户端上的文件作为一个文件副本源;
[0010]3)大文件元数据管理服务器,用于存储大文件的元数据、存储大文件存储服务器上大文件数据块的映射信息、管理大文件的命名空间和处理用户的请求信息;缓存服务器,用于存储小文件、小文件的元数据和缓存部分访问量大的大文件;
[0011]4)为了提高文件存储的效率,并不是接收到一个文件数据块就写磁盘,而是将文件数据块缓存在缓冲区中,当缓冲区中达到一定数量的块时,再由统一的一个线程将缓冲区中的数据写到磁盘中,写磁盘线程从缓冲区中提取块时,在已满块中选择最佳的一块,将其写入磁盘;
[0012]5)缓存服务器中存储部分访问量大的大文件的存储方式为:当缓存服务器的缓存区空间足够时,缓存服务器将新大文件直接添加到大文件缓存区并在元数据保存区中添加新的大文件的元数据;当缓存服务器的大文件缓存区空间不足时,若缓存服务器需要添加一个新的用户经常访问的大文件,则将大文件缓存区中访问量最低的经常访问大文件删除直到空间足够,接着将新的大文件添加进大文件缓存区。
[0013]动态扩展的缓冲区算法在传输任务开始时默认生成数据块的大小和数量,这两个值在文件传输的过程中会根据网络速度和磁盘读写速度进行动态变化,每个数据块在默认生成时并不分配内存,只有在某个线程需要写数据时才分配内存。在没有线程对这个块读写时,这个数据块可以作为一个新的数据块挂载到缓冲区上,这样减少了创建数据块的内存开销,提高了内存的使用率。
[0014]对于读写缓冲区的线程来说,理想的情况是读写缓冲区的速度平衡,若写缓冲区的速度大于读缓冲区的速度时,需要增加新的数据块防止写线程处于空闲等待状态。若写缓冲区的速度小于读缓冲区的速度时,可以减少多余的数据块,减少资源的消耗。
[0015]本发明有益的效果是:本发明的分布式文件系统将大文件和小文件分开存储,大文件进行分块存储在大文件存储服务器上,而小文件则存储在缓存服务器上。当用户需要读写小文件时直接访问缓存服务器然后做出对应操作,这样读写效率远高于传统的先访问元数据管理服务器再访问数据存储服务器的方式。而如果用户需要读写大文件先访问大文件元数据管理服务器,在获得位置信息后访问对应的大文件存储服务器。此系统能有效保存大文件和小文件,并提高了文件的读写效率。
[0016]本发明还解决了分布式文件服务器的高性能多源分块传输问题,采用动态扩展缓冲区的管理方法提高文件传输性能,降低服务器的资源消耗。本发明提供的缓冲区管理方法具有动态可扩展性,缓冲区可以灵活的根据读写速度决定数据块的大小和数量,同时使用过的数据块可以被重新利用,有效得减少了缓冲区空间的浪费,从而减少整个系统的资源消耗。
【主权项】
1.一种基于缓冲区的文件存储方法,其特征在于包括: 1)建立稳定的传输模型,在这个分布式文件服务器中包含稳定的文件源,每个文件具有多个相同的文件副本的存在,且这些副本保存在多个服务器上;系统为客户端提供了几个外部接口,只要连接到其中的一台服务器,就能访问到系统中所有的文件资源; 2)文件按照文件名的特征映射到一个节点,这个节点上的文件副本的服务器对多个文件副本进行管理,当有用户下载该文件时,记录这个客户端的信息,在用户下载完成并未退出系统时,这个客户端上的文件作为一个文件副本源; 3)大文件元数据管理服务器,用于存储大文件的元数据、存储大文件存储服务器上大文件数据块的映射信息、管理大文件的命名空间和处理用户的请求信息;缓存服务器,用于存储小文件、小文件的元数据和缓存部分访问量大的大文件; 4)将文件数据块缓存在缓冲区中,当缓冲区中达到一定数量的块时,再由统一的一个线程将缓冲区中的数据写到磁盘中,写磁盘线程从缓冲区中提取块时,在已满块中选择最佳的一块,将其写入磁盘。2.根据权利要求1所述的一种基于缓冲区的文件存储方法,其特征在于:系统中的每一台服务器都采用具有资源定位的功能服务器。3.根据权利要求1所述的一种基于缓冲区的文件存储方法,其特征在于:动态扩展的缓冲区算法在传输任务开始时默认生成数据块的大小和数量,这两个值在文件传输的过程中会根据网络速度和磁盘读写速度进行动态变化,每个数据块在默认生成时并不分配内存,只有在某个线程需要写数据时才分配内存,在没有线程对这个块读写时,这个数据块可以作为一个新的数据块挂载到缓冲区上。4.根据权利要求1所述的一种基于缓冲区的文件存储方法,其特征在于:所述大文件存储服务器包括若干台,大文件元数据管理服务器包括至少三台,缓存服务器包括至少三台。5.根据权利要求1所述的一种基于缓冲区的文件存储方法,其特征在于:至少三台大文件元数据管理服务器之间采用自适应、动态调整的方式存储大文件元数据和大文件存储服务器上大文件数据块的映射信息以及承担用户请求的处理任务。6.根据权利要求1所述的一种基于缓冲区的文件存储方法,其特征在于:缓存服务器中存储部分访问量大的大文件的存储方式为:当缓存服务器的缓存区空间足够时,缓存服务器将新大文件直接添加到大文件缓存区并在元数据保存区中添加新的大文件的元数据;当缓存服务器的大文件缓存区空间不足时,若缓存服务器需要添加一个新的用户经常访问的大文件,则将大文件缓存区中访问量最低的经常访问大文件删除直到空间足够,接着将新的大文件添加进大文件缓存区。
【文档编号】G06F3/06GK106020713SQ201510588897
【公开日】2016年10月12日
【申请日】2015年9月16日
【发明人】张树坤
【申请人】展视网(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1