CN101877008A - 一种海量小文件的存储方法及装置 - Google Patents
一种海量小文件的存储方法及装置 Download PDFInfo
- Publication number
- CN101877008A CN101877008A CN 201010184752 CN201010184752A CN101877008A CN 101877008 A CN101877008 A CN 101877008A CN 201010184752 CN201010184752 CN 201010184752 CN 201010184752 A CN201010184752 A CN 201010184752A CN 101877008 A CN101877008 A CN 101877008A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- storage
- user
- small documents
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012546 transfer Methods 0.000 claims description 31
- 238000012795 verification Methods 0.000 claims description 20
- 238000009826 distribution Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 14
- 230000005055 memory storage Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000003116 impacting effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种海量小文件的存储方法及装置,其特征在于,所述方法包括一个上传方法:用户在网页页面上提交文件并上传至中转服务器;将文件从中转服务器通过远程服务存储到存储服务器。还包括一个分发方法;用户请求文件时,存储服务器将文件分发给用户。还包括一个备份方法:监控存储文件的变化;将发生变化的文件从存储服务器取到备份服务器的相应目录下。本发明可以解决小文件传输存储过程中占用大量系统资源、影响其他服务的问题。
Description
技术领域
本发明涉及一种文件存储方法及装置,特别是一种海量小文件的存储方法及装置,属于计算机网络技术领域。
背景技术
在网络服务领域,尤其是提供了照片托管服务的网络服务,存在大量的小文件操作。小文件是指文件大小在512K(512K字节,1K字节=1024字节=1024*8比特)以内的由用户上传的文件。这里的小文件,不仅仅是从尺寸上而言的,而是从功能上也有限定,比如程序文件、系统资源文件,尽管尺寸在小文件的范围之内,也不是本文讨论范围之内的小文件。仅仅是用户通过上传产生的头像、照片、日记附加照片等文件,才是小文件。在传统的技术中,从文件的上传到存储以及存储到分发,以及备份,用的都是简单的网络文件复制方式。这种简单的网络文件复制方式,在访问压力小的压力下,尚且可行,只要访问压力稍大,服务器的资源就会被大量的网络复制进程所占用,因为每传输一个文件,不但整个过程需要经历建立连接等操作,而且,在客户端和服务器端,都得启动一个文件复制进程,在多的时候,不但传输速度会大幅下降。而且会导致服务器资源最后被用光,甚至导致本文件服务或者其他不相干服务也受到影响。在传统地技术实现中,对于这种小文件的备份方式是全目录备份,全目录备份一次往往需要比较长时间,并且产生了很多无效的备份操作。
以Linux操作系统的操作为例,在传统的存储系统中,文件上传到中转服务器之后,一般由中转服务器的程序,启动一个rsync进程,由rsync本地文件到存储服务器。存储服务器在接收文件时,也要启动一个到几个rsync进程来接收文件。如果同时有多个文件,从不同的中转服务器传到存储,就会导致存储服务器上启动大量进程,占用大量资源,处理能力急剧下降。甚至导致服务器不能响应更多的连接请求。
发明内容
本发明的目的在于,提供一种海量小文件的存储方法及装置。它可以解决小文件传输存储过程中占用大量系统资源、影响其他服务的问题。
本发明的技术方案:一种海量小文件的存储方法,其特征在于,所述方法包括一个上传方法:
用户在网页页面上提交文件并上传至中转服务器;
将文件从中转服务器通过远程服务存储到存储服务器;
还包括一个分发方法;
用户请求文件时,存储服务器将文件分发给用户;
还包括一个备份方法:
监控存储文件的变化;
将发生变化的文件从存储服务器取到备份服务器的相应目录下。
前述的海量小文件的存储方法中,所述中转服务器在接收文件完成之后,对文件的合法性进行更严格的校验,如果文件内容合法,则继续,如果不合法,则返回出错,在界面上提示给用户。
前述的海量小文件的存储方法中,所述将文件从中转服务器通过远程服务存储到存储服务器的方法为:中转服务器对文件的合法性进行校验之后,结合上传者的身份信息,访问应该保存此文件的存储服务器上的存储服务,将此文件连同相关的元数据信息(文件存储位置和文件名)发给该存储服务,由存储服务负责文件在存储服务器上建立文件,保存文件内容。
前述的海量小文件的存储方法中,所述分发方法包括:
用户请求下载相应的文件,首先用户访问缓存服务器,如果缓存服务器上已经缓存上了要请求的文件,则由缓存分发设备直接把此文件输出给用户;
在缓存分发设备上不存在此文件,则由缓存服务器向存储服务器的存储服务请求下载此文件,存储服务根据需求,直接输出此文件至缓存服务器,再由缓存服务器输出给用户。
实现前述方法的一种海量小文件的存储装置,其特征在于,它包括
在网页页面上设有上传入口的上传模块;
中转服务器,用于存储上传文件后发送文件至存储服务器;
存储服务器,用于存储上传文件;
缓存服务器,分发存储服务器上的文件时,用于缓存文件;
备份服务器,用于备份存储服务器上的更新文件。
前述的海量小文件的存储装置中,所述中转服务器上设有
接收模块,用于响应用户的上传请求,并接收用户数据;
校验模块,用于校验上传文件的合法性;
存储模块,在校验模块对文件的合法性进行校验之后,结合上传者的身份信息,访问应该保存此文件的存储服务器上的存储服务,将此文件连同相关的元数据信息发给该存储服务,进而进行存储。
前述的海量小文件的存储装置中,所述缓存服务器上设有
辨识模块,用于辨识用户请求文件是否在缓存服务器中;
缓存模块,用于缓存存储服务器分发的文件数据并输出给用户。
前述的海量小文件的存储装置中,所述存储服务器上还设有监控模块,用于监控存储服务器中存储文件的变化,并将发生变化的文件名记录成文件列表。
前述的海量小文件的存储装置中,所述备份服务器上设有列表获取模块,用于定期去取得监控模块获得的文件列表,将发生变化的文件从存储服务器取到备份服务器的相应目录下。
与现有技术相比,本发明上传文件时,先将文件发送至中转服务器进行临时文件保存与处理,然后直接由中转服务器访问远程的存储服务器上的服务,将本机的小文件直接发给存储服务器,并将文件存储。在分发的过程中,请求者向文件发起请求,如果在缓存服务器上存在,则直接读取下载。如果在缓存分发服务器上不存在。则由分发设备向存储服务器转发请求。由于在上传和分发过程中使用了中转服务器和缓存服务器,可以避免使用网络文件复制方式,从而避免了在网络访问压力较大时服务器的资源被大量的网络复制进程所占用,因此上传和分发的传输速度比较快。存储服务器端也无须启动任何新进程来处理。在存储上的文件更新发生变化时,存储服务器通过监控存储文件的变化;将发生变化的文件从存储服务器取到备份服务器的相应目录下。而对没有发生变化的文件,就可以不做备份。从而,大大提高了备份的效率。在传统的技术中,一般是全目录同步备份,或者是在中转服务器就往多个地方,分发文件。全目录备份速度相当慢,以20,000,000个较小文件为例,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向用户输出文件。
Claims (9)
1.一种海量小文件的存储方法,其特征在于,所述方法包括一个上传方法:
用户在网页页面上提交文件并上传至中转服务器;
将文件从中转服务器通过远程服务存储到存储服务器;
还包括一个分发方法;
用户请求文件时,存储服务器将文件分发给用户;
还包括一个备份方法:
监控存储文件的变化;
将发生变化的文件从存储服务器取到备份服务器的相应目录下。
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)的相应目录下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010184752 CN101877008A (zh) | 2010-05-27 | 2010-05-27 | 一种海量小文件的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010184752 CN101877008A (zh) | 2010-05-27 | 2010-05-27 | 一种海量小文件的存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101877008A true CN101877008A (zh) | 2010-11-03 |
Family
ID=43019564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010184752 Pending CN101877008A (zh) | 2010-05-27 | 2010-05-27 | 一种海量小文件的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101877008A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379150A (zh) * | 2012-04-19 | 2013-10-30 | 北京智慧风云科技有限公司 | 一种云服务文件管理系统 |
CN104202385A (zh) * | 2014-08-27 | 2014-12-10 | 四川长虹电器股份有限公司 | 一种分布式文件系统的数据备份及更新方法 |
CN107566469A (zh) * | 2017-08-24 | 2018-01-09 | 平安科技(深圳)有限公司 | 用户信息上载方法、装置及计算机可读存储介质 |
CN107967658A (zh) * | 2017-11-09 | 2018-04-27 | 安徽律正科技信息服务有限公司 | 一种科技成果分享系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484155A (zh) * | 2002-08-13 | 2004-03-24 | �Ҵ���˾ | 刷新网络代理高速缓存服务器对象的系统和方法 |
WO2006018717A1 (en) * | 2004-08-19 | 2006-02-23 | Nokia Corporation | Caching directory server data for controlling the disposition of multimedia data on a network |
CN1988535A (zh) * | 2005-12-23 | 2007-06-27 | 腾讯科技(深圳)有限公司 | 文件存储同步方法、系统及客户端 |
CN101184112A (zh) * | 2007-12-20 | 2008-05-21 | 腾讯科技(深圳)有限公司 | 多媒体信息传输发布系统及其传输发布多媒体信息的方法 |
CN101355476A (zh) * | 2008-05-23 | 2009-01-28 | 林云帆 | 一种基于服务器群集的数据文件存储、分发和应用的系统和方法 |
-
2010
- 2010-05-27 CN CN 201010184752 patent/CN101877008A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484155A (zh) * | 2002-08-13 | 2004-03-24 | �Ҵ���˾ | 刷新网络代理高速缓存服务器对象的系统和方法 |
WO2006018717A1 (en) * | 2004-08-19 | 2006-02-23 | Nokia Corporation | Caching directory server data for controlling the disposition of multimedia data on a network |
CN1988535A (zh) * | 2005-12-23 | 2007-06-27 | 腾讯科技(深圳)有限公司 | 文件存储同步方法、系统及客户端 |
CN101184112A (zh) * | 2007-12-20 | 2008-05-21 | 腾讯科技(深圳)有限公司 | 多媒体信息传输发布系统及其传输发布多媒体信息的方法 |
CN101355476A (zh) * | 2008-05-23 | 2009-01-28 | 林云帆 | 一种基于服务器群集的数据文件存储、分发和应用的系统和方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379150A (zh) * | 2012-04-19 | 2013-10-30 | 北京智慧风云科技有限公司 | 一种云服务文件管理系统 |
CN104202385A (zh) * | 2014-08-27 | 2014-12-10 | 四川长虹电器股份有限公司 | 一种分布式文件系统的数据备份及更新方法 |
CN107566469A (zh) * | 2017-08-24 | 2018-01-09 | 平安科技(深圳)有限公司 | 用户信息上载方法、装置及计算机可读存储介质 |
CN107566469B (zh) * | 2017-08-24 | 2020-06-05 | 平安科技(深圳)有限公司 | 用户信息上载方法、装置及计算机可读存储介质 |
CN107967658A (zh) * | 2017-11-09 | 2018-04-27 | 安徽律正科技信息服务有限公司 | 一种科技成果分享系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8756247B2 (en) | System and method for sharing online storage services among multiple users | |
CN103152423A (zh) | 一种云存储系统及其数据存取方法 | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
US8650164B2 (en) | Efficient storage and retrieval for large number of data objects | |
CN103036956A (zh) | 一种分布式组态化海量数据归档系统及实现方法 | |
CN102546836A (zh) | 一种上传文件的方法、终端、服务器及系统 | |
CN104219085A (zh) | 一种数据库的数据处理方法、代理服务器及系统 | |
CN101534322A (zh) | 文件上传系统和文件上传方法 | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
CN109471843B (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN104506643A (zh) | 分布式存储系统的服务器及服务器之间的数据同步方法 | |
CN102385582A (zh) | 生产测试数据处理方法、服务器及系统 | |
CN103577500A (zh) | 分布式文件系统进行数据处理的方法及该分布式文件系统 | |
CN103731489A (zh) | 一种数据存储方法、系统和设备 | |
CN101267341A (zh) | 一种分布式网络管理系统、网管服务器和方法 | |
CN103108008A (zh) | 一种下载文件的方法及文件下载系统 | |
CN104144150A (zh) | 利用元数据访问信息的方法、装置和系统 | |
CN102104617A (zh) | 一种网站运营系统存储海量图片数据的方法 | |
CN101877008A (zh) | 一种海量小文件的存储方法及装置 | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
CN112866406B (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
WO2010079713A1 (ja) | 分散ファイル名前解決システム、分散ファイル名前解決方法、及び分散ファイル名前解決用プログラム | |
CN102298527B (zh) | 一种cpe并行升级版本的方法及实现系统 | |
CN201654784U (zh) | 一种海量小文件的存储装置 | |
US20110047165A1 (en) | Network cache, a user device, a computer program product and a method for managing files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20101103 |