一种海量对象的存储系统及其运行方法

文档序号:6354226阅读:153来源:国知局
专利名称:一种海量对象的存储系统及其运行方法
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种海量对象的存储系统及其运行 方法。
背景技术
在对象存储系统中,对象是存储数据的基本实体,它包含对象的数据部分和元数 据部分,对象的数据部分指对象本身所包含的数据或内容信息,对象的元数据指的是描述 对象信息的信息,通常包含诸如对象的创建时间,对象的大小,对象的修改时间,对象的最 后访问时间,对象的读写权限等;对象通常被放置在某个容器中,我们可以将容器看成是对 象的集合,当然,容器也能包含子容器,一个容器可以包含多个对象和多个子容器。对象和 容器的示例及关系如图1所示;整个对象存储系统则由对象,容器以及相关的管理模块和 安全模块构成。Apache Axis2是一个高效的,灵活的,具有很好的扩展性的Web服务解析引擎,它 提供了一个完整的对象模型和模块化体系结构。Axis2的对象模型是基于XML的对象模型 (AXIOM),该对象模型内存占用率低,性能高效,API接口简单易用。模块化的体系结构使得 添加新的功能以及支持一个新的与Web services相关的说明和建议变的非常容易。利用 Axis2解析引擎,可以很简洁的完成诸如发送SOAP消息,接受和处理SOAP消息,从一个服务 获取相应的WSDL,发送和接受带有附件的SOAP消息,建立或使用基于REST的Web服务等功 能。当前的对象存储系统主要基于硬件架构来实现,如对象存储设备(OSD),通过提供 一些列的命令接口来实现对对象存储设备的操作,进而实现对设备上容器和对象的操作, 这种硬件架构下的对象存储系统是由于是通过针对硬件的命令接口来实现对对象和容器 的操作,具有很好的性能;其次,基于硬件架构的对象存储系统会在多个级别上提供安全, 如对存储设备的认证,对计算节点的认证,对计算节点命令的认证等,从而给用户以信心, 因此高性能和高安全是其显著的优点。但是,这种硬件架构下的对象存储系统是建立在新 的存储体系上的,从传统的存储编程OSD存储,需要在多个层面上作改变,这包括存储设 备,存储网络,文件系统和数据库,这会与已有的存储系统产生兼容性问题,从而导致系统 部署成本高,难于推广应用;其次,系统的灵活性和低成本的可扩性有待提高,因为提供的 是针对硬件设备的命令接口,当需要增加新的命令接口时,由于需要对硬件本身进行修改, 而对硬件进行修改,会导致成本较高,修改周期也较长,灵活性也较差;最后,虽然多级别的 安全认证能够给系统很高的安全性,但是很多应用场景,如购物车,并不需要如此多级别的 认证就可以保证系统的安全,多级别的安全认证会影响系统的性能,加大系统的延迟,从而 影响用户体验。总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够提供一种海 量对象的存储系统,能够对海量的对象和容器进行简洁高效的管理,同时保证系统的简洁 性,灵活性,低成本的可扩展性,安全性和向后兼容性。
本发明所要解决的技术问题是提供一种海量对象的存储系统及其运行方法,能够 对海量的对象和容器进行简洁高效的管理,同时保证系统的简洁性,灵活性,低成本的可扩 展性,安全性和向后兼容性。为了解决上述问题,本发明公开了一种海量对象的存储系统,包括接口层单元、 服务层单元和存储层单元;所述接口层单元包括接口模块,包括REST接口和API接口,用于构造请求信息;AXIS2请求解析引擎,用于对所述请求信息进行解析,并将解析后的请求信息转发 给服务层单元;所述服务层单元包括对象服务模块,用于依据请求信息对对象进行管理操作和控制操作;容器服务模块,用于依据请求信息对容器进行管理操作和控制操作;系统管理模块,用于对所述存储系统进行系统管理;安全管理模块,用于对所述存储系统进行安全性管理;存储接口适配层模块,包含一系列的访问接口,用于通过采用统一的接口函数访 问存储层单元的存储资源;所述存储层单元,包括多种存储资源,用于在存储资源上存储数据;所述数据包 括对象的自身数据和对象的元数据。优选的,通过HTTP协议利用所述REST接口构造请求信息;通过调用接口函数利用 所述API接口构造请求信息。优选的,当所述存储系统处于预置安全应用场景时,所述安全管理模块开启;当所 述存储系统不处于预置安全应用场景时,所述安全管理模块关闭。优选的,所述安全管理模块对所述存储系统进行安全性管理,包括提取请求消息中的预置关键信息;利用加密算法对所述预置关键信息进行加密。优选的,对象服务模块对对象进行管理操作,包括对象的创建、删除、读取、写入、 追加、恢复、拷贝和移动操作;对象服务模块对对象进行控制操作,包括设置对象的属性 和读取对象的属性。优选的,容器服务模块对容器进行管理操作,包括容器的创建、删除、读取、恢复、 开、关和定位操作;容器服务模块对容器进行控制操作,包括设置容器的读写权限、设置 容器的属性、对容器进行统计和判别。优选的,所述系统管理模块对所述存储系统进行系统管理,包括用户管理、日志 管理、统计分析、会话管理、授权管理和统计查看。优选的,所述存储资源包括文件系统资源、key-Value存储系统资源和数据库系 统资源。相应的,本发明还公开了一种海量对象的存储系统的运行方法,包括通过REST接口或API接口构造请求消息;
通过AXIS2请求解析引擎对所述请求信息进行解析,并将解析后的请求信息转发 给服务层单元;服务层单元依据请求信息采用统一的接口函数访问存储层单元的存储资源;服务层单元对存储资源的对象或容器进行管理操作和/或控制操作。与现有技术相比,本发明具有以下优点本发明所提出的基于Apache AXIS2的一种海量对象的存储系统,是基于软件架构 的,通过软件架构来提供对象存储管理的接口,从而可以与现有的存储体系很好的兼容,并 不需要对现有的存储系统架构有任何变动,因此,该架构下的系统部署成本低,具有很好的 向后兼容性。其次,对于针对对象存储系统的高频度操作,如对象及容器的创建,对象及容 器的删除,对象及容器的移动等高频度的操作不仅可以简洁高效的实现,而且,由于是在软 件架构下实现对象存储系统,因此添加新功能或新接口的会变得非常容易,只需将新接口 的代码逻辑添加到指定的接口函数中,并不需要修改原有的代码逻辑可以(保证原有功能 的安全),也不需要对硬件设备作任何改动,因此,该架构下的对象存储系统,具有很好的灵 活性和低成本可扩展性。进一步,该存储系统下的安全模块可以根据应用场景来进行相应的简洁高效安全 处理,同时保证系统的安全性,例如,在多数应用场景下,如网络购物场景,我们只需要对请 求信息中的关键信息进行诸如MD5,SHA-I等加密即可,关键信息如操作类型,对象的名称 或ID,操作的当前时间等,这种加密方式简洁高效,几乎不影响系统性能,由于加密算法难 于破解,因此,系统的安全性可以得到保证。


图1是对象与容器相互关系的示意图;图2是本发明一种海量对象的存储系统实施例的结构图;图3是本发明一种海量对象的存储系统的功能架构示意图;图4是本发明一种海量对象的存储系统的运行方法实施例的流程图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。本发明给出了一种基于Apache AXIS2的海量对象存储系统架构,借助于Apache 的AXIS2请求解析引擎,在该系统架构下,对象和容器的存储,管理可以得到简单高效的实 现,同时,对象存储系统也具备良好的灵活性,可扩展性,安全性和兼容性。参照图2,示出了本发明一种海量对象的存储系统实施例的结构图,相应的,图3 是本发明一种海量对象的存储系统的功能架构示意图;本发明实施例所述的海量对象存储 系统共分为三层,分别为接口层单元21,服务层单元22和存储层单元23。所述接口层单元21包括接口模块,包括REST接口 211和API接口 212,用于构造请求消息;AXIS2请求解析引擎212,用于对所述请求信息进行解析,并将解析后的请求信息 转发给服务层单元;
所述服务层单元22包括对象服务模块221,用于依据请求信息对对象进行管理操作和控制操作;容器服务模块222,用于依据请求信息对容器进行管理操作和控制操作;系统管理模块223,用于对所述存储系统进行系统管理;安全管理模块224,用于对所述存储系统进行安全性管理;存储接口适配层模块225,包含一系列的存储接口,用于通过采用统一的接口函数 访问存储层单元的存储资源;所述存储层单元23,包括多种存储资源,用于在存储资源上存储数据;所述数据 包括对象的自身数据和对象的元数据。下面,对本发明实施例所述的海量对象存储系统做进一步说明。接口层单元21展示的是在该系统架构下,对象存储服务系统对外提供的服务接 口,主要包含两种类型的接口 REST接口 211和API接口 212。REST接口是一种基于HTTP 协议的软件架构接口,其全称是ItepresentationalMate Transfer,即表象状态转移接口。 在具体实施时,通过HTTP协议利用所述REST接口构造请求消息。如果把WEB服务器端中 所有的数据都看作是资源(Resource),那么呈现在用户面前(即客户端)的就是资源的表 像(R印resentation)。每一个资源都有自己的唯一标识,即统一资源标识符(URI,Uniform Resource Identifier);表象状态转移所述的状态(State),指的是客户端的状态,而不 是服务器端的状态,在REST中,服务器端应该是无状态的。表象状态(R印resentational State)即每一个资源(Resource)在客户端的表像(Itepresentation)就是客户端的一个 状态(State)。表象状态转移所述的转移(Transfer),指的是当用户通过不同的URI访问 不同的资源时,客户端的表像(Itepresentation)也会随着变化,也就意味着客户端的状态 转移(Transfer) 了。API接口则是所述存储系统对外提供的针对编程语言级的函数接口, 客户端在程序中直接调用该接口函数,就能访问对象存储系统提供的服务,也即,通过调用 接口函数利用所述API接口构造请求信息。客户端通过利用上述提供的接口类型来构造相应的服务请求信息,Apache的 AXIS2请求解析引擎213对所述请求信息进行解析,进而转发给相应的服务层单元进行处 理,从而完成对象存储系统相关功能的访问。需要说明的是,在基于Apache AXIS2的对 象存储系统架构下,为了提高整个系统的并发度,可以在一个或者多个服务器上部署多个 Apache AXIS2请求解析引擎,以提高整个存储系统的并发度,使所述存储系统可以应用于 大量并发用户的场景。服务层单元22描述的是对象存储系统提供的功能。其中,对象服务模块221依据 请求信息对对象进行管理操作和控制操作,对象的管理操作包括对象的创建、删除、读取、 写入、追加、恢复、拷贝、移动操作等;对象的控制操作包括设置对象的属性、读取对象的 属性等。容器服务模块222依据请求信息对容器进行管理操作和控制操作,容器的管理操 作包括容器的创建、删除、读取、恢复、定位、开、关操作等;容器的控制操作包括设置容 器的读写权限、设置容器的读写属性、对容器进行统计分析和判别,如统计容器中对象的数 量,容器占用的磁盘空间大小,容器是否过期等。系统管理模块223对所述存储系统进行系统管理,针对系统管理员,所述系统管理包括用户管理、日志管理、统计分析等;针对普通用户,所述系统管理包括会话管理、 授权管理、统计查看等。安全管理模块2 对所述存储系统进行安全性管理。在本发明的一个优选实施例 中,可以根据系统的不同应用场景,来决定系统是否需要安全模块的支持。这就需要预先对 应用场景进行配置,将安全性需求较高的应用场景作为预置安全应用场景,则当所述存储 系统处于预置安全应用场景时,所述安全管理模块开启;当所述存储系统不处于预置安全 应用场景时,即存储系统处于安全性需求不高的应用场景,则所述安全管理模块关闭,以进 一步提高系统的响应时间。其中,预置安全应用场景可以根据用户的需求进行灵活设置,例 如,网络购物这一应用场景,安全性需求较高,可以不用将其设置为预置安全应用场景。进一步,在本发明的另一个优选实施例中,可以在安全管理模块224中提取请求 信息中的预置关键信息,并利用高强度的难于破解的加密算法(如MD5,SHA-I等)对所述 与预置关键信息进行加密。例如,对于针对对象的操作,可以采用加密算法对请求信息中对 象操作类型(如创建对象,删除对象等)、对象的名称、产生该操作的当前时间等关键信息 进行加密,借助于加密算法本身的简洁性,难于破解性,以及小尺寸的加密内容等特性,不 仅可以保证所述存储系统性能,而且也保证了存储系统的安全性。为了能够通过统一的接口来实现对底层存储资源的访问,在该架构中的服务层单 元22还包含一个存储接口适配层模块225,所述存储接口适配层模块包含一系列的访问接 口以实现对底层的存储资源进行抽象,从而屏蔽了底层存储资源的异构性,用统一的接口 函数来访问存储层单元的存储资源,则当更换不同的存储资源时,不需要对服务层单元中 针对底层存储资源的逻辑代码进行改动,从而保证了系统的灵活性和可扩展性。存储层单元23描述的是对象存储系统中的数据序列化到何种类型的存储资源 上,所述存储资源包括文件系统资源、Key-Value存储系统资源、数据库系统资源等。由于 服务层单元22的存储接口适配层模块225可以对不同类型的存储资源进行抽象,用统一的 接口来实现对底层存储资源的访问,所以说,多种异构的存储资源均可以部署到上述架构 下的对象存储系统中。本发明实施例所提出的基于Apache AXIS2的一种海量对象的存储系统,是基于软 件架构的,通过软件架构来提供对象存储管理的接口,从而可以与现有的存储体系很好的 兼容,并不需要对现有的存储系统架构有任何变动,因此,该架构下的系统部署成本低,具 有很好的向后兼容性。其次,对于针对对象存储系统的高频度操作,如对象及容器的创建, 对象及容器的删除,对象及容器的移动等高频度的操作不仅可以简洁高效的实现,而且,由 于是在软件架构下实现对象存储系统,因此添加新功能或新接口的会变得非常容易,只需 将新接口的代码逻辑添加到指定的接口函数中,并不需要修改原有的代码逻辑可以(保证 原有功能的安全),也不需要对硬件设备作任何改动,因此,该架构下的对象存储系统,具有 很好的灵活性和低成本可扩展性。下面,针对上述海量对象的存储系统,对所述存储系统进行运行情况作进一步说 明。参照图4,示出了本发明一种海量对象的存储系统的运行方法实施例的流程图,包括步骤401,通过REST接口或API接口构造请求消息;步骤402,通过AXIS2请求解析引擎对所述请求信息进行解析,并将解析后的请求 信息转发给服务层单元;
步骤403,服务层单元依据请求信息采用统一的接口函数访问存储层单元的存储 资源;步骤404,服务层单元对存储资源的对象或容器进行管理操作和/或控制操作。下面通过三个具体的实例来说明在系统架构下,所述存储系统的整个运行过程。 存储系统并不要求三层单元(接口层单元、服务层单元、存储层单元)都部署在同一个服务 器上,可以根据需要将相应的层次单元部署在不同的机器上,当然也也可部署在同一个机 器上。例如,可以将接口层单元中的AXIS2请求解析引擎部署在多台机器上,以提高整个系 统的并发度;将服务层单元中的各个服务模块也部署在多台机器上,以提高系统的响应速 度;存储层单元也可根据需要部署在一台机器上或者多台机器上。如果需要在该架构下的 对象存储系统中添加新的服务功能,只需将相应服务功能的代码逻辑添加到服务端中指定 的接口模块中,客户端只需构造该功能所需的REST请求信息即可访问该服务。实施例1 创建对象的REST请求由于REST软件架构是建立在诸如HTTP等协议的基础上的,因此可以用HTTP请求 协议中的PUT操作来实现对象的创建,具体的请求信息如下所示PUT/RootURI/MyObject HTTP/1. 1HOST =ServerIP :9090Date :xxxXJJserID :EricX_Parent /abc/def/Other param info......通过REST接口构造上述请求消息,该请求信息表明用户“Eric”请求在名为“abc” 的容器中的子容器“def ”中创建一个名字为“MyObject”的对象。上述的REST请求信息被 AXIS2请求解析引擎获取并进行解析,根据请求信息中的操作PUT、对象的名称或ID、对象 所在的父目录等信息,将相应的请求参数转发给服务层单元的创建对象的代码逻辑;进一 步,服务层单元通过访问存储层单元的存储资源,在该代码逻辑中实现对象的创建,之后根 据代码逻辑的返回值来返回相应的响应信息给客户端。例如,可以返回如下所示的响应信 息HTTP/1. 1 200 OKDescription :Create Object SuccesObject ID :xy == 4bfikuytn43 == 089Y上述返回信息表明创建对象的请求被成功执行,新创建对象的ID是xy == 4bfikuytn43 == 089Y。实施例2 删除对象的REST请求对于删除对象的操作,可以利用HTTP协议中的DELETE操作来实现对象的删除,删 除操作的REST请求示例如下所示DELETE/RootURI/MyObject HTTP/1. 1HOST =ServerIP :9090Date :xxxXJJserID :Dony
X_Parent /abc/def/Other param info......通过REST接口构造上述请求消息,该请求信息的含义是用户“Dony”请求删除属 于用户“Eric”的在容器“abc”下的子容器“def”中名为“MyObject”的对象。AXIS2请求 解析引擎收到该DELETE请求信息并进行解析,会将所述请求信息中的参数信息,如操作名 称,对象ID等信息转发给服务层单元的针对该删除操作的代码逻辑;进一步,服务层单元 访问存储层单元的存储资源并删除对象“MyObject”,并根据代码逻辑的返回值将相应的响 应信息(如是否删除成功等)返回给客户端,返回信息的示例下所示HTTP/1. 1 200 OKDescription :Delete Object Failed, Permission Deny.Object ID :xy == 4bfikuytn43 == 089Y上述返回信息表明删除操作失败了,因为用户“Dony”不能删除属于Erie的对象。实施例3 修改对象的读写权限的REST请求所述修改对象的读写权限属于设置对象的属性这一控制操作。例如,所述修改对 象的读写权限可以为对于拥有者可读可写可执行,其他人则为只读。对于修改权限的操 作,可以利用HTTP协议中的POST操作来实现,修改权限操作的REST请求示例如下5所示POST/RootURI/MyObject ? Op = ModifyPermission HTTP/1. 1HOST =ServerIP :9090Date :xxxXJJserID :EricX_Parent /abc/def/X_Permission :rwx r—r—Other param info......通过REST接口构造上述请求消息,该请求信息的含义是用户“Eric”希望将容器 “abc”中的子容器“def”中名为“MyObject”的对象的权限修改为“rwx r-_r-”,即对于 本用户,拥有该对象的可读可写可执行权限;而对于其他用户,则只有读的权限。AXIS2请求解析引擎收到所述POST请求信息后进行解析,之后将该请求信息中的 参数信息,如操作名称、对象ID等信息转发给服务层单元的针对该修改操作的代码逻辑; 进一步,服务层单元访问存储层单元的存储资源并修改对象“MyObject”的权限,然后根据 代码逻辑的返回值将相应的响应信息(如是否修改成功等)返回给客户端,返回信息的示 例如下所示HTTP/1. 1 200 OKDescription :Permission Update Success.Object ID :xy == 4bfikuytn43 == 089Y上述响应信息表明修改权限操作成功。以上对本发明所提供的一种海量对象的存储系统及其运行方法,进行了详细介 绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只 是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发 明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种海量对象的存储系统,其特征在于,包括接口层单元、服务层单元和存储层单元;所述接口层单元包括接口模块,包括REST接口和API接口,用于构造请求信息;AXIS2请求解析引擎,用于对所述请求信息进行解析,并将解析后的请求信息转发给服 务层单元;所述服务层单元包括对象服务模块,用于依据请求信息对对象进行管理操作和控制操作; 容器服务模块,用于依据请求信息对容器进行管理操作和控制操作; 系统管理模块,用于对所述存储系统进行系统管理; 安全管理模块,用于对所述存储系统进行安全性管理;存储接口适配层模块,包含一系列的访问接口,用于通过采用统一的接口函数访问存 储层单元的存储资源;所述存储层单元,包括多种存储资源,用于在存储资源上存储数据;所述数据包括对 象的自身数据和对象的元数据。
2.如权利要求1所述的系统,其特征在于,通过HTTP协议利用所述REST接口构造请求信息; 通过调用接口函数利用所述API接口构造请求信息。
3.如权利要求1所述的系统,其特征在于,当所述存储系统处于预置安全应用场景时,所述安全管理模块开启; 当所述存储系统不处于预置安全应用场景时,所述安全管理模块关闭。
4.如权利要求3所述的系统,其特征在于,所述安全管理模块对所述存储系统进行安 全性管理,包括提取请求消息中的预置关键信息; 利用加密算法对所述预置关键信息进行加密。
5.如权利要求1所述的系统,其特征在于,对象服务模块对对象进行管理操作,包括对象的创建、删除、读取、写入、追加、恢复、 拷贝和移动操作;对象服务模块对对象进行控制操作,包括设置对象的属性和读取对象的属性。
6.如权利要求1所述的系统,其特征在于,容器服务模块对容器进行管理操作,包括容器的创建、删除、读取、恢复、开、关和定位 操作;容器服务模块对容器进行控制操作,包括设置容器的读写权限、设置容器的读写属 性、对容器进行统计和判别。
7.如权利要求1所述的系统,其特征在于,所述系统管理模块对所述存储系统进行系 统管理,包括用户管理、日志管理、统计分析、会话管理、授权管理和统计查看。
8.如权利要求1所述的系统,其特征在于,所述存储资源包括文件系统资源、key-Value存储系统资源和数据库系统资源。
9.一种海量对象的存储系统的运行方法,其特征在于,包括 通过REST接口或API接口构造请求消息;通过AXIS2请求解析引擎对所述请求信息进行解析,并将解析后的请求信息转发给服 务层单元;服务层单元依据请求信息采用统一的接口函数访问存储层单元的存储资源; 服务层单元对存储资源的对象或容器进行管理操作和/或控制操作。
10.如权利要求9所述的方法,其特征在于,所述存储系统为如权利要求1至8任意一 权利要求所述的存储系统。
全文摘要
本发明提供了一种海量对象的存储系统及其运行方法,所述系统包括接口层单元,包括接口模块,用于构造请求信息;AXIS2请求解析引擎,用于对请求信息进行解析并将请求信息转发给服务层单元;服务层单元包括对象服务模块,用于对对象进行管理、控制操作;容器服务模块,用于对容器进行管理、控制操作;系统管理模块,用于对存储系统进行系统管理;安全管理模块,用于对存储系统进行安全性管理;存储接口适配层模块,用于通过采用统一的接口函数访问存储层单元的存储资源;存储层单元,用于在存储资源上存储数据。本发明能够对海量的对象和容器进行简洁高效的管理,并保证系统的简洁性、灵活性、低成本的可扩展性、安全性和向后兼容性。
文档编号G06F17/30GK102073742SQ20111003409
公开日2011年5月25日 申请日期2011年1月31日 优先权日2011年1月31日
发明者杨广文, 阮华斌, 黄小猛 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1