一种文件管理系统及文件管理方法

文档序号:9288445阅读:609来源:国知局
一种文件管理系统及文件管理方法
【专利说明】
[0001]【技术领域】
本发明涉及互联网技术领域,具体涉及互联网中的一种文件管理系统及文件管理方法。
[0002]【【背景技术】】
在现有的互联网技术领域中,用户对文件管理系统有着较高的要求,在文件管理系统中,如何存储及如何被迅速的调用又是其中的重点。用户对存储的需求主要体现在三个方面:
(I)所有的数据都必须是可靠的,绝对不能丢。这是用户对于存储的容忍底线,因此可靠性放在最重要的位置上。
[0003](2)在满足可靠性的前提下,运行或在线的存储系统需要具有高性能。这是因为用户的业务数据几乎会全部存储在数据服务器中,高性能可以方便用户迅速的响应速度。
[0004](3)离线或备份数据需要高容量、低价格。这部分数据通常量很大,但是对性能要求不高,尤其是对于那些不经常用到但又必须保存的数据,用户不希望为此负担高额成本。
[0005]传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。
[0006]目前,现有技术中的文件管理系统多采用分布式文件系统(Distributed FileSystem),分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
[0007]随着互联网技术的发展,云存储的概念逐渐被用户所接受,云存储摆脱了单存储节点的瓶颈,可以往横向扩展(scale-out),但是,如何给出合理的框架和有效的设计方法,来建立高性能、高可伸缩、高可用的文件存储服务,仍是摆在系统设计者面前极富挑战性的任务。
[0008]【
【发明内容】

鉴于上述问题,提出了本发明,以便提供一种克服上述问题或至少部分地解决上述问题的一种文件管理系统及文件管理方法。
[0009]作为本发明的一个方面,一种文件管理系统,由客户端、主控服务器和数据服务器组成,三者彼此之间通过网络进行通信,其中:
所述客户端用于向所述主控服务器发送请求,以及接收所述主控服务器或所述数据服务器发来的数据信息;
所述主控服务器用于接收所述客户端和所述数据服务器发来的请求或数据,并根据接收的内容进行控制处理,同时对所述数据服务器进行管理和维护;
所述数据服务器用于存储由所述客户端或所述主控服务器发送来的数据。
[0010]进一步的,所述主控服务器对所述客户端拟存储文件的文件名添加文件组名,并对拟存储的文件分配与文件组名相对应的数据服务器进行存储。
[0011]进一步的,所述文件组名可以是被分配的数据服务器的名字,也可以是主控服务器按照某种规则或顺序定义的名字,所述文件组名添加到所述文件名前面。
[0012]进一步的,以数据服务器的名字作为文件组名时,一个文件组名可以代表一个数据库中的部分空间,也可以是一个数据服务器,或者是数个数据服务器的组合;以主控服务器定义的名字作为文件组名时,可以将同一类型的文件作为一个组,不同类型的文件作为不同的组。
[0013]进一步的,所述主控服务器将所述客户端拟存储文件的文件组名及该文件组名对应的数据服务器名发送给所述客户端,所述客户端将所述文件组名加在文件名上,并将该文件发送给所述对应的数据服务器进行存储。
[0014]进一步的,所述客户端包括接口模块、存储模块和安全模块,其中:所述接口模块负责为用户提供存取数据的接口 ;所述存储模块负责存储客户端的文件,或者将客户端用于文件访问的元信息进行缓存;所述安全模块负责将数据进行加密,保证数据的安全性;
所述主控服务器包括主备容灾模块、名字索引模块、数据服务器管理模块以及服务调度模块,其中:所述主备容灾模块保证在主控服务器节点失效时接替其工作;所述名字索引模块负责建立名字索引目录,存储文件名与对应的数据服务器的映射关系;所述数据服务器管理模块,管理所有的数据服务器的状态,以及执行负载均衡计划;所述服务调度模块,负责接收来自客户端和数据服务器的请求;
所述数据服务器包括数据存储模块、副本管理模块、名字检索模块和状态维护模块,其中:所述数据存储模块负责将文件在本地进行持久化的存储;所述副本管理模块将文件存储一个或多个副本到数据服务器上;所述名字检索模块负责对所述数据存储模块中的文件建立名字检索目录;所述状态维护模块负责定期将自己的状态信息以心跳包的方式周期性的报告给主控服务器。
[0015]进一步的,所述客户端还包括命名模块,用于将所述主控服务器发来的文件组名添加在文件名中。
[0016]根据本发明的另一方面,提供一种文件管理系统存储文件的方法,具体为:
客户端将文件发送给主控服务器;
主控服务器在该文件的文件名上添加文件组名,并按照添加的文件组名将该文件存入相应的文件组中;
主控服务器为该文件组分配存储的数据服务器,并建立名字索引目录;
主控服务器将该文件组的全部数据存入被分配的数据服务器中;
数据服务器建立名字检索目录。
[0017]根据本发明的另一方面,提供一种文件管理系统读取文件的方法,具体为:
客户端将需要读取的文件名发送给主控服务器;
主控服务器在名字索引目录中查找该文件名对应的文件组名以及与该文件组名相对应的数据服务器名字,并将文件读取请求发送给向对应的数据服务器;
相对应的数据服务器在其名字检索目录中检索含有该文件组名的文件名以及该文件和/或其副本在数据服务器中的存储地址,并从对应的存储地址中调取文件发送给主控服务器;
主控服务器将收到的文件发送给客户端。
[0018]根据本发明的另一方面,还提供一种文件管理系统存储文件的方法,具体为: 客户端将文件存储请求发送给主控服务器;
主控服务器将文件组名及应存放的数据服务器名发送给客户端,并建立名字索引目录;
客户端将文件组名添加到待存储的文件名上,并将待存储的文件发送给对应名字的数据服务器;
对应名字的数据服务器对文件进行存储,并建立名字检索目录。
[0019]根据本发明的另一方面,还提供一种文件管理系统读取文件的方法,具体为:
客户端将含有文件组名的文件名发送给主控服务器;
主控服务器根据名字索引目录,索引到该文件组名对应的数据服务器名,并将含有该文件组名的文件名发送给对应的数据服务器;
对应的数据服务器根据名字检索目录,检索到含有该文件组名的文件名以及该文件和/或其副本在数据服务器中的存储地址,并从对应的存储地址中调取文件发送给客户端。
[0020]进一步的,所述名字索引目录包括文件组名、存储该组文件的数据服务器名字、和/或存储该组文件副本的数据服务器名字;所述名字检索目录包括含有文件组名的文件名、文件和/或其副本在数据服务器中的存储地址。
[0021]本发明提出的文件管理系统,可更有效的管理海量的小文件,能够快速有效的查找到用户所需的文件,并能够在小文件数量增加时,简单有效的增加系统的存储空间,而不需要对系统架构进行修改。本发明解决了现有技术中海量小文件存储会浪费磁盘空间的问题及查找时间随文件数量的增加而不断增加,进而影响用户体验的问题。
[0022]【【附图说明】】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为本发明一个实施例的文件管理系统的结构示意图。
[0024]图2为本发明一个实施例的文件存储方法的流程示意图。
[0025]图3为本发明的一个实施例的文件读取方法的流程示意图。
[0026]图4为本发明另一个实施例的文件存储方法的流程示意图。
[0027]图5为本发明的另一个实施例的文件读取方法的流程示意图。
[0028]【【具体实施方式】】
下面将参照附图更详细的描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能更透彻的理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
[0029]图1示出了根据本发明一个实施例的文件管理系统结构示意图。如图1所示,一种文件管理系统,由客户端10、主控服务器20和数据服务器30组成,彼此之间通过网络进行通?目。其中:
客户端10用于向主控服务器20发送请求,以及接收主控服务器
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1