一种海量小文件的存储方法及装置的制作方法

文档序号:6603159阅读:108来源:国知局
专利名称:一种海量小文件的存储方法及装置的制作方法
技术领域
本发明涉及一种文件存储方法及装置,特别是一种海量小文件的存储方法及装 置,属于计算机网络技术领域。
背景技术
在网络服务领域,尤其是提供了照片托管服务的网络服务,存在大量的小文件操 作。小文件是指文件大小在512K (512K字节,1K字节=1024字节=1024*8比特)以内的由 用户上传的文件。这里的小文件,不仅仅是从尺寸上而言的,而是从功能上也有限定,比如 程序文件、系统资源文件,尽管尺寸在小文件的范围之内,也不是本文讨论范围之内的小文 件。仅仅是用户通过上传产生的头像、照片、日记附加照片等文件,才是小文件。在传统的 技术中,从文件的上传到存储以及存储到分发,以及备份,用的都是简单的网络文件复制方 式。这种简单的网络文件复制方式,在访问压力小的压力下,尚且可行,只要访问压力稍大, 服务器的资源就会被大量的网络复制进程所占用,因为每传输一个文件,不但整个过程需 要经历建立连接等操作,而且,在客户端和服务器端,都得启动一个文件复制进程,在多的 时候,不但传输速度会大幅下降。而且会导致服务器资源最后被用光,甚至导致本文件服务 或者其他不相干服务也受到影响。在传统地技术实现中,对于这种小文件的备份方式是全 目录备份,全目录备份一次往往需要比较长时间,并且产生了很多无效的备份操作。以Linux操作系统的操作为例,在传统的存储系统中,文件上传到中转服务器之 后,一般由中转服务器的程序,启动一个rsync进程,由rsync本地文件到存储服务器。存储 服务器在接收文件时,也要启动一个到几个rsync进程来接收文件。如果同时有多个文件, 从不同的中转服务器传到存储,就会导致存储服务器上启动大量进程,占用大量资源,处理 能力急剧下降。甚至导致服务器不能响应更多的连接请求。

发明内容
本发明的目的在于,提供一种海量小文件的存储方法及装置。它可以解决小文件 传输存储过程中占用大量系统资源、影响其他服务的问题。本发明的技术方案一种海量小文件的存储方法,其特征在于,所述方法包括一个 上传方法
用户在网页页面上提交文件并上传至中转服务器; 将文件从中转服务器通过远程服务存储到存储服务器; 还包括一个分发方法;
用户请求文件时,存储服务器将文件分发给用户; 还包括一个备份方法 监控存储文件的变化;
将发生变化的文件从存储服务器取到备份服务器的相应目录下。前述的海量小文件的存储方法中,所述中转服务器在接收文件完成之后,对文件的合法性进行更严格的校验,如果文件内容合法,则继续,如果不合法,则返回出错,在界面 上提示给用户。前述的海量小文件的存储方法中,所述将文件从中转服务器通过远程服务存储到 存储服务器的方法为中转服务器对文件的合法性进行校验之后,结合上传者的身份信息, 访问应该保存此文件的存储服务器上的存储服务,将此文件连同相关的元数据信息(文件 存储位置和文件名)发给该存储服务,由存储服务负责文件在存储服务器上建立文件,保存 文件内容。前述的海量小文件的存储方法中,所述分发方法包括
用户请求下载相应的文件,首先用户访问缓存服务器,如果缓存服务器上已经缓存上 了要请求的文件,则由缓存分发设备直接把此文件输出给用户;
在缓存分发设备上不存在此文件,则由缓存服务器向存储服务器的存储服务请求下载 此文件,存储服务根据需求,直接输出此文件至缓存服务器,再由缓存服务器输出给用户。实现前述方法的一种海量小文件的存储装置,其特征在于,它包括 在网页页面上设有上传入口的上传模块;
中转服务器,用于存储上传文件后发送文件至存储服务器; 存储服务器,用于存储上传文件; 缓存服务器,分发存储服务器上的文件时,用于缓存文件; 备份服务器,用于备份存储服务器上的更新文件。前述的海量小文件的存储装置中,所述中转服务器上设有 接收模块,用于响应用户的上传请求,并接收用户数据;
校验模块,用于校验上传文件的合法性;
存储模块,在校验模块对文件的合法性进行校验之后,结合上传者的身份信息,访问应 该保存此文件的存储服务器上的存储服务,将此文件连同相关的元数据信息发给该存储服 务,进而进行存储。前述的海量小文件的存储装置中,所述缓存服务器上设有 辨识模块,用于辨识用户请求文件是否在缓存服务器中;
缓存模块,用于缓存存储服务器分发的文件数据并输出给用户。前述的海量小文件的存储装置中,所述存储服务器上还设有监控模块,用于监控 存储服务器中存储文件的变化,并将发生变化的文件名记录成文件列表。前述的海量小文件的存储装置中,所述备份服务器上设有列表获取模块,用于定 期去取得监控模块获得的文件列表,将发生变化的文件从存储服务器取到备份服务器的相 应目录下。与现有技术相比,本发明上传文件时,先将文件发送至中转服务器进行临时文件 保存与处理,然后直接由中转服务器访问远程的存储服务器上的服务,将本机的小文件直 接发给存储服务器,并将文件存储。在分发的过程中,请求者向文件发起请求,如果在缓存 服务器上存在,则直接读取下载。如果在缓存分发服务器上不存在。则由分发设备向存储服 务器转发请求。由于在上传和分发过程中使用了中转服务器和缓存服务器,可以避免使用 网络文件复制方式,从而避免了在网络访问压力较大时服务器的资源被大量的网络复制进 程所占用,因此上传和分发的传输速度比较快。存储服务器端也无须启动任何新进程来处理。在存储上的文件更新发生变化时,存储服务器通过监控存储文件的变化;将发生变化的 文件从存储服务器取到备份服务器的相应目录下。而对没有发生变化的文件,就可以不做 备份。从而,大大提高了备份的效率。在传统的技术中,一般是全目录同步备份,或者是在 中转服务器就往多个地方,分发文件。全目录备份速度相当慢,以20,000,OOO个较小文件 为例,1个文件平均为10K,20,000,000个文件,占用空间200G。全目录备份,需要至少12个 小时。这么长的时间,其实大部分操作都浪费在根本没有变化的目录列表对比分析上面了, 不但是对资源的浪费,而且实时性很差,比如遇到主库当机。那么备份库当主库用,这时,数 据相差至少半天以上,这也是不理想的。而在本发明中,备份服务器工作时,只备份真正更 新过的文件,直截了当。这样备份数据与主库的数据相差只差5分钟以内的数据。而在本 发明之前,用的全目录备份,这样主库和备份库差半天数据,如果主库出问题,启用备份库, 主库跟备份库数据是不一致的,可导致用户最近半天的修改全部没有记录下来。


图1是本发明的结构示意图2是本发明实施例的上传工作流程图; 图3是本发明实施例的备份工作流程图; 图4是本发明实施例的分发工作流程图。
附图中的标记1_上传模块,2-中转服务器,3-存储服务器,4-缓存服务器, 5-备份服务器,6-接收模块,7-校验模块,8-存储模块,9-辨识模块,10-缓存模块,11-监 控模块,12-列表获取模块。
具体实施例方式下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例一种海量小文件的存储方法,其特征在于,所述方法包括一个上传方法 用户在网页页面上提交文件并上传至中转服务器;
将文件从中转服务器通过远程服务存储到存储服务器; 还包括一个分发方法;
用户请求文件时,存储服务器将文件分发给用户; 还包括一个备份方法 监控存储文件的变化;
将发生变化的文件从存储服务器取到备份服务器的相应目录下。所述中转服务器在接收文件完成之后,对文件的合法性进行更严格的校验,如果 文件内容合法,则继续,如果不合法,则返回出错,在界面上提示给用户。所述将文件从中转服务器通过远程服务存储到存储服务器的方法为中转服务器 对文件的合法性进行校验之后,结合上传者的身份信息,访问应该保存此文件的存储服务 器上的存储服务,将此文件连同相关的元数据信息发给该存储服务,由存储服务负责文件在存储服务器上建立文件,保存文件内容。所述分发方法包括
用户请求下载相应的文件,首先用户访问缓存服务器,如果缓存服务器上已经缓存上 了要请求的文件,则由缓存分发设备直接把此文件输出给用户;
在缓存分发设备上不存在此文件,则由缓存服务器向存储服务器的存储服务请求下载 此文件,存储服务根据需求,直接输出此文件至缓存服务器,再由缓存服务器输出给用户。实现前述方法的一种海量小文件的存储装置,结构如图1所示,它包括 在网页页面上设有上传入口的上传模块1 ;
中转服务器2,用于存储上传文件后发送文件至存储服务器3 ; 存储服务器3,用于存储上传文件;
缓存服务器4,分发存储服务器3上的文件时,用于缓存文件; 备份服务器5,用于备份存储服务器3上的更新文件。所述中转服务器2上设有
接收模块6,用于响应用户的上传请求,并接收用户数据; 校验模块7,用于校验上传文件的合法性;
存储模块8,在校验模块7对文件的合法性进行校验之后,结合上传者的身份信息,访 问应该保存此文件的存储服务器3上的存储服务,将此文件连同相关的元数据信息发给该 存储服务,进而进行存储。所述缓存服务器4上设有
辨识模块9,用于辨识用户请求文件是否在缓存服务器4中; 缓存模块10,用于缓存存储服务器3分发的文件数据并输出给用户。所述存储服务器3上还设有监控模块11,用于监控存储服务器3中存储文件的变 化,并将发生变化的文件名记录成文件列表。所述备份服务器5上设有列表获取模块12,用于定期去取得监控模块11获得的文 件列表,将发生变化的文件从存储服务器3取到备份服务器5的相应目录下。本发明的上传工作流程(如图2) 步骤S101,用户请求上传文件;
步骤S102,中转服务器2接收文件;
步骤S103,中转服务器2校验文件是否合法;
步骤S104,如果文件不合法,返回出错,在界面上提示给用户;
步骤S105,如果文件合法,则将文件发送至存储服务器3进行存储。本发明的备份工作流程(如图3)
步骤S201,监控存储服务器3中的存储文件的变化,并将发生变化的文件名记录成文 件列表;
步骤S202,备份服务器5定时向存储服务器3获取变化的文件列表; 步骤S203,备份服务器5根据文件列表备份变化的文件。本发明的分发工作流程(如图4)
步骤S301,用户向缓存服务器请求分发(下载)文件; 步骤S302,辨识所请求文件是否在缓存服务器4中;步骤S303,如果文件在缓存服务器4中,缓存服务器4直接向用户输出该文件; 步骤S304,如果文件不在缓存服务器4,则由缓存服务器4向存储服务器3的存储服务 请求下载此文件,存储服务根据需求,直接输出此文件至缓存服务器4 ; 步骤S305,缓存服务器4向用户输出文件。
权利要求
一种海量小文件的存储方法,其特征在于,所述方法包括一个上传方法用户在网页页面上提交文件并上传至中转服务器;将文件从中转服务器通过远程服务存储到存储服务器;还包括一个分发方法;用户请求文件时,存储服务器将文件分发给用户;还包括一个备份方法监控存储文件的变化;将发生变化的文件从存储服务器取到备份服务器的相应目录下。
2.根据权利要求1所述的海量小文件的存储方法,其特征在于,所述中转服务器在接 收文件完成之后,对文件的合法性进行更严格的校验,如果文件内容合法,则继续,如果不 合法,则返回出错,在界面上提示给用户。
3.根据权利要求1所述的海量小文件的存储方法,其特征在于,所述将文件从中转服 务器通过远程服务存储到存储服务器的方法为中转服务器对文件的合法性进行校验之 后,结合上传者的身份信息,访问应该保存此文件的存储服务器上的存储服务,将此文件连 同相关的元数据信息发给该存储服务,由存储服务负责文件在存储服务器上建立文件,保 存文件内容。
4.根据权利要求1所述的海量小文件的存储方法,其特征在于,所述分发方法包括 用户请求下载相应的文件,首先用户访问缓存服务器,如果缓存服务器上已经缓存上了要请求的文件,则由缓存分发设备直接把此文件输出给用户;在缓存分发设备上不存在此文件,则由缓存服务器向存储服务器的存储服务请求下载 此文件,存储服务根据需求,直接输出此文件至缓存服务器,再由缓存服务器输出给用户。
5.实现权利要求1、2、3或4所述方法的一种海量小文件的存储装置,其特征在于,它包括在网页页面上设有上传入口的上传模块(1); 中转服务器(2 ),用于存储上传文件后发送文件至存储服务器(3 ); 存储服务器(3),用于存储上传文件;缓存服务器(4),分发存储服务器(3 )上的文件时,用于缓存文件; 备份服务器(5),用于备份存储服务器(3)上的更新文件。
6.根据权利要求5所述的海量小文件的存储装置,其特征在于所述中转服务器(2)上设有接收模块(6),用于响应用户的上传请求,并接收用户数据; 校验模块(7),用于校验上传文件的合法性;存储模块(8),在校验模块(7)对文件的合法性进行校验之后,结合上传者的身份信 息,访问应该保存此文件的存储服务器(3)上的存储服务,将此文件连同相关的元数据信息 发给该存储服务,进而进行存储。
7.根据权利要求5所述的海量小文件的存储装置,其特征在于所述缓存服务器(4)上设有辨识模块(9),用于辨识用户请求文件是否在缓存服务器(4)中; 缓存模块(10),用于缓存存储服务器(3)分发的文件数据并输出给用户。
8.根据权利要求5所述的海量小文件的存储装置,其特征在于所述存储服务器(3)上 还设有监控模块(11),用于监控存储服务器(3)中存储文件的变化,并将发生变化的文件 名记录成文件列表。
9.根据权利要求8所述的海量小文件的存储装置,其特征在于所述备份服务器(5)上 设有列表获取模块(12),用于定期去取得监控模块(11)获得的文件列表,将发生变化的文 件从存储服务器(3 )取到备份服务器(5 )的相应目录下。
全文摘要
本发明公开了一种海量小文件的存储方法及装置,其特征在于,所述方法包括一个上传方法用户在网页页面上提交文件并上传至中转服务器;将文件从中转服务器通过远程服务存储到存储服务器。还包括一个分发方法;用户请求文件时,存储服务器将文件分发给用户。还包括一个备份方法监控存储文件的变化;将发生变化的文件从存储服务器取到备份服务器的相应目录下。本发明可以解决小文件传输存储过程中占用大量系统资源、影响其他服务的问题。
文档编号G06F17/30GK101877008SQ20101018475
公开日2010年11月3日 申请日期2010年5月27日 优先权日2010年5月27日
发明者伍星, 熊家贵 申请人:开心人网络科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1