文件管理系统和方法

文档序号:8223603阅读:440来源:国知局
文件管理系统和方法
【技术领域】
[0001]本发明涉及数据存储领域,更具体地涉及一种文件管理系统和方法。
【背景技术】
[0002]随着互联网业务的快速增长,用户对应用软件的需求不断膨胀,因而应用软件提供商并行开发的应用软件的数目也随之增长。在应用软件提供商并行开发大量应用软件的情况下,开发应用软件的过程中需要存储的大小在IkB至1MB范围内的文件(为了简单,下面称为“小文件”)的数目飞速增长。
[0003]传统上,由于并行开发的应用软件的数目较少,开发应用软件的过程中需要存储的小文件的数目也较少,所以通常将这些小文件存储在单台服务器上。但是,当并行开发的应用软件的数目越来越多时,开发应用软件的过程中需要存储的小文件的数目将以几何级数增长,单台服务器将难以支撑,一旦服务器崩溃,将不可避免地影响应用软件的开发进程。
[0004]为了解决这个问题,一般通过多台服务器来存储这些小文件并通过网络文件系统(Network File System,NFS)来共享这些文件。然而,当不同应用软件的开发人员共享一套NFS时,为了实现不同应用软件的开发人员之间的隔离,服务器维护人员需要对不同应用软件的开发人员设置不同的权限,这个过程将非常繁琐。
[0005]目前,大多数应用软件提供商采用了这样的文件管理方式,即在对新应用软件进行立项时,通过估计资源需求单独申请独立的服务器。但是,这样的文件管理方式存在以下问题:如果对资源需求的估计不准确,则可能会导致服务器长期处于空闲状态从而导致资源被浪费,或者可能会导致服务器无法满足实际需求而需要扩容,此时应用软件的开发人员和服务器维护人员又要花费时间为数据扩容设计方案。

【发明内容】

[0006]鉴于以上所述的一个或多个问题,本发明提供了一种新颖的文件管理系统和方法。
[0007]根据本发明实施例的文件管理系统,包括:接口层,具有一个或多个接口层节点,被配置为接收与应用软件相关的文件操作请求;调度层,具有一个或多个调度层节点,被配置为利用文件操作请求确定文件在存储层中的存储位置;以及存储层,具有2n个存储层节点,被配置为基于存储位置对文件执行与文件操作请求相对应的操作,其中η是不小于O的整数。
[0008]根据本发明实施例的文件管理方法,包括:通过接口层接收与应用软件相关的文件操作请求;通过调度层利用文件操作请求确定文件在存储层中的存储位置;以及基于存储位置,通过存储层对文件执行与文件操作请求相对应的操作。
[0009]根据本发明实施例的文件管理系统和方法可以动态地为各个应用软件分配资源,并且可以高效地处理来自用户的文件操作请求。
【附图说明】
[0010]从下面结合附图对本发明的【具体实施方式】的描述中可以更好地理解本发明,其中:
[0011]图1示出了根据本发明实施例的文件管理系统的框图。
[0012]图2示出了根据本发明实施例的文件管理方法的流程图。
【具体实施方式】
[0013]下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
[0014]图1示出了根据本发明实施例的文件管理系统的框图。如图1所示,根据本发明实施例的文件管理系统100包括接口层102、调度层104、以及存储层106。其中,接口层102包括K (K是大于O的整数)个接口层节点,调度层104包括L(L是大于O的整数)个调度层节点,存储层106包括2η(η是不小于O的整数)个存储层节点。这里需要说明的是,接口层、调度层、存储层包括的节点数目可以相同也可以不相同,接口层、调度层、以及存储层之间可以通过局域网、城域网、以及互联网中的一种或多种以有线或者无线的方式相互连接,并且接口层节点之间、调度层节点之间、以及存储层节点之间也可以通过局域网、城域网、以及互联网中的一种或多种以有线或无线的方式相互连接。下面,就接口层、调度层、存储层的功能进行说明。
[0015](一)接口层
[0016]在本实施例中,任意一个应用软件(为了方便,下面称为应用软件Α)的开发人员可以通过接口层102在文件管理系统100中对应用软件A进行注册。具体地,接口层102可以接收针对应用软件A的注册请求,为应用软件A分配软件标识符APPID和软件密钥ΑΡΡΚΕΥ,并为应用软件A的开发人员授予相应的权限。当应用软件A的开发人员想要通过文件管理系统100对与应用软件A相关的文件(为了方便,下面称为文件F)执行修改、删除、查询之类的文件操作或者想要通过文件管理系统100存储文件F时,应用软件A的开发人员可以通过接口层提供的两种接口组件(例如,一种为RESTful接口组件,另一种是兼容亚马逊软件开发工具包(SDK)的接口组件)之一向接口层输入应用软件A的软件标识符APPID和软件密钥APPKEY,供接口层通过预定的一种或多种认证方法之一对与应用软件A相关的文件操作请求进行认证。接口层102中的任意一个接口层节点(为了方便,下面称为接口层节点Pl)均可以对与应用软件A相关的文件操作请求进行认证与处理。另外,可以根据需要在接口层提供更多的现在已经开发出来的或者将来开发出来的接口组件。
[0017]在本实施例中,接口层102在接收到针对与应用软件A相关的文件F的文件操作请求(为了方便,下面称为文件操作请求Q)后,判断其自身是否能够对文件F执行与文件操作请求Q相对应的操作。如果接口层102无需与调度层104和存储层106协作即可对文件F执行与文件操作请求Q相对应的操作,则接口层102直接对文件F执行与文件操作请求Q相对应的操作,否则将文件操作请求Q传送到调度层104。
[0018]本实施例中,接口层102可以配置有负载均衡控制系统,用来在接口层节点中间实现负载均衡。具体地,当接口层节点Pl接收到例如文件操作请求Q时,如果接口层节点Pl处于空闲状态,则接口层节点Pl可以判断接口层102自身是否能够对文件F执行与文件操作请求Q相关的操作,并根据判断结果进行后续处理;如果接口层节点Pl处于繁忙状态,则负载均衡系统可以将文件操作请求Q从接口层节点Pl传送到接口层102中的任意一个处于空闲状态的接口层节点(为了方便,下文中称为接口层节点P2),然后接口层节点P2可以判断接口层102自身是否能够对文件F执行与文件操作请求Q相关的操作,并根据判断结果进行后续处理。本领域技术人员应该理解的是,当接口层节点Pl接收到登录请求、注册请求、以及其他请求时,也可以通过上面的处理进行负载均衡。
[0019]在本实施例中,接口层102还可以配置有远程配置中心,用于存储各个应用软件的软件标识符和软件密钥二元组、与各个应用软件相关的会导致文件改变的操作的文件操作信息、以及各个接口层节点的节点配置信息和节点性能信息。这里,任意一个接口层节点的节点配置信息是指该接口层节点所采用的通信协议、通信端口、物理地址与逻辑地址之间的对应关系等与该接口层节点与其他接口层节点之间的通信能力相关的信息,任意一个接口层节点的节点性能信息是指该接口层节点的中央处理器(CPU)的占用率、内存的占用率、网卡的占用率、网络带宽的占用率等与该接口层节点的信息处理能力相关的信息。每个接口层节点的节点配置信息可以相同,也可以不同。
[0020]负载均衡控制系统可以利用远程配置中心存储的节点配置信息和节点性能信息来实现接口层节点之间的负载均衡。具体地,在每个接口层节点的节点配置信息相同的情况下,当接口层节点Pl接收到文件操作请求Q时,如果接口层节点Pl处于繁忙状态,则负载均衡系统可以将文件操作请求Q从接口层节点Pl传送到接口层102中的任意一个处于空闲状态的接口层节点(为了方便,下文中称为接口层节点P2),然后接口层节点P2可以判断接口层102自身是否能够对文件F执行与文件操作请求Q相关的操作并根据判断结果进行后续处理。在每个接口层节点的节点配置信息不同的情况下,当接口层节点Pl接收到文件操作请求Q时,如果接口层节点Pl处于繁忙状态,则负载
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1