CN104778180A - 云存储元数据处理系统 - Google Patents
云存储元数据处理系统 Download PDFInfo
- Publication number
- CN104778180A CN104778180A CN201410015081.2A CN201410015081A CN104778180A CN 104778180 A CN104778180 A CN 104778180A CN 201410015081 A CN201410015081 A CN 201410015081A CN 104778180 A CN104778180 A CN 104778180A
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- module
- metadatabase
- meta
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种云存储元数据处理系统,包括:接入模块,认证模块,元数据库,分区配置模块,分区驱动模块,终端模块,数据库管理模块,审计模块和维护模块。本发明能够在日益庞大的元数据量的情况下,稳定可靠的提供用户数据存储的具体位置信息,且为用户提供方便快捷的按区域查询、条件过滤、跨地域访问元数据、异地容灾等功能性支持。
Description
技术领域
本发明涉及一种云存储元数据处理系统。
背景技术
在云存储服务体系中,数据的存储规模随业务规模的增长而不断的增长,相应的,元数据的规模也在日益提升,达到TB甚至更高的级别,这就对云存储服务的元数据系统的架构和实现提出了更高的要求。
元数据是指在云存储系统当中标识用户数据的具体存放位置的信息,从这个角度上讲,元数据系统就是一个KV(Key Value)系统,随着云存储服务的业务功能的不断丰富,在最基本的KV操作(即增、删、改、查等)的基础上,对元数据系统提出了更多的功能性要求,比如按区域查询(Range Get),跨地域快速访问,异地灾备,条件过滤(Filter)等等,海量的数据规模使得支持这些功能非常困难。
目前存在如下的几种解决方案:
1.放弃元数据存储
考虑到元数据的存储带来的各种问题,有些方案选择放弃元数据的存储,直接对用户数据的进行某种映射,把映射的结果关联到内部的实际存储服务节点上,这种方案的好处是节约了元数据存储和访问带来的各个环节的性能和资源开销,著名的开源系统Apache Cassandra系统即采用了该方案,这种方案的不足是无法提供按区域查询(Range Get)和条件过滤等支持。关于Cassndra,参见http://cassandra.apache.org。
2.用B+/Trie树的数据结构对元数据进行组织和索引
传统的数据库(比如MySQL和各种新兴的NoSQL数据库(比如MongoDB等)即采用这种方案,这种方案的缺点是,单机版本受单机内存容量的限制,扩展性和性能不好,分布式版本的实现非常复杂,一致性、可用性等要求较难实现,也无法提供跨地域查询支持。关于MySQL,参见http://dev.mysql.com;关于MongoDB,参见http://www.mongodb.org。
3.采用日志结构合并树(Log Structure Merge Tree)的方式
Google的BigTable及其开源实现Apache HBase即采用这种方式,该方式提供很好的可扩展性,也可以提供条件过滤、按区域查询等操作,但其实现依赖于底层的GFS/Chubby、Apache Hadoop/Zookeeper等分布式基础设施,在实现时需要自下而上的完整生态系统的支持,而且方式本身是针对数据进行保存和分区的,在进行分区分裂和合并的时候,所有分区内的数据会参与其中,整个过程非常的笨重,该方式也无法提供跨地域查询支持。
发明内容
本发明的目的在于提供一种云存储元数据处理系统,能够在日益庞大的元数据量的情况下,稳定可靠的提供用户数据存储的具体位置信息,且为用户提供方便快捷的按区域查询、条件过滤、跨地域访问元数据、异地容灾等功能性支持。
为解决上述问题,本发明提供一种云存储元数据处理系统,包括:
接入模块,用于提供用户数据操作的访问接口,对用户访问数据的流程进行协调、控制和异常处理;
认证模块,用于提供云存储元数据处理系统的其它各个模块间操作调用的认证服务;
元数据库,用于存储划分好的预设大小的元数据单元,每个元数据单元包含若干个元数据;
分区配置模块,用于记录当前的所有元数据单元的分区配置的信息;
分区驱动模块,用于定时对所有元数据单元的分区配置进行管理和生成分区调整指令;
终端模块,用于在数据访问流程中,提供对所述元数据库的访问支持,并进行相应的控制和优化,及根据所述分区调整指令对元数据单元的分区配置进行调整;
数据库管理模块,用于对元数据库的存储引擎进行配置和管理;
审计模块,用于对元数据请求和各种异常情况进行监控和数据收集,作为计费和系统运营、维护、优化、升级的依据。
维护模块,用于对云存储元数据处理系统的其它各个模块进行部署、运维、调整工作。
进一步的,在上述系统中,所述认证模块根据各个模块间的调用接口性质的不同,采用不同强度的认证方式,包括:
对于外部接口调用,采用严格的AccessyKey+HMAC+SHA1的Hash认证方式;
对于内部的接口调用,采用简单的Basic Auth认证方式。
进一步的,在上述系统中,所述分区驱动模块生成的分区调整指令包括:
如果某个元数据单元包括的元数据量过多,对该元数据单元进行细化分裂的操作;
如果某些连续元数据单元的元数据数据量过少,对这些连续元数据单元进行合并操作。
进一步的,在上述系统中,所述元数据库中的每个元数据中除保存实际数据对象的具体存储位置外,也保存相应的条件检查字段和校验和。
进一步的,在上述系统中,所述元数据库为传统的数据库,所述传统的数据库本身具有高可用方案和复制方案。
进一步的,在上述系统中,所述传统的数据库为关系型数据库或NoSQL数据库。
进一步的,在上述系统中,所述元数据库中的每个元数据单元的划分同时满足如下条件:
第一,每一条元数据都单独的属于唯一的一个数据单元,所有的数据单元合到一起,形成一个完整的元数据空间;
第二,每个元数据单元内包括一个完整元数据区间;
第三,同一个用户的元数据都相互邻接的保存在连续的元数据单元中。
进一步的,在上述系统中,元数据库分为本地元数据库和异地元数据库,所述本地元数据库的数量为多个。
进一步的,在上述系统中,对于元数据的存储,若有N个本地元数据库,必须有W个写入操作和R个读取操作成功,所述接入模块才判断数据访问操作为成功。
进一步的,在上述系统中,所述元数据库包括静态和动态数据库,其中,静态数据库保存相对长期的数据,而动态数据库保存短期的数据操作日志。
进一步的,在上述系统中,所述终端模块还用于定期将所述动态数据库中的短期的数据操作日志整理成静态的数据记录并保存至所述静态数据库中。
进一步的,在上述系统中,所述数据库管理模块对元数据库的存储引擎进行配置和管理包括对元数据库进行主从配置、索引建立、异地部署、同步和容灾处理。
与现有技术相比,本发明通过接入模块,认证模块,元数据库,分区配置模块,分区驱动模块,终端模块,数据库管理模块,审计模块和维护模块,能够在日益庞大的元数据量的情况下,稳定可靠的提供用户数据存储的具体位置信息,且为用户提供方便快捷的按区域查询、条件过滤、跨地域访问元数据、异地容灾等功能性支持。
附图说明
图1是本发明一实施例的云存储元数据处理系统的应用访问示意图;
图2是本发明一实施例的云存储元数据处理系统的分区配置示意图;
图3是本发明一实施例的云存储元数据处理系统的数据流程图;
图4是本发明一实施例的云存储元数据处理系统的元数据单元调整示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供一种云存储元数据处理系统,包括:接入模块(AccessSystem),认证模块(AuthorizeSystem),元数据库,分区配置模块(PartitionConfigSystem),分区驱动模块(PartitionDriverSystem),终端模块(EndpointSystem),数据库管理模块(DatabaseManagementSystem),审计模块(AuditingSystem)和维护模块(MaintainanceSystem)。
接入模块(AccessSystem),用于提供用户数据操作的访问接口,对用户访问数据的流程进行协调、控制和异常处理;具体的,AccessSystem)负责提供整体的元数据服务,AccessSystem提供数据操作的访问接口,用户操作的所有访问,都直接跟AccessSystem通过API进行,这里的用户,在云存储的服务体系中,是指云存储服务的接入层,对内,AccessSystem负责对用户访问数据的流程进行协调、控制和异常处理,是元数据服务的枢纽。
认证模块(AuthorizeSystem),用于提供云存储元数据处理系统的其它各个模块间操作调用的认证服务;具体的,AuthorizeSystem负责提供各个模块间操作调用的认证服务。在云存储和元数据服务体系中,无论是外部的用户操作调用,还是内部的数据交流,都必须经过特定的认证环节,如果没有该环节,很可能导致数据被恶意或者无意的修改、删除、破坏或者滥用,这些都会导致用户或者云存储服务供应商在经济上的巨大损失,所有的认证环节都由AuthorizeSystem负责。AuthorizeSystem根据调用接口性质的不同,采用不同强度的认证方式。对于外部接口调用,采用严格的AccessyKey+HMAC+SHA1的Hash认证方式,对于内部的接口调用,采用简单的Basic Auth认证方式。
元数据库,用于存储划分好的预设大小的元数据单元,每个元数据单元包含若干个元数据;
分区配置模块(PartitionConfigSystem),用于记录当前的所有元数据单元的分区配置的信息;具体的,PartitionConfigSystem负责记录当前的分区配置信息。在本发明中,分区是系统对于完整元数据空间的切分,每个分区,都是独立的单元对外服务。元数据系统根据用户数据的命名空间、数据实际规模和系统的服务能力,对分区进行设定和调整,确保分区内部的服务性能,相对于TB及以上级别的元数据本身,分区划分的配置信息很小,也易于同步,这些配置信息即保存在PartitionConfigSystem当中。
分区驱动模块(PartitionDriverSystem),用于定时对所有元数据单元的分区配置进行管理和生成分区调整指令;具体的,PartitionDriverSystem负责元数据分区的管理和调整。PartitionDriverSystem定时驱动分区调整流程,对所涉及的分区进行修正工作,这些调整包括,如果某个分区包括的数据量过多,需要对该分区进行细化分区的操作;如果某些连续分区数据量过少,可能需要对这些连续分区进行合并操作,以减少数据冗余。整个元数据服务的另一个重要流程,即分区调整流程,即由分区驱动系统执行。
详细的,本发明的分区调整流程由PartitionDriverSystem驱动。PartitionDriverSystem定期触发一个任务,检查当前完整的元数据分布和访问压力,确定新一轮的分区策略和分区变化阶段的过渡策略。在分区变化的过程中,涉及到当前(currConfig)、新(newConfig)和中间配置(midConfig)三种不同的配置,这是为了保证在配置调整过程中,服务的持续正常进行。其中,当前配置指目前正在使用的配置;新配置指调整后的配置,新配置与旧配置的区别,可能是分区调整后,分区合并或分裂的配置差异,也可能仅仅是动静分离合并后的差异;而中间配置是指新旧配置切换的过渡配置。如图3所示,具体的分区调整流程如下:
A.PartitionDriverSystem根据当前配置,计算新配置和过渡配置。
B.PartitionDriverSystem向PartitionConfigSystem询问当前配置信息。
C.PartitionConfigSystem返回当前的全局配置信息到PartitionDriverSystem。
D.PartitionDriverSystem检查PartitionConfigSystem的配置,如果不正确,流程停止。
E.PartitionDriverSystem向Endpoints询问当前配置信息。
F.Endpoints返回当前配置到PartitionDriverSystem。
G.PartitionDriverSystem确认Endpoints的当前配置是否正确,如果配置不正确,则整体过程停止,如果正确,流程继续。
H.PartitionDriverSystem将中间配置推送到PartitionConfigSystem。
I.PartitionConfigSystem向PartitionDriverSystem确认中间配置推送已成功。
J.PartitionDriverSystem将中间配置推送到EndpointSystem。
K.EndpointSystem向PartitionDriverSystem确认中间配置推送已成功。
L.PartitionDriverSystem激发EndpointSystem,启用中间配置。
M.EndpointSystem返回PartitionDriverSystem,中间配置启用成功。
N.PartitionDriverSystem激发PartitionConfigSystem,启用中间配置,淘汰旧配置。
O.PartitionConfigSystem返回PartitionDriverSystem,中间配置启用成功。
P.PartitionDriverSystem激发EndpointSystem,旧配置下线,确保新的写入数据都是在中间配置下操作的。
Q.EndpointSystem返回PartitionDriverSystem,通知旧配置下线成功。
R.PartitionDriverSystem进行数据分区的合并、分割和动静数据融合操作,该过程称为union。
S.PartitionDriverSystem将新配置推送到PartitionConfigSystem。
T.PartitionConfigSystem向PartitionDriverSystem确认新配置推送已成功。
U.PartitionDriverSystem将新配置推送到EndpointSystem。
V.EndpointSystem向PartitionDriverSystem确认新配置推送已成功。
W.PartitionDriverSystem激发EndpointSystem,启用新配置。
X.EndpointSystem返回PartitionDriverSystem,新配置启用成功。
Y.PartitionDriverSystem激发PartitionConfigSystem,启用新配置。
Z.PartitionConfigSystem返回PartitionDriverSystem,新配置启用成功。
AA.PartitionDriverSystem激发EndpointSystem,下线中间配置。
BB.EndpointSystem返回PartitionDriverSystem,中间配置下线成功。
CC.过程完成。
终端模块(EndpointSystem),用于在数据访问流程中,提供对所述元数据库的访问支持,并进行相应的控制和优化,及根据所述分区调整指令对元数据单元的分区配置进行调整;具体的,EndpointSystem负责数据库存储引擎与外部调用的协调。本发明使用传统的数据库进行最终的数据(即元数据)存储和索引,而所有针对数据的操作,都由EndpointSystem操作。在数据访问流程中,EndpointSystem负责提供对数据库的访问支持,并进行相应的控制和优化。另一方面,针对各条具体的记录进行的日志结构合并的操作,也是在当中进行的,如果不能合理的合并日志结构,会导致记录的读取服务非常缓慢,最终影响线上服务的读取性能,之所以采用日志结构,而不是直接修改的方式,很大程度上是为了提升系统对写入数据的服务性能。在分区调整流程中,EndpointSystem负责根据PartitionDriverSystem的要求,进行相应的数据库表结构调整(合并和切分)操作,为保证服务的可用性,数据库的操作是在多个副本间隔离进行的,防止出现并行分区调整,最终导致服务可用性受影响的问题。EndpointSystem作为接口,隔离了元数据存储本身和对元数据的访问操作,方便了针对各种不同的应用场景进行相应的后台存储引擎(即传统数据库)的选型和调整。在一个系统中,如果有必要,甚至可以并行采用不同的传统数据库引擎,分别满足不同用户的需求。
数据库管理模块(DatabaseManagementSystem),用于对元数据库的存储引擎进行配置和管理;具体的,DatabaseManagementSystem负责后台数据库存储引擎的配置和管理。对于EndpointSystem后面的传统数据库的管理,包括主从配置、索引建立等具体的数据库相关操作,是由DatabaseManagementSystem完成的,这样极大的简化了数据的可用性和可靠性支持。对元数据进行异地部署、同步和容灾处理,也通过该系统对后台数据库的配置管理进行支持。
审计模块(AuditingSystem),用于对元数据请求和各种异常情况进行监控和数据收集,作为计费和系统运营、维护、优化、升级的依据。
维护模块(MaintainanceSystem),用于对云存储元数据处理系统的其它各个模块进行部署、运维、调整工作。具体的,云存储元数据系统要求内部各个子系统都可以平滑的部署,动态升级,不影响其他组件以及对外服务,当中的协调工作,由MaintainanceSystem全权负责。
优选的,所述认证模块根据各个模块间的调用接口性质的不同,采用不同强度的认证方式,包括:
对于外部接口调用,采用严格的AccessyKey+HMAC+SHA1的Hash认证方式;
对于内部的接口调用,采用简单的Basic Auth认证方式。
优选的,所述分区驱动模块生成的分区调整指令包括:
如果某个元数据单元包括的元数据量过多,对该元数据单元进行细化分裂的操作;
如果某些连续元数据单元的元数据数据量过少,对这些连续元数据单元进行合并操作。具体的,在用户对元数据进行修改和写入操作的时候,采用日志结构合并树的方案,对元数据进行定期的小范围调整,在用户数据量不断增大的时候,及时采取数据区域分裂的方式,确保某个数据单元的数据量控制在一定的范围内,并及时更新全局配置,确保数据的访问性能。相对于放弃元数据的数据存储方案,本发明可以有效地提供按区域查询和条件过滤的功能,同时在分区调整的时候,影响范围小,易于管理;相对于保持分布式B+/Trie树的方案,本发明的每次查询附加次数是固定的1次,与树结构本身的层数没有关系,实现起来也简单的多。
优选的,所述元数据库中的每个元数据中除保存实际数据对象的具体存储位置外,也保存相应的条件检查字段和校验和。具体的,在元数据中除保存实际数据对象的具体存储位置外,也保存相应的条件检查字段,供后续条件匹配过滤查询使用。为确保数据的可靠性,即保证其不在传输和存储过程中损坏,每条数据都配备有校验和。
优选的,所述元数据库为传统的数据库,所述传统的数据库本身具有高可用方案和复制方案。例如,所述传统的数据库为关系型数据库或NoSQL数据库。具体的,所有的元数据都是保存在传统的数据库中的,至于该数据库是普通的关系型数据库(如MySQL)或者是较新型的NoSQL数据库(如MongoDB),并不作特别的限定,但要求数据库可以对多个数据项做索引,以此支持条件查询。利用传统数据库本身的高可用方案和复制方案,进行跨地域数据同步,支持元数据系统所需要提供的按区域查询、跨地域快速访问,异地灾备等功能,并实现元数据的可靠性和可用性。这种实现方式的最大优势是,省去了自行开发存储引擎带来的各种复杂度,充分利用了各种现有实现,选型的自由度也很大。如图1所示,在实现上,可由独立的应用提供操作接口,屏蔽存储引擎的选型和实现细节。
优选的,所述元数据库中的每个元数据单元的划分同时满足如下条件:
第一,每一条元数据都单独的属于唯一的一个数据单元,所有的数据单元合到一起,形成一个完整的元数据空间;
第二,每个元数据单元内包括一个完整元数据区间;
第三,同一个用户的元数据都相互邻接的保存在连续的元数据单元中。具体的,传统的数据库,受单机内存和性能的限制,无法支持海量数据(如TB及以上级别的元数据)的存储。本发明的方案参考了日志结构合并树的思想,按照特定的原则即所述元数据库中的每个元数据单元的划分需要同时满足的条件对元数据进行划分,以固定大小作为一个单元,每个单元分配到一组跨地域的传统数据库中,并把这种单元划分作为全局配置即分区配置进行保存。如图2所示,在响应用户的操作时,元数据系统首先根据分区配置定位所操作的实际数据的元数据所在的数据库,再具体定位于数据库中的元数据单元中,获取具体元数据的信息,找到实际数据的存储地址。上述元数据库中的每个元数据单元的划分同时满足的条件中的第二和第三个条件是为了支持云存储服务提供按区域查询(Range Get)和条件过滤(Filter)这两个功能。
优选的,元数据库分为本地元数据库和异地元数据库,所述本地元数据库的数量为多个。相应的,对于元数据的存储,若有N个本地元数据库,必须有W个写入操作和R个读取操作成功,所述接入模块才判断数据访问操作为成功。具体的,传统的数据库高可用方案,是通过配置replication的方式实现的,在本发明中,数据库级别的replication也会使用,主要用于提供跨地域访问和异地容灾支持。另一方面,在应用层,本发明提出了自己的高可用和一致性方案。本发明对于数据的存储,要求按照一定的策略(R+W>N)进行判断,即假设有N份数据副本,要求写入必须满足W份副本以上成功,读取必须R份副本以上成功,整个的数据访问操作才视做成功,其中R、W、N的设置由用户自定义决定,但三个数字必须满足上述不等式。如果实际操作不满足上述不等式,系统会返回用户“具体结果不明”,本发明要求用户应用自行设置在写入异常时候的相应策略,因为毕竟只有用户才了解最适合应用本身的应对方式。
优选的,所述元数据库包括静态和动态数据库,其中,静态数据库保存相对长期的数据,而动态数据库保存短期的数据操作日志。相应的,所述终端模块还用于定期将所述动态数据库中的短期的数据操作日志整理成静态的数据记录并保存至所述静态数据库中。具体的,本发明采用动静分离的方式进行数据读写,即把数据分别保存在动、静态两组数据库中,静态数据库保存相对长期的数据,而动态数据库保存短期的数据操作日志,类似于append only的方案,写操作只涉及动态数据的修改,而读操作涉及动、静态两组数据库,这样可以很好的分散数据库的访问压力。在大多数情况下,数据的修改操作是短时间的,另一方面,为了防止append的日志过多导致数据库访问压力过大,性能过慢,在过了一个稳定的时间短之后,本发明会要求把动态的数据操作日志整理成静态的数据记录。在进行动静数据合并的过程中,必须进行精细化的配置变更,确保在数据合并的过程中,用户仍然可以进行正常的读写操作,而且在这期间进行的修改,在数据合并后仍然有效,同时分区的调整的粒度和持续时间必须细化和可控。
优选的,所述数据库管理模块对元数据库的存储引擎进行配置和管理包括对元数据库进行主从配置、索引建立、异地部署、同步和容灾处理。
如图4所示,本发明一实施例的数据访问流程由元数据服务的用户驱动,具体如下:
A.云存储服务访问AccessSystem,声明需要进行的操作,所属用户,针对的对象,需要进行的具体操作(增删改查),认证信息。
B.AccessSystem访问AuthorizeSystem,对请求认证信息和操作权限进行检查。
C.AuthorizeSystem对认证信息进行确认,把结果(通过认证或是失败)返回给AccessSystem。
D.如果AuthorizeSystem返回认证失败,AccessSystem直接返回用户拒绝操作。
E.如果认证通过,AccessSystem向PartitionConfigSystem询问用户操作所针对的命名空间和分区情况。
F.PartitionConfigSystem查询当前的配置,返回AccessSystem该操作所具体针对的EndpointSystem列表,尽管是单个操作,但是由操作的具体特性(比如按区域查询或者是按条件查询)以及出于可用性、一致性等要求的考虑,任何一个具体的操作都会涉及多个EndpointSystem。
G.AccessSystem根据PartitionConfigSystem返回的当前分区配置情况,访问相应的EndpointSystem,申请具体的操作。
H.EndpointSystem根据配置,向数据库发起相应数据请求。
EndpointSystem采用动静分离的方式组织数据,并且直接把数据存放在数据库中。具体来说,就是把数据分别保存在动、静两组数据库中,静态数据保存相对长期的数据,而动态数据保存短期的数据操作日志,写操作只涉及动态数据的修改,而读操作涉及动、静两组数据库,这样可以很好的分散数据库的访问压力。
为了防止误操作,EndpointSystem会维护数据库与配置的相应关系,确保每个操作都是正确的,不会在执行写操作的时候,误写其他的数据。
I.数据库返回相应的数据到EndpointSystem。
J.EndpointSystem返回结果到AccessSystem。
K.AccessSystem在获得多个EndpointSystem返回的结果后,对所有的返回结果进行汇总。为兼顾可用性和一致性的,AccessSystem按照一定的策略(R+W>N)进行判断,即假设有N个数据副本,要求写入必须满足W份以上,读取必须R份以上才会成功,否则会返回用户具体结果不明,本系统要求用户接口自行判断在写入异常时候的相应策略,因为毕竟只有用户才最了解合适的应对方式。
L.AccessSystem把结果返回给云存储的接口和用户,整个流程结束。
详细的,本发明一实施例中采用上述云存储元数据处理系统的服务器配置如下:
数据单元存储节点:
硬件,CPUx4,64GB内存,SAS250GBx2;
软件,Linux x86_64,CentOS6.0,MySQL5.6。
数据接入应用节点:
硬件,CPUx4,16GB内存,SAS250GBx2。
应用服务情况如下:
数据规模,TB级别;
记录平均长度,600字节;
平均访问次数,2亿/天;
平均读记录耗时,2毫秒;
平均写记录耗时,3毫秒;
平均区间查询耗时,50毫秒。
对于达到TB级别的数据规模的KV系统,上述系统性能指标表明本发明的方法和系统可以很好的支持云存储的元数据服务。
综上所述,本发明针对在云存储服务这种提供海量数据存储服务的系统中,元数据系统如何在日益庞大的数据量的情况下,稳定可靠的提供用户数据存储的具体位置信息,在此基础上,为用户提供方便快捷的按区域查询、条件过滤、跨地域访问元数据、异地容灾等功能性支持;在性能方面,满足元数据服务的高可靠(元数据不出错)、高可用(元数据7x24可以使用)、高可扩展(架构需要支持系统的水平扩展,即只需要简单的增加普通硬件设备就可以支持数据规模的扩展)的基本要求。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (12)
1.一种云存储元数据处理系统,其特征在于,包括:
接入模块,用于提供用户数据操作的访问接口,对用户访问数据的流程进行协调、控制和异常处理;
认证模块,用于提供云存储元数据处理系统的其它各个模块间操作调用的认证服务;
元数据库,用于存储划分好的预设大小的元数据单元,每个元数据单元包含若干个元数据;
分区配置模块,用于记录当前的所有元数据单元的分区配置的信息;
分区驱动模块,用于定时对所有元数据单元的分区配置进行管理和生成分区调整指令;
终端模块,用于在数据访问流程中,提供对所述元数据库的访问支持,并进行相应的控制和优化,及根据所述分区调整指令对元数据单元的分区配置进行调整;
数据库管理模块,用于对元数据库的存储引擎进行配置和管理;
审计模块,用于对元数据请求和各种异常情况进行监控和数据收集,作为计费和系统运营、维护、优化、升级的依据。
维护模块,用于对云存储元数据处理系统的其它各个模块进行部署、运维、调整工作。
2.如权利要求1所述的云存储元数据处理系统,其特征在于,所述认证模块根据各个模块间的调用接口性质的不同,采用不同强度的认证方式,包括:
对于外部接口调用,采用严格的AccessyKey+HMAC+SHA1的Hash认证方式;
对于内部的接口调用,采用简单的Basic Auth认证方式。
3.如权利要求1所述的云存储元数据处理系统,其特征在于,所述分区驱动模块生成的分区调整指令包括:
如果某个元数据单元包括的元数据量过多,对该元数据单元进行细化分裂的操作;
如果某些连续元数据单元的元数据数据量过少,对这些连续元数据单元进行合并操作。
4.如权利要求1所述的云存储元数据处理系统,其特征在于,所述元数据库中的每个元数据中除保存实际数据对象的具体存储位置外,也保存相应的条件检查字段和校验和。
5.如权利要求1所述的云存储元数据处理系统,其特征在于,所述元数据库为传统的数据库,所述传统的数据库本身具有高可用方案和复制方案。
6.如权利要求5所述的云存储元数据处理系统,其特征在于,所述传统的数据库为关系型数据库或NoSQL数据库。
7.如权利要求5所述的云存储元数据处理系统,其特征在于,所述元数据库中的每个元数据单元的划分同时满足如下条件:
第一,每一条元数据都单独的属于唯一的一个数据单元,所有的数据单元合到一起,形成一个完整的元数据空间;
第二,每个元数据单元内包括一个完整元数据区间;
第三,同一个用户的元数据都相互邻接的保存在连续的元数据单元中。
8.如权利要求1所述的云存储元数据处理系统,其特征在于,元数据库分为本地元数据库和异地元数据库,所述本地元数据库的数量为多个。
9.如权利要求8所述的云存储元数据处理系统,其特征在于,对于元数据的存储,若有N个本地元数据库,必须有W个写入操作和R个读取操作成功,所述接入模块才判断数据访问操作为成功。
10.如权利要求1所述的云存储元数据处理系统,其特征在于,所述元数据库包括静态和动态数据库,其中,静态数据库保存相对长期的数据,而动态数据库保存短期的数据操作日志。
11.如权利要求10所述的云存储元数据处理系统,其特征在于,所述终端模块还用于定期将所述动态数据库中的短期的数据操作日志整理成静态的数据记录并保存至所述静态数据库中。
12.如权利要求1所述的云存储元数据处理系统,其特征在于,所述数据库管理模块对元数据库的存储引擎进行配置和管理包括对元数据库进行主从配置、索引建立、异地部署、同步和容灾处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410015081.2A CN104778180B (zh) | 2014-01-14 | 2014-01-14 | 云存储元数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410015081.2A CN104778180B (zh) | 2014-01-14 | 2014-01-14 | 云存储元数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104778180A true CN104778180A (zh) | 2015-07-15 |
CN104778180B CN104778180B (zh) | 2020-03-06 |
Family
ID=53619648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410015081.2A Active CN104778180B (zh) | 2014-01-14 | 2014-01-14 | 云存储元数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104778180B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259543A (zh) * | 2016-12-29 | 2018-07-06 | 广东中科遥感技术有限公司 | 分布式云存储数据库以及其部署在多个数据中心的方法 |
CN109445711A (zh) * | 2018-11-07 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种基于云平台的业务处理方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799659A (zh) * | 2012-07-05 | 2012-11-28 | 广州鼎鼎信息科技有限公司 | 一种基于无中心分布系统的全局重复数据删除系统及方法 |
CN103019614A (zh) * | 2011-09-23 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 分布式存储系统管理装置及方法 |
-
2014
- 2014-01-14 CN CN201410015081.2A patent/CN104778180B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019614A (zh) * | 2011-09-23 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 分布式存储系统管理装置及方法 |
CN102799659A (zh) * | 2012-07-05 | 2012-11-28 | 广州鼎鼎信息科技有限公司 | 一种基于无中心分布系统的全局重复数据删除系统及方法 |
Non-Patent Citations (3)
Title |
---|
王习特: "key-value数据库上连接操作的查询处理与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈宬: "私有云存储系统元数据管理模块的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陶永才 和 史伟航 编著: "《操作系统原理与实践教程 (第二版)》", 31 October 2010 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259543A (zh) * | 2016-12-29 | 2018-07-06 | 广东中科遥感技术有限公司 | 分布式云存储数据库以及其部署在多个数据中心的方法 |
CN108259543B (zh) * | 2016-12-29 | 2021-07-06 | 广东中科遥感技术有限公司 | 分布式云存储数据库以及其部署在多个数据中心的方法 |
CN109445711A (zh) * | 2018-11-07 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种基于云平台的业务处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104778180B (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906598B1 (en) | Distributed data storage controller | |
US9460185B2 (en) | Storage device selection for database partition replicas | |
US8918392B1 (en) | Data storage mapping and management | |
US9489443B1 (en) | Scheduling of splits and moves of database partitions | |
US11314444B1 (en) | Environment-sensitive distributed data management | |
US8935205B2 (en) | System and method of performing snapshot isolation in distributed databases | |
US8930364B1 (en) | Intelligent data integration | |
CN113515499B (zh) | 一种数据库服务方法及系统 | |
US20160142249A1 (en) | Method, medium, and system for configuring a new node in a distributed memory network | |
CN104113597A (zh) | 一种多数据中心的hdfs数据读写系统及方法 | |
CN102158540A (zh) | 分布式数据库实现系统及方法 | |
CN102103518A (zh) | 一种在虚拟化环境中管理资源的系统及其实现方法 | |
CN103064927A (zh) | 分布式文件系统的数据访问方法和装置 | |
CN102981933A (zh) | 物联网感知层的数据增量备份方法及系统 | |
CN101763347A (zh) | Gis接口平台、网络gis管理系统及管理方法 | |
US20120284231A1 (en) | Distributed, asynchronous and fault-tolerant storage system | |
CN101901275A (zh) | 一种分布式存储系统及其方法 | |
CN108319618B (zh) | 一种分布式存储系统的数据分布控制方法、系统及装置 | |
CN110825704B (zh) | 一种读数据方法、写数据方法及服务器 | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN105069152A (zh) | 数据处理方法及装置 | |
CN110348826A (zh) | 异地多活容灾方法、系统、设备及可读存储介质 | |
CN103365740B (zh) | 一种数据冷备方法及装置 | |
CN104778180A (zh) | 云存储元数据处理系统 | |
US20220391411A1 (en) | Dynamic adaptive partition splitting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |